Ejemplo n.º 1
0
    def test_c_reader_npz(self):
        distreader = DistNpz(self.currentFolder + "/../examples/toydata10.dist.npz")
        distdata = distreader.read(order='F',force_python_only=False)
        snp_c = distdata.val
        
        self.assertEqual(np.float64, snp_c.dtype)
        self.assertTrue(np.allclose(self.dist_values[:,:10], snp_c, rtol=1e-05, atol=1e-05))

        distreader1 = DistNpz(self.currentFolder + "/../examples/toydata10.dist.npz")
        distreader2 = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz")[:,:10]
        self.assertTrue(np.allclose(distreader1.read().val, distreader2.read().val, rtol=1e-05, atol=1e-05))


        distdata.val[1,2] = np.NaN # Inject a missing value to test writing and reading missing values
        output = "tempdir/distreader/toydata10.dist.npz"
        create_directory_if_necessary(output)
        DistNpz.write(output,distdata)
        snpdata2 = DistNpz(output).read()
        np.testing.assert_array_almost_equal(distdata.val, snpdata2.val, decimal=10)

        snpdata3 = distdata[:,0:0].read() #create distdata with no sids
        output = "tempdir/distreader/toydata0.dist.npz"
        DistNpz.write(output,snpdata3)
        snpdata4 = DistNpz(output).read()
        assert snpdata3 == snpdata4
Ejemplo n.º 2
0
 def setUpClass(self):
     self.currentFolder = os.path.dirname(os.path.realpath(__file__))
     #TODO: get data set with NANs!
     distreader = DistNpz(self.currentFolder +
                          "/../examples/toydata.dist.npz")
     self.distdata = distreader.read(order='F', force_python_only=True)
     self.dist_values = self.distdata.val
Ejemplo n.º 3
0
 def test_write_x_x_cpp(self):
     distreader = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz")
     for order in ['C','F']:
         for dtype in [np.float32,np.float64]:
             distdata = distreader.read(order=order,dtype=dtype)
             distdata.val[-1,0] = float("NAN")
             output = "tempdir/toydata.{0}{1}.cpp.dist.npz".format(order,"32" if dtype==np.float32 else "64")
             create_directory_if_necessary(output)
             DistNpz.write(output, distdata)
             snpdata2 = DistNpz(output).read()
             np.testing.assert_array_almost_equal(distdata.val, snpdata2.val, decimal=10)
Ejemplo n.º 4
0
 def test_hdf5_case3(self):
     distreader1 = DistHdf5(
         self.currentFolder +
         "/../examples/toydata.snpmajor.dist.hdf5")[::2, :]
     distreader2 = DistNpz(self.currentFolder +
                           "/../examples/toydata.dist.npz")[::2, :]
     self.assertTrue(
         np.allclose(distreader1.read().val,
                     distreader2.read().val,
                     rtol=1e-05,
                     atol=1e-05))
Ejemplo n.º 5
0
 def test_subset_view(self):
     distreader2 = DistNpz(self.currentFolder + "/../examples/toydata.dist.npz")[:,:]
     result = distreader2.read(view_ok=True)
     self.assertFalse(distreader2 is result)
     result2 = result[:,:].read()
     self.assertFalse(np.may_share_memory(result2.val,result.val))
     result3 = result[:,:].read(view_ok=True)
     self.assertTrue(np.may_share_memory(result3.val,result.val))
     result4 = result3.read()
     self.assertFalse(np.may_share_memory(result4.val,result3.val))
     result5 = result4.read(view_ok=True)
     self.assertTrue(np.may_share_memory(result4.val,result5.val))