767. circRNA功能分析¶
一句话概述:环状RNA(circRNA)是首尾共价闭合的RNA分子,通过海绵吸附miRNA、结合蛋白质、甚至翻译成蛋白来发挥功能——就像一条咬住自己尾巴的蛇,这种特殊的环形结构让它不容易被降解,成为潜在的疾病标志物。
核心知识点速查表¶
| 概念 | 白话解释 | 关键工具 |
|---|---|---|
| circRNA | 环状RNA,头尾相连 | 反向剪接产生 |
| BSJ | 反向剪接连接(Back-Splice Junction) | circRNA的标志 |
| miRNA海绵 | circRNA吸附miRNA使其失效 | 竞争性内源RNA |
| CIRI2 | 从RNA-seq鉴定circRNA | Python |
| CIRCexplorer2 | 注释circRNA的剪接模式 | Python |
| find_circ | 从STAR比对发现circRNA | Python |
一、原理(白话版)¶
1.1 circRNA是什么?¶
线性mRNA:5'---外显子1-外显子2-外显子3---3'(polyA)
→ 正常方向剪接(forward splicing)
环状RNA:外显子2-外显子3-[BSJ]-外显子2(首尾相连成环)
→ 反向剪接(back-splicing):下游外显子的3'端与上游外显子的5'端相连
→ 没有5'帽和3'polyA尾巴
→ 非常稳定(抗RNase R降解,半衰期比线性RNA长数倍)
circRNA的数量:
人类基因组中已知超过100,000种circRNA
大多数表达量低,但有些组织/疾病特异性高
circRNA的功能:
① miRNA海绵:吸附miRNA,解除miRNA对靶基因的抑制
② 蛋白质支架:结合蛋白质调节其功能
③ 翻译成蛋白:部分circRNA含IRES可被翻译
④ 调控亲本基因:影响自身线性转录本的表达
1.2 circRNA检测策略¶
关键:找到BSJ(反向剪接连接)读段
方法一(CIRI2):
BWA比对 → 扫描嵌合比对 → 筛选BSJ → 多过滤 → circRNA列表
方法二(CIRCexplorer2):
STAR比对 → 提取嵌合读段(Chimeric.out.junction) → 注释BSJ → circRNA
方法三(find_circ):
Bowtie2比对 → 提取未比对读段 → 锚定比对 → 寻找反向剪接
最佳实践:至少用2个工具,取交集
二、circRNA鉴定流程¶
2.1 CIRI2流程¶
# ===== CIRI2流程 =====
# 安装:conda install -c bioconda ciri2
# Step 1: BWA比对(需要特殊参数保留嵌合比对)
bwa mem \
-t 8 \ # 线程数
-T 19 \ # 最低比对分数
reference.fa \ # 参考基因组
sample_R1.fastq.gz \ # R1
sample_R2.fastq.gz \ # R2
> sample_bwa.sam # 输出SAM
# Step 2: 运行CIRI2
CIRI2 \
-I sample_bwa.sam \ # BWA比对结果
-O sample_ciri2.txt \ # 输出circRNA列表
-F reference.fa \ # 参考基因组
-A annotation.gtf \ # 基因注释
-T 8 # 线程数
# CIRI2输出格式:
# circRNA_ID chr start end junction_reads SM_MS_SMS ...
# chr1:1000|2000 chr1 1000 2000 15 5_3_7 ...
# junction_reads = BSJ支持读段数
2.2 CIRCexplorer2流程¶
# ===== CIRCexplorer2流程 =====
# 安装:pip install CIRCexplorer2
# Step 1: STAR比对(需要嵌合读段输出)
STAR \
--runThreadN 8 \
--genomeDir star_index/ \
--readFilesIn sample_R1.fq.gz sample_R2.fq.gz \
--readFilesCommand zcat \
--outSAMtype BAM SortedByCoordinate \
--chimSegmentMin 10 \ # 关键:启用嵌合比对
--chimOutType Junctions \ # 输出嵌合连接
--outFileNamePrefix sample_
# Step 2: 解析嵌合连接
CIRCexplorer2 parse \
-t STAR \ # 比对工具类型
sample_Chimeric.out.junction \ # STAR嵌合连接文件
-b sample_back_spliced.bed # 输出BSJ BED文件
# Step 3: 注释circRNA
CIRCexplorer2 annotate \
-r ref_annotation.txt \ # 参考注释(refFlat格式)
-g reference.fa \ # 参考基因组
-b sample_back_spliced.bed \ # BSJ BED文件
-o sample_circRNA_annotated.txt # 输出注释后的circRNA
# 输出关键列:
# chrom start end name score strand circType geneName isoformName
# circType: circRNA/ciRNA(环状内含子RNA)
2.3 多工具取交集¶
# ===== Python合并多工具结果 =====
import pandas as pd # 导入pandas
# 读取CIRI2结果
ciri = pd.read_csv("sample_ciri2.txt", sep="\t")
ciri_set = set(ciri["circRNA_ID"]) # CIRI2检测到的circRNA ID
# 读取CIRCexplorer2结果
ce2 = pd.read_csv("sample_circRNA_annotated.txt", sep="\t", header=None)
ce2["id"] = ce2[0] + ":" + ce2[1].astype(str) + "|" + ce2[2].astype(str)
ce2_set = set(ce2["id"]) # CIRCexplorer2检测到的circRNA ID
# 取交集
overlap = ciri_set & ce2_set # 两个工具都检测到的
print(f"CIRI2: {len(ciri_set)} circRNAs")
print(f"CIRCexplorer2: {len(ce2_set)} circRNAs")
print(f"交集: {len(overlap)} circRNAs (高置信)")
# 只保留高置信circRNA(至少2个BSJ reads + 2个工具)
high_conf = ciri[
(ciri["circRNA_ID"].isin(overlap)) &
(ciri["#junction_reads"] >= 2) # 至少2条BSJ reads
]
print(f"高置信circRNA: {len(high_conf)}")
high_conf.to_csv("circRNA_high_confidence.tsv", sep="\t", index=False)
三、circRNA功能分析¶
3.1 miRNA海绵分析¶
# ===== miRNA海绵功能预测 =====
import pandas as pd # 导入pandas
# circRNA上的miRNA结合位点预测
# 工具:miRanda, TargetScan, RNAhybrid
# 读取circRNA序列
from Bio import SeqIO # 导入BioPython
circrna_seqs = {}
for record in SeqIO.parse("circRNA_sequences.fasta", "fasta"):
circrna_seqs[record.id] = str(record.seq)
# 用miRanda预测结合位点
import subprocess
for circ_id, seq in list(circrna_seqs.items())[:10]: # 前10个circRNA
# 保存临时文件
with open("tmp_circ.fa", "w") as f:
f.write(f">{circ_id}\n{seq}\n")
# 运行miRanda
result = subprocess.run([
"miranda",
"mature_mirnas.fa", # 成熟miRNA序列
"tmp_circ.fa", # circRNA序列
"-sc", "140", # 最低分数
"-en", "-20", # 最低能量
"-strict" # 严格模式
], capture_output=True, text=True)
# 解析结果
binding_sites = result.stdout.count(">>") # 统计结合位点数
print(f"{circ_id}: {binding_sites} miRNA binding sites")
3.2 circRNA编码潜力预测¶
# ===== 预测circRNA的翻译潜力 =====
# 一些circRNA含有IRES(内部核糖体进入位点),可以被翻译
# 方法一:ORF预测
from Bio.Seq import Seq # 导入Seq
def find_orfs(sequence, min_length=30):
"""在circRNA序列中查找ORF(需要考虑环形特性)"""
# 因为是环形,需要检查跨BSJ的ORF
doubled = sequence + sequence # 重复序列模拟环形
orfs = []
for frame in range(3): # 3个阅读框
i = frame
while i < len(doubled) - 3:
codon = doubled[i:i+3]
if codon == "ATG": # 找到起始密码子
# 寻找终止密码子
for j in range(i+3, min(i+len(sequence), len(doubled)-2), 3):
stop = doubled[j:j+3]
if stop in ["TAA", "TAG", "TGA"]:
orf_len = (j - i) // 3 # ORF长度(aa)
if orf_len >= min_length:
orfs.append({
"start": i % len(sequence),
"length_aa": orf_len,
"crosses_bsj": i + orf_len*3 > len(sequence)
})
break
i += 3
return orfs
# 对高置信circRNA预测ORF
for circ_id, seq in circrna_seqs.items():
orfs = find_orfs(seq)
if orfs:
print(f"{circ_id}: 发现 {len(orfs)} 个ORF (最长 {max(o['length_aa'] for o in orfs)} aa)")
四、常见报错与解决¶
| 报错信息 | 原因 | 解决方案 |
|---|---|---|
CIRI2: no circRNAs | BWA参数不对 | 确保用bwa mem -T 19 |
STAR: no chimeric reads | 未启用嵌合模式 | 加--chimSegmentMin 10 |
假阳性过多 | 单工具结果 | 多工具取交集(≥2个) |
BSJ reads太少 | 测序深度不够 | 增加测序深度(≥100M reads) |
RNase R处理后仍有线性RNA | 消化不完全 | 增加RNase R用量或时间 |
circRNA序列提取错误 | 坐标解析问题 | 检查BSJ坐标是否1-based |
五、面试高频问题¶
Q1: circRNA和线性RNA怎么区分?¶
A: ①生物信息学:BSJ(反向剪接连接)读段是circRNA的唯一标志,线性RNA不存在BSJ;②实验验证:RNase R处理(消化线性RNA保留环形)、divergent PCR(跨BSJ的引物)、Northern blot(不同迁移率)。
Q2: circRNA作为miRNA海绵的证据?¶
A: 经典例子是CDR1as/ciRS-7,含有超过70个miR-7结合位点。但大多数circRNA的miRNA结合位点不多(1-3个),"海绵"功能是否显著要看:①circRNA丰度是否足够竞争;②结合位点数量;③共定位在同一亚细胞区室;④过表达/敲低circRNA后miRNA靶基因是否变化。
Q3: circRNA在疾病中的应用前景?¶
A: ①生物标志物:circRNA在血液/外泌体中稳定存在,适合液体活检;②治疗靶点:某些circRNA在肿瘤中异常表达;③药物载体:人工circRNA可作为mRNA疫苗的替代(更稳定);④CIRCpedia v3(2025)收录了260万+种circRNA。
六、速查表¶
# ===== circRNA速查 =====
# CIRI2
bwa mem -t 8 -T 19 ref.fa R1.fq R2.fq > aligned.sam
CIRI2 -I aligned.sam -O circs.txt -F ref.fa -A anno.gtf
# CIRCexplorer2
STAR --chimSegmentMin 10 --chimOutType Junctions ...
CIRCexplorer2 parse -t STAR Chimeric.out.junction
CIRCexplorer2 annotate -r ref.txt -g ref.fa -b bsj.bed
# 最佳实践
# 至少2个工具取交集
# BSJ reads ≥ 2
# RNase R实验验证关键circRNA
# 功能分析
# miRNA海绵 → miRanda/TargetScan预测结合位点
# 蛋白编码 → ORF预测 + IRES搜索
# 蛋白结合 → RBP结合位点预测(RBPmap)
# 数据库资源
# CIRCpedia v3: circRNA注释和表达
# circBase: circRNA数据库
# CSCD: 癌症相关circRNA