我正在尝试使用 bash 脚本循环遍历目录中的文件,但它似乎不起作用。 我正在循环访问以
_1.fastq.gz
和 _2.fastq.gz
结尾的文件
这是脚本
fastq_dir="../script"
for sampleID in "${fastq_dir}"/*.fastq.gz
do
r1=$(find "$sampleID" -name "*_1.fastq.gz")
r2=$(find "$sampleID" -name "*_2.fastq.gz")
sample_name=$(basename "$samleID")
salmon quant -i salmon_index -l A -1 "$r1" -2 "$r2" --validateMappings -o salmon_quant/"$sample_name"/
done
该命令可能由于某种原因无法找到/查看某些文件。我期望鲑鱼定量函数循环遍历
fastq
文件并将输出发送到与 fastq
文件名对应的新目录。
您的
for
循环正在为每个 $sampleID
文件设置 .fastq.gz
,每次在 _1
和 _2
之间交替。您不希望每个文件都处于单独的迭代中。
更改循环以匹配
_1.fastq.gz
。然后将 _1
替换为 _2
以获得其他文件名。并去掉后缀,得到常用的样本名称。
for r1 in "${fastq_dir}"/*_1.fastq.gz
do
r2=${r1/_1/_2}
sample_name=${r1%_1.fastq.gz}
salmon quant -i salmon_index -l A -1 "$r1" -2 "$r2" --validateMappings -o salmon_quant/"$sample_name"/
done