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", ])
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)
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
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()
def setUpClass(cls): cls.genome = arv.load("tests/fake_genome.txt")
def setUpClass(cls): cls.genome = arv.load("tests/fake_genome.txt", ethnicity="european")
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" })))
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")
def test_open_error(self): with self.assertRaises(RuntimeError): arv.load("non-existing-file")