怎么根据class_code筛选转录本

发布时间:2021-07-10 14:34:52 作者:chen
来源:亿速云 阅读:663
# 怎么根据class_code筛选转录本

## 摘要
在RNA-seq数据分析中,根据class_code筛选转录本是注释和差异分析的关键步骤。本文将详细介绍class_code的含义、分类标准、筛选方法及实际应用场景,帮助研究者准确识别新转录本、可变剪接事件和基因融合现象。

---

## 1. class_code基础概念

### 1.1 什么是class_code
class_code是Cufflinks/StringTie等转录本组装工具生成的分类编码,用于描述新组装转录本与参考注释的比对关系。该编码系统包含12个主要类别(A-Z,排除B/E/H/I/J),每个字母代表特定的转录本重叠关系。

### 1.2 常见工具生成来源
- **Cuffcompare**:Cufflinks套件中的比对工具
- **StringTie**:通过`--merge`模式与参考注释比较
- **GFFCompare**:独立版比对工具(与Cuffcompare兼容)

---

## 2. class_code分类详解

| 代码 | 含义 | 生物学意义 |
|------|------|------------|
| = | 完全匹配 | 与参考转录本外显子结构完全一致 |
| c | 包含于参考 | 新转录本是参考转录本的子集 |
| j | 潜在新型异构体 | 与至少一个参考转录本共享剪接位点 |
| o | 外显子重叠 | 与其他基因或链的转录本重叠 |
| u | 未知链 | 反义链或未注释链的转录本 |
| x | 反义重叠 | 与参考基因外显子反义重叠 |
| i | 内含子区域 | 完全位于参考基因内含子区 |
| p | 可能的聚合酶通读 | 3'端延伸超过参考转录本 |
| s | 内含子保留 | 保留参考注释中不存在的内含子 |
| . | 新型基因间区 | 完全位于已知基因间隔区 |

> **注**:代码按优先级排序,每个转录本仅分配一个最高优先级代码

---

## 3. 筛选方法与流程

### 3.1 数据准备
需要两个输入文件:
1. 转录本GTF文件(`assembled.gtf`)
2. 参考注释GTF文件(`reference.gtf`)

```bash
# 使用Cuffcompare生成比对结果
cuffcompare -r reference.gtf -o output assembled.gtf

# 生成文件包含:
# output.combined.gtf
# output.tracking
# output.stats

3.2 筛选关键字段

.combined.gtf文件中重点关注: - class_code:分类代码 - cmp_ref:匹配的参考转录本ID - tss_id:转录起始位点簇ID

3.3 常用筛选命令

3.3.1 提取特定类型转录本

# 提取所有新型转录本(非=,c类)
grep -v 'class_code "="' output.combined.gtf | grep -v 'class_code "c"' > novel.gtf

# 提取潜在融合基因(o类)
awk '$12=="class_code \"o\""' output.combined.gtf > fusion_candidates.gtf

3.3.2 使用R进行高级筛选

library(rtracklayer)
gtf <- import("output.combined.gtf")
novel <- gtf[gtf$class_code %in% c("j","u","x","i","p","s",".")]
export(novel, "high_confidence_novel.gtf")

4. 实际应用案例

4.1 新转录本发现

筛选策略: - 优先关注j,u,x,i类 - 需结合表达量过滤(FPKM≥1)

# 结合表达量筛选
awk '$12=="class_code \"j\"" && $14=="FPKM \"1\""' output.combined.gtf

4.2 可变剪接分析

关键代码: - j:新型剪接变体 - s:内含子保留事件

# 使用pyGTF提取剪接事件
from gtfparse import read_gtf
df = read_gtf("output.combined.gtf")
j_splice = df[(df['class_code']=='j') & (df['exon_number']>1)]

4.3 反义转录本研究

筛选方法

# 提取反义转录本
antisense <- gtf[gtf$class_code == "x" & strand(gtf) != strand(gtf$cmp_ref)]

5. 注意事项与验证

5.1 常见问题

  1. 链特异性问题:需确认建库方向性
  2. 假阳性过滤:建议结合以下指标:
    • 外显子支持数≥3
    • 转录本长度≥200bp
    • 两端至少有50bp非重叠区域

5.2 实验验证建议


6. 进阶技巧

6.1 多条件组合筛选

# 筛选高表达的新型转录本
awk '$12=="class_code \"j\"" && $14~/FPKM "[5-9]"/' output.combined.gtf

6.2 与差异表达结合

# 使用DESeq2筛选差异表达新转录本
dds <- DESeqDataSetFromGTF(file="novel.gtf", design=~condition)
res <- results(dds, contrast=c("condition","treat","control"))
sig_novel <- res[res$padj < 0.1 & !is.na(res$padj),]

6.3 可视化方法


7. 总结

class_code系统为转录本分类提供了标准化框架,研究者应根据具体目标: 1. 严格设定筛选阈值 2. 结合多组学证据验证 3. 考虑样本特异性表达模式

未来随着三代测序普及,建议结合Iso-Seq数据提升长转录本注释准确性。

资源推荐: - Cufflinks官方文档:http://cole-trapnell-lab.github.io/cufflinks/ - GFFCompare手册:https://ccb.jhu.edu/software/stringtie/gffcompare.shtml - 人类新转录本数据库:http://www.lncrnadb.org/ “`

注:本文实际约1850字,可根据需要增减具体案例部分的详细程度调整篇幅。主要技术细节已涵盖class_code的核心应用场景。

推荐阅读:
  1. Windows日志筛选
  2. numpy中ndarray如何按条件筛选数组及关联筛选

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

上一篇:python中无法导入自定义类如何解决

下一篇:Python中有哪些关键词

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》