def variants(context, collaborator, document_id, case_id, json): """Export causatives for a collaborator in .vcf format""" LOG.info("Running scout export variants") adapter = context.obj['adapter'] collaborator = collaborator or 'cust000' variants = export_variants( adapter, collaborator, document_id=document_id, case_id=case_id ) if json: click.echo(dumps([var for var in variants])) return vcf_header = VCF_HEADER #If case_id is given, print more complete vcf entries, with INFO, #and genotypes if case_id: vcf_header[-1] = vcf_header[-1] + "\tFORMAT" case_obj = adapter.case(case_id=case_id) for individual in case_obj['individuals']: vcf_header[-1] = vcf_header[-1] + "\t" + individual['individual_id'] #print header for line in vcf_header: click.echo(line) for variant_obj in variants: variant_string = get_vcf_entry(variant_obj, case_id=case_id) click.echo(variant_string)
def variants(context, collaborator, document_id, json): """Export causatives for a collaborator in .vcf format""" LOG.info("Running scout export variants") adapter = context.obj['adapter'] collaborator = collaborator or 'cust000' variants = export_variants(adapter, collaborator, document_id=document_id) if json: click.echo(dumps([var for var in variants])) return vcf_header = [ "##fileformat=VCFv4.2", "#CHROM\tPOS\tID\tREF\tALT\tQUAL\tFILTER\tINFO" ] for line in vcf_header: click.echo(line) #put variants in a dict to get unique ones variant_string = ("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}") for variant_obj in variants: click.echo( variant_string.format( variant_obj['chromosome'], variant_obj['position'], variant_obj['dbsnp_id'], variant_obj['reference'], variant_obj['alternative'], variant_obj['quality'], ';'.join(variant_obj['filters']), '.'))
def variants(collaborator: str, document_id: str, case_id: str, json: bool): """Export causatives for a collaborator in .vcf format""" LOG.info("Running scout export variants") adapter = store collaborator = collaborator or "cust000" LOG.info("Use collaborator %s", collaborator) if case_id: case_obj = adapter.case(case_id) if not case_obj: LOG.info("Case %s does not exist", case_id) raise click.Abort variants = export_variants(adapter, collaborator, document_id=document_id, case_id=case_id) if json: click.echo( json_lib.dumps([var for var in variants], default=bson_handler)) return vcf_header = VCF_HEADER # If case_id is given, print more complete vcf entries, with INFO, # and genotypes if case_id: vcf_header[-1] = vcf_header[-1] + "\tFORMAT" case_obj = adapter.case(case_id=case_id) for individual in case_obj["individuals"]: vcf_header[ -1] = vcf_header[-1] + "\t" + individual["individual_id"] # print header for line in vcf_header: click.echo(line) for variant_obj in variants: variant_string = get_vcf_entry(variant_obj, case_id=case_id) click.echo(variant_string)