比如我们做转录组数据分析流程的脚本开发,因为是流程所以涉及到多个选择, 比如物种,可以是人类、小鼠、大鼠。
再比如流程里面的步骤选择,可以是:
也可以是分析策略选择,比如:
我们的转录组数据分析流程的脚本当然并不能是每次都对每个项目运行全部的环节的每个步骤,通常情况下就是选择性的跑几个步骤即可。有一些小伙伴也许会把流程里面的每个步骤拆分成为多个脚本,这样就绕过选择了。但如果全部是拆分,我们脚本管理起来难度很大。
比如我们针对人类、小鼠、大鼠这样的3个物种就需要3套脚本,但是其实它们就最开始的参考基因组和gtf文件不一样,后续的操作并没有本质上的区别,完全可以把它写成一个参数即可:
举例如下所示:
case $species in
mm10)
echo "The reference you choose is mm10"
star_index="$HOME/reference/index/star/mm10"
gtf="$HOME/reference/gtf/gencode/gencode.vM12.annotation.gtf"
;;
hg19)
echo "The reference you choose is hg19"
star_index="$HOME/reference/index/star/hg19"
gtf="$HOME/reference/gtf/gencode/gencode.v25lift37.annotation.gtf"
;;
hg38)
echo "The reference you choose is hg38"
gtf='$HOME/reference/gtf/gencode/gencode.v25.annotation.gtf'
#star_index="$HOME/reference/index/star/hg38"
star_index='$HOME/biosoft/starFusion/db/GRCh38_gencode_v26_CTAT_lib_Nov012017/ctat_genome_lib_build_dir/ref_genome.fa.star.idx'
;;
*)
echo "Warning: you have to choose hg19/hg38/mm10"
exit 1
;;
esac
其实我仅仅是给出来了 hg19/hg38/mm10 这样的3个选项而已。
再怎么强调生物信息学数据分析学习过程的计算机基础知识的打磨都不为过,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理:
Linux的6个阶段也跨越过去 ,一般来说,每个阶段都需要至少一天以上的学习: