def getKmers(self,kmer): self.kmer_dict = {} kmer_tuples = List(product(['A','C','G','T'],repeat = kmer)) kmer_List = [] for x in range(len(kmer_tuples)): new_kmer = '' for y in range(kmer): new_kmer += kmer_tuples[x][y] kmer_List.append(new_kmer) for x in range(len(kmer_List)): self.kmer_dict[kmer_List[x]] = 0 for x in range(len(self.sequence)-kmer): for substr in kmer_List: if self.sequence[x:x+kmer] == substr: self.kmer_dict[substr] += 1 break return self.kmer_dict解决方法 要计算DNA的重叠子串,可以使用Biopython:
>>> from Bio.Seq import Seq>>> Seq('AAA').count_overlap('AA')2
免责声明:我写了这个方法,请参阅commit 97709cc
.
但是,如果你正在寻找真正的高性能,Python可能不是正确的语言选择(尽管像Cython这样的扩展可能有所帮助).
总结以上是内存溢出为你收集整理的计算字符串Python3.6中子串实例的最快方法全部内容,希望文章能够帮你解决计算字符串Python3.6中子串实例的最快方法所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)