Bio.Motifs выбрасывает KeyError 'd' - PullRequest
0 голосов
/ 21 марта 2019

Я использую Biopython для обработки некоторых данных NGS.Но я сталкиваюсь со странной проблемой, когда использую модуль motif в Biopython.Вот код.

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'в моей последовательности.

1 Ответ

2 голосов
/ 22 марта 2019

Этот вопрос также задавался на странице GitHub в Biopython и был там решен (https://github.com/biopython/biopython/issues/1978)

Вкратце: Bio.motifs.create() ожидает список последовательностей в качестве входных данных (например, ['ATTG', 'CTTG', ...]). Операция Pandas DataFrameпоказанное выше не делает то, что намеревается сделать автор вопроса.

Он может просто сделать:

Motif = motifs.create(seqs1.values(), alphabet=IUPAC.IUPACAmbiguousDNA())
...