NT FASTA近億等級數量索引
情境說明,自己玩的專案中需要建立NT資料庫
並且需要經過資料清洗,像是將資料庫分成human和non human的fasta
並將無taxon分類的sequences排除
可怕的是目前的NT的序列數已達到9400萬條
策略是先遊歷一遍整個檔案
並記錄每個sequence的taxid及file offset (f.tell()
)儲存到dictionary
透過記錄的offset,使用f.seek()
快速到達指定的sequence位置,並依據taxid判斷是屬於human或non human的sequence分別寫入到兩個fasta
因此本篇測試有哪些key-value類型的資料結構可以快速索引fasta中seqid於檔案中位置
且符合時間成本、硬體資源等效益