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.
Project description
🧬 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
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jamsfetch-1.0.2.tar.gz.
File metadata
- Download URL: jamsfetch-1.0.2.tar.gz
- Upload date:
- Size: 14.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2d003639fb961a700f99763ce6852043f3a38a1718d453e04e1beaa372b15d68
|
|
| MD5 |
2364b82625977ef3aa38e5985ab457ff
|
|
| BLAKE2b-256 |
bacac46a8840d79995c6d2e79a1180a66a1d92702b96b337da34fbaabd9398c5
|
Provenance
The following attestation bundles were made for jamsfetch-1.0.2.tar.gz:
Publisher:
publish.yml on aszymik/jams-fetch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jamsfetch-1.0.2.tar.gz -
Subject digest:
2d003639fb961a700f99763ce6852043f3a38a1718d453e04e1beaa372b15d68 - Sigstore transparency entry: 233459082
- Sigstore integration time:
-
Permalink:
aszymik/jams-fetch@163370e418db2bde4adefd9fd3cfe84d1bb17272 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/aszymik
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@163370e418db2bde4adefd9fd3cfe84d1bb17272 -
Trigger Event:
release
-
Statement type:
File details
Details for the file jamsfetch-1.0.2-py3-none-any.whl.
File metadata
- Download URL: jamsfetch-1.0.2-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.8
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3bcc29338ced0c03fe867fafbbdfb101447867be05f5f12e9e6f5ecb5e94d13c
|
|
| MD5 |
76b796b7c80d2031d3825c0d67ec6f8f
|
|
| BLAKE2b-256 |
31dbcb0123bd8a9b5b1f85d76b63dd7537f6fe1a56c39f16c888514ea52a4a20
|
Provenance
The following attestation bundles were made for jamsfetch-1.0.2-py3-none-any.whl:
Publisher:
publish.yml on aszymik/jams-fetch
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
jamsfetch-1.0.2-py3-none-any.whl -
Subject digest:
3bcc29338ced0c03fe867fafbbdfb101447867be05f5f12e9e6f5ecb5e94d13c - Sigstore transparency entry: 233459086
- Sigstore integration time:
-
Permalink:
aszymik/jams-fetch@163370e418db2bde4adefd9fd3cfe84d1bb17272 -
Branch / Tag:
refs/tags/v1.0.2 - Owner: https://github.com/aszymik
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@163370e418db2bde4adefd9fd3cfe84d1bb17272 -
Trigger Event:
release
-
Statement type: