0

Like title said. I want to submit multiple tasks at the same time so I use sbatch commond. first I use for loop + sbatch to multiple run, and then in each for loop I need to use another for loop. But error happened in the second for loop.

Here is part of my code:

enzyme="FRC"
for sample in `ls /gpfs/data/ruggleslab/home/chenz05/lama/metagenomics/diamond_output/MG_${enzyme}` ; do  sample_name=$(basename $sample .fastq.gz_${enzyme}_diamond.output);  mkdir output/$sample_name;   sbatch --mem=10GB --time=20:00:00 --wrap="
 ##input: diamond output
 tail -n +4 /gpfs/data/ruggleslab/home/chenz05/lama/metagenomics/diamond_output/MG_${enzyme}/$sample  > output/${sample_name}/trimmed_diamond.output
 cut -f 1 output/${sample_name}/trimmed_diamond.output  > output/${sample_name}/1_fastq.header.txt
 cut -f 2 output/${sample_name}/trimmed_diamond.output  > output/${sample_name}/2_accession.txt
 sed -i "s/|.*$//g" output/${sample_name}/2_accession.txt

 ##mapping accesion to taxid
 for i in `cat output/${sample_name}/2_accession.txt` 
  do 
  grep $i accession2taxid.txt || echo -e "${i}\tnone" 
  done > output/${sample_name}/mapped_taxid.txt
 cut -f 2 output/${sample_name}/mapped_taxid.txt > output/${sample_name}/3_mapped_taxid.txt"
done

error kept saying: "cat: output/NYU030_S37/2_accession.txt: No such file or directory" for each loop(NYU030_37 is replaced with corresponding sample name) But the file was successfully created.

Any help will be appreciated.

0 Answers0