Skip to main content

A Python package to cook DNA variants (SNPs, deletions, duplications)

Project description

      .----------------.
  _.-'    FASTA FOOD    '-._
.'__________________________'.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
  |   _  ..  _  ..  _  ..  |
  |  / \/  \/ \/  \/ \/  \ |
  |  \ /\  /\ /\  /\ /\  / |
  |   '  ''  '  ''  '  ''  |
!____________________________!
'----------------------------'
  --- fastafood v0.2.0 ---
   "From PASTA to FASTA."

fastafood est un couteau suisse bio-informatique en Python. Il permet de manipuler des séquences ADN, de simuler des mutations complexes et de générer des bibliothèques de variants avec une précision chirurgicale.

Installation

git clone [https://github.com/lthomes/fastafood.git](https://github.com/lthomes/fastafood.git)
cd fastafood
pip install .

Utilisation (CLI)

1. Entrée des données

L'outil accepte des fichiers FASTA ou des chaînes de caractères brutes :

Fichier : fastafood --file genome.fasta

Séquence brute : fastafood --seq ATGCATGC

2. Transformations de base

Reverse Complement : --revcomp

Trimming : --trim 5 10 (supprime 5 bases en 5' et 10 bases en 3')

Traduction Protéique : --translate ou --scan-translate (3 cadres).

Gestion du Stop : --stop yes (tronque au premier *).

Génération de Variants

A. Mutations Automatisées (Massives)

Générez tous les variants possibles pour une taille donnée :

SNPs : --snps

Délétions : --deletions 2 3 (génère toutes les délétions de taille 2 et 3)

Duplications : --duplications 5

Inversions : --inversions 10

Options : --step 3 (définit le saut de la fenêtre glissante).

B. Mutations Ciblées (Précision)

Effectuez des modifications spécifiques à des positions précises :

SNP ciblé : --snps-target 6 T (remplace la base 6 par T)

Remplacement de zone : --snps-target 6 10 TTATT (remplace du nucléotide 6 à 10 par TTATT)

Délétion ciblée : --deletions-target 2 5 (supprime les bases 2 à 5)

Insertion : --insertion 4 --ins-seq ATGC (insère ATGC à la position 4)

C. Duplications et Réarrangements

Duplication simple : --duplications-target 2 5 (duplique la zone 2-5 juste après elle-même)

Duplication distante : --duplications-target 2 5 12 (duplique 2-5 et l'insère à la position 12)

Options avancées :

  • --reversed yes : inverse le fragment avant insertion.

  • --times 3 : insère le fragment en 3 exemplaires.

Système de Protection

Rendez certaines zones "intouchables" pour les générateurs de mutations :

Ponctuel : --protect 4 8 15 (protège les bases spécifiées)

Plages : --protect-range 10 20 50 60 (protège de 10 à 20 et de 50 à 60)

Extrémités

  • --protect-extremity 15 (protège les 15 premières bases)

  • --protect-extremity 10 80 (protège les 10 premières bases ET de la base 80 jusqu'à la fin)

Export & Formatage

Sortie fichier : --out results.fasta

Formatage : --format split (découpage à 60 car.) ou one-line (par défaut).

Utilisation comme Bibliothèque

Intégrez la logique de fastafood dans vos propres scripts :

from fastafood import DNASequence, VariantGenerator

# Initialisation
dna = DNASequence("ATGCGTACGTAG", name="wild_type")

# Protection des 3 premiers nucléotides
protected = {0, 1, 2}

# Génération ciblée
gen = VariantGenerator(dna)
variant = gen.generate_targeted_duplication(start=0, end=4, target=10, times=2)

print(f"Original : {dna.sequence}")
print(f"Variant  : {variant.sequence}")

Points clés

1-based Indexing : Les positions en CLI correspondent aux standards bio-informatiques (la première base est la n°1).

Validation stricte : Refuse les caractères non-ADN lors des insertions/remplacements.

Auto-naming : Génère des noms explicites pour les variants (seq_dup_x3, seq_rev_comp, etc.).

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

fastafood-0.2.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

fastafood-0.2.0-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

Details for the file fastafood-0.2.0.tar.gz.

File metadata

  • Download URL: fastafood-0.2.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastafood-0.2.0.tar.gz
Algorithm Hash digest
SHA256 87817893c827fc0978be7c4d4d9dc2809f3ba030647a3179f84f4e1881317768
MD5 93b73436f87080a13d4636bd4bd1bd6f
BLAKE2b-256 02fd8341442e4ebd7d649ab65571b6525d0fcb40e120a12544a7f11a24cb443e

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastafood-0.2.0.tar.gz:

Publisher: python-publish.yml on lthomes/fastafood

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fastafood-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: fastafood-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 10.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for fastafood-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49519ff14298cf8fccec6b356eff239a8805b317372d3297fcf7ab5493c5b414
MD5 0a3e54e0624370b521c3abaf43ea0140
BLAKE2b-256 a20f1d28232fecf9f411f39ec9fc370b923a1bce35b42e3b07099c35a8690376

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastafood-0.2.0-py3-none-any.whl:

Publisher: python-publish.yml on lthomes/fastafood

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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