Как получить несвязанные последовательности из вывода BLAST? - PullRequest
1 голос
/ 15 сентября 2011

Я заинтересован в получении несвязанных последовательностей из BLAST-вывода в формате FASTA.Я думал, что смогу использовать hsps_no_gap, но он не работает.Есть ли какой-нибудь метод, который я могу использовать, чтобы сделать это?

Ответы [ 3 ]

0 голосов
/ 02 апреля 2012

Я предполагаю, что ваши последовательности хранятся в SeqIO.Seq объектах.

Возможно, вы захотите использовать метод ungap в SeqIO.Seq. Документация довольно хорошая. ungap() является лучшим выбором, чем операция замены строки (например, она может вывести символ пробела из алфавита последовательности).

Пример кода:

from Bio import SeqIO

seq_records = SeqIO.parse("input.fasta", format='fasta')
for record in seq_records:
    seq_ungapped = record.seq.ungap('-')
0 голосов
/ 02 ноября 2012

Если вы хотите получить последовательности без GAPS, попробуйте использовать

for records in blast:
   if records.alignments:
   for align in records.alignments:
      if align.hsps.gap == 0
      print ("These ID have ungapped alignment : %s" % records.query)
0 голосов
/ 10 декабря 2011

В каком формате выводится BLAST? XML? Вы можете взять hsps из выходного файла и сделать следующее:

for alignment in blast_record.alignments:
    for hsp in alignment.hsps:
        query_no_gaps = hsp.query.replace("-","")
        sbjct_no_gaps = hsp.sbjct.replace("-","")

Затем используйте эти новые переменные для записи в fasta.

...