在多个文件上运行python QIIME脚本

时间:2013-07-25 09:54:48

标签: python bash ubuntu qiime

我正在尝试制作一个脚本文件,在多个文件上运行python脚本(来自QIIME管道),而不是每次都输入脚本(我有大约150个文件,还有更多文件)。

我使用虚拟机来运行ubuntu环境。

我首先使用gedit

创建文件“splitvm3.sh”

此文件包含:

#!/bin/sh
# this is the script for the VM3 experiment ~/splitvm3.sh

split_libraries.py -m mappingVM3001.txt -b 0 -p -f DNA12115-001-L1-R1-ACGCTCGACA.fna -q DNA12115-001-L1-R1-ACGCTCGACA.qual -o split_library_output001

split_libraries.py -m mappingVM3002.txt -b 0 -p -f DNA12115-002-L1-R1-AGACGCACTC.fna -q DNA12115-002-L1-R1-AGACGCACTC.qual -o split_library_output002

然后我使用了命令:

chmod +x ./splitvm3.sh

从我的文件存储目录。

最后我输入以下命令来运行脚本:

python splitvm3.sh

我收到错误消息:

SyntaxError: invalid syntax

显然它指的是我文件的第4行。

我完全缺乏了解出错的基本知识。我在2周前开始了整个ubuntu / python / QIIME的事情并自己学习了一切。我们将非常感谢每一点帮助!

的Seb

3 个答案:

答案 0 :(得分:0)

我不知道' split_libraries.py'

似乎此脚本会写入错误消息。

应对这个"第4行"并直接在您的终端中调用它。怎么了? 你在哪里得到了' ... txt'文件?

其中一个输入文件的格式是错误还是编码错误?

答案 1 :(得分:0)

问题是您正在尝试使用python解释器运行shell脚本。正如split_libraries.py是python脚本一样,您尝试的脚本实际上是一个shell脚本。

你几乎要做对,你只需执行这样的脚本:

sh splitvm3.sh

或者假设你有一个shebang,你也可以:

./splitvm3.sh

答案 2 :(得分:0)

我知道这是一个老问题,问题可能现在排序,但错误来自文件中的多行。

Qiime脚本可以处理多个文件,只要它们的格式正确即可。

尝试将“splitvm3.sh”文件保存为:

split_libraries.py -m mappingVM3001.txt -b 0 -p -f DNA12115-001-L1-R1-ACGCTCGACA.fna,DNA12115-002-L1-R1-AGACGCACTC.fna -q DNA12115-001-L1-R1-ACGCTCGACA.qual,DNA12115-002-L1-R1-AGACGCACTC.qual -o split_library_output

然后从存储.fna和.qual文件的同一目录运行:

python splitvm3.sh