예제 #1
0
파일: test_arv.py 프로젝트: saulwiggin/arv
    def setUpClass(cls):
        cls.filename = "tests/fake_genome.txt"
        cls.genome = arv.load(cls.filename)

        cls.keys = sorted([
            "i3001754",
            "i3001755",
            "i3001759",
            "i3001761",
            "i3001773",
            "i4000755",
            "i4000759",
            "rs10488822",
            "rs10810289",
            "rs11980927",
            "rs12913832",
            "rs1426654",
            "rs1540613",
            "rs28504042",
            "rs3135027",
            "rs4477212",
            "rs4536786",
            "rs4672279",
            "rs6015286",
            "rs6026400",
            "rs6123756",
            "rs671",
            "rs742927",
            "rs7715122",
            "rs913897",
        ])
예제 #2
0
파일: __main__.py 프로젝트: saulwiggin/arv
def _main():
    opts = _parse_args()

    genomes = []
    for filename in opts.files:
        log("%s ... " % os.path.basename(filename))
        genome = arv.load(filename, ethnicity=opts.ethnicity)
        log("%s\n" % summary(genome))
        genomes.append(genome)

    if opts.example:
        for filename, genome in zip(opts.files, genomes):
            log("%s ... %s\n" % (os.path.basename(filename), example(genome)))

    if opts.repl:
        env = dict(globals())

        if len(genomes) == 1:
            env.update({"genome": genomes[0]})
            message = "Type `genome` to see the parsed 23andMe raw genome file"
        else:
            env.update({"genomes": genomes})
            message = "Type `genomes` to see the parsed 23andMe raw genome files"

        import code
        code.interact(message, local=env)
예제 #3
0
def all_benchmarks(filename, times):
    log("Benchmarking arv %s at %s\n" % (arv.__version__, arv.__file__))
    log("Measuring time with %s\n\n" % mark_time)

    results = {}
    genome = arv.load(filename)

    for name, code in sorted(benchmarks.items()):
        log("Benchmarking %s x %d ... " % (repr(name), times))
        try:
            results[name] = benchmark(times,
                                      code,
                                      filename=filename,
                                      genome=genome,
                                      random=random)
        except Exception as e:
            log(str(e))
        finally:
            if name == "parsing":
                genome = arv.load(filename)
                log(" %.2g SNPs / second" % (len(genome) / results[name]))
            log("\n")

    return results
예제 #4
0
 def test_parser_speed(self):
     filename = os.getenv("ARV_BENCHMARK")
     self.assertTrue(os.path.isfile(filename),
                     "File not found: %s" % filename)
     try:
         times = int(os.getenv("ARV_BENCHMARK_COUNT", "40"))
     except:
         times = 40
     code = benchmarks["parsing"]
     seconds = benchmark(times,
                         code,
                         filename=filename,
                         stream=sys.stderr,
                         prefix="  ")
     genome = arv.load(filename)
     sys.stderr.flush()
     sys.stderr.write(" %d SNPs in ~%dms or %.1g SNPs/second ... " %
                      (len(genome), int(
                          round(seconds, 3) * 1000), len(genome) / seconds))
     sys.stderr.flush()
예제 #5
0
 def setUpClass(cls):
     cls.genome = arv.load("tests/fake_genome.txt")
예제 #6
0
 def setUpClass(cls):
     cls.genome = arv.load("tests/fake_genome.txt", ethnicity="european")
예제 #7
0
from arv import load, unphased_match as match

genome = load("genome.txt")

print("You are a {gender} with {color} eyes and {complexion} skin.".format(
    gender="man" if genome.y_chromosome else "woman",
    complexion="light" if genome["rs1426654"] == "AA" else "dark",
    color=match(genome["rs12913832"], {
        "AA": "brown",
        "AG": "brown or green",
        "GG": "blue"
    })))
