biopython: Bio.Application package全面解析

将生物信息学工具(blast,muscle,bwa,samtool等)的命令行写入到biopython的代码脚本中

大家好,这篇文章给大家介绍一下生物信息学程序语言 biopython中的Bio.Application包的神奇的作用,在生物信息学分析脚本编写当中的实际应用。
Bio.Application包大致可以干什么呢?
将一些生物信息学很常用的工具(比如blast)封装到里面,我们在编写脚本的时候,只需要提供一些相应工具(比如提供blastn命令参数)的输入参数,biopython的Bio.Application里面的模块就会替我们运行封装在里面的工具(比如blast)的命令行。

Biopython Bio.Application内置的工具有哪些

内置封装的常用的生物信息学工具种类如下:

  1. Bio.Align.Applications
  2. Bio.Blast.Applications
  3. Bio.Emboss.Applications
  4. Bio.Sequencing.Applications

Bio.Align.Applications的应用:

这是一个对主流的生物信息学全局比对软件工具命令行的封装
这些全局比对软件如下:

  1. Bio.Align.Applications.MuscleCommandline
  2. Bio.Align.Applications.ClustalwCommandline
  3. Bio.Align.Applications.ClustawOmegaCommandline
  4. Bio.Align.Applications.PrankCommandline
  5. Bio.Align.Applications.MafftCommandline
  6. Bio.Align.Applications.DialignCommandline
  7. Bio.Align.Applications.ProbconsCommandline
  8. Bio.Align.Applications.TcoffeeCommandline
  9. Bio.Align.Applications.MSAProbsCommandline

下面的代码使用的Muscle的包装器实现了序列的全局比对:

 #导入相关的包from Bio.Align.Applications import MuscleCommandline#调用MuscleCommandline函数,第一个参数是muscle软件所在的绝对路径,第二个参数是输入文件名称,第三个参数是输出文件名称muscle_commandline = MuscleCommandline(r"C:\Program Files\Aligments\muscle3.8.31_i86win32.exe", input = in_file, out=out_file)
#运行muscle命令行stdout, stderr = muscle_commandline()

Bio.Blast.Applications的应用:

什么是Blast工具?
BLAST全称Basic Local Alignment Search Tool,翻译过来就是"基于局部比对算法的搜索工具",Blast能够快速比对两条核酸和蛋白质序列。
biopython中封装的相关运行blast命令的函数有如下:
NcbiblastpCommandline - 蛋白序列与蛋白序列进行比对
NcbiblastnCommandline - 核酸序列与核酸序列进行比对
NcbiblastxCommandline
NcbitblastnCommandline
NcbitblastxCommandline
NcbipsiblastCommandline
NcbirpsblastCommandline
NcbirpstblastnCommandline
NcbiideltablastCommandline
NcbiblastformatterCommandline
NcbimakeblastdbCommandline - 创建BLAST比对库的命令

下面的代码首先创建了一个blast比对的库,然后进行测试序列与参考库的比对

  #导入相关的包from Bio.Blast.Applications import NcbimakeblastdbCommandlinefrom Bio.Blast.Applications import NcbimakeblastpCommandline#调用运行blast建库的命令的函数mdcommandline = NcbimakeblastdbCommandline(dbtype = 'prot', input_file = "NC_005816.faa")#调用运行blastp比对命令的函数bpcommandline = NcbiblastpCommandline(query = "test.pro", db = "NC+005816.faa", evalue = 0.001)#运行建库命令stdout, stderr = mdcommandline()#运行比对命令stdout, stderr = bpcommandline()

Bio.Emboss.Applications的应用:

什么是Emboss工具?
EMBOSS是一个开放源代码的序列分析软件包。包括了大量蛋白质和核酸的分析工具,包括翻译、蛋白质结构域搜索、获取序列、比对、引物设计、限制性酶切谱分析等多种功能的。
运行Emboss工具包代码:
以其中的两两序列比对工具water命令为例说明:
首先下载Emboss相关的软件,在Windows下,将安装的路径添加到环境变量$PATH中

