Bio.trie をシーケンスのインデックスとして使用して、データセット内でそれぞれが何回発生したかをカウントしたいと思います。インデックスは次のように作成されます。
seqs = trie()
for seq in dataset:
if seqs.has_key(seq):
seqs[seq] += 1
else:
seqs[seq] = 1
その後、一度だけカウントされたシーケンスのリストなど、トライからいくつかの情報を抽出したいと思います。次のようにすることができます。
singletons = []
for seq in seqs.keys():
if seqs[seq] == 1:
singletons.append(seq)
問題は、私が作業しているマシンのメモリが不足していて、 trie.keys() を呼び出すと、トライ自体とほぼ同じ大きさのリスト オブジェクトが返されることです。一度に 1 つのキーしか取得できないように、リストの代わりにジェネレーターを使用してキーを反復処理することは可能ですか?