예제 #8
0
파일: test_arv.py 프로젝트: saulwiggin/arv
    def test_female_genome(self):
        female = arv.load("tests/fake_genome_female.txt")
        self.assertFalse(female.y_chromosome)
        self.assertEqual(female.y_chromosome, False)
        self.assertEqual(len(female), 24)

        self.assertEqual(female["rs4477212"].chromosome, 1)
        self.assertEqual(female["rs4477212"].position, 82154)
        self.assertEqual(female["rs4477212"].genotype, "AT")
        self.assertEqual(female["rs4477212"].genotype,
                         female["rs7715122"].genotype)
        self.assertNotEqual(female["rs4477212"].genotype, "TA")
        self.assertNotEqual(female["rs4477212"].genotype, "AA")
        self.assertNotEqual(female["rs4477212"].genotype, "")

        self.assertEqual(female["rs4672279"].chromosome, 2)
        self.assertEqual(female["rs4672279"].position, 59444675)
        self.assertEqual(female["rs4672279"].genotype, "GT")

        self.assertEqual(female["rs4536786"].chromosome, 3)
        self.assertEqual(female["rs4536786"].position, 140049121)
        self.assertEqual(female["rs4536786"].genotype, "CA")

        self.assertEqual(female["rs7715122"].chromosome, 5)
        self.assertEqual(female["rs7715122"].position, 94197884)
        self.assertEqual(female["rs7715122"].genotype, "AT")

        self.assertEqual(female["rs11980927"].chromosome, 7)
        self.assertEqual(female["rs11980927"].position, 20010422)
        self.assertEqual(female["rs11980927"].genotype, "GG")

        self.assertEqual(female["rs10810289"].chromosome, 9)
        self.assertEqual(female["rs10810289"].position, 14899708)
        self.assertEqual(female["rs10810289"].genotype, "AA")

        self.assertEqual(female["rs10488822"].chromosome, 11)
        self.assertEqual(female["rs10488822"].position, 35984271)
        self.assertEqual(female["rs10488822"].genotype, "TC")

        self.assertEqual(female["rs913897"].chromosome, 13)
        self.assertEqual(female["rs913897"].position, 73892459)
        self.assertEqual(female["rs913897"].genotype, "AC")

        self.assertEqual(female["rs1540613"].chromosome, 16)
        self.assertEqual(female["rs1540613"].position, 80476182)
        self.assertEqual(female["rs1540613"].genotype, "AG")

        self.assertEqual(female["rs6123756"].chromosome, 20)
        self.assertEqual(female["rs6123756"].position, 56556146)
        self.assertEqual(female["rs6123756"].genotype, "TT")

        self.assertEqual(female["rs6015286"].chromosome, 20)
        self.assertEqual(female["rs6015286"].position, 57048415)
        self.assertEqual(female["rs6015286"].genotype, "--")

        self.assertEqual(female["rs6026400"].chromosome, 20)
        self.assertEqual(female["rs6026400"].position, 57183524)
        self.assertEqual(female["rs6026400"].genotype, "CC")

        self.assertEqual(female["i3001754"].chromosome, "MT")
        self.assertEqual(female["i3001754"].position, 16256)
        self.assertEqual(female["i3001754"].genotype, "A")

        self.assertEqual(female["i3001755"].chromosome, "MT")
        self.assertEqual(female["i3001755"].position, 16257)
        self.assertEqual(female["i3001755"].genotype, "--")

        self.assertEqual(female["i3001759"].chromosome, "MT")
        self.assertEqual(female["i3001759"].position, 16258)
        self.assertEqual(female["i3001759"].genotype, "--")

        self.assertEqual(female["i3001761"].chromosome, "MT")
        self.assertEqual(female["i3001761"].position, 16259)
        self.assertEqual(female["i3001761"].genotype, "--")

        self.assertEqual(female["i3001773"].chromosome, "MT")
        self.assertEqual(female["i3001773"].position, 16265)
        self.assertEqual(female["i3001773"].genotype, "T")

        self.assertEqual(female["i4000755"].chromosome, "MT")
        self.assertEqual(female["i4000755"].position, 16548)
        self.assertEqual(female["i4000755"].genotype, "C")

        self.assertEqual(female["i4000759"].chromosome, "MT")
        self.assertEqual(female["i4000759"].position, 16567)
        self.assertEqual(female["i4000759"].genotype, "G")

        self.assertEqual(female["rs1426654"].chromosome, 15)
        self.assertEqual(female["rs1426654"].position, 48426484)
        self.assertEqual(female["rs1426654"].genotype, "AA")

        self.assertEqual(female["rs12913832"].chromosome, 15)
        self.assertEqual(female["rs12913832"].position, 28365618)
        self.assertEqual(female["rs12913832"].genotype, "GG")

        self.assertEqual(female["rs28504042"].chromosome, "MT")
        self.assertEqual(female["rs28504042"].position, 1549)
        self.assertEqual(female["rs28504042"].genotype, "--")

        self.assertEqual(female["rs3135027"].chromosome, "MT")
        self.assertEqual(female["rs3135027"].position, 1598)
        self.assertEqual(female["rs3135027"].genotype, "G")

        self.assertEqual(female["rs671"].chromosome, 12)
        self.assertEqual(female["rs671"].position, 112241766)
        self.assertEqual(female["rs671"].genotype, "GG")
예제 #9
0
파일: test_arv.py 프로젝트: saulwiggin/arv
 def test_open_error(self):
     with self.assertRaises(RuntimeError):
         arv.load("non-existing-file")