使用Python实现Linux命令的批量执行

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_value
           path2 = '/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))

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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值