摘要

在日常生信分析过程中,分析员或多或少会使用for循环批量处理样品或者分组。这里我简单整理一下自己常用的两种遍历方法。

for循环遍历文件使用方法

方法一

对于在同一个文件内的所有样品,使用 ls 可以遍历该文件夹内的所有文件名。

for i in `ls ./`;
do
echo ${i}
done

可能有时候还有一些脚本文件在里面, 我们可以使用 正则表达式 *来表示文件内的样品名

for i in *_R1.fastq.gz;
do
i={i%_R1.fastq.gz} #获取样品名前缀
echo  ${i}_R1.fastq.gz  ${i}_R2.fastq.gz
done

方法二

如果样品数目不多,可以直接添加样品前缀

for i in 18134R-104-01_S0_L001 18134R-104-02_S0_L001 18134R-104-03_S0_L001;
do
echo  ${i}_R1.fastq.gz  ${i}_R2.fastq.gz
done

或者设置数组,输入样品名

group=(18134R-104-01_S0_L001 18134R-104-02_S0_L001 18134R-104-03_S0_L001)#使用括号,样品名用空格分隔
for i in ${group[@]};
do
echo  ${i}_R1.fastq.gz  ${i}_R2.fastq.gz
done

总结

shell的for循环和R,python还是有些区别,尤其是数组循环。好好利用可以解决批量样品的处理以及差异分组的分析。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