小编写这篇文章的主要目的,主要是给大家去做一个解答,解答的内容,主要是实现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文件里面头文件顺序是相同的。
综上所述,这篇文章就给大家介绍到这里了,希望可以给大家带来帮助。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/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); 介绍 随着人工智能、机器学习、深度学习的发展,这个领域也正在不断的进入人们的眼帘,并且带来了很多、很大的工作机会,...
阅读 889·2023-01-14 11:38
阅读 833·2023-01-14 11:04
阅读 685·2023-01-14 10:48
阅读 1888·2023-01-14 10:34
阅读 892·2023-01-14 10:24
阅读 750·2023-01-14 10:18
阅读 479·2023-01-14 10:09
阅读 519·2023-01-14 10:02