一、內存:建立索引需要多少內存?
hisat2建立索引是一項十分重要的工作,這個索引是後續比對的基礎,準確性和速度都取決於索引建立的好壞。建立hisat2索引需要消耗相應的內存,因此在建立索引時應該充分考慮計算機的硬件配置及內存容量。
hisat2工具的文檔建議:對於基因組大小為2.5 Gb的物種,採用默認參數 ‘–sensitive’,單線程內存開銷為6G;3.5 Gb的物種,單線程內存開銷將為9G。在實際的實驗中,可以通過增加核心數來減少單個線程的內存消耗,也可以選擇較小的可用內存運行較慢但內存佔用更小的版本。
例如,我們可以通過下面的命令在2線程和4G內存的情況下建立索引:
hisat2-build --threads 2 --sensitive genome.fa genome
二、文件:hisat2建立索引生成了哪些文件?
當我們建立一個hisat2的索引時,hisat2會在目標文件目錄下生成一些相關的文件。接下來,我們將詳細查詢這些文件的用途和作用:
1. *.ht2: 此文件包含了檢索序列的蛋白質表達序列的哈希值。這個文件是工具的核心,它是讀取和比對過程的中間件。.ht2文件通過嵌入式哈希表的方式存儲索引信息,以提高索引的查詢速度。
2. *.bt2: 此文件包含了所選BWT轉換的索引文件。此文件與.ht2文件密切相關,是核心比對算法的一部分。.bt2文件不同於.ht2文件的是它們是在索引建立期間生成的,而不是在比對期間生成的。
3. *.rev.*.bt2: 此文件包含了反轉互補序列的BWT轉換。這個文件是一種輔助形式,它保存了反轉互補序列的BWT轉換,以便比對過程中使用。
4. *.3.ht2、*.3.bt2、*.3.rev.*.bt2: 如果選擇了hisat2的-sensitive-local參數,則會生成這些額外的文件。它們與默認的.ht2、.bt2、.rev.文件一起使用,用於局部比對。
5. *.fai: 此文件是FASTA格式的索引文件。對於巨大的基因組,可以從FASTA文件中生成此類型的索引,以提高性能。
三、檢查:hisat2建立索引怎麼看好了沒?
為了確保索引文件已經正確生成,我們需要檢查索引文件。hisat2提供了一種易於使用的工具hisat2-inspect,可以用來檢查索引文件的正確性。
通過以下命令,查看空格分隔的索引信息:
hisat2-inspect -s genome.1.ht2
您還可以通過命令行查看某個位置的索引條目:
hisat2-inspect -e genome.1.ht2 100000
這將在屏幕上顯示100,000基數處的哈希表條目。
四、hisat2最新index選取: 如何優化hisat2索引性能?
hisat2是一個高效且準確的讀取比對工具,目前已經取代了Bowtie2,成為主要的選擇。但是,在實際的使用中,由於基因組的大小和其他因素的影響,其運行時間和佔用內存較大。在此,我們為您提供了一些可選的參數來優化hisat2建立索引的性能:
1. 使用low-memory選項。該選項限制了內存使用,但也會導致必要時的速度減慢。使用low-memory參數,將具有以下優點:
hisat2-build --low-memory --threads 8 my_genome.fasta my_genome_index
2. 使用SSPACE-Hisat2 ToolKit提供的hisat2-build工具,該工具使用最新的hierarchical graph index來減少內存使用。
git clone https://github.com/ShuonanChen/SSPACE-Hisat2-Genome-Assembler.git cd SSPACE-Hisat2-Genome-Assembler/hisat2-2.1.0/ make make install ./hisat2-build my_genome.fasta my_genome_index
3. 流式顛倒生成索引。流式生成索引是一種基於內核的技術,可以減少目標計算機上內存的使用。此技術的好處在於,只需使用一定量的內存即可在任何時間生成索引。
hisat2-inspect my_genome.fasta > my_genome.sizes split my_genome.sizes -d -l 1 my_genome.sizes. grep -v "^\[" my_genome.sizes.* > my_genome.sizes. rm my_genome.sizes.* hisat2_extract_splicesite.py my_genome.gtf > my_genome.ss for i in `seq 0 999`; do hisat2_extract_exons.py my_genome.gtf > my_genome.exons.${i}.fa; done hisat2_build --ss my_genome.ss --exon my_genome.exons.000.fa --exonlen 1800 my_genome.fasta my_genome_index for i in `seq 1 999`; do hisat2_build --ss my_genome.ss --exon my_genome.exons.${i}.fa --exonlen 1800 my_genome.fasta my_genome_index; done
總結
通過本文的介紹,相信你對hisat2建立索引有了更深入的了解,知道了如何進行內存管理,了解了每個文件的用途,掌握了檢查索引文件和優化性能的一些技巧。如果您需要深入了解hisat2或其他基因組學相關技術,可以通過相關文獻或官方文檔來學習。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/272429.html