circos pipeline

# /usr/bin/env python# coding=utf-8####################################  Author : yunkeli#  Version : 1.0(2015/6/20)#  E-mail : [email protected]###################################import osimport argparseimport reimport randomdef vcf_SNPdensity(snpvcffile,pathway):   print "this step is vcf to SNPdensity "   cmdvcftorate = "/home/liyunke/vcftools_0.1.12b/bin/vcftools --vcf "+snpvcffile+" --out " + pathway+"/SNPdensity100K --SNPdensity 1000000"   result_analysis=os.popen(cmdvcftorate)   print result_analysis.read()def density(SNPdensityfile,pathway):   print "##############################"   print "this step is vcf to densitysplit cat "   fileopen = open(SNPdensityfile).readlines()[1:]   savename = pathway+"/"+"SNPdensity50K.snpden.new.txt"   filesave = open(savename,"w+")   for i in fileopen:      listi = i.split()      filesave.write(listi[0].replace("chr","hs")+"\t"+listi[1]+"\t"+str(int(listi[1])+999999)+"\t"+str(float(listi[3])/10)+"\n")   filesave.close()def densitysplit(SNPdensityfile,pathway):   print "##############################"   print "this step is vcf to densitysplit "   fileopen = open(SNPdensityfile).readlines()[1:]   namelist = []   for i in fileopen:      if i.split()[0] not in namelist:         namelist.append(i.split()[0])   for j in namelist:      savename = pathway+"/"+j.replace("chr","hs")+".snp.txt"      filesave = open(savename,"w+")      for x in fileopen:         listx = x.split()         if listx[0] == j:            filesave.write(listx[0].replace("chr","hs")+"\t"+listx[1]+"\t"+str(int(listx[1])+499999)+"\t"+listx[3]+"\n")      filesave.close()   print "densitysplit ok"def sv_split(svdensityfile,pathway):   print "##############################"   print "this step is vcf to sv_file split "   fileopen = open(svdensityfile).readlines()[1:]   namelist = []   for i in fileopen:      if i.split()[0] not in namelist:         namelist.append(i.split()[0])   for j in namelist:      listrandom = []      savename = pathway+"/"+j.replace("chr","hs")+".sv.txt"      filesave = open(savename,"w+")      for x in fileopen:         listx = x.split()         if listx[0] == j:            if listx[0] != listx[5]:               listrandom.append(x)      if len(listrandom) > 10:         slicelist = random.sample(listrandom, 10)         for links in slicelist:            listlinks = links.split()            filesave.write("segdups"+str(listrandom.index(links))+"\t"+"\t".join(listlinks[0:3]).replace("chr","hs")+"\n")            filesave.write("segdups"+str(listrandom.index(links))+"\t"+"\t".join(listlinks[5:8]).replace("chr","hs")+"\n")         filesave.close()      else:         for links in listrandom:            listlinks = links.split()            filesave.write("segdups"+str(listrandom.index(links))+"\t"+"\t".join(listlinks[0:3])+"\n")            filesave.write("segdups"+str(listrandom.index(links))+"\t"+"\t".join(listlinks[5:8])+"\n")         filesave.close()def circos_config(npath,prefix):   oldconfig = "/home/liyunke/circos/sof/circos-0.67-7/work/pipeline/etc/config"   configopen = open(oldconfig).read()   f1 = re.sub("pathway",npath,configopen)   newconfig = "/home/liyunke/circos/sof/circos-0.67-7/work/pipeline/etc/"+prefix+".conf"   newconfigsave = open(newconfig,"w+")   newconfigsave.write(f1)   newconfigsave.close()def main():   p = argparse.ArgumentParser(usage=‘./circos.pipline.py [--vcf] [--sv] [--prefix] [--outdir] ‘, description=‘circos snp sv‘)     p.add_argument(‘-v‘,‘--vcf‘, type=str, help=‘vcf file‘)     p.add_argument(‘-s‘,‘--sv‘,  type=str, help=‘sv file‘)   p.add_argument(‘-p‘,‘--prefix‘, default="circostest",help=‘prefix or usrname‘)   p.add_argument(‘-o‘,‘--outdir‘, default="./", help=‘document directory‘)   args = p.parse_args()   prefix = args.prefix   vcffile = args.vcf   outdir = args.outdir   vcf_SNPdensity(vcffile,outdir)   SNPdensityfile = outdir+"/SNPdensity100K.snpden"   density(SNPdensityfile,outdir)   densitysplit(SNPdensityfile,outdir)   svdensityfile = args.sv   sv_split(svdensityfile,outdir)   circos_config(outdir,prefix)   cmdstr = "/home/liyunke/circos/sof/circos-0.67-7/bin/circos  -conf /home/liyunke/circos/sof/circos-0.67-7/work/pipeline/etc/"+prefix+".conf --outputdir "+ outdir+" -outputfile "+prefix   result_analysis_circos =os.popen(cmdstr)   print result_analysis_circos.read()   rmcmd = "rm "+ outdir +"/hs*"   result_analysis_rm =os.popen(rmcmd)   print result_analysis_rm.read()if __name__ == ‘__main__‘:   main()
时间: 2024-10-19 20:13:15

