diff --git a/CHANGELOG.md b/CHANGELOG.md index 6b47bbf..d7946ff 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Typo in instructions to download genes in README document ### Changed - Code formatted with black and black check GitHub action +- Renamed `schug.load.ensembl.fetch_ensembl_exon_lines` function to `schug.load.ensembl.fetch_ensembl_exons` ## [1.2] ### Added diff --git a/schug/cli/fetch.py b/schug/cli/fetch.py index 63e2fa5..eace607 100644 --- a/schug/cli/fetch.py +++ b/schug/cli/fetch.py @@ -3,7 +3,6 @@ import typer from schug.load.biomart import EnsemblBiomartClient from schug.load.ensembl import ( - fetch_ensembl_exon_lines, fetch_ensembl_exons, fetch_ensembl_genes, fetch_ensembl_transcripts, @@ -42,7 +41,7 @@ def ensembl_transcripts(build: str = typer.Option("37", "-b", "--build")): @app.command() def ensembl_exons(build: str = typer.Option("37", "-b", "--build")): """Fetch genes from ensembl""" - ensembl_client: EnsemblBiomartClient = fetch_ensembl_exon_lines( + ensembl_client: EnsemblBiomartClient = fetch_ensembl_exons( build=build, chromosomes=["Y"] ) for line in ensembl_client: diff --git a/schug/cli/load.py b/schug/cli/load.py index 035e330..aecd56d 100644 --- a/schug/cli/load.py +++ b/schug/cli/load.py @@ -5,7 +5,7 @@ from pydantic import parse_obj_as from schug.database.genes import create_gene_item from schug.load.ensembl import ( - fetch_ensembl_exon_lines, + fetch_ensembl_exons, fetch_ensembl_genes, fetch_ensembl_transcripts, ) @@ -24,7 +24,7 @@ def exons( """Load exon data""" typer.echo("Loading exons") if not exons_file: - exons_file = fetch_ensembl_exon_lines(build=build, chromosomes=["Y"]) + exons_file = fetch_ensembl_exons(build=build, chromosomes=["Y"]) parsed_exons = parse_obj_as( List[EnsemblExon], [parsed_line for parsed_line in csv.DictReader(exons_file, delimiter="\t")], diff --git a/schug/endpoints/exons.py b/schug/endpoints/exons.py index 4933c07..6452331 100644 --- a/schug/endpoints/exons.py +++ b/schug/endpoints/exons.py @@ -3,7 +3,7 @@ from fastapi import APIRouter, Depends, HTTPException, Query, status from fastapi.responses import StreamingResponse from schug.database.session import get_session -from schug.load.ensembl import fetch_ensembl_exon_lines +from schug.load.ensembl import fetch_ensembl_exons from schug.load.fetch_resource import stream_resource from schug.models import Exon, ExonRead from schug.models.common import Build @@ -27,7 +27,7 @@ def read_exons( async def ensembl_exons(build: Build): """A proxy to the Ensembl Biomart that retrieves exons in a specific genome build.""" - ensembl_client: EnsemblBiomartClient = fetch_ensembl_exon_lines(build=build) + ensembl_client: EnsemblBiomartClient = fetch_ensembl_exons(build=build) url: str = ensembl_client.build_url(xml=ensembl_client.xml) return StreamingResponse(stream_resource(url), media_type="text/tsv") diff --git a/schug/load/ensembl.py b/schug/load/ensembl.py index 69dca9c..316bcbc 100644 --- a/schug/load/ensembl.py +++ b/schug/load/ensembl.py @@ -84,10 +84,10 @@ def fetch_ensembl_transcripts( return fetch_ensembl_biomart(attributes=attributes, filters=filters, build=build) -def fetch_ensembl_exon_lines( +def fetch_ensembl_exons( build: str, chromosomes: Optional[List[str]] = None ) -> EnsemblBiomartClient: - """Fetch the ensembl exons""" + """Fetch the ensembl exons.""" chromosomes = chromosomes or CHROMOSOMES LOG.info("Fetching ensembl exons") @@ -109,18 +109,3 @@ def fetch_ensembl_exon_lines( filters = {"chromosome_name": chromosomes} return fetch_ensembl_biomart(attributes=attributes, filters=filters, build=build) - - -def fetch_ensembl_exons( - build: str, chromosomes: Optional[List[str]] = None -) -> List[EnsemblExon]: - """Fetch ensembl exon objects""" - exon_lines: EnsemblBiomartClient = fetch_ensembl_exon_lines( - build=build, chromosomes=chromosomes - ) - - parsed_exons = parse_obj_as( - List[EnsemblExon], - [exon_info for exon_info in csv.DictReader(exon_lines, delimiter="\t")], - ) - return parsed_exons