方法一:      #导入相关的包from Bio.Emboss.Applications import WaterCommandline#设置运行water命令的封套函数,其中有两个参数gapopen和gapextendcommandline = WaterCommandline(gapopen = 10, gapextend = 0.5)#更改其中的参数gapopen重新设置为20commandline.gapopen = 20#设置好water命令的相关参数以后,依照设置好的参数比对两条序列commandline.asequence = "asis:ACCCGGGCGCGGT"commandline.bsequence = "asis:ACCCGAGCGCGGT"#设置比对结果输出文件commandline.outfile = "out.txt"#运行water比对命令stdout, stderr = commandline()
 方法二:#导入相关的包from Bio.Emboss.Applications import WaterCommandline#也可以输入比对工具water的具体存储路径commandline = WaterCommandline(r"C:\Program Files\EMBOSS\water.exe", gapopen = 10, gapextend=0.5, asequence="", bsequence="", outfile="out.txt")

Bio.Sequencing.Applications的应用:

这个模块封装的生物信息学分析工具是针对高通量测序数据的,包括的生物信息学分析工具如下:
Bio.Sequencing.Applications.BwaIndexCommandline
Bio.Sequencing.Applications.BwaAlignCommandline
Bio.Sequencing.Applications.BwaSamseCommandline
Bio.Sequencing.Applications.BwaSampeCommandline
Bio.Sequencing.Applications.BwaswCommandline
Bio.Sequencing.Applications.BwaMemCommandline
Bio.Sequencing.Applications.SamtoolsViewCommandline
Bio.Sequencing.Applications.SamtoolsCalmdCommandline
Bio.Sequencing.Applications.SamtoolsCatCommandline
Bio.Sequencing.Applications.SamtoolsFaidxCommandline
Bio.Sequencing.Applications.SamtoolsFixmateCommandline
Bio.Sequencing.Applications.SamtoolsIdxstatsCommandline
Bio.Sequencing.Applications.SamtoolsIndexCommandline
Bio.Sequencing.Applications.SamtoolsMergeCommandline
Bio.Sequencing.Applications.SamtoolsMpileupCommandline
Bio.Sequencing.Applications.SamtoolsPhaseCommandline
Bio.Sequencing.Applications.SamtoolsReheaderCommandline
Bio.Sequencing.Applications.SamtoolsRmdupCommandline
Bio.Sequencing.Applications.SamtoolsSortCommandline
Bio.Sequencing.Applications.SamtoolsVersion0xSortCommandline
Bio.Sequencing.Applications.SamtoolsVersion1xSortCommandline
Bio.Sequencing.Applications.SamtoolsTargetcutCommandline

下面的代码首先用bwa建立参考基因组的索引,然后以参考基因组为参考用bwa将输入的fastq的read,mapping到参考基因组上,输出为.sai文件

   #导入相关的包from Bio.Sequencing.Applications import BwaIndexCommandline#选择参考基因组,并把参考基因组的绝对路径保存在变量reference_genome中reference_genome = "D:\data\reference.fasta"#调用封装的函数BwaIndexCommandline,设定相关参数index_commandline = BwaIndexCommandline(infile = reference_genome, algorithm = "bwtsw")#运行命令,这条命令相当于:bwa index -a bwtsw D:/data/reference.fastastdout, stderr = index_commandline()from Bio.Sequencing.Applications import BwaAlignCommandlineread_file = "D:\data\read.fq"output_sai_file = "D:\data\read.sai"aln_commandline = BwaAlignCommandline(reference = reference_genome, read_file = read_file)#运行比对命令行,相当于bwa aln D:\data\reference.fasta D:\data\read.fqaln_commandline(stdout = output_sai_file)
