在提交任务到集群时,脚本中仅需要改变路径,其余代码不变。尝试在脚本中添加多行命令。多次复制粘贴修改太麻烦了,Python列表实现批量输出需要的命令。
首先查看目录下的文件名
[wangzhiqiang@login1 NoctuidaeOR-15-n]$ ls
AcenOR-129-n.fas CligOR-92-n.fas MimpOR-124-n.fas SexiOR-103-n.fas
AgamOR-109-n.fas CtraOR-119-n.fas NfimOR-104-n.fas TniOR-98-n.fas
AtraOR-106-n.fas HdysOR-100-n.fas NproOR-97-n.fas XxanOR-113-n.fas
BfusOR-44-n.fas MbraOR-109-n.fas PmetOR-104-n.fas
复制文件名,创建Python脚本,创建列表,把文件名粘贴进去,不过要手动加单引号和逗号,虽然麻烦,但是比一个一个复制粘贴文件名方便。代码如下:
#这个脚本可以把文件名列表中的所有元素赋值给命令行中的位置,并打印出完整的命令行
filenames = ['AcenOR-129-n.fas','AtraOR-106-n.fas','CligOR-92-n.fas','HdysOR-100-n.fas','MimpOR-124-n.fas','NproOR-97-n.fas','SexiOR-103-n.fas','XxanOR-113-n.fas','AgamOR-109-n.fas','BfusOR-44-n.fas','CtraOR-119-n.fas','MbraOR-109-n.fas','NfimOR-104-n.fas','PmetOR-104-n.fas','TniOR-98-n.fas']
for filename in filenames:
print(f"diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/{filename} -o ~/blastout/{filename}.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp")
运行后得到15行命令,粘贴到脚本中
#!/bin/bash
#SBATCH --job-name=OR15 ##作业名称
#SBATCH --partition=low ##作业申请的分区名称
#SBATCH --nodes=2 ##作业申请的节点数
#SBATCH --ntasks-per-node=10 ##作业申请的每个节点使用的核心数
#SBATCH --error=%j.err
#SBATCH --output=%j.out
CURDIR=`pwd`
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/AcenOR-129-n.fas -o ~/blastout/AcenOR-129-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/AtraOR-106-n.fas -o ~/blastout/AtraOR-106-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/CligOR-92-n.fas -o ~/blastout/CligOR-92-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/HdysOR-100-n.fas -o ~/blastout/HdysOR-100-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/MimpOR-124-n.fas -o ~/blastout/MimpOR-124-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/NproOR-97-n.fas -o ~/blastout/NproOR-97-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/SexiOR-103-n.fas -o ~/blastout/SexiOR-103-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/XxanOR-113-n.fas -o ~/blastout/XxanOR-113-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/AgamOR-109-n.fas -o ~/blastout/AgamOR-109-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/BfusOR-44-n.fas -o ~/blastout/BfusOR-44-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/CtraOR-119-n.fas -o ~/blastout/CtraOR-119-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/MbraOR-109-n.fas -o ~/blastout/MbraOR-109-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/NfimOR-104-n.fas -o ~/blastout/NfimOR-104-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/PmetOR-104-n.fas -o ~/blastout/PmetOR-104-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsp
diamond blastx -d ~/software/NR/nr -q ~/software/diamond/query/NoctuidaeOR-15-n/TniOR-98-n.fas -o ~/blastout/TniOR-98-n.fas.NR.blasp --sensitive --threads 20 --evalue 0.00001 --max-target-seqs 5 -f 6 qseqid sseqid pident length mismatch gapopen gaps qlen qstart qend slen sstart send evalue score bitscore stitle qcovhsprm -rf $CURDIR/nodelist.$SLURM_JOB_ID
NODES=`scontrol show hostnames $SLURM_JOB_NODELIST`
for i in $NODES
do
echo "$i:$SLURM_NTASKS_PER_NODE" >> $CURDIR/nodelist.$SLURM_JOB_ID
done
echo $SLURM_NPROCS
echo "process will start at : "date
echo "++++++++++++++++++++++++++++++++++++++++"
提交以后可以运行。