删除重复序列 fasta 文件时出错 - 标题中的问题

问题描述 投票:0回答:0

这里是python菜鸟。

我正在尝试以 fasta 格式组合一些蛋白质序列,然后删除重复项。我通过搜索找到了这段代码,它运行得很好,但我遇到了一个我无法理解的问题。这是导致错误的示例序列:

>someseq1

MKYFPLFPTLVFAARVVAFPAYASLAGLSQQELDAIIPTLEAREPGLPPGPLENSSAKLV

>firstseq with 5 mutations:

MKYFPLFPTLVFAARVVAFPAYASLAGLSQQELDAIIPTLEAREPGLPPGPLENSSAKLV

>secondseq with 9 mutations:

MKYFPLFPTLVYAVGVVAFPDYASLAGLSQQELDAIIPTLEAREPGLPPGPLENSSAKLV

>thirdseq

MISQSFVSLTVLLLGLVNLSPAFAFPQYGSLAGLSARDLNVLIPRLNEVDPPTPPGPLAYNGTKLVHDDA

>thirdone – in claim

MISTSKHLFVLLPLFLVSHLSLVLGFPAYASLGGLTERQVEEYTSKLPIVFPPPPPEPIKDPWLKLVNDR

原始文件和序列很长,所以为了方便起见,我缩短了它。

我在论坛上找到了这段代码,它运行良好并且写入了一个没有重复的新文件:

from Bio import SeqIO
import time

start = time.time()

seen = []
records = []

for record in SeqIO.parse("Prob2.fa", "fasta"):
    if str(record.seq) not in seen:
        seen.append(str(record.seq))
        records.append(record)


#writing to a fasta file
SeqIO.write(records, "Checked.fa", "fasta")
end = time.time()

print(f"Run time is {(end- start)/60}")

现在,python 解释器给了我这个错误:

Traceback (most recent call last):
  File "C:\Users\Arif\Desktop\DuplicateSequenceFinder\DuplicateFinder.py", line 10, in <module>
    for record in SeqIO.parse("Prob2.fa", "fasta"):
  File "C:\Users\Arif\AppData\Local\Programs\Python\Python311\Lib\site-packages\Bio\SeqIO\Interfaces.py", line 72, in __next__
    return next(self.records)
  File "C:\Users\Arif\AppData\Local\Programs\Python\Python311\Lib\site-packages\Bio\SeqIO\FastaIO.py", line 238, in iterate
    for title, sequence in SimpleFastaParser(handle):
  File "C:\Users\Arif\AppData\Local\Programs\Python\Python311\Lib\site-packages\Bio\SeqIO\FastaIO.py", line 50, in SimpleFastaParser
    for line in handle:
UnicodeDecodeError: 'gbk' codec can't decode byte 0x93 in position 449: illegal multibyte sequence

我发现问题出在标题中,“-”字符写为“- in Claim”(列表中的第三个序列)。如果我删除它,它工作正常,但其他序列标题中也提到了其他“-”。我通过删除一半序列并检查它是否仍然给出错误来找到它。现在,如果我删除这个“-”并输入一个新的“-”,它就可以正常工作。所以我只是想了解这里真正的问题是什么。这样我以后就能以正确的输入格式书写。

我最初在Word中编写这些序列,后来在notepad++中编辑它们并将其另存为“.fa”文件。

其次,我想找出找到了多少重复项并提及记录 ID/标头。因此,如果有人可以帮助我应该插入哪些代码行,我将非常感激。

python duplicates biopython fasta
© www.soinside.com 2019 - 2024. All rights reserved.