circos pipeline
# /usr/bin/env python
# coding=utf-8
###################################
# Author : yunkeli
# Version : 1.0(2015/6/20)
# E-mail : 1316014512@qq.com
###################################
import os
import argparse
import re
import random
def 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()
circos pipeline的更多相关文章
- redis大幅性能提升之使用管道(PipeLine)和批量(Batch)操作
前段时间在做用户画像的时候,遇到了这样的一个问题,记录某一个商品的用户购买群,刚好这种需求就可以用到Redis中的Set,key作为productID,value 就是具体的customerid集合, ...
- Building the Testing Pipeline
This essay is a part of my knowledge sharing session slides which are shared for development and qua ...
- Scrapy:为spider指定pipeline
当一个Scrapy项目中有多个spider去爬取多个网站时,往往需要多个pipeline,这时就需要为每个spider指定其对应的pipeline. [通过程序来运行spider],可以通过修改配置s ...
- 图解Netty之Pipeline、channel、Context之间的数据流向。
声明:本文为原创博文,禁止转载. 以下所绘制图形均基于Netty4.0.28版本. 一.connect(outbound类型事件) 当用户调用channel的connect时,会发起一个 ...
- 初识pipeline
1.pipeline的产生 从一个现象说起,有一家咖啡吧生意特别好,每天来的客人络绎不绝,客人A来到柜台,客人B紧随其后,客人C排在客人B后面,客人D排在客人C后面,客人E排在客人D后面,一直排到店面 ...
- MongoDB 聚合管道(Aggregation Pipeline)
管道概念 POSIX多线程的使用方式中, 有一种很重要的方式-----流水线(亦称为"管道")方式,"数据元素"流串行地被一组线程按顺序执行.它的使用架构可参考 ...
- SSIS Data Flow 的 Execution Tree 和 Data Pipeline
一,Execution Tree 执行树是数据流组件(转换和适配器)基于同步关系所建立的逻辑分组,每一个分组都是一个执行树的开始和结束,也可以将执行树理解为一个缓冲区的开始和结束,即缓冲区的整个生命周 ...
- Kafka到Hdfs的数据Pipeline整理
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 找时间总结整理了下数据从Kafka到Hdfs的一些pipeline,如下 1> Kafka ...
- SQL Queries from Transactional Plugin Pipeline
Sometimes the LINQ, Query Expressions or Fetch just doesn't give you the ability to quickly query yo ...
随机推荐
- jenkins初学部分笔记网站
https://www.cnblogs.com/wfd360/p/11314697.html 自动化部署详细教程 https://blog.csdn.net/weixin_41948075/artic ...
- Python编程语言简介
Python诞生于20世纪90年代初,由荷兰人吉多·范罗苏姆发明.那么,Python这一门编程语言是如何发明的呢?这之中又有怎么的故事呢?请看下面. 故事发生在1989年的圣诞节上,吉多先生为了打发无 ...
- recv & recvfrom
#include <sys/types.h> #include <sys/socket.h> ssize_t recv(int sockfd, void *buf, size_ ...
- 记502 dp专练
趁着503的清早 我还算清醒把昨天老师讲的内容总结一下,昨天有点迷了 至使我A的几道题都迷迷糊糊的.(可能是我太菜了) 这道题显然是 数字三角形的变形 好没有经过认真思考然后直接暴力了 这是很不应该的 ...
- luogu P1526 [NOI2003]智破连环阵 搜索+最大匹配+剪枝
LINK:智破连环阵 考试的时候 题意没理解清楚 题目是指一个炸弹爆炸时间结束后再放另一个炸弹 而放完一个炸弹紧接另一个炸弹.题目中存在然后二字. 这样我们可以发现某个炸弹只会炸连续的一段. 但是 由 ...
- SeaweedFS在.net core下的实践方案
一直对分布式的文件储存系统很感兴趣,最开始关注淘宝的TFS(Taobao File System),好像搁浅了,官方地址无法访问,github上面,各种编译问题,无意间发现了SeaweedFS 链接s ...
- python4.4模块
import random #import导入,random随机数模块a=random.random() ...
- Python库大全,建议收藏留用!
学Python,想必大家都是从爬虫开始的吧.毕竟网上类似的资源很丰富,开源项目也非常多. 很多人学习python,不知道从何学起.很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. ...
- linux系统中SSH免密设置报错
执行 ssh-add ~/.ssh/msi_rsa 时报下面错误 Could not open a connection to your authentication agent. 解决办法: 执行命 ...
- 制作 macOS Sierra U盘USB启动安装盘方法教程 (亲测)
备注:相关镜像到apple官网下载 https://discussionschinese.apple.com/thread/250596904 进去点击"请使用这个 App Store 链接 ...