Skip to main content

GenoToPep

GenoToPep is a reproducible command-line package for generating peptide candidate universes from metagenome assemblies or predicted-protein FASTA files.

Candidate generation is deliberately separated from coding validation, AMP prediction, toxicity/hemolysis prediction, detection of naturally occurring peptides, and experimental activity.

Installation

Python 3.10 or newer is required.

python -m pip install genotopep
genotopep --version
genotopep --help

For local development:

python -m pip install -e ".[dev]"
pytest

Input routes

  • Nucleotide assembly: --assembly sample.fna[.gz]
  • Predicted proteins: --proteins sample.faa[.gz]
  • Predicted proteins with genomic provenance: --proteins sample.faa --gff sample.gff3[.gz]

--assembly and --proteins are mutually exclusive. GFF3 is optional and is only valid with FAA input.

FNA ORF calling

Assembly input is translated with Pyrodigal metagenome mode. The default short-ORF threshold is:

min_protein_aa = 10
min_gene_nt = 10 * 3 + 3 = 33 nt
closed = false
max_overlap = 0

Pyrodigal still applies its coding and start-site models: 33 nt is an eligible minimum, not a guarantee that every open reading frame of that length is emitted. Contig-edge partial calls are retained and marked in the ORF provenance output. Terminal stop symbols are not written to protein FASTA.

Generation strategies

Intact

Emits the complete supplied or Pyrodigal-called protein when its length is within the inclusive range.

genotopep generate intact \
  --assembly assembly.fna.gz \
  --min-length 10 --max-length 100 \
  --output results/assembly-intact
genotopep generate intact \
  --proteins proteins.faa.gz \
  --min-length 10 --max-length 100 \
  --output results/proteins-intact

Windows

Emits contiguous subsequences for every inclusive length, using stride 1 by default.

genotopep generate windows \
  --assembly assembly.fna.gz \
  --min-length 10 --max-length 50 --stride 1 \
  --output results/assembly-windows
genotopep generate windows \
  --proteins proteins.faa.gz \
  --min-length 10 --max-length 50 --stride 1 \
  --output results/proteins-windows

Cleavage

Builds a boundary union from selected deterministic rules, creates elementary fragments, and emits every length-valid joining of adjacent fragments.

genotopep generate cleavage \
  --assembly assembly.fna.gz \
  --cleavage-mode all \
  --min-length 10 --max-length 100 \
  --output results/assembly-cleavage
genotopep generate cleavage \
  --proteins proteins.faa.gz \
  --cleavage-mode trypsin cnbr \
  --min-length 10 --max-length 100 \
  --output results/proteins-cleavage

Supported lowercase modes:

  • trypsin: cut after K/R unless followed by P
  • chymotrypsin: cut after F/Y unless followed by P; cut after W unless followed by M/P
  • cnbr: boundary after M; product chemistry and methionine oxidation are not modeled
  • all: union of trypsin, chymotrypsin, and CNBr boundaries

Omitting --cleavage-mode resolves to all. Multiple individual modes are accepted. all cannot be combined with an individual mode. These rules enumerate deterministic sequence candidates; they do not predict in vivo peptide release.

Outputs

For input sample.proteins.faa.gz and strategy windows, the main outputs are:

sample.proteins.windows.peptides.faa.gz
sample.proteins.windows.peptide_occurrences.tsv.gz
sample.proteins.windows.exclusions.tsv.gz
sample.proteins.command.txt
sample.proteins.run-config.yaml
sample.proteins.run.log
sample.proteins.manifest.json
sample.proteins.checksums.sha256

FNA runs additionally write:

sample.orfs.faa.gz
sample.orfs.fna.gz
sample.orfs.gff3.gz
sample.orfs.tsv.gz

The peptide FASTA contains one record per exact amino-acid sequence. Its ID is sha256:<digest>. The occurrence TSV retains every source, protein-relative coordinate, genomic coordinate when available, strategy, window, and cleavage occurrence.

Only the canonical 20 amino acids are admitted to predictor-facing peptide FASTA. Candidates containing other symbols are written to the exclusions table with a reason.

Outputs are written through an incomplete sibling directory and renamed only after successful completion. An existing output directory is never overwritten. --resume accepts only an identical, complete run after configuration, input fingerprint, and output checksum verification; it does not resume a partially written stage.

GFF3 mapping scope

The current mapper resolves a protein FASTA identifier against GFF3 ID, protein_id, locus_tag, or Parent. Missing and ambiguous mappings are errors. Single-CDS bacterial proteins are supported; multipart spliced CDS models are not yet supported.

FAA-only runs provide protein-relative coordinates and record that genomic coordinates are unavailable. Their short-ORF recall remains limited by the upstream annotation or gene-calling workflow.

Scientific scope

GenoToPep candidate generation does not establish:

  • that a candidate is a true coding gene;
  • that a candidate is an AMP;
  • that a candidate is non-toxic or non-hemolytic;
  • that a peptide naturally exists in the sample;
  • that a peptide is biologically active.

Those questions require downstream computational evidence and, where appropriate, experimental validation.

License

Copyright (C) 2026 Jun Won Lee.

GenoToPep is licensed under GPL-3.0-or-later. Pyrodigal is a GPL-3.0-or-later dependency. License compatibility should be reviewed before public redistribution; this statement is not legal advice.

Metadata

Release files for genotopep 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for genotopep 0.1.0
File Size Uploaded
genotopep-0.1.0.tar.gz 26.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for genotopep 0.1.0
File Interpreter ABI Platform
genotopep-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.6 kB

Release files / genotopep-0.1.0.tar.gz

Download URL genotopep-0.1.0.tar.gz
Size 26.2 kB
Tags Source
SHA-256 checksum
How to use checksums
9693735f634b30f1a7aed6f0d48a72fcdef27a5678b6c2021292d04dfcbfad2b
BLAKE2b-256 checksum
How to use checksums
dfb57f86c8e9cd25b39913f684242567e6ae32b810805d0251cda7d293d6985c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 21, 2026.

Transparency log

Release files / genotopep-0.1.0-py3-none-any.whl

Download URL genotopep-0.1.0-py3-none-any.whl
Size 28.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
031b29a8a453229dc027bc2f46da40cf4506d383e977fb159dab90457587373c
BLAKE2b-256 checksum
How to use checksums
ff8d60bf7c719f9d7c899643618772fc9d99d78f2d37897245fd03f54a171fb6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

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 Aug 21, 2026.

Transparency log

Release history Release notifications | RSS feed

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page