def run(parser, args): db_name = '%s-%s' % (DB_PREFIX, args.db_name) DB = connect(db_name, host=args.db_uri) if args.verbose: logger.setLevel(level=logging.DEBUG) else: logger.setLevel(level=logging.INFO) al = AlleleGenerator(reference_filepath=args.reference_filepath, kmer=args.kmer) _variant_ids = get_non_singelton_variants(db_name) total = Variant.snps(id__in=_variant_ids).count() N = 100 pages = math.ceil(total / N) for page in range(pages): logger.info("%i of %i - %f%%" % (page * N, total, round(100 * (page * N) / total, 2))) for variant in Variant.snps( id__in=_variant_ids).order_by("start").skip(N * page).limit(N): # for variant in Variant.snps().order_by("start"): variant_panel = make_variant_probe(al, variant, args.kmer, DB=DB) for i, ref in enumerate(variant_panel.refs): sys.stdout.write( ">ref-%s?var_name=%snum_alts=%i&ref=%s&enum=%i\n" % (variant_panel.variant.var_hash, variant.var_name[:100], len(variant_panel.alts), variant_panel.variant.reference.id, i)) sys.stdout.write("%s\n" % ref) for i, a in enumerate(variant_panel.alts): sys.stdout.write(">alt-%s?var_name=%s&enum=%i\n" % (variant_panel.variant.var_hash, variant.var_name[:100], i)) sys.stdout.write("%s\n" % a)
def test_add_second_vcf_variant_set(self): # This VCF only has one Variant which is not in the first VCF vcf = VCF(f="tests/vcf_tests/test3.vcf", reference_set_id=self.reference_set.id, method="CORTEX") vcf.add_to_database() assert VariantSet.objects().count() == 2 assert VariantCallSet.objects().count() == 1 assert VariantCall.objects().count() == 106 assert Variant.objects().count() == 106 assert Variant.snps().count() == 89 assert Variant.indels().count() == 17 assert Variant.insertions().count() == 8 assert Variant.deletions().count() == 8 assert Variant.ph_snps.count() == 1