因为需要统计不同RNA_type对应的clean reads长度,首先需要获得不同RNA对应的gtf文件,转化为bed文件,再从我们真实数据的bam文件中提取出相应的bam,根据提取的bam从包含有clean reads的fastq文件中提取出clean reads,最后统计clean reads的长度,作图。

#mermaid-svg-UxHpnpIynkCrHpOa {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-UxHpnpIynkCrHpOa .error-icon{fill:#552222;}#mermaid-svg-UxHpnpIynkCrHpOa .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-UxHpnpIynkCrHpOa .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-UxHpnpIynkCrHpOa .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-UxHpnpIynkCrHpOa .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-UxHpnpIynkCrHpOa .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-UxHpnpIynkCrHpOa .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-UxHpnpIynkCrHpOa .marker{fill:#333333;stroke:#333333;}#mermaid-svg-UxHpnpIynkCrHpOa .marker.cross{stroke:#333333;}#mermaid-svg-UxHpnpIynkCrHpOa svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-UxHpnpIynkCrHpOa .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-UxHpnpIynkCrHpOa .cluster-label text{fill:#333;}#mermaid-svg-UxHpnpIynkCrHpOa .cluster-label span{color:#333;}#mermaid-svg-UxHpnpIynkCrHpOa .label text,#mermaid-svg-UxHpnpIynkCrHpOa span{fill:#333;color:#333;}#mermaid-svg-UxHpnpIynkCrHpOa .node rect,#mermaid-svg-UxHpnpIynkCrHpOa .node circle,#mermaid-svg-UxHpnpIynkCrHpOa .node ellipse,#mermaid-svg-UxHpnpIynkCrHpOa .node polygon,#mermaid-svg-UxHpnpIynkCrHpOa .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-UxHpnpIynkCrHpOa .node .label{text-align:center;}#mermaid-svg-UxHpnpIynkCrHpOa .node.clickable{cursor:pointer;}#mermaid-svg-UxHpnpIynkCrHpOa .arrowheadPath{fill:#333333;}#mermaid-svg-UxHpnpIynkCrHpOa .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-UxHpnpIynkCrHpOa .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-UxHpnpIynkCrHpOa .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-UxHpnpIynkCrHpOa .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-UxHpnpIynkCrHpOa .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-UxHpnpIynkCrHpOa .cluster text{fill:#333;}#mermaid-svg-UxHpnpIynkCrHpOa .cluster span{color:#333;}#mermaid-svg-UxHpnpIynkCrHpOa div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-UxHpnpIynkCrHpOa :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}

gtf
bed
样本bam
样本fq

PS:不知道有什么巧妙的办法能够快速统计的,欢迎大佬多多交流。

有一种方法俺找到咧,samtools stats,里面LR、FLR、LRL都可以根据bam文件统计,very方便。

1. 生成bed文件

1.1 生成gtf文件

  1. 获取RNA type和gene name的对应关系,这里是根据ensembl网站上下载的数据先得到gene name对应的RNA类型。这里因为工作需要大概分成了十三种,可以得十三个文件,每个文件里面都是对应RNA的gene name。
  2. 使用grep命令遍历文件中的gene name,在gtf文件中查找相应的内容。注意:这里需要使用参数-w来进行精确匹配,不然会得到许多包含该字符串的内容(说多了都是泪啊/(ㄒoㄒ)/~~)

1.2gtf转化为bed文件

在这里,我们了解一下gtf文件和bed文件有什么特点
NGS基础 - GTF/GFF文件格式解读和转换
言归正传,能够将gtf文件转化为bed的文件有很多,上面那篇推文中说到的Cufflink可以选择,在这里我使用的是bedops中gtf2bed这个命令。

2. bed提取真实数据bam

samtools view -hb input.bam -L 制作的.bed  > output.bam

经过此操作便可以得到真实样本中不同RNA种类所对应的bam文件。
因为这里我们需要统计的是clean reads的长度,并不是fragment的长度,因此有些现成的工具我们还不能使用。

3. bam转化fastq

根据我们生成的bam在clean reads的fastq文件中将不同类型RNA对应的fq提取出来。

samtools view input.bam | awk '{print $1}' | sort | uniq > output_name.list

获取相应的reads序号。

seqtk subseq clean_reads.1.fq.gz output_name.list > output.fq

这里我在提取的时候报错,说什么格式不对,我就在每一行后面添了/1。

sed -i 's/$/\/1/g' *list

之后就可以提取序列,得到不同RNA对应的fq文件。

4. 统计fq文件中reads长度

有工具可以统计fq文件中reads的长度(忘记了,命令里有个fax…啥的,之后想起来再补上)。
但我不理解为什么我当时统计出来什么都没有,没办法自己写咯。

for rnatype in lncRNA miRNA miscRNA Mt_tRNA Mt_rRNA other protein_coding pseudo rRNA scRNA snoRNA snRNA tRNA
do
awk 'NR>1 && (NR-2)%4==0{print length}' $rnatype.fq >> ${rnatype}_length.txt
done

拆分bam统计clean reads长度相关推荐

  1. bamtools拆分bam文件

    bamtools拆分bam文件 sRNA使用shortstack比对到基因组上的比对文件是合并的bam文件,需要按照样品将其拆分,使用bamtools进行拆分: bamtools split -in ...

  2. python 定义list长度_python中list列表的高级函数 python如何统计列表的长度

    在python的函数中,如何将列表list的一部分作为函比如定义个函数,想实现的功能就是将列表a的后半部分(['c','d'])传入后面paraTestList(a[2:])中,括号里面的a[2:]命 ...

  3. 准时下班系列_Excel合集之第6集—如何拆分和统计单据金额

    Hi,各位同学好!我是吴明课堂的答疑老师之一陈婉.祝大家一切顺利,平安快乐! 上周有个Excel学员给我截了如下一张图: 老板要求她把公司收到的所有单据录入到Excel中整理好,并核对金额准确性. 她 ...

  4. Allegro如何统计包含过孔长度的网络长度操作指导

    Allegro如何统计包含过孔长度的网络长度操作指导 当需要统计网络长度的时候,可以通过element选择nets看到网络的长度,但是当网络换层了,并且需要统计到过孔的长度,类似下图 Allegro可 ...

  5. PTA c语言 统计单词的长度

    本题目要求编写程序,输入一行字符,统计每个单词的长度.所谓"单词"是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个. 输入格式: 输入给出一行字符. 输出格式: 在 ...

  6. c语言怎样统计数组的长度,C语言指针难吗?纸老虎而已,纯干货讲解

    原标题:C语言指针难吗?纸老虎而已,纯干货讲解 指针对于C来说太重要.然而,想要全面理解指针,除了要对C语言有熟练的掌握外,还要有计算机硬件以及操作系统等方方面面的基本知识.所以本文尽可能的通过一篇文 ...

  7. vue 统计中英文字符串长度_JS判断字符串长度的5个方法(区分中文和英文)

    目的:计算字符串长度(英文占1个字符,中文汉字占2个字符) 方法一: String.prototype.gblen = function() { var len = 0; for (var i=0; ...

  8. vue 统计中英文字符串长度_Ant Design Vue 添加区分中英文的长度校验功能

    原本的maxLength属性是不区分全角/半角字符的,对于一些可中英文混合输入地方而言不太合适.所以想找一个可区分全角/半角字符的校验,而且要保证一定的可重用性. 百度搜了一圈都没找到合适的现成的解决 ...

  9. C语言:统计单词的长度

    输入一行文本,其中以空格分隔为若干个单词,以.结束. 输出每个单词的长度. 注意,行中可能出现连续的空格:最后的.不计算在内. 输入格式: 输入一行文本,以空格分隔为若干个单词,以.结束. 输出格式: ...

最新文章

  1. 范登读书解读《亲密关系》(婚姻、爱情) 笔记
  2. 德勤预测2018年9大科技趋势:AR走进普通用户,直播仍然是王道
  3. HRFormer 多分辨率Transformer 参数骤降,性能更强
  4. svn中出现各种感叹号说明
  5. First Post
  6. java ftp复制文件_如何使用Java将FTP服务器上的文件复制到同一服务器上的目录中?...
  7. 【Oracle】Redhat6.5环境下安装oracle11G R2
  8. Tomcat虚拟目录的配置
  9. JDBC的SQL注入漏洞
  10. Cognos值提示设置小技巧
  11. 40岁了,突然公司黄了,怎么办?
  12. 第四十二节,configparser特定格式的ini配置文件模块
  13. access() 函数 c++
  14. linux mount挂载
  15. Hermite多项式
  16. Java 方法重载简单小例子
  17. 6.Celeste Headlee: 10 ways to have a better conversation | TED Talk
  18. Spring Security认证_内存认证
  19. [转载] 晓说——第25期:看美国系列之“两极分化的黑人”
  20. SEH X64(2)

热门文章

  1. trunc函数的用法
  2. Substance Designer制作材质导入Unity
  3. Unity KeyCode
  4. 易周金融分析 | Q2手机银行活跃用户环比增长2.17%
  5. Hive之explode()函数和posexplode()函数和lateral view函数
  6. css3运动后留下轨迹尾巴_巧妙利用CSS3实现太阳系行星公转运动轨迹
  7. 帝国cms字母导航功能制作教程
  8. vue圆环进度条_vue圆环形进度条组件
  9. 浏览器-在网页中使用自定义截图功能
  10. Sql Server2019安装 等待数据库引擎恢复句柄失败