def transcript_variants_subset_api(transcript_id): try: intervalset = IntervalSet.from_transcript(get_db(), transcript_id) return _get_variants_subset_response_for_intervalset(intervalset) except: _err() abort(500)
def region_page(chrom, start, stop): db = get_db() try: _log() try: start = int(start) except: return bad_request_page('The start position {!s} is not integer.'.format(start)) try: stop = int(stop) except: return bad_request_page('The stop position {!s} is not integer.'.format(stop)) if start > stop: return bad_request_page("The region '{chrom}-{start}-{stop}' stops before it starts. Did you mean '{chrom}-{stop}-{start}'?".format(chrom = chrom, start = start, stop = stop)) if stop-start > MAX_REGION_LENGTH: return bad_request_page("The region '{chrom}-{start}-{stop}' is {:,} bases. We only accept regions shorter than {:,} bases.".format(stop - start, MAX_REGION_LENGTH, chrom = chrom, start = start, stop = stop)) if start == stop: start -= 20 stop += 20 intervalset = IntervalSet.from_chrom_start_stop(chrom, start, stop) genes = TranscriptSet.from_chrom_start_stop(db, chrom, start, stop).genes return render_template( 'region.html', intervalset = intervalset, genes = genes, csq = Consequence.as_obj, ) except: _err(); abort(500)
def gene_variants_subset_api(gene_id): try: intervalset = IntervalSet.from_gene(get_db(), gene_id) return _get_variants_subset_response_for_intervalset(intervalset) except: _err() abort(500)
def variant_page(variant_id): db = get_db() try: _log() variant = lookups.get_variant_by_variant_id( db, variant_id, default_to_boring_variant=False) if not variant: return not_found_page( 'The requested variant {!s} could not be found.'.format( variant_id)) pop_names = { k + '_AF': '1000G ' + v for k, v in { 'AFR': 'African', 'AMR': 'American', 'EAS': 'East Asian', 'EUR': 'European', 'SAS': 'South Asian' }.items() } if 'pop_afs' in variant: variant['pop_afs'] = { pop_names.get(k, k): v for k, v in variant['pop_afs'].items() } else: variant['pop_afs'] = {x: None for x in pop_names.itervalues()} variant['pop_afs'][app.config['DATASET_NAME']] = variant['allele_freq'] consequence_drilldown = ConsequenceDrilldown.from_variant(variant) gene_for_top_csq, top_HGVSs = ConsequenceDrilldown.get_top_gene_and_HGVSs( consequence_drilldown) consequence_drilldown_columns = ConsequenceDrilldown.split_into_two_columns( consequence_drilldown) base_coverage = get_coverage_handler().get_coverage_for_intervalset( IntervalSet.from_xstart_xstop( variant['xpos'], variant['xpos'] + len(variant['ref']) - 1)) metrics = lookups.get_metrics(db) variant['quality_metrics']['QUAL'] = variant['site_quality'] lookups.remove_some_extraneous_information(variant) return render_template( 'variant.html', variant=variant, base_coverage=base_coverage, consequences=consequence_drilldown, consequence_columns=consequence_drilldown_columns, any_covered=bool(base_coverage), metrics=metrics, top_HGVSs=top_HGVSs, gene_for_top_csq=gene_for_top_csq, ) except: _err() abort(500)
def transcript_coverage_api(transcript_id): try: intervalset = IntervalSet.from_transcript(get_db(), transcript_id) return jsonify( get_coverage_handler().get_coverage_for_intervalset(intervalset)) except: _err() abort(500)
def gene_coverage_api(gene_id): try: intervalset = IntervalSet.from_gene(get_db(), gene_id) return jsonify( get_coverage_handler().get_coverage_for_intervalset(intervalset)) except: _err() abort(500)
def transcript_summary_api(transcript_id): try: intervalset = IntervalSet.from_transcript(get_db(), transcript_id) return jsonify( lookups.get_summary_for_intervalset(get_db(), intervalset)) except: _err() abort(500)
def gene_summary_api(gene_id): try: intervalset = IntervalSet.from_gene(get_db(), gene_id) return jsonify( lookups.get_summary_for_intervalset(get_db(), intervalset)) except: _err() abort(500)
def region_variants_subset_api(chrom, start, stop): try: start, stop = int(start), int(stop) assert stop - start <= MAX_REGION_LENGTH intervalset = IntervalSet.from_chrom_start_stop(chrom, start, stop) return _get_variants_subset_response_for_intervalset(intervalset) except: _err() abort(500)
def download_transcript_variants(transcript_id): db = get_db() try: intervalset = IntervalSet.from_transcript(get_db(), transcript_id) return _get_variants_csv_for_intervalset( intervalset, '{}.csv'.format(transcript_id)) except: _err() abort(500)
def region_coverage_api(chrom, start, stop): try: start, stop = int(start), int(stop) assert stop - start <= MAX_REGION_LENGTH intervalset = IntervalSet.from_chrom_start_stop(chrom, start, stop) return jsonify( get_coverage_handler().get_coverage_for_intervalset(intervalset)) except: _err() abort(500)
def region_summary_api(chrom, start, stop): try: start, stop = int(start), int(stop) assert stop - start <= MAX_REGION_LENGTH intervalset = IntervalSet.from_chrom_start_stop(chrom, start, stop) return jsonify( lookups.get_summary_for_intervalset(get_db(), intervalset)) except: _err() abort(500)
def download_region_variants(chrom, start, stop): try: start, stop = int(start), int(stop) assert stop - start <= MAX_REGION_LENGTH intervalset = IntervalSet.from_chrom_start_stop(chrom, start, stop) return _get_variants_csv_for_intervalset( intervalset, 'chr{}-{}-{}.csv'.format(chrom, start, stop)) except: _err() abort(500)
def gene_page(gene_id): db = get_db() try: gene = lookups.get_gene(db, gene_id) if not gene: return not_found_page('The requested gene {!s} could not be found.'.format(gene_id)) _log(' ({})'.format(gene.get('gene_name'))) intervalset = IntervalSet.from_gene(db, gene_id) genes = TranscriptSet.from_gene(db, gene_id).genes return render_template( 'gene.html', intervalset=intervalset, genes=genes, csq=Consequence.as_obj, gene=gene, ) except:_err(); abort(500)
def transcript_page(transcript_id): db = get_db() try: _log() transcript = lookups.get_transcript(db, transcript_id) if not transcript: return not_found_page('The requested transcript {!s} could not be found.'.format(transcript_id)) gene = lookups.get_gene(db, transcript['gene_id']) intervalset = IntervalSet.from_transcript(db, transcript_id) genes = TranscriptSet.from_transcript(db, transcript_id).genes return render_template( 'transcript.html', intervalset=intervalset, genes=genes, csq=Consequence.as_obj, gene=gene, transcript=transcript, ) except:_err(); abort(500)
def download_gene_variants(gene_id): db = get_db() try: intervalset = IntervalSet.from_gene(get_db(), gene_id) return _get_variants_csv_for_intervalset(intervalset, '{}.csv'.format(gene_id)) except:_err(); abort(500)