前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >在shell脚本里面给用户多个选择

在shell脚本里面给用户多个选择

作者头像
生信技能树
发布2022-01-10 08:40:54
7630
发布2022-01-10 08:40:54
举报
文章被收录于专栏:生信技能树

比如我们做转录组数据分析流程的脚本开发,因为是流程所以涉及到多个选择, 比如物种,可以是人类、小鼠、大鼠。

再比如流程里面的步骤选择,可以是:

  • 质量控制
  • 比对
  • 定量,

也可以是分析策略选择,比如:

  • 常规定量
  • 可变剪切
  • 融合基因
  • 找变异
  • alternative polyadenylation (APA) 流程
  • RNA编辑

我们的转录组数据分析流程的脚本当然并不能是每次都对每个项目运行全部的环节的每个步骤,通常情况下就是选择性的跑几个步骤即可。有一些小伙伴也许会把流程里面的每个步骤拆分成为多个脚本,这样就绕过选择了。但如果全部是拆分,我们脚本管理起来难度很大。

比如我们针对人类、小鼠、大鼠这样的3个物种就需要3套脚本,但是其实它们就最开始的参考基因组和gtf文件不一样,后续的操作并没有本质上的区别,完全可以把它写成一个参数即可:

举例如下所示:

代码语言:javascript
复制
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个阶段也跨越过去 ,一般来说,每个阶段都需要至少一天以上的学习:

  • 第1阶段:把linux系统玩得跟Windows或者MacOS那样的桌面操作系统一样顺畅,主要目的就是去可视化,熟悉黑白命令行界面,可以仅仅以键盘交互模式完成常规文件夹及文件管理工作。
  • 第2阶段:做到文本文件的表格化处理,类似于以键盘交互模式完成Excel表格的排序、计数、筛选、去冗余、查找、切割、替换、合并、补齐,熟练掌握awk、sed、grep这文本处理的三驾马车。
  • 第3阶段:元字符,通配符及shell中的各种扩展,从此linux操作不再神秘!
  • 第4阶段:高级目录管理:软硬链接,绝对路径和相对路径,环境变量。
  • 第5阶段:任务提交及批处理,脚本编写解放你的双手。
  • 第6阶段:软件安装及conda管理,让linux系统实用性放飞自我。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档