Exemple #1
0
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)
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
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)
Exemple #7
0
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)
Exemple #8
0
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)
Exemple #9
0
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)
Exemple #10
0
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)
Exemple #11
0
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)
Exemple #12
0
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)
Exemple #13
0
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)
Exemple #14
0
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)
Exemple #15
0
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)
Exemple #16
0
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)