2017-08-07 80 views
-6

我用下面的代碼我能做些什麼,使這個代碼的運行速度

java -Xmx4g -jar /full path/GenomeAnalysisTK.jar \ -T HaplotypeCaller \ -R /full path/hg19-sorted.fasta \ -I example.bam --genotyping_mode DISCOVERY \ -stand_call_conf 30 \ -o example.bam.output.raw.snps.indels.vcf

一個BAM文件大約成本覈算10-15d完成最近運行GATK HaplotypeCaller在共享存儲服務器運行... 極其耗費時間,不是嗎? 想到任何解決方法以使此過程更快?例如增加-Xmx?g參數來重新分配內存?我現在有一臺配備62個CPU的服務器,我應該如何確定-Xmx?g的值以最好地重新分配內存以使運行速度更快?或者解決時間成本問題的其他方法?許多tks提前!

+1

您忘記了最重要的命令行參數。 '-showusyourcode' – selbie

+0

說真的,沒有人能夠從運行時參數中幫助診斷性能問題。您需要向我們展示您的代碼。 – selbie

+0

先對任何非專業問題抱歉。詳細的源代碼顯示在這裏https://github.com/broadgsa/gatk-protected/blob/master/protected/gatk-tools-protected/src/main/java/org/broadinstitute/gatk/tools/walkers /haplotypecaller/HaplotypeCaller.java – Menci

回答

0

最好的性能改進來自選擇一種在大O符號中具有更好性能特徵的算法。

就你而言,它看起來像你已經調整了你的最大內存;但是,它也好像你還沒有分析你的代碼。

加速代碼是瞭解哪部分代碼很慢的練習。爲了找到這個問題,我們可以做一些叫做Benchmarking的測試,它可以讓你發現程序花費了很多時間。有時候,可以針對代碼的這個區域。

除了我的Comp。還有生物學學位。科學。學位,我可以做一些猜測。基因組分析通常會進行大量的比較,這意味着很多計算能力。僅僅在15年前,這些東西超出了所有領域,除了「超級計算機」之外,有可能除了一些可能值得研究論文的工作外,你不會找到更快的解決方案。

您採取的方法很好,但它類似於擺弄希望找到更快設置的控件。這是試錯法,並且不可能得到將運行時間改變一個數量級的結果。也許你可能能夠完全放下一整天,但這是樂觀的。

+0

感謝您的評論!由於我是電腦用戶的初學者,我在線搜索了該程序的源代碼,源代碼的詳細信息顯示在https://github.com/broadgsa/gatk-protected/blob/master/中保護/ GATK工具保護/ src目錄/主/ JAVA /組織/ broadinstitute/GATK /工具/步行者/ haplotypecaller/HaplotypeCaller.java。你可以快速查看它,找出關於運行時問題的一些線索嗎?許多thx提前! – Menci

+0

@Menci沒有可以應用的神奇的「表演」香膏。修正一個算法就是要充分了解這個問題,以便製作出運行速度更快,但仍能完成所有必需工作的第二種算法(跳過非必需的工作)。首先,您需要對當前運行進行基準測試,然後嘗試改變速度,然後再次進行基準測試。這就是模式,作爲生物學家,你應該熟悉學生的T檢驗,以確定變化是否顯着加快。 –