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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8d45e0c03c32de5c3b1e304a2295e196d71f18200e45ffc17911c379100a35d4
|
|
| MD5 |
74fda1f3271b94523b7eb7cb94b685bd
|
|
| BLAKE2b-256 |
934c6d8d24b0caf8a7176e4b6012e9585ce89294331cc64caca6b8bdeb74670c
|
Provenance
The following attestation bundles were made for fastafood-0.2.1.tar.gz:
Publisher:
python-publish.yml on lthomes/fastafood
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastafood-0.2.1.tar.gz -
Subject digest:
8d45e0c03c32de5c3b1e304a2295e196d71f18200e45ffc17911c379100a35d4 - Sigstore transparency entry: 1247593997
- Sigstore integration time:
-
Permalink:
lthomes/fastafood@c1ba07413ea659e72c0182d270e97a5ef65a1ad1 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/lthomes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@c1ba07413ea659e72c0182d270e97a5ef65a1ad1 -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ff32b990be892822c1069da08fd457ed90852b6abe0ecd640ccfce2dab46a34
|
|
| MD5 |
ee13534ab449706c70f61556e0e7a997
|
|
| BLAKE2b-256 |
90fa59925f33d3f4b43518db0030f6f3c3811430996f0f2852a87efe3584c712
|
Provenance
The following attestation bundles were made for fastafood-0.2.1-py3-none-any.whl:
Publisher:
python-publish.yml on lthomes/fastafood
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
fastafood-0.2.1-py3-none-any.whl -
Subject digest:
3ff32b990be892822c1069da08fd457ed90852b6abe0ecd640ccfce2dab46a34 - Sigstore transparency entry: 1247594006
- Sigstore integration time:
-
Permalink:
lthomes/fastafood@c1ba07413ea659e72c0182d270e97a5ef65a1ad1 -
Branch / Tag:
refs/tags/v0.2.1 - Owner: https://github.com/lthomes
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@c1ba07413ea659e72c0182d270e97a5ef65a1ad1 -
Trigger Event:
release
-
Statement type: