前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何根据class_code筛选转录本?

如何根据class_code筛选转录本?

作者头像
用户7010445
发布2020-07-22 17:34:14
2K0
发布2020-07-22 17:34:14
举报
问题描述

链特异文库鉴定长链非编码RNA(lncRNA)的基本步骤是

  • hisat2将原始测序数据比对到参考基因组
  • samtools获得排序的bam文件
  • stringtie每个样本分别组装得到转录本,获得是一个gtf文件
代码语言:javascript
复制
stringtie -p 12 --rf -o transcripts.gtf sorted.bam
  • gffcompare合并所有样本的gtf文件
代码语言:javascript
复制
ls *.gtf > list.merged.txt
~/Biotools/gffcompare/gffcompare -r reference.gtf -i list.merged.txt -o merged

得到一个 merged.combined.gtf这个文件里给每一个转录本分配了一个class_code用来表示转录本相对于参考基因组的位置

以上图片来源于论文 GFF Utilities: GffRead and GffCompare

长链非编码RNA通常是选择class_code为u/x/i,比如论文 Global identification of Arabidopsis lncRNAs revealsthe regulation of MAF4 by a natural antisense RNA 中就提到 only transcripts with TAIR10 annotation [Cufflinks class codes ‘u’ (intergenic transcripts),’x’ (Exonic overlap with reference on the opposite strand),’i’ (transcripts entirely within intron) were retained.

那么问题就来了,如何利用 merged.combined.gtf 这个文件获得 class_code 为 u、x和i的转录本的gtf文件呢

找到了一个办法,python中有一个模块 pyGTF,github链接是https://github.com/chengcz/pyGTF

直接使用pip安装

代码语言:javascript
复制
pip install pyGTF

可以解析gft格式的注释文件

利用这个模块来写一个简单的脚本

代码语言:javascript
复制
import sys
from pyGTF import Transcript
from pyGTF import GTFReader

in_gft = sys.argv[1]
class_code = sys.argv[2]
out_gtf = sys.argv[3]

fw = open(out_gtf,'w')

with GTFReader(in_gtf,flag_stream=True) as fi:
 for i in fi:
  if i._attri['class_code'] == class_code:
   i.to_gtf(fw)
   
fw.close()

使用方法是

代码语言:javascript
复制
python 01.py in.gtf i out.gtf

####今天学到的另外一个知识点: samtools统计fasta文件序列长度,根据序列名提取序列

参考

https://www.cnblogs.com/xudongliang/p/5200655.html

使用命令

代码语言:javascript
复制
samtools faidx input.fasta

会生成一个input.fasta.fai的文件,文件的内容总共有5列 第一列是序列名,第二列是序列长度,第四列是每行多少个碱基

根据序列名提取序列 这里好像只能提取单条序列

代码语言:javascript
复制
samtools faidx input.fasta TCONS_00000018 > TCONS_00000018.fa

还可以加上指定的位置

代码语言:javascript
复制
samtools faidx input.fasta TCONS_00000018:1-10
>TCONS_00000018:1-10
TGGGCGAACG
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小明的数据分析笔记本 微信公众号,前往查看

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

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

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