Exemple #1
0
    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)
Exemple #2
0
    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
Exemple #3
0
    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)
Exemple #4
0
    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)
Exemple #5
0
    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)
Exemple #6
0
    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)
Exemple #9
0
    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)
Exemple #10
0
    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])
Exemple #11
0
    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')
Exemple #12
0
    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)
Exemple #13
0
    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))
Exemple #14
0
    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]))
Exemple #15
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)
Exemple #16
0
    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
Exemple #17
0
    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
Exemple #18
0
    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)
Exemple #19
0
    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)
Exemple #21
0
    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])
Exemple #22
0
    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))
Exemple #23
0
    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)
Exemple #24
0
    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])
Exemple #25
0
    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")
Exemple #26
0
    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))
Exemple #27
0
    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])
Exemple #28
0
    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)
Exemple #29
0
    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)
Exemple #30
0
    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)