Skip to main content

Gene Fetch: High-throughput NCBI Sequence Retrieval Tool

Project description

Gene Fetch

Gene Fetch enables high-throughput retreival of sequence data from NCBI databases based on taxonomy IDs (taxids) or taxonomic heirarchies. It can retrieve both protein and/or nucleotide sequences for various genes, including protein-coding genes (e.g., cox1, cytb, rbcl, matk) and rRNA genes (e.g., 16S, 18S).

Installation:

Install from PyPI

pip install gene-fetch

Post-instllation testing:

  • The Gene Fetch package includes comprehensive tests - Testing is divided into basic tests (which don't require external API access) and integration tests (which may require NCBI API credentials). Install pytest:
pip install pytest
  • Run basic tests:
pytest
  • This will take a few minutes to run 65 tests, consisting of 8 test modules (tests/test_*.py). You will get 1 warning regarding API credentials as these are not provided in the basic tests.

Usage:

python gene_fetch.py -g/--gene <gene_name> --type <sequence_type> -i/--in <samples.csv> -o/--out <output_directory> 

--h/--help: Show help and exit.

Required arguments:

  • -g/--gene: Name of gene to search for in NCBI GenBank database (e.g., cox1/16s/rbcl).
  • --type: Sequence type to fetch; 'protein', 'nucleotide', or 'both' ('both' will initially search and fetch a protein sequence, and then fetches the corresponding nucleotide CDS for that protein sequence).
  • -i/--in: Path to input CSV file containing sample IDs and TaxIDs (see Input section below).
  • i2/--in2: Path to alternative input CSV file containing sample IDs and taxonomic information for each sample (see Input section below).
  • o/--out: Path to output directory. The directory will be created if it does not exist.
  • e/--email and -k/--api-key: Email address and associated API key for NCBI account. An NCBI account is required to run this tool (due to otherwise strict API limitations) - information on how to create an NCBI account and find your API key can be found here.

Optional arguments:

  • --protein-size: Minimum protein sequence length filter. Applicable to mode 'batch' and 'single' search modes (default: 500).
  • --nucleotide-size: Minimum nucleotide sequence length filter. Applicable to mode 'batch' and 'single' search modes (default: 1500).
  • s/--single: Taxonomic ID for 'single' sequence search mode (-i and -i2 are ignored when run with -s mode). 'single' mode will fetch all (or N if specifying --max-sequences) target gene or protein sequences on GenBank for a specific taxonomic ID.
  • --max-sequences: Maximum number of sequences to fetch for a specific taxonomic ID (only applies when run in 'single' mode).
  • -b/--genbank: Saves genbank (.gb) files for fetched nucleotide and/or protein sequences to genbank/ (applies when run in 'batch' or 'single' mode).

Input:

Example 'samples.csv' input file (-i/--in)

ID taxid
sample-1 177658
sample-2 177627
sample-3 3084599

Example 'samples_taxonomy.csv' input file (-i2/--in2)

ID phylum class order family genus species
sample-1 Arthropoda Insecta Diptera Acroceridae Astomella
sample-2 Arthropoda Insecta Hemiptera Cicadellidae Psammotettix Psammotettix sabulicola
sample-3 Arthropoda Insecta Trichoptera Limnephilidae Dicosmoecus Dicosmoecus palatus
  • Leave blank if taxonomic information not known/needed

** Authored by Dan Parsons and Ben Price @ NHMUK (2025). **

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

gene_fetch-1.0.7.tar.gz (53.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

gene_fetch-1.0.7-py3-none-any.whl (35.5 kB view details)

Uploaded Python 3

File details

Details for the file gene_fetch-1.0.7.tar.gz.

File metadata

  • Download URL: gene_fetch-1.0.7.tar.gz
  • Upload date:
  • Size: 53.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.8 Linux/6.1.0-31-amd64

File hashes

Hashes for gene_fetch-1.0.7.tar.gz
Algorithm Hash digest
SHA256 09e9e9c6c1e4cdfac145d9627f95bb59c13345e1211c72b48e3e40d0a04a85ed
MD5 8d903bf630de1d90c4af356b47f0f16e
BLAKE2b-256 22b4ccc2303ec313cb4274d2fe44e3d285a15d38a40659535a156bb4893b33cf

See more details on using hashes here.

File details

Details for the file gene_fetch-1.0.7-py3-none-any.whl.

File metadata

  • Download URL: gene_fetch-1.0.7-py3-none-any.whl
  • Upload date:
  • Size: 35.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.12.8 Linux/6.1.0-31-amd64

File hashes

Hashes for gene_fetch-1.0.7-py3-none-any.whl
Algorithm Hash digest
SHA256 72e86f324486b08a9751f129b7ae5ce037de6c48a85b0a0c9fc487d661ada055
MD5 714dbef2e6f577be4d6c87b13210914f
BLAKE2b-256 1bb5fc1c7a93fa44580c33d34969db0970aec75824bd9888de89d1bc061d8600

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page