基于doit的软件工作流管理系统

judi的Python项目详细描述


judi-生物信息学管道:只要做就行了

judi源于将{em1}$doit的能力和效率 在多种参数设置组合下执行任何类型的任务。

示例代码

来自tutorial的片段,将其另存为dodo.py

fromjudiimportFile,Task,add_param,combine_csvsadd_param('100 101 102 103'.split(),'sample')add_param('1 2'.split(),'group')REF='hg_refs/hg19.fa'path_gen=lambdax:'{}_{}.fq'.format(x['sample'],x['group'])classAlignFastq(Task):inputs={'reads':File('orig_fastq',path=path_gen)}targets={'sai':File('aln.sai')}actions=[('bwa aln {}{} > {}',[REF,'$reads','$sai'])]classCreateBam(Task):mask=['group']inputs={'reads':AlignFastq.inputs['reads'],'sai':AlignFastq.targets['sai']}targets={'bam':File('aln.bam',mask=mask)}actions=[('bwa sampe {}{}{} | samtools view -Sbh - | samtools sort - > {}',[REF,'$sai','$reads','$bam'])]classGetCoverage(Task):mask=['group']inputs={'bam':CreateBam.targets['bam']}targets={'cov':File('cov.csv',mask=mask)}actions=[('(echo val; samtools rmdup {} - | samtools mpileup - | cut -f4) > {}',['$bam','$cov'])]classCombineCoverage(Task):mask=['group','sample']inputs={'cov':GetCoverage.targets['cov']}targets={'csv':File('combined.csv',mask=mask),'pdf':File('pltcov.pdf',mask=mask,root='.')}actions=[(combine_csvs,['#cov','#csv']),("""echo "library(ggplot2); pdf('{}')              ggplot(read.csv('{}'), aes(x = val)) +              geom_density(aes(color = factor(sample)))"\              | R --vanilla""",['$pdf','$csv'])]

从终端运行:

$ doit list
AlignFastqCombineCoverageCreateBamGetCoverage$ doit
. AlignFastq:group~1,sample~100. AlignFastq:group~2,sample~100. AlignFastq:group~1,sample~101. AlignFastq:group~2,sample~101. AlignFastq:group~1,sample~102. AlignFastq:group~2,sample~102. AlignFastq:group~1,sample~103. AlignFastq:group~2,sample~103. CreateBam:sample~100. CreateBam:sample~102. CreateBam:sample~103. CreateBam:sample~101. GetCoverage:sample~100. GetCoverage:sample~102. GetCoverage:sample~103. GetCoverage:sample~101. CombineCoverage:

项目详细信息

许可证

麻省理工学院的执照 版权所有(c)2019-2020 Soumitra Pal

请参见许可文件

安装

judi在python 3.6上测试。

$ pip install judi

依赖关系

  • doit

文档

docs文件夹包含基于sphinx的rest文档。

$ make html

贡献

在github上,使用命名的功能分支创建拉取请求。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
字符串Java字母替换无效   java Spring Roo JPA MS SQL Server无法打开JPA EntityManager组织。冬眠例外GenericJDBCException:无法打开连接   在scala中使用JavaWS对大型数据文件进行java流式处理   Java编译器是否将字节和短字符识别为文本?   java无法查找符号错误,空指针   mongodb在Java中重用数据库连接   java将多个StringArray从字符串文件获取到活动中   java是一个变量,它只保存最后一次鼠标单击的坐标   c#尺寸有限;添加、删除和洗牌   java如何在Android中显示来自资产文件夹的文本文件中的文本   Android应用程序中的java Tensorflow Lite自定义对象检测模型错误   java如何在foreachloop中使用scanner将来自命令行的输入存储到数组中   java如何定义一个好的存储库接口   Android中的java解析动态json对象