本文整理汇总了Python中xbrowse_server.mall.get_mall函数的典型用法代码示例。如果您正苦于以下问题:Python get_mall函数的具体用法?Python get_mall怎么用?Python get_mall使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了get_mall函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: load_variants_for_cohort_list
def load_variants_for_cohort_list(project, cohorts):
for cohort in cohorts:
family_list = []
print "Adding {}".format(cohort.cohort_id)
family_list.append({
'project_id': cohort.project.project_id,
'family_id': cohort.cohort_id,
'individuals': cohort.indiv_id_list(),
})
# add all families from this vcf to the datastore
get_mall(project.project_id).variant_store.add_family_set(family_list)
vcf_files = cohort.get_vcf_files()
# create the VCF ID map
vcf_id_map = {}
for individual in cohort.get_individuals():
if individual.vcf_id:
vcf_id_map[individual.vcf_id] = individual.indiv_id
# load them all into the datastore
for vcf_file in vcf_files:
family_tuple_list = [(f['project_id'], f['family_id']) for f in family_list]
get_mall(project.project_id).variant_store.load_family_set(
vcf_file.path(),
family_tuple_list,
reference_populations=project.get_reference_population_slugs(),
vcf_id_map=vcf_id_map,
)
开发者ID:batsal,项目名称:xbrowse,代码行数:31,代码来源:xbrowse_controls.py
示例2: mendelian_variant_search_spec
def mendelian_variant_search_spec(request):
project, family = get_project_and_family_for_user(request.user, request.GET)
# TODO: use form
search_hash = request.GET.get('search_hash')
search_spec_dict, variants = cache_utils.get_cached_results(project.project_id, search_hash)
search_spec = MendelianVariantSearchSpec.fromJSON(search_spec_dict)
if variants is None:
variants = api_utils.calculate_mendelian_variant_search(search_spec, family.xfamily())
else:
variants = [Variant.fromJSON(v) for v in variants]
add_extra_info_to_variants_family(get_reference(), family, variants)
return_type = request.GET.get('return_type')
if return_type == 'json' or not return_type:
return JSONResponse({
'is_error': False,
'variants': [v.toJSON() for v in variants],
'search_spec': search_spec_dict,
})
elif request.GET.get('return_type') == 'csv':
response = HttpResponse(content_type='text/csv')
response['Content-Disposition'] = 'attachment; filename="results_{}.csv"'.format(search_hash)
writer = csv.writer(response)
indiv_ids = family.indiv_ids_with_variant_data()
headers = xbrowse_displays.get_variant_display_headers(get_mall(project.project_id), project, indiv_ids)
writer.writerow(headers)
for variant in variants:
fields = xbrowse_displays.get_display_fields_for_variant(get_mall(project.project_id), project, variant, indiv_ids)
writer.writerow(fields)
return response
开发者ID:frichter,项目名称:seqr,代码行数:32,代码来源:views.py
示例3: load_variants_for_family_list
def load_variants_for_family_list(project, families, vcf_file, mark_as_loaded=True):
"""
Reload variants for a list of families, all from the same vcf
"""
family_list = []
for family in families:
family_list.append({
'project_id': family.project.project_id,
'family_id': family.family_id,
'individuals': family.indiv_ids_with_variant_data(),
})
# add all families from this vcf to the datastore
get_mall(project.project_id).variant_store.add_family_set(family_list)
# create the VCF ID map
vcf_id_map = {}
for family in families:
for individual in family.get_individuals():
if individual.vcf_id:
vcf_id_map[individual.vcf_id] = individual.indiv_id
# load them all into the datastore
family_tuple_list = [(f['project_id'], f['family_id']) for f in family_list]
get_mall(project.project_id).variant_store.load_family_set(
vcf_file,
family_tuple_list,
reference_populations=project.get_reference_population_slugs(),
vcf_id_map=vcf_id_map,
mark_as_loaded=mark_as_loaded,
)
# finish up each family
for family in families:
_family_postprocessing(family)
开发者ID:batsal,项目名称:xbrowse,代码行数:35,代码来源:xbrowse_controls.py
示例4: handle
def handle(self, *args, **options):
for project_id in args:
print("Deleting data from mongodb for project: " + project_id)
p = Project.objects.get(project_id = project_id)
get_mall(p).variant_store.delete_project(project_id)
get_project_datastore(p).delete_project_store(project_id)
print("Done")
开发者ID:macarthur-lab,项目名称:seqr,代码行数:7,代码来源:delete_project_data.py
示例5: delete_project
def delete_project(project_id):
"""
Delete a project and perform any cleanup (ie. deleting from datastore and removing temp files)
"""
project = Project.objects.get(project_id=project_id)
get_mall(project_id).variant_store.delete_project(project_id)
project.individual_set.all().delete()
project.family_set.all().delete()
project.delete()
开发者ID:burkesquires,项目名称:xbrowse,代码行数:9,代码来源:sample_management.py
示例6: handle
def handle(self, *args, **options):
number_of_variants_to_check = int(options.get("number_of_variants_to_check") or 20000)
if not args:
args = [p.project_id for p in Project.objects.all()]
args.reverse()
for project_id in args:
try:
project = Project.objects.get(project_id=project_id)
except:
print("ERROR: Project not found. Skipping..")
continue
all_counter = 0
#found_counter = 0
not_found_counter = 0
not_found_variants = []
for vcf_file in project.get_all_vcf_files():
path = vcf_file.file_path
#print("Processing %s - %s" % (project.project_id, path))
if not os.path.isfile(path) and path.endswith(".vcf"):
path = path + ".gz"
if path.endswith(".gz"):
f = gzip.open(path)
else:
f = open(path)
if f:
for variant in vcf_stuff.iterate_vcf(f):
all_counter += 1
try:
get_mall(project_id).annotator.get_annotation(variant.xpos, variant.ref, variant.alt)
except ValueError, e:
not_found_counter += 1
if len(not_found_variants) < 30:
chrom, pos = genomeloc.get_chr_pos(variant.xpos)
chrom = chrom.replace("chr","")
ref, alt = variant.ref, variant.alt
not_found_variants.append("%(chrom)s-%(pos)s-%(ref)s-%(alt)s" % locals())
#print("WARNING: variant not found in annotator cache: " + str(e))
#if not_found_counter > 5:
# print("---- ERROR: 5 variants not found. Project %s should be reloaded." % project_id)
# break
found_counter = 0
#else:
# found_counter += 1
# if found_counter > 15000:
# #print("---- Found 5000 variants in a row. Project %s looks ok." % project_id)
# break
if all_counter >= number_of_variants_to_check:
fraction_missing = float(not_found_counter) / all_counter
if not_found_counter > 10:
print("---- ERROR: (%(fraction_missing)0.2f%%) %(not_found_counter)s / %(all_counter)s variants not found. Project %(project_id)s should be reloaded. Examples: " % locals())
for v in not_found_variants:
print("http://exac.broadinstitute.org/variant/" + v)
break
开发者ID:frichter,项目名称:seqr,代码行数:56,代码来源:check_for_missing_variants.py
示例7: delete_family
def delete_family(project_id, family_id):
"""
Delete a project and perform any cleanup (ie. deleting from datastore and removing temp files)
"""
family = Family.objects.get(project__project_id=project_id, family_id=family_id)
for individual in family.get_individuals():
individual.family = None
individual.save()
get_mall(project_id).variant_store.delete_family(project_id, family_id)
family.delete()
开发者ID:mattsolo1,项目名称:seqr,代码行数:10,代码来源:sample_management.py
示例8: delete_family
def delete_family(project_id, family_id):
"""
Delete a project and perform any cleanup (ie. deleting from datastore and removing temp files)
"""
family = Family.objects.get(project__project_id=project_id, family_id=family_id)
for individual in family.get_individuals():
update_xbrowse_model(individual, family=None)
get_mall(project_id).variant_store.delete_family(project_id, family_id)
delete_xbrowse_model(family)
开发者ID:macarthur-lab,项目名称:seqr,代码行数:10,代码来源:sample_management.py
示例9: load_project_variants
def load_project_variants(project_id, force_load_annotations=False, force_load_variants=False, ignore_csq_in_vcf=False, start_from_chrom=None, end_with_chrom=None):
"""
Load any families and cohorts in this project that aren't loaded already
"""
print "Loading project %s" % project_id
print(date.strftime(datetime.now(), "%m/%d/%Y %H:%M:%S -- loading project: " + project_id + " - db.variants cache"))
project = Project.objects.get(project_id=project_id)
for vcf_obj in sorted(project.get_all_vcf_files(), key=lambda v:v.path()):
if not os.path.isfile(vcf_obj.path()):
print("Skipping " + vcf_obj.path())
continue
r = vcf.VCFReader(filename=vcf_obj.path())
if not ignore_csq_in_vcf and "CSQ" not in r.infos:
raise ValueError("VEP annotations not found in VCF: " + vcf_obj.path())
mall.get_annotator().add_preannotated_vcf_file(vcf_obj.path(), force=force_load_annotations, start_from_chrom=start_from_chrom, end_with_chrom=end_with_chrom)
# batch load families by VCF file
for vcf_file, families in project.families_by_vcf().items():
if not force_load_variants:
# filter out families that have already finished loading
families = [f for f in families if get_mall(project).variant_store.get_family_status(project_id, f.family_id) != 'loaded']
for i in xrange(0, len(families), settings.FAMILY_LOAD_BATCH_SIZE):
load_variants_for_family_list(project, families[i:i+settings.FAMILY_LOAD_BATCH_SIZE], vcf_file, start_from_chrom=start_from_chrom, end_with_chrom=end_with_chrom)
# now load cohorts
load_cohorts(project_id)
开发者ID:macarthur-lab,项目名称:seqr,代码行数:31,代码来源:xbrowse_controls.py
示例10: load_project_variants
def load_project_variants(project_id, force_annotations=False, ignore_csq_in_vcf=False):
"""
Load any families and cohorts in this project that aren't loaded already
"""
print "Loading project %s" % project_id
print(date.strftime(datetime.now(), "%m/%d/%Y %H:%M:%S -- loading project: " + project_id + " - db.variants cache"))
project = Project.objects.get(project_id=project_id)
for vcf_obj in project.get_all_vcf_files():
r = vcf.VCFReader(filename=vcf_obj.path())
if not ignore_csq_in_vcf and "CSQ" not in r.infos:
raise ValueError("VEP annotations not found in VCF: " + vcf_file)
mall.get_annotator().add_preannotated_vcf_file(vcf_obj.path(), force=force_annotations)
# batch load families by VCF file
for vcf_file, families in project.families_by_vcf().items():
families = [f for f in families if get_mall(project.project_id).variant_store.get_family_status(project_id, f.family_id) != 'loaded']
for i in xrange(0, len(families), settings.FAMILY_LOAD_BATCH_SIZE):
print(date.strftime(datetime.now(), "%m/%d/%Y %H:%M:%S -- loading project: " + project_id + " - families batch %d - %d families" % (i, len(families[i:i+settings.FAMILY_LOAD_BATCH_SIZE])) ))
load_variants_for_family_list(project, families[i:i+settings.FAMILY_LOAD_BATCH_SIZE], vcf_file)
# now load cohorts
load_cohorts(project_id)
开发者ID:frichter,项目名称:seqr,代码行数:25,代码来源:xbrowse_controls.py
示例11: get_variants_for_inheritance_for_project
def get_variants_for_inheritance_for_project(project, inheritance_mode):
"""
Get the variants for this project / inheritance combo
Return dict of family -> list of variants
"""
# create search specification
# this could theoretically differ by project, if there are different reference populations
variant_filter = get_default_variant_filter("moderate_impact")
variant_filter.ref_freqs.append(("1kg_wgs_phase3", g1k_freq_threshold))
variant_filter.ref_freqs.append(("1kg_wgs_phase3_popmax", g1k_popmax_freq_threshold))
variant_filter.ref_freqs.append(("exac_v3", exac_freq_threshold))
variant_filter.ref_freqs.append(("exac_v3_popmax", exac_popmax_threshold))
quality_filter = {"vcf_filter": "pass", "min_gq": GQ_threshold, "min_ab": AB_threshold}
# run MendelianVariantSearch for each family, collect results
families = project.get_families()
for i, family in enumerate(families):
sys.stdout.write(
"Processing %s - family %s (%d / %d) .." % (inheritance_mode, family.family_id, i + 1, len(families))
)
variant_list = list(
get_variants_with_inheritance_mode(
get_mall(project.project_id),
family.xfamily(),
inheritance_mode,
variant_filter=variant_filter,
quality_filter=quality_filter,
)
)
yield family, variant_list
print(" got %d variants" % len(variant_list))
开发者ID:batsal,项目名称:xbrowse,代码行数:32,代码来源:batch_family_fileset_custom2.py
示例12: combine_mendelian_families_variants
def combine_mendelian_families_variants(request):
project, family_group = utils.get_project_and_family_group_for_user(request.user, request.GET)
form = api_forms.CombineMendelianFamiliesVariantsForm(request.GET)
if form.is_valid():
variants_grouped = get_variants_by_family_for_gene(
get_mall(project.project_id),
[f.xfamily() for f in form.cleaned_data['families']],
form.cleaned_data['inheritance_mode'],
form.cleaned_data['gene_id'],
variant_filter=form.cleaned_data['variant_filter'],
quality_filter=form.cleaned_data['quality_filter']
)
variants_by_family = []
for family in form.cleaned_data['families']:
variants = variants_grouped[(family.project.project_id, family.family_id)]
add_extra_info_to_variants_family(get_reference(), family, variants)
variants_by_family.append({
'project_id': family.project.project_id,
'family_id': family.family_id,
'family_name': str(family),
'variants': [v.toJSON() for v in variants],
})
return JSONResponse({
'is_error': False,
'variants_by_family': variants_by_family,
})
else:
return JSONResponse({
'is_error': True,
'error': server_utils.form_error_string(form)
})
开发者ID:frichter,项目名称:seqr,代码行数:34,代码来源:views.py
示例13: handle
def handle(self, *args, **options):
if len(args) < 1:
print("Please provide the project_id. The individual_id(s) are optional")
return
project_id = args[0]
try:
project = Project.objects.get(project_id=project_id)
except ObjectDoesNotExist:
sys.exit("Invalid project id: " + project_id)
individual_ids = args[1:]
try:
if individual_ids:
individual_ids = [Individual.objects.get(project=project, indiv_id=individual_id) for individual_id in individual_ids]
else:
individual_ids = [i for i in Individual.objects.filter(project=project)]
except ObjectDoesNotExist:
sys.exit("Invalid individual ids: " + str(individual_ids))
for i in individual_ids:
family_collection = get_mall(project_id).variant_store._get_family_collection(project_id, i.family.family_id)
if family_collection is None:
print("WARNING: Family %s data not loaded in variant datastore. Skipping individual %s." % (i.family.family_id, i))
continue
self.handle_individual(project, i)
print("Finished generating report")
开发者ID:mattsolo1,项目名称:seqr,代码行数:28,代码来源:generate_variant_report.py
示例14: load_cohorts
def load_cohorts(project_id):
# now load cohorts
project = Project.objects.get(project_id=project_id)
for vcf_file, cohorts in project.cohorts_by_vcf().items():
cohorts = [c for c in cohorts if get_mall(project).variant_store.get_family_status(project_id, c.cohort_id) != 'loaded']
for i in xrange(0, len(cohorts), settings.FAMILY_LOAD_BATCH_SIZE):
print("Loading project %s - cohorts: %s" % (project_id, cohorts[i:i+settings.FAMILY_LOAD_BATCH_SIZE]))
load_variants_for_cohort_list(project, cohorts[i:i+settings.FAMILY_LOAD_BATCH_SIZE])
开发者ID:macarthur-lab,项目名称:seqr,代码行数:8,代码来源:xbrowse_controls.py
示例15: handle
def handle(self, *args, **options):
project_id = options['project_id']
print("Loading data into project: " + project_id)
project = Project.objects.get(project_id = project_id)
cnv_filename = options['cnv_filename']
bed_files_directory = options['bed_files_directory']
if not os.path.isfile(cnv_filename):
raise ValueError("CNV file %s doesn't exist" % options['cnv_filename'])
with open(cnv_filename) as f:
header_fields = f.readline().rstrip('\n').split('\t')
for line in f:
fields = line.rstrip('\n').split('\t')
row_dict = dict(zip(header_fields, fields))
chrom = "chr"+row_dict['chr']
start = int(row_dict['start'])
end = int(row_dict['end'])
#left_overhang = int(row_dict['left_overhang_start'])
#right_overhang = int(row_dict['right_overhang_end'])
sample_id = row_dict['sample']
try:
i = Individual.objects.get(project=project, indiv_id__istartswith=sample_id)
except Exception as e:
print("WARNING: %s: %s not found in %s" % (e, sample_id, project))
continue
bed_file_path = os.path.join(bed_files_directory, "%s.bed" % sample_id)
if not os.path.isfile(bed_file_path):
print("WARNING: .bed file not found: " + bed_file_path)
if i.cnv_bed_file != bed_file_path:
print("Setting cnv_bed_file path to %s" % bed_file_path)
i.cnv_bed_file = bed_file_path
i.save()
project_collection = get_project_datastore(project)._get_project_collection(project_id)
family_collection = get_mall(project).variant_store._get_family_collection(project_id, i.family.family_id)
for collection in filter(None, [project_collection, family_collection]):
collection.update_many(
{'$and': [
{'xpos': {'$gte': genomeloc.get_single_location(chrom, start)} },
{'xpos': {'$lte': genomeloc.get_single_location(chrom, end)}}
]},
{'$set': {'genotypes.%s.extras.cnvs' % i.indiv_id: row_dict}})
#result = list(collection.find({'$and' : [
# {'xpos': {'$gte': genomeloc.get_single_location(chrom, start)}},
# {'xpos' :{'$lte': genomeloc.get_single_location(chrom, end)}}]},
# {'genotypes.%s.extras.cnvs' % i.indiv_id :1 }))
#print(chrom, start, end, len(result), result[0] if result else None)
print("Done")
开发者ID:macarthur-lab,项目名称:seqr,代码行数:58,代码来源:load_cnvs.py
示例16: calculate_mendelian_variant_search
def calculate_mendelian_variant_search(search_spec, xfamily):
variants = None
if search_spec.search_mode == 'standard_inheritance':
variants = list(get_variants_with_inheritance_mode(
get_mall(),
xfamily,
search_spec.inheritance_mode,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.genotype_quality_filter,
))
elif search_spec.search_mode == 'custom_inheritance':
variants = list(get_variants_family(
get_datastore(),
xfamily,
genotype_filter=search_spec.genotype_inheritance_filter,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.genotype_quality_filter,
))
elif search_spec.search_mode == 'gene_burden':
gene_stream = get_genes_family(
get_datastore(),
get_reference(),
xfamily,
burden_filter=search_spec.gene_burden_filter,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.genotype_quality_filter,
)
variants = list(stream_utils.gene_stream_to_variant_stream(gene_stream, get_reference()))
elif search_spec.search_mode == 'allele_count':
variants = list(get_variants_allele_count(
get_datastore(),
xfamily,
search_spec.allele_count_filter,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.genotype_quality_filter,
))
elif search_spec.search_mode == 'all_variants':
variants = list(get_variants_family(
get_datastore(),
xfamily,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.genotype_quality_filter,
))
return variants
开发者ID:ericminikel,项目名称:xbrowse,代码行数:56,代码来源:utils.py
示例17: calculate_mendelian_variant_search
def calculate_mendelian_variant_search(search_spec, xfamily):
sys.stderr.write(" mendelian_variant_search for %s - search mode: %s %s\n" % (xfamily.project_id, search_spec.search_mode, search_spec.__dict__))
variants = None
if search_spec.search_mode == 'standard_inheritance':
variants = list(get_variants_with_inheritance_mode(
get_mall(xfamily.project_id),
xfamily,
search_spec.inheritance_mode,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.quality_filter,
))
elif search_spec.search_mode == 'custom_inheritance':
variants = list(get_variants_family(
get_datastore(xfamily.project_id),
xfamily,
genotype_filter=search_spec.genotype_inheritance_filter,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.quality_filter,
))
elif search_spec.search_mode == 'gene_burden':
gene_stream = get_genes_family(
get_datastore(xfamily.project_id),
get_reference(),
xfamily,
burden_filter=search_spec.gene_burden_filter,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.quality_filter,
)
variants = list(stream_utils.gene_stream_to_variant_stream(gene_stream, get_reference()))
elif search_spec.search_mode == 'allele_count':
variants = list(get_variants_allele_count(
get_datastore(xfamily.project_id),
xfamily,
search_spec.allele_count_filter,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.quality_filter,
))
elif search_spec.search_mode == 'all_variants':
variants = list(get_variants_family(
get_datastore(xfamily.project_id),
xfamily,
variant_filter=search_spec.variant_filter,
quality_filter=search_spec.quality_filter,
indivs_to_consider=xfamily.indiv_id_list(),
))
return variants
开发者ID:mattsolo1,项目名称:seqr,代码行数:53,代码来源:utils.py
示例18: load_cohorts
def load_cohorts(project_id):
# now load cohorts
print(date.strftime(datetime.now(), "%m/%d/%Y %H:%M:%S -- loading project: " + project_id + " - cohorts"))
project = Project.objects.get(project_id=project_id)
for vcf_file, cohorts in project.cohorts_by_vcf().items():
cohorts = [c for c in cohorts if get_mall(project.project_id).variant_store.get_family_status(project_id, c.cohort_id) != 'loaded']
for i in xrange(0, len(cohorts), settings.FAMILY_LOAD_BATCH_SIZE):
print("Loading project %s - cohorts: %s" % (project_id, cohorts[i:i+settings.FAMILY_LOAD_BATCH_SIZE]))
load_variants_for_cohort_list(project, cohorts[i:i+settings.FAMILY_LOAD_BATCH_SIZE])
print(date.strftime(datetime.now(), "%m/%d/%Y %H:%M:%S -- finished loading project: " + project_id))
开发者ID:batsal,项目名称:xbrowse,代码行数:12,代码来源:xbrowse_controls.py
示例19: clean_project
def clean_project(project_id):
"""
Clear data for this project from all the xbrowse resources:
- datastore
- coverage store
- cnv store
Does not remove any of the project's data links - so no data is lost, but everything must be rebuilt
"""
project = Project.objects.get(project_id=project_id)
individuals = project.get_individuals()
# datastore
get_mall(project_id).variant_store.delete_project(project_id)
# coverage store
for individual in individuals:
get_coverage_store().remove_sample(individual.get_coverage_store_id())
# cnv store
for individual in individuals:
get_cnv_store().remove_sample(individual.get_coverage_store_id())
开发者ID:batsal,项目名称:xbrowse,代码行数:21,代码来源:xbrowse_controls.py
示例20: inheritance_matrix_for_gene
def inheritance_matrix_for_gene(project, gene_id):
"""
Run get_family_matrix_for_gene for the families in this project
"""
variant_filter = get_default_variant_filter('moderate_impact', mall.get_annotator().reference_population_slugs)
quality_filter = get_default_quality_filter('high_quality', mall.get_annotator().reference_population_slugs)
matrix = get_family_matrix_for_gene(
get_mall(),
[f.xfamily() for f in project.get_active_families()],
gene_id,
variant_filter,
quality_filter
)
return matrix
开发者ID:ericminikel,项目名称:xbrowse,代码行数:14,代码来源:project.py
注:本文中的xbrowse_server.mall.get_mall函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论