小編寫這篇文章的主要目的,主要是給大家去做一個解答,解答的內容,主要是實現GATK多線程加速,那么,具體的一個操作手法是什么呢?怎么去實現加速呢?下面就給大家詳細解答下。
GATK變異分析
對于大數據樣本可能會比較慢,因此可以按照染色體拆分后進行多線程并行計算。
下面是我寫的一個python多線程腳本,僅供參考,拙劣之處敬請指正。
#!/usr/bin/python3 import _thread import os import threading import time muthreads=[] bam_file="a.mkdup.bam" out_file_prefix="flower" chr_list=["CHR01","CHR02","CHR03","CHR04","CHR05","CHR06","CHR07","CHR08","CHR09","CHR10","CHR11","CHR12","CHR13"] for chr in chr_list: threads_comonder_name="gatk HaplotypeCaller--intervals"+chr+"-R/mnt/j/BSA/02-read-align/Tifrunner2.fasta-I"+bam_file+"-ERC GVCF-O"+out_file_prefix+"-"+chr+".erc.g.vcf" muthreads.append(threads_comonder_name) exitFlag=0 class myThread(threading.Thread): def __init__(self,threadID,name,counter,comander): threading.Thread.__init__(self) self.threadID=threadID self.name=name self.counter=counter self.comander=comander def run(self): print("開始線程:"+self.name) print_time(self.name,self.counter,5,self.comander) print("退出線程:"+self.name) def print_time(threadName,delay,counter,comander): #while counter: if exitFlag: threadName.exit() time.sleep(delay) print(comander) os.system(comander)#調用操作系統命令行處理數據 #counter-=1 #創建新線程 threadlist=[] for i,threadsnu in enumerate(muthreads[0:11]): print(i) print(threadsnu) threadsnew=myThread(1,"Thread-"+str(i),2,threadsnu) threadlist.append(threadsnew) #開啟新線程 for threads in threadlist: threads.start() for threads in threadlist: threads.join() print("運行結束退出主線程")
下面的來自網絡未驗證
多條染色體的同樣本的vcf文件合并
#for i in{1..22}X Y;do echo"-I final_chr$i.vcf"'';done #for i in{10..19}{1..9}M X Y;do echo"-I final_chr$i.vcf"'';done module load java/1.8.0_91 GATK=/home/jianmingzeng/biosoft/GATK/gatk-4.0.3.0/gatk $GATK GatherVcfs -I final_chr1.vcf -I final_chr2.vcf -I final_chr3.vcf -I final_chr4.vcf -I final_chr5.vcf -I final_chr6.vcf -I final_chr7.vcf -I final_chr8.vcf -I final_chr9.vcf -I final_chr10.vcf -I final_chr11.vcf -I final_chr12.vcf -I final_chr13.vcf -I final_chr14.vcf -I final_chr15.vcf -I final_chr16.vcf -I final_chr17.vcf -I final_chr18.vcf -I final_chr19.vcf -I final_chr20.vcf -I final_chr21.vcf -I final_chr22.vcf -I final_chrX.vcf -I final_chrY.vcf -O merge.vcf
合并的時候需要注意,vcf文件的順序跟每個vcf文件里面頭文件順序是相同的。
綜上所述,這篇文章就給大家介紹到這里了,希望可以給大家帶來幫助。
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/128443.html
摘要:限制同時運行線程數使用類就行,在內部管理著一個計數器。當計數器到時,再調用就會阻塞,直到其他線程來調用,這樣就限制了同時運行線程的數量。 事前最好了解一下什么是進程,什么是線程,什么是GIL,本文不再贅述,直接介紹模塊的使用: 推薦1,推薦2,推薦3,更多自尋 普通的python爬蟲是單進程單線程的,這樣在遇到大量重復的操作時就只能逐個進行,我們就很難過了。舉個栗子:你有1000個...
摘要:阿里云基因數據服務不斷提升極致彈性的計算能力,和大規模并行處理能力,以及海量高速存儲來幫助基因公司快速自動化處理每天幾十上百的下機數據,并產通過標準產出高質量的變異數據。 摘要:?一家大型基因測序功能公司每日會產生 10TB 到 100TB 的下機數據,大數據生信分析平臺需要達到 PB 級別的數據處理能力。這背后是生物科技和計算機科技的雙向支撐:測序應用從科研逐步走向臨床應用,計算模...
摘要:宋體截止目前,已提供等不同語言的。為進一步降低用戶的運維人力投入,又推出了基于的命令行工具,提供輕量化的命令行調用方式并在開源。而控制臺一次最多允許創建臺云主機,因此需要用戶進行傻瓜式操作次。截止目前,UCloud已提供Python/Java/Golang等不同語言的API SDK。為進一步降低用戶的運維人力投入,又推出了基于Golang SDK的命令行工具CLI(Command Line ...
摘要:因為你可能需要在工作中與一些奇怪的人合作問題多線程使用。回答不允許真正意義上的多線程。在學習之前,很多人花了很多的時間在他們的多線程中遇到了瓶頸。 showImg(https://segmentfault.com/img/remote/1460000019609267); 介紹 隨著人工智能、機器學習、深度學習的發展,這個領域也正在不斷的進入人們的眼簾,并且帶來了很多、很大的工作機會,...
閱讀 911·2023-01-14 11:38
閱讀 878·2023-01-14 11:04
閱讀 740·2023-01-14 10:48
閱讀 1983·2023-01-14 10:34
閱讀 942·2023-01-14 10:24
閱讀 819·2023-01-14 10:18
閱讀 499·2023-01-14 10:09
閱讀 572·2023-01-14 10:02