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



我正试图制作一个脚本文件,在多个文件上运行python脚本(来自QIME管道),而无需每次都键入脚本(我有大约150个文件,还有更多)。

我使用virtualbox来运行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行。

我完全缺乏了解问题所在的基本知识。两周前,我开始了整个ubuntu/python/QIME的工作,并自学了所有内容。每一点点帮助都将不胜感激!

Seb

我不知道'split_libraries.py'怎么办

这个脚本似乎写了错误消息。

复制这个"第4行"并直接在终端中调用它。会发生什么?你从哪里得到的。。。txt'文件?

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

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

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

sh splitvm3.sh

或者,如果你有一个shebang,你也可以只是:

./splitvm3.sh

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

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 

这是一个老问题,但我有实验室成员问过我这件事,所以我想补充一点,我在使用的多个文件上运行QIME脚本时运气很好

find . -name "*.fastq" -exec qiimescriptname.py {} ;
或者,我在bash中运行do循环,例如:

for file in data/*; do usearch32 -fastq_filter "${file}" -fastq_maxee 0.5 -fastq_truncqual 19 -fastq_qmax 45 -fastaout "${file}.fasta"; done;

相关内容

  • 没有找到相关文章

最新更新