bash脚本计算转录本长度
转录本长度,在计算基因表达量TPM等需要,本脚本从gtf文件提取生成转录本长度文件。
1. 找出所有的转录本
# 找出所有的转录本
cat hg38.refGene.gtf|awk -F '\t' '{if($3=="transcript") print $0}'|head
2. 找出某一转录本的所有外显子
# 某一转录本的所有外显子
cat hg38.refGene.gtf|grep "\"NM_001476\""|awk '{if($3=="exon") print $0}' # 匹配"NM_001476"
3. 计算某一转录本所有外显子之和
# 计算某一转录本的长度(所有exon之和)
cat hg38.refGene.gtf|grep "\"NM_001476\""|awk '{if($3=="exon") print $0}'|awk '{print $5,$4,$5-$4+1}'|awk '{sum+=$3};END {print "NM_001476\t" sum}'
4. 找出某一基因的所有转录本
# 找出某一基因的所有转录本,如BRAF
cat hg38.refGene.gtf|awk -F '\t' '{if($3=="transcript") print $0}'|grep BRAF
5. 列出所有转录本的编码区长度(外显子之和)
## 列出转录本所有exon之和
##分两步
cat hg38.refGene.gtf|awk -F '\t' '{if($3=="transcript") print $9}'|awk '{print $4}' > transtript_id.txtfor id in `cat transtript_id.txt|head -2`; do cat hg38.refGene.gtf|grep $id|awk '{if($3=="exon") print $0}'|awk '{print $5,$4,$5-$4+1}'|awk -v name=${id:1:-2} '{sum+=$3};END {print name, "\t", sum}';done# 注意-v参数 ${id:1:-2} 去掉前面一个和后面两个字符## 一行代码搞定
for id in `cat hg38.refGene.gtf|awk -F '\t' '{if($3=="transcript") print $9}'|awk '{print $4}'`; do cat hg38.refGene.gtf|grep $id|awk '{if($3=="exon") print $0}'|awk '{print $5,$4,$5-$4+1}'|awk -v name=${id:1:-2} '{sum+=$3};END {print name, "\t", sum}';done >cds_len.txt
6. 某一转录本mRNA长度
cat hg38.refGene.gtf|grep "\"NM_001476\""|awk '{if($3=="exon"||$3=="5UTR"||$3=="3UTR") print $0}'|awk '{print $5,$4,$5-$4+1}'|awk '{sum+=$3};END {print "NM_001476\t" sum}'
7. 列出所有转录本mRNA长度
for id in `cat hg38.refGene.gtf|awk -F '\t' '{if($3=="transcript") print $9}'|awk '{print $4}'`; do cat hg38.refGene.gtf|grep $id|awk '{if($3=="exon" || $3=="5UTR" || $3=="3UTR") print $0}'|awk '{print $5,$4,$5-$4+1}'|awk -v name=${id:1:-2} '{sum+=$3};END {print name, "\t", sum}';done
注:某一转录本加工成成熟的mRNA,长度应该为 5UTR+CDS+3UTR
bash脚本计算转录本长度相关推荐
- Shell脚本中计算字符串长度的5种方法
这篇文章主要介绍了Shell脚本中计算字符串长度的5种方法,来自于个人Shell脚本长期的开发经验,需要的朋友可以参考下 有时在Linux操作系统中需要计算某个字符串的长度,通过查询资料整理了下目前S ...
- BAT批处理脚本案例--计算字符串长度
BAT批处理脚本没有提供字符串长度计算函数,为此需要自定义实现,本例将涉及批处理脚本下述几个关键知识点: 1)call 调用,调用结果如何赋值给变量 2)字符串截取 3)goto使用 4)变量延时读取 ...
- bash脚本编程之一 变量、变量类型等
变量的内容 1.变量命名: 1.只能包含字母.数字和下划线,并且不能以数字开头, 2.不应该跟系统中已有的环境变量重名 3.最好能见名知意 2.变量赋值: 设置变 ...
- bash脚本之case语句应用,while、until和select循环应用及其示例
bash脚本编程: case选择分支结构: case: case 词 in [模式 [| 模式]...) 命令 ;;]... esac 在脚本中使用case的结构: case ${VAR_NAME} ...
- bash脚本编程之条件判断、条件测试
脚本编程: 编程面向过程有如下几种执行方式 顺序执行 选择执行: 如 if, case 循环执行: 如 for, while, until bash的变量类型: 本地变量 set VAR_NAME ...
- 生产力工具:shell 与 Bash 脚本
生产力工具:shell 与 Bash 脚本 作者:吴甜甜 个人博客网站: wutiantian.github.io 微信公众号: 吴甜甜的博客 注意:本文只是我个人总结的学习笔记,不适合0基础人士观看 ...
- 通过shell/bash脚本使用ffmpeg批量去除视频固定片头和片尾(Cygwin环境)
通过shell/bash脚本使用ffmpeg批量去除视频固定片头和片尾(Cygwin环境) 任务需求: 基本情况: 技能需求: 操作流程概括: 运行通过的shell脚本: 小结 任务需求: 对一批视频 ...
- bash脚本编程之for循环
bash脚本编程: shell: 交互式接口:编程环境:能够提供一些内部命令,并且能通过PATH环境变量找到外部命令:把命令提交给内核启动为进程:默认字符型: 条件测试:$? 命令的状态结果 真( 0 ...
- 十分钟完成Bash 脚本进阶!列举Bash经典用法及其案例
前言:在linux中,Bash脚本是很基础的知识,大家可能一听脚本感觉很高大上,像小编当初刚开始学一样,感觉会写脚本的都是大神.虽然复杂的脚本是很烧脑,但是,当我们熟练的掌握了其中的用法与技巧,再多加 ...
最新文章
- HTML添加上传图片并进行预览
- php自动装载编程,php 类自动载入的方法
- GitBook关联GitHub
- py-faster-rcnn源码解读系列
- C/C++变量命名规则,个人习惯总结
- 批处理判断文件夹是否存在
- 小米tts语音引擎下载_TTS语音模块:XFS5152CE语音合成模块详解
- 《HeadFirst Python》第一章学习笔记
- 【Linux学习】常用指令-sortunique
- 南开大学c语言试题,南开大学二级C语言试题库,共71页
- java循环的内部改变循环变量的值_java在for循环中怎样修改参数值?
- JavaScript高级程序设计学习(二)之基本概念
- pytorch之---max()函数
- rstudio 修改代码间距_如何在RStudio里修改R脚本的编码方式
- 计算机组成原理白中英第五版之指令系统
- [转载]Wifi OKC 验证
- 依分布收敛、依概率收敛、均方收敛、几乎处处收敛
- 1.8万字详解实时数仓建设方案
- xp下安装什么linux系统版本,windows xp sp3下怎么安装linux系统?
- 惊!成年蚂蚁竟然返老还童!原因居然是。。。。