我有一个脚本,它获取一些基因数据并通过数十个程序运行它,以尝试提取尽可能多的信息并生成一些漂亮的报告。但是,虽然它在 Windows 下似乎运行良好,但我无法让它在 Ubuntu 12.10 上运行。
它想要使用tigr-glimmer
软件包中的一些软件,long-orfs
,extract
等(见下文),并且似乎提供的脚本希望它们是单独的二进制文件。但是,安装后,它们实际上似乎是二进制文件的“子程序”(?) ,需要以或类似的名称tigr-glimmer
运行。我尝试创建一个别名以转换为,但似乎没有效果。 tigr-glimmer long-orfs
long-orfs
tigr-glimmer long-orfs
我能否以某种方式将两者联系起来,或者我应该如何解决这个问题? Python 脚本对我来说是开放的,但我宁愿避免打开这个麻烦的盒子。它似乎扫描了环境路径中的一组给定字符串(例如long-orfs
...)以寻找可执行文件,而我的别名显然不符合条件。如果我改变它的工作原理,那么我需要更改散布在几个文件中的数十个调用...
我几乎没有 Linux 经验,所以我对如何做到这一点的看法几乎肯定是错误的。请纠正我 :P
ubuntu@domU:~$ python run_antismash.py --clusterblast P115_92.gb
ERROR: Failed to locate executable for 'long-orfs'
ERROR: Failed to locate executable for 'extract'
ERROR: Failed to locate executable for 'build-icm'
ERROR: Failed to locate executable for 'glimmer3'
ERROR: Not all prerequisites met
ubuntu@domU:~$ alias long-orfs
alias long-orfs='tigr-glimmer long-orfs'
ubuntu@domU:~$ long-orfs
Starting at Fri Mar 15 22:08:17 2013
USAGE: long-orfs [options] <sequence-file> <output-file>
Read DNA sequence [...]
答案1
对于我的特殊情况tigr-glimmer
,各个子命令实际上是中的单个二进制文件/usr/lib/tigr-glimmer
,因此将其添加到PATH
就足够了。
更一般地,制作一个伪二进制 shell 脚本也是可行的,例如
长ORF
#!/bin/bash
tigr-glimmer long-orfs "$@"
将其所在的目录添加到PATH
环境变量中,或者直接将其转储到/usr/bin
已经存在的目录中PATH
。
答案2
您应该检查 bitbucket 存储库的下载页面。有一个不错的脚本 ( install_ubuntu.sh
),可用于在 ubuntu 上安装并为 antismash 设置包装器脚本。