Skip to main content

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

Project description

      .----------------.
  _.-'    FASTA FOOD    '-._
.'__________________________'.
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~!
  |   _  ..  _  ..  _  ..  |
  |  / \/  \/ \/  \/ \/  \ |
  |  \ /\  /\ /\  /\ /\  / |
  |   '  ''  '  ''  '  ''  |
!____________________________!
'----------------------------'
  --- fastafood v0.2.1 ---
   "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.1.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.1-py3-none-any.whl (10.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fastafood-0.2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 8d45e0c03c32de5c3b1e304a2295e196d71f18200e45ffc17911c379100a35d4
MD5 74fda1f3271b94523b7eb7cb94b685bd
BLAKE2b-256 934c6d8d24b0caf8a7176e4b6012e9585ce89294331cc64caca6b8bdeb74670c

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastafood-0.2.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: fastafood-0.2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ff32b990be892822c1069da08fd457ed90852b6abe0ecd640ccfce2dab46a34
MD5 ee13534ab449706c70f61556e0e7a997
BLAKE2b-256 90fa59925f33d3f4b43518db0030f6f3c3811430996f0f2852a87efe3584c712

See more details on using hashes here.

Provenance

The following attestation bundles were made for fastafood-0.2.1-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