Je suis en train d'utiliser Biopython pour extraire toutes les séquences d'ADN à partir d'un fichier FASTA contenant une correspondance avec la courte séquence d'ADN suivante: « GGCTCAACCCTGGA »En utilisant Biopython pour trouver et extraire FASTA correspond à exacte séquence d'ADN
Voici ce que j'ai jusqu'à présent:
from Bio import SeqIO
source = "rep_set_no_spaces.fasta"
outfile = "rep_set_PNA_matches.fasta"
seq1 = "GGCTCAACCCTGGA"
# basically a function to check whether seq contains sub1
def seq_check(seq, seq1):
return seq.find(seq1)
seqs = SeqIO.parse(source, 'fasta')
filtered = (seq for seq in seqs if seq_check(seq.seq, seq1))
SeqIO.write(filtered, outfile, 'fasta')
Je suis en train d'adapter le code de ce poste (Filtering a FASTA file based on sequence with BioPython), mais ma séquence d'intérêt est ni au début, ni fin de la séquence ...
Par exemple, voici quelques uns de mes sequen ces ... la 1ère et la 4ème séquence, mais pas la 2ème et la 3ème. Je veux sortir des séquences faire un nouveau fichier FASTA avec seulement ces séquences qui contiennent « GGCTCAACCCTGGA »:
>110148arco.1D_184193
TACGGAGGGGGTTAGCGTTGTTCGGAATTACTGGGCGTAAAGCGCACGTAGGTGGATTGGAAAGTATGGGGTGAAATCCCAGGGCTCAACCCTGGAACTGCCTCATAAACTATCAGTCTAGAGTTCGAGAGAGGTGAGTGGAATTCCGAGTGTAGAGGTGAAATTCGTAGATATTCGGAGGAACACCAGTGGCGAAGGCGGCTCACTGGCTCGATACTGACACTGAGGTGCGAAAGTGTGGGGAGCAAACAGG
>110475arco.1D_40770
TACGGAGGGTGCGAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGCGGTTTGTTAAGTCAGCTGTGAAAGCCCTGGGCTCAACCTGGGAATTGCAGTTGATACTGGCAAGCTGGAGTACGAGAGAGGGAGGTAGAATTCCATGTGTAGCGGTGAAATGCGTAGATATATGGAGGAATACCAGTGGCGAAGGCGGCCTCCTGGCTCGATACTGACGCTGAGGTGCGAAAGCGTGGGGAGCAAACAGG
>110484arco.1D_190999
TACGGAGGGTGCAAGCGTTAATCGGAATTACTGGGCGTAAAGCGCGCGTAGGCGGTTTGTTAAGTCAGCTGTGAAAGCCCTGGGCTCAACCTGGGAATTGCAGTTGATACTGATCGACTAGAGTACGAGAGAGGGAGGTAGAATTCCACGTGTAGCGGTGAAATGCGTAGATATGTGGAGGAATACCGGTGGCGAAGGCGGCCTCCTGGCTCGATACTGACGCTGAGGTGCGAAAGCGTGGGGAGCAAACAGG
>110525amin.3D_40107
TACGGAGGGGGCTAGCGTTGTTCGGAATTACTGGGCGTAAAGCGTACGTAGGCGGATTAGTAAGTAAGATGTGAAATCCCAGGGCTCAACCCTGGAACTGCATTTTAAACTGCTAGTCTAGAGTTATGGAGAGGTAAGTGGAATTCCTAGTGTAGAGGTGAAATTCGTAGATATTAGGAGGAACACCAGAGGCGAAGGCGACTTACTGGACATATACTGACGCTGAGGTACGAAAGTGTGGGTAGCAAACAGG
Merci!
Encore plus succinent: 'def seq_check (seq, seq1): return seq1 dans seq' – BioGeek
Merci pour les réponses! Cela a fonctionné parfaitement :) –
@Brooke_W Si la réponse a résolu votre problème, vous devez accepter la réponse – Markus