🧬 JAMS-Fetch
JAMS-Fetch (Joint Automated Multi-source Sequence Fetcher) is a Python package. It automates the retrieval of sequence and structure data from major bioinformatics databases using a unified, user-friendly interface.
Supported databases:
- NCBI Nucleotide
- NCBI Genome Assembly
- UniProt
- RCSB PDB
- AlphaFold DB
- ESM Metagenomic Atlas
Whether you're working with DNA sequences, protein sequences, or molecular structures, JAMS-Fetch simplifies the download process and saves files in standard formats.
🚀 Features
- 🧠 Automatically detects the correct source based on ID format.
- ⚙️ Unified API for batch FASTA sequence downloading.
- 🔍 Separate functions for advanced, source-specific queries.
- 💾 Saves sequences and structures in appropriate formats (FASTA, PDB, CIF).
- 📁 Organizes downloads into user-defined directories.
📦 Installation
pip install jamsfetch
🚀 Quick Start
Use fetch_fasta() to automatically download sequences or structure files from multiple sources with a single list of IDs:
from jamsfetch import fetch_fasta
ids = ["P12345", "NM_001200.2", "GCF_000001405.39"]
fetch_fasta(
id_list=ids,
output_dir="downloads/",
assembly_data_type="genomic" # or "protein"
)
To download 3D protein structures, either experimentally determined or predicted, use fetch_structure():
from jamsfetch import fetch_structure
ids = ["Q8WXF3", "1A2B"] # UniProt, PDB and ESM IDs are accepted
fetch_structure(
id_list=ids,
output_dir="downloads/",
file_format="pdb", # or "cif"
source="experimental" # or "predicted"
)
🔧 Advanced Usage
Use the following source-specific functions when you need greater control over what and how data is downloaded.
⛁ Uniprot
Download the original FASTA file(s) from UniProt:
from jamsfetch.utils import get_uniprot
get_uniprot(
uniprot_ids='P12345', # specify a single UniProt ID or a list of IDs
outdir="uniprot_fasta", # specify output directory for FASTA files
)
⛁ NCBI Nucleotide
⛁ NCBI Genome Assembly
Download genomic or protein data for specific organisms or id(s):
from jamsfetch.utils import get_assembly
get_assembly(
organism="Homo sapiens", # specify an organism name
ids=None, # or use specific assembly IDs
bioproject=None, # or BioProject
output_dir="genomes/", # specify output directory
data_type="genomic", # "genomic" or "protein"
n=1, # if organism was passed, number of genome/proteoms to download
unzip=True,
reference_only=True # Only reference genomes if True
)
⛁ PDB
Download desired protein structures:
from jamsfetch.utils import get_pdb
get_pdb(
pdb_ids=['1TUP', '9E2J'], # specify a single ID or a list of IDs
output_dir="structures/", # specify output directory
file_format="pdb", # or "cif"
unzip=True # whether to unzip or leave .gz files
)
⛁ AlphaFold DB
Download AlphaFold-predicted protein structures:
from jamsfetch.utils import get_alphafold
get_alphafold(
uniprot_ids='P12345', # specify a single ID or a list of IDs
output_dir="structures/", # specify output directory
file_format="pdb", # or "cif"
)
⛁ ESM Metagenomic Atlas
Download ESMFold-predicted protein structures:
from jamsfetch.utils import get_esm
get_esm(
esm_ids='MGYP000740062793', # specify a single ID or a list of IDs
output_dir="structures/", # specify output directory
file_format="pdb", # or "cif"
)
Upcoming capabilities:
- Testing - Staszek
Metadata
Release files for jamsfetch 1.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| jamsfetch-1.0.3.tar.gz | 15.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| jamsfetch-1.0.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.5 kB
Release files / jamsfetch-1.0.3.tar.gz
| Download URL | jamsfetch-1.0.3.tar.gz |
|---|---|
| Size | 15.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
7615ba9d55af8d59d80d7f1136519c20a9dfa61528c838d8eb4b004dc789b74a
|
|
BLAKE2b-256 checksum How to use checksums |
33a6f649d18dcb58079cfde93ebfbd0378e74b8236f9ffc24aec3ae6fd1dda8f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 9, 2025.
Transparency logRelease files / jamsfetch-1.0.3-py3-none-any.whl
| Download URL | jamsfetch-1.0.3-py3-none-any.whl |
|---|---|
| Size | 13.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
93753c3ffc1bf0f2db893192024a5bd421ad26c63f7ca4cbb3adf3f612616c08
|
|
BLAKE2b-256 checksum How to use checksums |
3ff7bd33b59bcfe586ce7bf6e6a6bbafce60d21ce39e302c5b256ec2be82aa52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.12.8
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Jun 9, 2025.
Transparency log