Choose and download your local resources#
Start with the proteins relevant to your study. You do not need every catalogue.
FastaLake downloads a resource only when you run resources download; construction,
searching and annotation use the local files you configure.
First download: a small reference you can inspect#
From an installed FastaLake environment:
fasta-lake resources list
fasta-lake resources plan uniprot-swissprot --directory ./resources
fasta-lake resources download uniprot-swissprot --directory ./resources
fasta-lake resources unpack \
./resources/uniprot-swissprot/uniprot_sprot.fasta.gz \
--directory ./resources/swissprot-proteins --max-gib 1
The plan prints the version, official URL, destination, transfer bytes, available
disk space and expanded size when known. Downloading keeps the original archive.
Unpacking uses a new directory and an explicit disk budget, not a RAM allocation.
The expanded file is resources/swissprot-proteins/uniprot_sprot.fasta.
If you use Docker#
With the image from the installation page, mount the chosen local resource folder and run the same helper inside the container:
mkdir -p resources
docker run --rm --platform linux/amd64 \
--user "$(id -u):$(id -g)" \
--mount "type=bind,source=$PWD/resources,target=/resources" \
ghcr.io/mannlabs/fasta-lake:local fasta-lake resources plan uniprot-swissprot \
--directory /resources
Replace plan with download when ready to transfer that resource. These two
commands need network access. To unpack, replace the command after
ghcr.io/mannlabs/fasta-lake:local with:
fasta-lake resources unpack /resources/uniprot-swissprot/uniprot_sprot.fasta.gz \
--directory /resources/swissprot-proteins --max-gib 1
The files remain in your computer's resources/ folder after the container exits.
A real check of release 2026_03 transferred 93,801,562 bytes and expanded 288,201,213 bytes, containing 575,748 sequences. UniProt's MD5 matched; FastaLake also recorded SHA256. The catalogue uses UniProt’s official EBI mirror (the original FTP host timed out during later endpoint checks). These numbers describe that release, not future releases.
Which resource belongs in your lake?#
| Choice | Purpose | Download snapshot, 15 September 2026 |
|---|---|---|
gmsc-90, gmsc-100 |
GMSC: small-ORF proteins, at 90% family identity or exact sequence identity | 9.33 / 20.60 GB compressed |
gmgc-90nr, gmgc-95nr, gmgc-100nr |
GMGC: global microbial protein sequences; choose a clustering level | Upstream rounded listing: 24G / 31G / 82G; exact streaming length may be unavailable |
gmgc-95nr.complete, gmgc-95nr.no-rare |
GMGC subsets of complete genes or genes excluding rare entries | Upstream rounded listing: 13G / 16G |
uhgp-50, uhgp-90, uhgp-95, uhgp-100 |
UHGP proteins associated with UHGG human-gut genomes | 5.16 / 10.57 / 8.88 / 28.34 GB archives, v2.0.2 |
uniprot-swissprot, uniprot-trembl |
UniProt: reviewed or unreviewed protein records | 0.094 / 40.63 GB compressed; current release resolved at download |
uniprot-human |
Human reference proteome UP000005640 for host proteins | 0.048 GB compressed snapshot; current release resolved at download |
eggnog-5.0.2 |
Local orthology annotation with eggNOG-mapper 2.1.12 | 12.06 GB transfer; about 51 GB expanded, plus archives |
esmc-300m, esmc-600m |
Local ESM-C embeddings for explicitly selected annotation gaps | 1.33 / 2.30 GB weights; no unpacking needed |
GB in this table means 10⁹ bytes. The command reports GiB (2³⁰ bytes) and exact byte counts where available. An archive can include cluster membership tables as well as its representative FASTA; that is why archive sizes need not decrease monotonically with clustering threshold.
GMSC 90AA/100AA are identity thresholds, not protein lengths. GMGC's 95nr catalogue was clustered at 95% nucleotide identity; its 90nr catalogue is at 90% amino-acid identity. UHGG supplies genomes; UHGP is the protein route for FastaLake. Downloading all underlying genomes is unnecessary for protein search.
These choices do not replace the paper's frozen reference or deduplicate a combined lake automatically. Keep source identities, choose compatible headers and follow database preparation and chunked construction. Annotation/quality tables are separate resources; a larger reference is not by itself stronger identification evidence.
Large catalogue workflow#
fasta-lake resources plan uhgp-95 --directory /your/external-disk/references
fasta-lake resources download uhgp-95 --directory /your/external-disk/references
Choose an unpacking budget after checking free disk space. When the upstream
expanded size is unavailable, the plan says unknown; it does not estimate it
from the final four bytes of a gzip file, which overflow for large FASTAs.
# Example ceiling: 80 GiB of additional disk space, if that much is available.
fasta-lake resources unpack \
/your/external-disk/references/uhgp-95/uhgp-95.tar.gz \
--directory /your/external-disk/references/uhgp95-unpacked --max-gib 80
Inspect the unpacked file roster in UNPACK_COMPLETE.json and use the protein
FASTA as your reference input. Storage for the archive, expanded reference,
evidence and search outputs is separate from the RAM planning budget.
Interruptions and integrity#
An incomplete transfer stays in .partial; it never becomes a finished resource.
Repeat the same command with --resume. Resume requires an unchanged strong ETag
and a server that honours byte ranges. If the server cannot support this, use a
new destination for a fresh transfer; the partial file is retained for inspection.
GMGC's streaming endpoint may not support resume or expose an exact transfer size.
A killed process may leave an empty .lock directory. Check that the old download
has stopped before removing that lock and resuming. Existing resources are never
overwritten. --resume verifies already completed files against their receipts.
Each file has a .download.json receipt, and the resource has a saved plan and
DOWNLOAD_COMPLETE.json. SHA256 is always recorded. Where an upstream checksum
exists (including UniProt Swiss-Prot/TrEMBL and ESM-C weights), it must match. A
local checksum alone records the downloaded bytes; it is labelled accordingly.
Archive expansion rejects paths outside the destination, links, duplicate files
and data exceeding the chosen disk budget.
Annotation and model setup#
The supported eggNOG 5.0.2 files are available from the official legacy eggNOG endpoint. Its newer HTTPS replacement returned 403 for these files at verification; the catalogue records the working HTTP source explicitly. No upstream digest was available there. The mapper checks database compatibility, and annotation records full local hashes.
fasta-lake resources download eggnog-5.0.2 --directory ./resources
fasta-lake resources unpack ./resources/eggnog-5.0.2/*.gz \
--directory ./resources/eggnog-data --max-gib 55
fasta-lake resources download esmc-300m --directory ./resources
Point annotation to eggnog-data and the local checkpoint
resources/esmc-300m/esmc_300m_2024_12_v0.pth. The model is pinned to a published
revision and SHA256 from the ESM-C model repository.
Tools and model dependencies are installed separately; see annotation.
Prepare a reference lake#
For a first, small reference, convert the downloaded Swiss-Prot FASTA to a lake with sequence-derived identifiers and a source-header sidecar:
mkdir curated_reference_01
lake_builder --source SWISSPROT:1:resources/swissprot-proteins/uniprot_sprot.fasta \
--uniform-tag FL --track-all-sources \
--output curated_reference_01/lake.fasta \
--output-headers curated_reference_01/source_headers.tsv \
--output-stats curated_reference_01/build_stats.txt
lake_builder is included in Docker and the Rust build. Repeat --source to
combine chosen sources; each source has a tag, numeric priority and local FASTA
path. Lower numbers have higher priority when the same sequence occurs in
multiple sources. Keep the source-header sidecar and download receipts with the
lake. Hash accessions describe sequence identity; recover biological source names
from the sidecar instead of parsing those hashes as taxonomic labels.
Use --lake curated_reference_01/lake.fasta in the manifest runner. The
worked synthetic construction shows every stage. Initial
global catalogue deduplication is separate from chunked evidence extraction and
has not been shown to fit every worldwide catalogue within the laptop budget.