def testCmdlineMap3File(self): cmds = "--ped %s --map %s --map3 --geno=0.05" % ( self.ped_filename_missing, self.map3_filename) app = mvtest.MVTestApplication() dataset, vars, args = app.LoadCmdLine(cmds.split(" ")) genotypes = [[0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0]] mapdata = [['1', 'rs0001', '0', '500'], ['2', 'rs0007', '0', '25000']] index = 0 for snp in dataset: snp_filter = numpy.ones(snp.missing_genotypes.shape[0]) == 1 try: genodata = snp.get_genotype_data(snp_filter) self.assertEqual(genotypes[index], list(genodata.genotypes)) self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) index += 1 except TooMuchMissing as e: pass except InvalidFrequency as e: skipped += 1 except TooMuchMissingpPhenoCovar as e: pass self.assertEqual(2, index)
def testPedCmdLineMIND2(self): cmds = "--ped %s --map %s --mind=0.10" % (self.ped_filename_missing, self.map_filename) app = mvtest.MVTestApplication() dataset, vars, args = app.LoadCmdLine(cmds.split(" ")) genotypes = [[0, 0, 1, 0], [1, 0, 0, 1], [0, 1, 0, 0], [0, 1, 1, 0], [0, 1, 0, 0], [0, 0, 0, 0], [0, 0, 0, 0]] mapdata = libgwas.get_lines(self.map_filename, split=True) index = 0 for snp in dataset: snp_filter = numpy.ones(snp.missing_genotypes.shape[0]) == 1 try: genodata = snp.get_genotype_data(snp_filter) self.assertEqual(genotypes[index], list(genodata.genotypes)) self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) index += 1 except TooMuchMissing as e: pass except InvalidFrequency as e: skipped += 1 except TooMuchMissingpPhenoCovar as e: pass self.assertEqual(5, index) # Last two are fixed
def testPedCmdLineMIND(self): cmds = "--ped %s --map %s --mind=0.5" % (self.ped_filename_missing, self.map_filename) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) genotypes = [[0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0], [-1, -1, -1, -1, -1, 1, -1, -1, -1, 0, 0, 1], [-1, 2, 1, 1, 0, 0, 0, 2, 1, 1, 0, 0], [-1, 1, 2, 1, 1, 0, 0, 1, 2, 1, 1, 0], [-1, 2, 0, 1, 0, 0, 1, 2, 0, 1, 0, 0], [-1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0]] mapdata = [ x.strip().split() for x in open(self.map_filename).readlines() ] index = 0 for snp in dataset: self.assertEqual(genotypes[index][1:], list(snp.genotype_data)) self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) index += 1 self.assertEqual(7, index)
def testCmdLinePedigreeWithLiability(self): f = open(self.ped_filename, "w") f.write("""1 1 0 0 1 0.1 1 A A G T A A G G C T G T T T 2 2 0 0 1 0.4 1 A C G T G G C G T T G G C T 3 3 0 0 2 1.0 1 A A G G A G C C C C G T C T 4 4 0 0 2 0.5 1 A A G G A G C G C T G G T T 5 5 0 0 1 0.9 1 A C G G A A C G C C G G T T 6 6 0 0 1 1.0 1 A A G T A A G G C C G G T T 7 7 0 0 1 0.1 1 A A G T A A G G C T G G T T 8 8 0 0 1 0.4 1 A C G T G G C G T T G G C T 9 9 0 0 2 1.0 1 A A G G A G C C C C G T C T 10 10 0 0 2 0.5 1 A A G G A G C G C T G G T T 11 11 0 0 1 0.9 1 A C G G A A C G C C G G T T 12 12 0 0 1 1.0 1 A A G T A A G G C C G G T T""") f.close() cmds = "--file %s --liability" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() ped_parser, pc, args = app.LoadCmdLine(cmds.split(" ")) mapdata = libgwas.get_lines(self.map_filename, split=True) index = 0 for snp in ped_parser: self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) self.assertEqual(self.genotypes[index], list(snp.genotype_data)) index += 1 self.assertEqual(7, index)
def testTPedCmdLineGENO2(self): cmds = "--tped %s --tfam %s --geno=0.05" % (self.miss_tped_filename, self.tfam_filename) app = mvtest.MVTestApplication() dataset, vars, args = app.LoadCmdLine(cmds.split(" ")) genotypes = [[1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1]] mapdata = [['1', 'rs0002', '0', '10000']] index = 0 for snp in dataset: snp_filter = numpy.ones(snp.missing_genotypes.shape[0]) == 1 try: genodata = snp.get_genotype_data(snp_filter) self.assertEqual(genotypes[index], list(genodata.genotypes)) self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) index += 1 except TooMuchMissing as e: pass except InvalidFrequency as e: skipped += 1 except TooMuchMissingpPhenoCovar as e: pass self.assertEqual(1, index)
def testTPedCmdLineGENO(self): cmds = "--tped %s --tfam %s --geno=0.5" % (self.miss_tped_filename, self.tfam_filename) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) genotypes = [[1, 1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1], [0, -1, 1, 1, 0, 0, 0, 2, 1, 1, 0, 0], [0, -1, 2, 1, 1, 0, 0, 1, 2, 1, 1, 0], [1, -1, 0, 1, 0, 0, 1, 2, 0, 1, 0, 0], [1, -1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, -1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0]] mapdata = [['1', 'rs0002', '0', '10000'], ['1', 'rs0003', '0', '25000'], ['1', 'rs0004', '0', '45000'], ['2', 'rs0005', '0', '750'], ['2', 'rs0006', '0', '10000'], ['2', 'rs0007', '0', '25000']] index = 0 for snp in dataset: self.assertEqual(genotypes[index], list(snp.genotype_data)) self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) index += 1 self.assertEqual(6, index)
def testCmdLinePedigreeNoParents(self): f = open(self.ped_filename, "w") f.write("""1 1 1 0.1 A A G T A A G G C T G T T T 2 2 1 0.4 A C G T G G C G T T G G C T 3 3 2 1.0 A A G G A G C C C C G T C T 4 4 2 0.5 A A G G A G C G C T G G T T 5 5 1 0.9 A C G G A A C G C C G G T T 6 6 1 1.0 A A G T A A G G C C G G T T 7 7 1 0.1 A A G T A A G G C T G G T T 8 8 1 0.4 A C G T G G C G T T G G C T 9 9 2 1.0 A A G G A G C C C C G T C T 10 10 2 0.5 A A G G A G C G C T G G T T 11 11 1 0.9 A C G G A A C G C C G G T T 12 12 1 1.0 A A G T A A G G C C G G T T""") f.close() cmds = "--file %s --no-parents" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() ped_parser,pc = app.LoadCmdLine(cmds.split(" ")) mapdata = [x.strip().split() for x in open(self.map_filename).readlines()] index = 0 for snp in ped_parser: self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) self.assertEqual(self.genotypes[index], list(snp.genotype_data)) index += 1 self.assertEqual(7, index)
def testCmdLinePedigreeNoPhenoNoFam(self): f = open(self.ped_filename, "w") f.write("""1 0 0 1 A A G T A A G G C T G T T T 2 0 0 1 A C G T G G C G T T G G C T 3 0 0 2 A A G G A G C C C C G T C T 4 0 0 2 A A G G A G C G C T G G T T 5 0 0 1 A C G G A A C G C C G G T T 6 0 0 1 A A G T A A G G C C G G T T 7 0 0 1 A A G T A A G G C T G G T T 8 0 0 1 A C G T G G C G T T G G C T 9 0 0 2 A A G G A G C C C C G T C T 10 0 0 2 A A G G A G C G C T G G T T 11 0 0 1 A C G G A A C G C C G G T T 12 0 0 1 A A G T A A G G C C G G T T""") f.close() cmds = "--file %s --no-fid --no-pheno" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() ped_parser,pc = app.LoadCmdLine(cmds.split(" ")) mapdata = [x.strip().split() for x in open(self.map_filename).readlines()] index = 0 for snp in ped_parser: self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) self.assertEqual(self.genotypes[index], list(snp.genotype_data)) index += 1 self.assertEqual(7, index)
def testCmdLinePedigreeNoFamSexOrParents(self): f = open(self.ped_filename, "w") f.write("""1 0.1 A A G T A A G G C T G T T T 2 0.4 A C G T G G C G T T G G C T 3 1.0 A A G G A G C C C C G T C T 4 0.5 A A G G A G C G C T G G T T 5 0.9 A C G G A A C G C C G G T T 6 1.0 A A G T A A G G C C G G T T 7 0.1 A A G T A A G G C T G G T T 8 0.4 A C G T G G C G T T G G C T 9 1.0 A A G G A G C C C C G T C T 10 0.5 A A G G A G C G C T G G T T 11 0.9 A C G G A A C G C C G G T T 12 1.0 A A G T A A G G C C G G T T""") f.close() cmds = "--file %s --no-parents --no-fid --no-sex" % ( self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() ped_parser, pc, args = app.LoadCmdLine(cmds.split(" ")) mapdata = libgwas.get_lines(self.map_filename, split=True) index = 0 for snp in ped_parser: self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) self.assertEqual(self.genotypes[index], list(snp.genotype_data)) index += 1 self.assertEqual(7, index)
def testTPedCmdLineWithMB(self): cmds = "--tfile %s --chr=1 --from-mb=1 --to-mb=2" % ( self.tfam_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual(1000000, DataParser.boundary.bounds[0]) self.assertEqual(2000000, DataParser.boundary.bounds[1])
def testTPedCmdLineWithX(self): cmds = "--tfile %s --chr=X --from-kb=1 --to-kb=6" % ( self.tfam_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars, args = app.LoadCmdLine(cmds.split(" ")) self.assertEqual(BoundaryCheck.chrom, 23) self.assertEqual(BoundaryCheck.chrom_name, 'X')
def testMachCmdLineNoChrPos(self): cmds = "--mach %s --pheno %s --pheno-names BMI --chr 1" % \ (self.mach_file, self.pheno_covar) app = mvtest.MVTestApplication() # This is illegal, since we can't use chromosomes along with default # MACH with self.assertRaises(SystemExit) as cm: dataset,vars, args = app.LoadCmdLine(cmds.split(" ")) self.assertEqual(cm.exception.code, 1) cmds = "--mach %s --pheno %s --pheno-names BMI --chr 1 --from-bp 1 --to-bp 10000" % \ (self.mach_file, self.pheno_covar) app = mvtest.MVTestApplication() # This is illegal, since we can't use chromosomes along with default # MACH with self.assertRaises(SystemExit) as cm: dataset,vars,args = app.LoadCmdLine(cmds.split(" ")) self.assertEqual(cm.exception.code, 1)
def testPedCmdLineFilenames(self): cmds = "--file %s" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual("PhenoCovar", vars.__class__.__name__) self.assertEqual(self.map_filename, dataset.mapfile) self.assertEqual(self.ped_filename, dataset.datasource) self.assertEqual(9, len(dataset.markers))
def testTPedCmdLineFilenames(self): cmds = "--tfile %s" % (self.tfam_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual("PhenoCovar", vars.__class__.__name__) self.assertEqual(self.tfam_filename, dataset.tfam_file) self.assertEqual(self.tped_filename, dataset.tped_file) self.assertEqual(2000, len(dataset.families)) self.assertEqual([0] * 2000, list(dataset.ind_mask[:, 0]))
def testMachCmdLineMultiplePhenotypes(self): cmds = "--mach %s --pheno %s --pheno-names AGE,BMI" % \ (self.mach_file, self.pheno_covar) app = mvtest.MVTestApplication() dataset,vars, args = app.LoadCmdLine(cmds.split(" ")) index = 0 for var in vars: index += 1 self.assertEqual(2, index)
def testPedCmdLineMaxMAF(self): cmds = "--file %s --max-maf=0.3" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) maf = [0.29925, 0.28775, 0.295, 0.2975] i = 0 for snp in dataset: self.assertAlmostEqual(maf[i], snp.maf) i += 1
def testPedCmdLineMAF(self): cmds = "--file %s --maf=0.3" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) maf = [0.30225, 0.3075, 0.31, 0.3025, 0.30625] i = 0 for snp in dataset: self.assertAlmostEqual(maf[i], snp.maf, places=4) i += 1
def testMachCmdLineBasics(self): cmds = "--mach %s --pheno %s --pheno-names BMI" % \ (self.mach_file, self.pheno_covar) app = mvtest.MVTestApplication() dataset,vars, args = app.LoadCmdLine(cmds.split(" ")) self.assertEqual("PhenoCovar", vars.__class__.__name__) self.assertEqual(2, len(dataset.archives)) self.assertEqual([self.gen_file, self.gen_file2], dataset.archives) self.assertEqual([self.info_file1, self.info_file2], dataset.info_files) self.assertEqual(12, dataset.ind_count)
def testTPedCmdLineWithSNPs(self): cmds = "--tfile %s --chr=1 --snps=rs2000-rs4000" % ( self.tfam_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual(BoundaryCheck.chrom, 1) results = [x for x in mv_esteq.RunAnalysis(dataset, vars)] self.assertEqual(3, len(results)) self.assertEqual(2000, results[0].pos) self.assertEqual(3000, results[1].pos) self.assertEqual(4000, results[2].pos)
def testMachCmdLineChrPos(self): cmds = "--mach %s --pheno %s --pheno-names BMI --mach-chrpos --chr 1" % \ (self.mach_file, self.pheno_covar) app = mvtest.MVTestApplication() # No exception because we can use chromosomes with chrpos dataset, vars = app.LoadCmdLine(cmds.split(" ")) cmds ="--mach %s --pheno %s --pheno-names BMI --chr 1 --from-bp 1 --to-bp 10000 --mach-chrpos" % \ (self.mach_file, self.pheno_covar) app = mvtest.MVTestApplication() # No exception because we can use chromosomes with chrpos dataset, vars = app.LoadCmdLine(cmds.split(" ")) # You can't use positional boundaries without giving it a chromosome cmds ="--mach %s --pheno %s --pheno-names BMI --from-bp 1 --to-bp 10000 --mach-chrpos" % \ (self.mach_file, self.pheno_covar) app = mvtest.MVTestApplication() with self.assertRaises(SystemExit) as cm: dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual(cm.exception.code, 1)
def testCmdLineNoExternalVars(self): cmds = "--file %s --sex" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() ped_parser, pc, args = app.LoadCmdLine(cmds.split(" ")) mapdata = libgwas.get_lines(self.map_filename, split=True) c = pc.covariate_data y = pc.phenotype_data self.assertEqual(["SEX"], pc.covariate_labels) self.assertEqual(["Pheno-1"], pc.phenotype_names) for i in range(0, len(y[0])): self.assertAlmostEqual(self.dummy_pheno[i], y[0][i]) self.assertAlmostEqual(1, c[0][i])
def testTPedCmdLineWithExclude(self): missing = ["%s:%s" % (i, i) for i in range(0, 500)] cmds = "--tfile %s --remove %s" % (self.tfam_filename.split(".")[0], ",".join(missing)) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual("PhenoCovar", vars.__class__.__name__) self.assertEqual(self.tfam_filename, dataset.tfam_file) self.assertEqual(self.tped_filename, dataset.tped_file) self.assertEqual(1500, len(dataset.families)) self.assertEqual([1] * 500 + [0] * 1500, list(dataset.ind_mask[:, 0])) self.assertEqual(",".join(missing), ",".join(DataParser.ind_exclusions))
def testTPedCmdLineWithKB(self): cmds = "--tfile %s --chr=1 --from-kb=1 --to-kb=6" % ( self.tfam_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual(BoundaryCheck.chrom, 1) results = [x for x in mv_esteq.RunAnalysis(dataset, vars)] self.assertEqual(6, len(results)) self.assertEqual(1000, results[0].pos) self.assertEqual(2000, results[1].pos) self.assertEqual(3000, results[2].pos) self.assertEqual(4000, results[3].pos) self.assertEqual(5000, results[4].pos) self.assertEqual(6000, results[5].pos)
def testCmdLinePhenoWithNames(self): cmds = "--file %s --pheno %s --pheno-names=BMI --covar %s --covar-names SEX,AGE" % (self.ped_filename.split(".")[0], self.pheno_covar, self.pheno_covar) app = mvtest.MVTestApplication() ped_parser,pc = app.LoadCmdLine(cmds.split(" ")) mapdata = [x.strip().split() for x in open(self.map_filename).readlines()] c = pc.covariate_data y = pc.phenotype_data self.assertEqual(["SEX", "AGE"], pc.covariate_labels) self.assertEqual(["BMI"], pc.phenotype_names) for i in range(0, len(y[0])): self.assertAlmostEqual(self.phenotype_data[i], y[0][i]) self.assertAlmostEqual(self.covariate_data[0][i], c[0][i]) self.assertAlmostEqual(self.covariate_data[1][i], c[1][i])
def testTPedCmdLineWithExcludeFile(self): file = open("__exclusions", "w") missing = ["%s:%s" % (i, i) for i in range(0, 500)] file.write("\n".join(["%s %s" % (i, i) for i in range(0, 500)])) file.close() cmds = "--tfile %s --remove __exclusions" % ( self.tfam_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual("PhenoCovar", vars.__class__.__name__) self.assertEqual(self.tfam_filename, dataset.tfam_file) self.assertEqual(self.tped_filename, dataset.tped_file) self.assertEqual(1500, len(dataset.families)) self.assertEqual([1] * 500 + [0] * 1500, list(dataset.ind_mask[:, 0])) self.assertEqual(missing, DataParser.ind_exclusions) os.remove("__exclusions")
def testTPedCmdLineWithRemove(self): missing = "rs3000,rs4000,rs5000" cmds = "--tfile %s --exclude %s" % (self.tfam_filename.split(".")[0], missing) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) self.assertEqual("Parser", dataset.__class__.__name__) self.assertEqual("PhenoCovar", vars.__class__.__name__) self.assertEqual(self.tfam_filename, dataset.tfam_file) self.assertEqual(self.tped_filename, dataset.tped_file) self.assertEqual(2000, len(dataset.families)) self.assertEqual(missing.split(","), list(DataParser.boundary.ignored_rs)) results = [x for x in mv_esteq.RunAnalysis(dataset, vars)] self.assertEqual(6, len(results))
def testCmdLinePhenoWithIndices(self): cmds = "--file %s --pheno %s --mphenos=3 --covar %s --covar-numbers 1,2" % ( self.ped_filename.split(".")[0], self.pheno_covar, self.pheno_covar) app = mvtest.MVTestApplication() ped_parser, pc, args = app.LoadCmdLine(cmds.split(" ")) mapdata = libgwas.get_lines(self.map_filename, split=True) c = pc.covariate_data y = pc.phenotype_data self.assertEqual(["SEX", "AGE"], pc.covariate_labels) self.assertEqual(["BMI"], pc.phenotype_names) for i in range(0, len(y[0])): self.assertAlmostEqual(self.phenotype_data[i], y[0][i]) self.assertAlmostEqual(self.covariate_data[0][i], c[0][i]) self.assertAlmostEqual(self.covariate_data[1][i], c[1][i])
def testCmdlineMap3File(self): cmds = "--ped %s --map %s --map3 --geno=0.05" % ( self.ped_filename_missing, self.map3_filename) app = mvtest.MVTestApplication() dataset, vars = app.LoadCmdLine(cmds.split(" ")) genotypes = [[0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0], [0, 1, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0]] mapdata = [['1', 'rs0001', '0', '500'], ['2', 'rs0007', '0', '25000']] index = 0 for snp in dataset: self.assertEqual(genotypes[index], list(snp.genotype_data)) self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) index += 1 self.assertEqual(2, index)
def testTPedCmdLineMIND(self): cmds = "--tped %s --tfam %s --mind=0.5" % (self.miss_tped_filename, self.tfam_filename) app = mvtest.MVTestApplication() dataset, vars, args = app.LoadCmdLine(cmds.split(" ")) genotypes = [[0, 1], [1, 0, 0, 0, 1, 1, 1, 0, 0, 0, 1], [0, 1, 1, 0, 0, 0, 2, 1, 1, 0, 0], [0, 2, 1, 1, 0, 0, 1, 2, 1, 1, 0], [1, 0, 1, 0, 0, 1, 2, 0, 1, 0, 0], [1, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0], [0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0]] mapdata = [['1', 'rs0001', '0', '500'], ['1', 'rs0002', '0', '10000'], ['1', 'rs0003', '0', '25000'], ['1', 'rs0004', '0', '45000'], ['2', 'rs0005', '0', '750'], ['2', 'rs0006', '0', '10000'], ['2', 'rs0007', '0', '25000']] index = 0 skipped = 0 missing = 0 for snp in dataset: snp_filter = numpy.ones(snp.missing_genotypes.shape[0]) == 1 try: genodata = snp.get_genotype_data(snp_filter) self.assertEqual(genotypes[index], list(genodata.genotypes)) self.assertEqual(int(mapdata[index][0]), snp.chr) self.assertEqual(int(mapdata[index][3]), snp.pos) self.assertEqual(mapdata[index][1], snp.rsid) index += 1 except TooMuchMissing as e: missing += 1 except InvalidFrequency as e: skipped += 1 except TooMuchMissingpPhenoCovar as e: pass self.assertEqual(0, missing) self.assertEqual(0, skipped) self.assertEqual(7, index)
def testPedCmdLineMAF(self): cmds = "--file %s --maf=0.3" % (self.ped_filename.split(".")[0]) app = mvtest.MVTestApplication() dataset, vars, args = app.LoadCmdLine(cmds.split(" ")) maf = [0.30225, 0.3075, 0.31, 0.3025, 0.30625] i = 0 skipped = 0 for snp in dataset: snp_filter = numpy.ones(snp.missing_genotypes.shape[0]) == 1 try: genodata = snp.get_genotype_data(snp_filter) self.assertAlmostEqual(maf[i], genodata.maf, places=4) i += 1 except TooMuchMissing as e: pass except InvalidFrequency as e: skipped += 1 except TooMuchMissingpPhenoCovar as e: pass self.assertEqual(i, 5) self.assertEqual(skipped, 4)