Я хочу извлечь конкретные последовательности fasta из большого файла fasta, используя следующий скрипт, но выход пуст.Извлечь конкретные последовательности fasta из большого файла fasta
Файл transcripts.txt
содержит идентификаторы транскриптов списка, которые я хочу экспортировать (как идентификаторы, так и последовательности) от assembly.fasta
до selected_transcripts.fasta
. Например:
- transcripts.txt:
Transcript_00004|5601 Transcript_00005|5352
- assembly.fasta:
>Transcript_00004|5601 GATCTGGCGCTGAGCTGGGTGCTGATCGACCCGGCGTCCGGCCGCTCCGTGAACGCCTCGAGTCGGCGCCCGGTGTGCGTTGACCGGAGATCGCGATCTGGGGAGACCGTCGTGCGGTT >Transcript_00004|5360 CGATCTGGCGCTGAGCTGGGTGCTGATCGACCCGGCGTCCGGCCGCTCCGTGAACGCCTCGAGTCGGCGCCCGGTGTGCGTTGACCGGAGATCGCGATCTGGGGAGACCGTCGTGCGGTT
Идентификаторы предшествует символ >
: >Transcripts_00004|5601
.
Я должен прочитать файл assembly.fasta
, если запись ID в assembly.fasta
тот же этой записи в transcripts.txt
, я должен написать эту расшифровку ID и его последовательность в selected_transcripts.fasta
. Итак, в приведенном выше примере мне нужно написать только первый расшифрованный стенограмму.
Любые предложения? Спасибо.
from Bio import SeqIO
my_list = [line.split(',') for line in open("/home/universita/transcripts.txt")]
fin = open('/home/universita/assembly.fasta', 'r')
fout = open('/home/universita/selected_transcripts.fasta', 'w')
for record in SeqIO.parse(fin,'fasta'):
for item in my_list:
if item == record.id:
fout.write(">" + record.id + "\n")
fout.write(record.seq + "\n")
fin.close()
fout.close()
см. Https://www.biostars.org/p/68718/ – Pierre
Можете ли вы отредактировать свой вопрос и включить некоторые из 'transcripts.txt', а также часть' assembly.fasta', поэтому у нас есть некоторые данные для работы? – MattDMo
Вы разделили строку транскриптов после каждого двоеточия, но это пространство разделено. Это специально? –