circos pipeline的相关文章

[持续交付实践] pipeline:pipeline 使用之快速入门

什么是pipeline 先介绍下什么是Jenkins 2.0,Jenkins 2.0的精髓是Pipeline as Code,是帮助Jenkins实现CI到CD转变的重要角色.什么是Pipeline,简单来说,就是一套运行于Jenkins上的工作流框架,将原本独立运行于单个或者多个节点的任务连接起来,实现单个任务难以完成的复杂发布流程.Pipeline的实现方式是一套Groovy DSL,任何发布流程都可以表述为一段Groovy脚本,并且Jenkins支持从代码库直接读取脚本,从而实现了Pipe

MongoDB 学习笔记之 Aggregation Pipeline实战实现inner join

 Aggregation Pipeline实战实现inner join: leftT集合: comments集合: 现在我们要用aggregation实现inner join db.comments.aggregate([{ $lookup: { from:"leftT", localField:"timestamp", foreignField:"timestamp", as: "timestampCol" }}, {$un

使用beanstalkd实现定制化持续集成过程中pipeline - 持续集成系列

持续集成是一种项目管理和流程模型,依赖于团队中各个角色的配合.各个角色的意识和配合不是一朝一夕能练就的,我们的工作只是提供一种方案和能力,这就是持续集成能力的服务化.而在做持续集成能力服务化的过程中,最核心的一点就是,如何实现一个可定制化的任务流,即所谓的pipeline. 在传统的持续集成工具实现了pipeline功能,以供串联上下游job,并把多个job联系成一次完整的构建,例如jenkins的pipeline插件. 但是各种持续集成工具,或多或少都有自己的短板,总结起来如下: 1.配置并不

图解Netty之Pipeline、channel、Context之间的数据流向。

声明:本文为原创博文,禁止转载.       以下所绘制图形均基于Netty4.0.28版本. 一.connect(outbound类型事件)  当用户调用channel的connect时,会发起一个outbound类型的事件,该事件将在pipeline中传递(pipeline.connect),首先由tail handler处理,该handler只是将事件透传给下一个outbound类型的用户Handler(如果有),事件依次传递下去,直到传递到head handler,该handler会调用

Jenkins pipeline 入门到精通系列文章

Jenkins2 入门到精通系列文章. Jenkins2 下载与启动jenkins2 插件安装jenkins2 hellopipelinejenkins2 pipeline介绍jenkins2 javahelloworldjenkins2 groovy入门jenkins2 pipeline入门jenkins2 pipeline高级jenkins2 Jenkinsfilejenkins2 multibranchjenkins2 Jenkinsfile和loadjenkins2 groovy脚本参考

aggregation 详解4(pipeline aggregations)

概述 管道聚合处理的对象是其它聚合的输出(桶或者桶的某些权值),而不是直接针对文档. 管道聚合的作用是为输出增加一些有用信息. 管道聚合大致分为两类: parent 此类聚合的"输入"是其[父聚合]的输出,并对其进行进一步处理.一般不生成新的桶,而是对父聚合桶信息的增强. sibling 此类聚合的输入是其[兄弟聚合]的输出.并能在同级上计算新的聚合. 管道聚合通过 buckets_path 参数指定他们要进行聚合计算的权值对象,buckets_path 参数有其自己的使用语法. 管道

MVC之前的那点事儿系列(9):MVC如何在Pipeline中接管请求的?(转载)

MVC之前的那点事儿系列(9):MVC如何在Pipeline中接管请求的? 文章内容 上个章节我们讲到了,可以在HttpModules初始化之前动态添加Route的方式来自定义自己的HttpHandler,最终接管请求的,那MVC是这么实现的么?本章节我们就来分析一下相关的MVC源码来验证一下我们的这个问题. 先创建一个MVC3的Web Application,选择默认的模板以便创建以后就默认包含HomeController和AccountController.我们知道MVC要先接管请求才能通过

【转】Netty那点事(三)Channel中的Pipeline

[原文]https://github.com/code4craft/netty-learning/blob/master/posts/ch3-pipeline.md Channel是理解和使用Netty的核心.Channel的涉及内容较多,这里我使用由浅入深的介绍方法.在这篇文章中,我们主要介绍Channel部分中Pipeline实现机制.为了避免枯燥,借用一下<盗梦空间>的“梦境”概念,希望大家喜欢. 一层梦境:Channel实现概览 在Netty里,Channel是通讯的载体,而Chann

OpenGL学习 Following the Pipeline

Passing Data to the Vertex Shader Vertex Attributes At the start of the OpenGL pipeline,we use the in keyword to bring inputs into the vertex shader. Between stages,in and out can be used to form conduits from shader to shader and pass databetween th