我是生物信息学的新手。我试图找到200多个基因组中的蛋白质列表(我的查询)。我想分别得到每个基因组的结果。我试着写一个bash脚本,但它不起作用。
我希望它一次只能运行2个tblastn实例。此代码执行超过200个tblastn实例。 database_names.txt包含具有位置的数据库的名称。
#!/bin/bash
while read line
do
EXT="_results.txt"
OUTPUT="$line$EXT"
tblastn -query tf_total.fasta -db $line -out $OUTPUT -outfmt 10 &
done < database_names.txt
以下是database_names.txt
的前3行genome1/genome1_blast_db_v1
genome2/genome2_blast_db_v1
genome3/genome3_blast_db_v1
以下是错误消息
Command line argument error: Argument "out". File is not accessible:
Error: (CArgException::eSynopsis) Too many positional arguments (1), the offending value: _results.csv
Error: (CArgException::eSynopsis) Application's initialization failed
答案 0 :(得分:1)
这很可能是因为database_names.txt
中有空行。
在空行中,您最终会运行
tblastn -query tf_total.fasta -db -out _result.csv -outfmt 10
我确定你会发现同样的错误信息。
要缓解它,请跳过空白行并引用变量:
#!/bin/bash
while read line
do
[[ -z $line ]] && continue
EXT="_results.txt"
OUTPUT="$line$EXT"
tblastn -query tf_total.fasta -db "$line" -out "$OUTPUT" -outfmt 10
done < database_names.txt