.----------------.
_.-' 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.
git clone [https://github.com/lthomes/fastafood.git](https://github.com/lthomes/fastafood.git)
cd fastafood
pip install .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
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é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).
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)
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.
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)
Sortie fichier : --out results.fasta
Formatage : --format split (découpage à 60 car.) ou one-line (par défaut).
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}")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.).