prodigal用于预测原核生物cds,平常会用来预测核苷酸序列的cds并且翻译成氨基酸序列,但是需要一条一条的执行,量大的话很麻烦,需要一直修改命令。
该软件使用时的命令格式为

prodigal -i /your/inputpath/1234_genomic.fasta -g 11  -a /your/outputpath/1234_prodigal_protein.faa
-i为输入的核苷酸序列文件,-g为密码子表(默认为11),-a为输出的氨基酸序列文件。这里我的习惯是序列文件名1234保持不变,用genomic代表基因组核苷酸序列,用prodigal_protein代表是使用prodigal预测翻译的氨基酸序列。批量执行的时候就需要不断的修改“1234”的内容。

为了进步一简化命令,希望只使用一个用户参数即可执行代码。如:

./prodigal.py -i input_folder #只输出文件夹名称作为用户参数

下面是代码,初学Python,这几行折腾了一下午。

#!/usr/bin/python
#20200829 By fujch Mail fujch@foxmail.com
#This code is for processing prodigal with multiple species
import os
import getopt
import sys
opts,args = getopt.getopt(sys.argv[1:],'-i:',['inputpath='])
for opt_name,opt_value in opts:if opt_name in ('-i','--inputpath'):path1 = '/home/prodigal/input/'+opt_valuepath2 = '/home/prodigal/output/'+opt_value
if not os.path.exists(path2):os.makedirs(path2)#自动创建输出文件夹
files = os.listdir(path1)
for file in files:ifile = os.path.splitext(file)[0]#提取文件名且不带后缀名ifile_str = str(ifile)ofile_str = ifile_str[0:-8]+"_prodigal_protein.faa"os.system("prodigal -i %s/%s -g 11 -a %s/%s" %(path1,file,path2,ofile_str))

代码可能有啰嗦的地方,救急能用就行,哈哈。

可以根据自己的需求修改代码适用不同的软件。

使用Python实现Linux命令的批量执行相关推荐

  1. python 调用linux命令-四种执行python系统命令的方法

    Python中执行系统命令常见的几种方法有 注意:以下实例代码在Python3.5下运行通过. 一.os.system方法 os.system(cmd) 在子终端运行系统命令,可以获取命令执行后的返回 ...

  2. 使用sshpass在Linux服务器上批量执行脚本

    用途描述: 如果Linux服务器未配置免密登录,每次使用ssh执行远程脚本时,都需要输入密码. 使用sshpass命令可以在多个Linux服务器上批量执行脚本,操作步骤如下: 1.安装sshpass ...

  3. python实现linux命令输出两列_Python实现Linux命令xxd -i功能

    def Xxdi(): #解析命令行选项及参数 ([base, cols, strip], [inFile, outFile]) = ParseOption() import os if os.pat ...

  4. linux多个sh 同时执行命令,sh, 批量执行Linux命令

    step 1:创建一个sh批处理命令文件 # vim /etc/batch_ssh/install_redis.sh step 2:给当前用户,能够执行sh脚本权限 # chmod install_r ...

  5. python 调用linux命令-Python 执行Linux系统命令的N种方法

    前言: 很多时候我们会用到python去调用外部工具/命令去实现某种功能. I. os https://docs.python.org/2/library/os.html os.system 执行流程 ...

  6. python 调用linux命令-Python执行Linux系统命令的4种方法

    (1) os.system 仅仅在一个子终端运行系统命令,而不能获取命令执行后的返回信息 复制代码代码如下: system(command) -> exit_status Execute the ...

  7. Linux终端如何批量执行多条命令?

    首先,建立后缀格式为.sh的文件,比如我要批量执行清除进程残留的共享内存.队列以及信号的命令.权且命名文件为clear.sh,文件如下: 其次,文件中写入如下命令,注意不要忘记分号,分号可以保证前面命 ...

  8. python 调用linux命令-Python调用Linux bash命令

    import subprocess as sup # 以下注释很多(为了自己以后不忘), 如果只是想在python中执行Linux命令, 看前5行就够了 # 3.5版本之后官方推荐使用sup.run( ...

  9. Linux命令行上执行操作,不退回命令行的解决方法

    问题描述: 如果你现在登录Centos执行了某个操作,但是操作一直占用命令行,命令行显示的也都是这个命令相关的操作,我想做其它事情 ,该怎么办呢 ? 解决方法: 根据<Linux命令行与Shel ...

最新文章

  1. php imagemagick 漏洞,ImageMagick漏洞EXP简易生成脚本
  2. DataGridView控件60招(一)
  3. linux下更改MySQL数据库存储目录
  4. jenkins调整jdk版本不生效的解决办法
  5. vue axios POST请求中参数以form data和request payload形式的原因
  6. django rest framework 过滤 lim分页
  7. NOIP模拟测试38「金·斯诺·赤」
  8. [转载] java重写toString()方法
  9. oracle xp安装详细步骤
  10. ps42k20服务器出现问题_天高客户端访问软件出现“服务器操作系统原因”问题解决方法...
  11. NekoHTML 学习笔记
  12. 微信开放平台接入支付后不显示头像
  13. Whitelabel Error Page 的原因
  14. 算法题思路总结和leecode继续历程
  15. matlab添加旁白,在MATLAB中向已知信号添加高斯白噪声 (转载)
  16. 推荐书籍:WebRTC技术详解 从0到1构建多人视频会议系统
  17. 万里长征之测试第一步
  18. airdrop无法点_AirDrop无法正常工作? 这是解决方法
  19. 【瞎搞】 ZOJ 1546 Fillword
  20. Redis相关命令及使用场景介绍

热门文章

  1. 基于单片机的汽车灯光设计
  2. 1dB压缩点(1dB Compression Point (P1dB Point))
  3. 2012第50周星期一自制力网摘
  4. 东华大学2020考研计算机复试准备上机题解析答案_基础篇(1-29)
  5. 十一届蓝桥模拟赛 元素之间最大的元素距离 JAVA
  6. LZW字典编码(文末附python实现代码)
  7. vue2.0怎么渲染html,vue采坑之——vue里面渲染html 并添加样式
  8. Command “python setup.py egg_info“ failed with error code 1 in /tmp/pip-buil
  9. 内网安全,站在十年的路口
  10. 总结一波 Redis 面试题,收藏起来!