最后:能力有限,欢迎拍砖!哈哈
参考:[biopython API](https://biopython.org/docs/1.75/api/Bio.html)

将blast等工具的命令行写入到biopython的代码脚本中相关推荐

  1. python 执行shell命令行效率提升_在python脚本中执行shell命令的方法

    使用Python处理一个shell命令或一个执行一个shell脚本,一般情况下,有以下三种方法,以下我们来看: 第一种方法是使用os.system的方法 os.system(" cmd&qu ...

  2. Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备)

    Python 打造基于有道翻译的命令行翻译工具(命令行爱好者必备) 之前基于百度写了一篇博文 Python 打造基于百度翻译的命令行翻译工具,本来这工具用得挺好的.但是没想到,近期处于不知道啥原因,不 ...

  3. Mac下的plist纹理图切图工具(命令行)

    Mac下的plist纹理图切图工具(命令行) 经常用Mac,开发需要经常切拼好的plist纹理图,找了好久都没什么合适的软件:拼图的有不少(TexturePacker.PlistEditor等),拆图 ...

  4. Linux下命令行压缩照片或图片的脚本 (ImageMagick使用心得,convert,import,display实例)

    from: Linux下命令行压缩照片或图片的脚本 (ImageMagick使用心得,convert,import,display实例) 在认识ImageMagick之前,我使用的图像浏览软件是Kui ...

  5. 扫盲 Linux&UNIX 命令行——从“电传打字机”聊到“shell 脚本编程”

    扫盲 Linux&UNIX 命令行--从"电传打字机"聊到"shell 脚本编程" 本文目标读者 虽然本文的标题号称是[扫盲],但俺相信:即使是一些 P ...

  6. 媒体文件转换工具ffmpeg命令行汇总(包括精准裁剪音视频)

    转自:https://www.cnblogs.com/renhui/p/9223969.html 这个blog有一系列的ffmpeg的源码分析,建议系统读一下. 这里我重点关注的是精准裁剪视频,没想到 ...

  7. linux下磁盘高级工具,Linux命令行工具-di

    今天小编要跟大家分享的文章是关于Linux命令行工具-di.如果你是个Linux命令行用户,你肯定会使用df命令检查文件系统的磁盘使用情况.尽管df是一个受欢迎的命令,但仍然不能提供一些高级的功能,如 ...

  8. python命令行工具_python命令行工具Click快速掌握

    前言 写 Python 的经常要写一些命令行工具,虽然标准库提供有命令行解析工具 Argparse,但是写起来非常麻烦,我很少会使用它.命令行工具中用起来最爽的就是 Click,它是 Flask 的团 ...

  9. linux 的一些实用工具,linux 命令行下的一些实用工具

    linux 命令行下的一些实用工具 命令行下的一些常用应用: awesome                        适合geek的桌面管理器VM mc                     ...

最新文章

  1. 话说Ubuntu和FreeBSD将要合成一个新的版本:UbuntuBSD
  2. class 与 原型链 解析
  3. 技术选型之Docker容器引擎
  4. aspx页面事件执行顺序
  5. 文件 在线压缩 技术
  6. 网络编程之---广播和IP多播
  7. createtrackbar函数_【3】OpenCV图像处理模块(10)inRange函数实现阈值化,HSV图像分割...
  8. linux runqueue定义,linux – 了解rt_rq(实时runqueue)内核中数据成员的使用
  9. 崩坏3支持鸿蒙系统没,崩坏3鸿蒙版
  10. 改进后的新String类
  11. 如何在Hadoop2上远程调试MapReduce
  12. Abaqus单位制简述
  13. 【分享】小米MIUI免root一键删除系统内置软件
  14. 科罗拉多大学波尔得分校计算机科学,科罗拉多大学波尔得分校相当于中国什么等级的大学?...
  15. 陕西移动宽带光猫 GM219-S 路由功能分离
  16. mysqlclient和pymysql如何选择?_gevent_waiter的使用
  17. 执行款不足以清偿全部债务时应当如何抵充
  18. android img 文件解包
  19. Problem K. Road Network - ACPC2015(求树的直径 dp)
  20. 细菌(disease)解题报告 - 搜索与回朔

热门文章

  1. 4284A安捷伦Agilent4284A精密lcr表
  2. 配置APC PDU的IP地址
  3. 【数据结构】折半查找及其二叉判定树画法
  4. 《我们不一样团队》第一次作业:团队亮相
  5. 聊天室项目day02
  6. 企业办理icp许可证的重要性,办理流程是什么
  7. 第二证券|千亿巨头飙涨,消费板块掀起涨停潮!
  8. 国内最实用的十六个网站
  9. 利用Kali Linux进行一些简单可操作的攻击
  10. 跟着项目学sql——查询语句优化(一)