资讯专栏INFORMATION COLUMN

python实现GATK多线程加速示例

89542767 / 518人阅读

  小编写这篇文章的主要目的,主要是给大家去做一个解答,解答的内容,主要是实现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

相关文章

  • 【暂时Over】Python 从零开始爬虫(十)给爬虫加速线程进程

    摘要:限制同时运行线程数使用类就行,在内部管理着一个计数器。当计数器到时,再调用就会阻塞,直到其他线程来调用,这样就限制了同时运行线程的数量。 事前最好了解一下什么是进程,什么是线程,什么是GIL,本文不再赘述,直接介绍模块的使用: 推荐1,推荐2,推荐3,更多自寻 普通的python爬虫是单进程单线程的,这样在遇到大量重复的操作时就只能逐个进行,我们就很难过了。举个栗子:你有1000个...

    wangdai 评论0 收藏0
  • PB 级数据处理挑战,Kubernetes如何助力基因分析?

    摘要:阿里云基因数据服务不断提升极致弹性的计算能力,和大规模并行处理能力,以及海量高速存储来帮助基因公司快速自动化处理每天几十上百的下机数据,并产通过标准产出高质量的变异数据。 摘要: 一家大型基因测序功能公司每日会产生 10TB 到 100TB 的下机数据,大数据生信分析平台需要达到 PB 级别的数据处理能力。这背后是生物科技和计算机科技的双向支撑:测序应用从科研逐步走向临床应用,计算模...

    forsigner 评论0 收藏0
  • 巧用命令行工具UCloud CLI,轻量操作API管理云资源

    摘要:宋体截止目前,已提供等不同语言的。为进一步降低用户的运维人力投入,又推出了基于的命令行工具,提供轻量化的命令行调用方式并在开源。而控制台一次最多允许创建台云主机,因此需要用户进行傻瓜式操作次。截止目前,UCloud已提供Python/Java/Golang等不同语言的API SDK。为进一步降低用户的运维人力投入,又推出了基于Golang SDK的命令行工具CLI(Command Line ...

    eternalshallow 评论0 收藏0
  • 职场经验之15个你必须知道的Python面试题

    摘要:因为你可能需要在工作中与一些奇怪的人合作问题多线程使用。回答不允许真正意义上的多线程。在学习之前,很多人花了很多的时间在他们的多线程中遇到了瓶颈。 showImg(https://segmentfault.com/img/remote/1460000019609267); 介绍 随着人工智能、机器学习、深度学习的发展,这个领域也正在不断的进入人们的眼帘,并且带来了很多、很大的工作机会,...

    jayce 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<