我使用的是python2.6.6,我试图删除fastq
中与file1
中的读操作重叠的{
ref_reads = SeqIO.index("file1.fastq", "fastq")
spk_reads = SeqIO.index("file2.fastq", "fastq")
for spk in spk_reads:
if spk in ref_reads:
del ref_reads[spk]
但是,我得到了与使用del
有关的错误:
AttributeError:\u IndexedSeqFileDict实例没有属性'\\'delitem\'
有没有可能用目前的提法删除一个项目?如何从使用SeqIO.index()
生成的词典中删除项目?在
我还尝试了以下方法:
^{pr2}$
在序号索引()不返回真正的字典,但a dictionary like object, giving the SeqRecord objects as values:
这个类似字典的对象是一个^{} 实例。docstring提到:
因此,您需要使用
SeqIO.parse()
和SeqIO.to_dict()
将fastq文件转换为内存中的Python字典:如果文件太大,无法使用
^{pr2}$SeqIO.parse()
,那么我将执行以下操作:编辑,回复您的评论:
正如我上面所说,
SeqIO.index("file1.fastq", "fastq")
返回一个只读的_IndexedSeqFileDict
对象。因此,您不可以按设计从中删除项目。在下面更新的代码展示了如何创建一个新的fastq文件,其中删除了重叠的读取。在
如果您真的想要一个新的
SeqIO.index()
对象,那么您可以用SeqIO.index()
再次读入这个文件。在相关问题 更多 >
编程相关推荐