def test_nextSNPs(self): for b in [1, 2, 3]: bed = ld.PlinkBEDFile('test/plink_test/plink.bed', self.N, self.bim) x = bed.nextSNPs(b) assert x.shape == (5, b) assert np.all(np.abs(np.mean(x, axis=0)) < 0.01) assert np.all(np.abs(np.std(x, axis=0) - 1) < 0.01)
def test_nextSNPs_maf_ref(self): b = 4 bed = ld.PlinkBEDFile('test/plink_test/plink.bed', self.N, self.bim) x = bed.nextSNPs(b) bed._currentSNP -= b y = bed.nextSNPs(b, minorRef=True) assert np.all(x == -y)
def test_nextSNPs_maf_ref(self): b = 4 bed = ld.PlinkBEDFile(os.path.join(PLINK_TEST_FILES_DIR, 'plink.bed'), self.N, self.bim) x = bed.nextSNPs(b) bed._currentSNP -= b y = bed.nextSNPs(b, minorRef=True) assert np.all(x == -y)
def test_filter_snps(self): keep_snps = [1, 4] bed = ld.PlinkBEDFile('test/plink_test/plink.bed', self.N, self.bim, keep_snps=keep_snps) assert bed.m == 1 assert bed.n == 5 # pad bits are initialized with random memory --> can't test them assert bed.geno[0:10] == ba.bitarray('0001011111')
def test_filter_indivs_and_snps(self): keep_indivs = [0, 1] keep_snps = [1, 5] bed = ld.PlinkBEDFile('test/plink_test/plink.bed', self.N, self.bim, keep_snps=keep_snps, keep_indivs=keep_indivs) assert bed.m == 1 assert bed.n == 2 print bed.geno assert bed.geno[0:4] == ba.bitarray('0001')
def test_filter_indivs(self): keep_indivs = [0, 1] bed = ld.PlinkBEDFile('test/plink_test/plink.bed', self.N, self.bim, keep_indivs=keep_indivs) assert bed.m == 2 assert bed.n == 2 # pad bits are initialized with random memory --> can't test them assert bed.geno[0:4] == ba.bitarray('0001') assert bed.geno[8:12] == ba.bitarray('0001')
def test_filter_snps(self): keep_snps = [1, 4] bed = ld.PlinkBEDFile(os.path.join(PLINK_TEST_FILES_DIR, 'plink.bed'), self.N, self.bim, keep_snps=keep_snps) assert bed.m == 1 assert bed.n == 5 # pad bits are initialized with random memory --> can't test them assert bed.geno[0:10] == ba.bitarray('0001011111')
def test_filter_indivs(self): keep_indivs = [0, 1] bed = ld.PlinkBEDFile(os.path.join(PLINK_TEST_FILES_DIR, 'plink.bed'), self.N, self.bim, keep_indivs=keep_indivs) assert bed.m == 2 assert bed.n == 2 # pad bits are initialized with random memory --> can't test them assert bed.geno[0:4] == ba.bitarray('0001') assert bed.geno[8:12] == ba.bitarray('0001')
def test_filter_indivs_and_snps(self): keep_indivs = [0, 1] keep_snps = [1, 5] bed = ld.PlinkBEDFile(os.path.join(PLINK_TEST_FILES_DIR, 'plink.bed'), self.N, self.bim, keep_snps=keep_snps, keep_indivs=keep_indivs) self.assertEqual(bed.m, 1) self.assertEqual(bed.n, 2) print(bed.geno) self.assertTrue(bed.geno[0:4] == ba.bitarray('0001'))
def test_nextSNPs(self): b_num = [3, 2, 1] for b in b_num: bed = ld.PlinkBEDFile( os.path.join(PLINK_TEST_FILES_DIR, 'plink.bed'), self.N, self.bim) x = bed.nextSNPs(b) print("x", x) print(np.std(x, axis=0)) self.assertEqual(x.shape, (5, b)) self.assertTrue(np.all(np.abs(np.mean(x, axis=0)) < 0.01)) self.assertTrue(np.all(np.abs(np.std(x, axis=0) - 1) < 0.01))
def test_bed(self): bed = ld.PlinkBEDFile('test/plink_test/plink.bed', self.N, self.bim) # remove three monomorphic SNPs print bed.geno print bed.m assert bed.m == 4 # no individuals removed print bed.n assert self.N == bed.n # 5 indivs * 4 polymorphic SNPs print len(bed.geno) assert len(bed.geno) == 64 print bed.freq correct = np.array( [0.59999999999999998, 0.59999999999999998, 0.625, 0.625]) assert np.all(bed.freq == correct)
def test_bed(self): bed = ld.PlinkBEDFile(os.path.join(PLINK_TEST_FILES_DIR, 'plink.bed'), self.N, self.bim) # remove three monomorphic SNPs print(bed.geno) print(bed.m) assert bed.m == 4 # no individuals removed print(bed.n) assert self.N == bed.n # 5 indivs * 4 polymorphic SNPs print(len(bed.geno)) assert len(bed.geno) == 64 print(bed.freq) correct = np.array( [0.59999999999999998, 0.59999999999999998, 0.625, 0.625]) assert np.all(bed.freq == correct)
def test_nextSNPs_errors1(self): bed = ld.PlinkBEDFile('test/plink_test/plink.bed', self.N, self.bim) bed.nextSNPs(0)
def test_bad_filename(self): bed = ld.PlinkBEDFile('test/plink_test/plink.bim', 9, self.bim)
def test_nextSNPs_errors2(self): bed = ld.PlinkBEDFile(os.path.join(PLINK_TEST_FILES_DIR, 'plink.bed'), self.N, self.bim) bed.nextSNPs(5)
def test_bad_filename(self): bed = ld.PlinkBEDFile(os.path.join(PLINK_TEST_FILES_DIR, 'plink.bim'), 9, self.bim)