Bio.Motifs抛出KeyError'd'

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

我正在使用Biopython处理一些NGS数据。但是当我在Biopython中使用motif模块时,我遇到了一个奇怪的问题。这是代码。

frame = pd.DataFrame({'Spacer': seqs1.values()}, index=seqs.keys())
Motif = motifs.create(frame.Spacer.values, alphabet=IUPAC.IUPACAmbiguousDNA())

然后我得到一个Keyerror:

Traceback (most recent call last):
File "<input>", line 2, in <module>
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\Bio\motifs\__init__.py", line 23, in create
    return Motif(instances=instances, alphabet=alphabet)
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\Bio\motifs\__init__.py", line 244, in __init__
    counts = self.instances.count()
File "C:\Users\Administrator\AppData\Local\Programs\Python\Python36\lib\site-packages\Bio\motifs\__init__.py", line 199, in count
    counts[letter][position] += 1
KeyError: 'd'

seqs1有以下元素:

seqs1 ={'E00491:315:HVLGTCCXY:1:1101:18193:49320': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:26250:49320': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:26534:49320': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:27651:49320': 'GGCACNGCGGCTGGAGGNGG', 'E00491:315:HVLGTCCXY:1:1101:28625:49320': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:4503:49338': 'GGCACTGCGGCTGGAGGNGG', 'E00491:315:HVLGTCCXY:1:1101:5781:49338': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:6005:49338': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:8176:49338': 'GGCGCTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:11099:49338': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:15564:49338': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:17553:49338': 'GGCGCTTCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:22059:49338': 'GGCGCTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:24129:49338': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:24535:49338': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:30117:49338': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:22191:49355': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:25134:49355': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:7243:49373': 'GGCACTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:10064:49373': 'GGCGCTGCGGCTGGAGGTGG', 'E00491:315:HVLGTCCXY:1:1101:14752:49373': 'GGCACTGCGGCTGGAGGTGG'}

我的序列中没有'd'。

python bioinformatics biopython
1个回答
2
投票

这个问题也在Biopython的GitHub页面上被问到并在那里解决了(https://github.com/biopython/biopython/issues/1978

简而言之:Bio.motifs.create()期望一系列序列作为输入(例如['ATTG', 'CTTG', ...])。上面显示的Pandas DataFrame操作不会执行问题的作者打算做的事情。

他可以这样做:

Motif = motifs.create(seqs1.values(), alphabet=IUPAC.IUPACAmbiguousDNA())
© www.soinside.com 2019 - 2024. All rights reserved.