信息速览
一个基因能转录出多少种环状 RNA?在人类肌联蛋白基因上,CIRCpedia 给出了一个让人停顿的数字:同一个位点可以产生上千种外显子组合方式,每一种都在反向剪接时闭合成了一个独立的环。这类分子没有 5′ 端也没有 3′ 端,不被核酸外切酶降解,半衰期比同源的线性信使 RNA 长得多,因此在组织里留下的痕迹往往比它来自的那条线性转录本更稳定。
但要把这种稳定性变成可比较的数据,需要三件事同时成立:跨物种的坐标能对齐、表达量有统一的分母、命名能让不同实验室说的是同一个环。环状 RNA 领域长期缺的正是第三件。同一个环,有人按染色体位置编号,有人按宿主基因编号,有人按外显子区间编号,文献里出现的名字彼此无法对上,跨数据集合并时只能靠坐标硬匹配。
CIRCpedia 的第三版就是围绕这三件事重建的:把二十个物种、两千多份测序样本用同一套流程重跑一遍,给每条环一个社区建议的名字和一个稳定编号,再把线性转录本的表达放在旁边做参照。它不是最大的环状 RNA 目录,但它是少数把「跨物种可比」这件事做进数据结构里的一个。一屏速览见下表。
| 维度 | 内容 |
|---|---|
| 全名 | CIRCpedia v3(前身为 CIRCpedia / CIRCpedia v2) |
| 维护方 | 复旦大学 生物医学研究院 生物信息学与交叉技术中心(Yang Lab,杨力实验室) |
| 通讯作者 | 杨力、马旭凯(Xu-Kai Ma);合作者陈玲玲(中国科学院分子细胞科学卓越创新中心) |
| 首次上线 | 2015 年 12 月 10 日(beta);第三版 2025 年 7 月 1 日上线 |
| 论文 | Nucleic Acids Research 2026, 54(D1): D78–D88;2025 年 10 月 22 日在线 |
| 物种数 | 20 个,分属 7 个目 |
| 样本数 | 2,413 份(2,350 份二代测序 + 63 份三代测序) |
| 环状 RNA 总数 | 2,610,032 条(含 circRNA 与 ciRNA) |
| 人类占比 | 849,495 条,约占全部的三分之一 |
| 组织与细胞覆盖 | 26 个器官系统、203 种组织、375 种细胞类型 |
| 表达指标 | FPBcirc、FPBlinear、CIRCscore 三项 |
| 鉴定流程 | CIRCexplorer3/CLEAR,线性端用 StringTie 2.2.1 |
| 下载单元 | 每物种两个压缩包(注释表 + 序列),合计 40 个 |
| 网页功能 | 检索、浏览、样本比较、JBrowse、六类预测、三类设计工具 |
| 数据许可 | 官方未公布;论文为 CC BY-NC 4.0 |
| 当前状态 | 站点首页标注「Database under active development」 |
§1 它要解决的具体麻烦
1.1 环状 RNA 研究卡在「说的不是同一个环」
反向剪接是前体信使 RNA 在剪接时把下游的 5′ 剪接位点接到上游的 3′ 剪接位点上,形成共价闭合的环。这个过程可以发生在多个外显子之间,一个基因只要有若干个可参与的外显子,理论上就能组合出大量不同的环。于是同一个基因座在数据里不是一条记录,而是一片记录。
麻烦从命名开始。早期文献里常见的写法是 hsa_circ_0001234 这类流水号,号本身不带任何位置信息,换一个数据库就换一套号。后来流行按宿主基因加外显子区间命名,但没有统一约定,有人写 circFOXO3,有人写 circFOXO3(2-3),有人把外显子编号按转录本算、有人按基因组算。同一个环在不同论文里可能挂着三个名字,做荟萃分析的人只能回到坐标层面重新匹配。
CIRCpedia 的应对是把编号和名字分开:circID 是机器用的稳定键,circname 是人读的社区建议名。两者并存,前者保证跨版本可追溯,后者保证跨实验室可沟通。这个设计看起来是小事,但它决定了这张表能不能被别人的流程直接接进去。
双轨设计还解决了一个更隐蔽的问题:参考注释会变。同一个基因在 GENCODE 换版本后,转录本编号可能失效,外显子编号可能整体位移,此时按外显子区间拼出来的名字就变了,而按物种加基因加序号分配的编号不依赖注释版本,仍然指同一条分子。做跨年度数据合并时,这一条比任何字段都重要——名字会骗人,编号不会。
1.2 三条常见的错误期待
第一条,期待它是一份「环状 RNA 表达矩阵」。下载包里只有注释与预测字段,没有按样本排开的表达值。表达量要在网页端按样本查询,或者自己拿原始测序数据重算(§2.1)。想直接读进 Seurat 或 Scanpy 当矩阵用的,会在第一步就卡住。
第二条,期待它的条数等于物种的真实环状 RNA 数量。检出条数高度依赖样本量与测序深度。人类有一千多份样本,线虫只有三十几份,两者的数字不在同一个尺度上。把它当「物种复杂度排序」用,比的是投入而不是生物学(§2.5)。
第三条,期待它的功能字段有实验支撑。可编辑位点、亚细胞定位、降解信号、m6A 位点、开放阅读框,全部是计算预测。官方在关于页写清了每个模块用的工具与参数,但没有给验证集。这些字段适合做候选筛选,不适合当标签。
1.3 它能给到的与给不到的
| 你的需求 | 它给的 | 够不够 |
|---|---|---|
| 查某个人类环状 RNA 在哪些组织表达 | 按样本查询 FPBcirc 与 CIRCscore | 够,但需逐样本取,不能一次导出全矩阵 |
| 跨物种找保守的环状 RNA | LiftOver 映射 + 位点相差五核苷酸内的保守判定 | 够做候选,判定阈值固定,无法调 |
| 给新发现的环起一个规范名字 | 社区建议命名 + 稳定编号双轨 | 够,命名规则可照抄 |
| 设计 divergent PCR 引物做验证 | 网页端 Primer3 自动出引物 | 够,但要自行核对产物是否跨反向剪接位点 |
| 挑一个环做敲低实验 | siRNA 设计 + 碱基可编辑位点 | 够做初筛,脱靶未评估 |
| 训练环状 RNA 表达预测模型 | 只有注释,没有批量表达矩阵 | 不够,需自行重算 |
| 判断某个环是否有功能 | 只有计算预测 | 不够,无实验验证标签 |
| 做物种间绝对数量比较 | 条数受样本量强烈影响 | 不够,会得出误导性结论 |
1.4 你的处境与它能帮到的事
| 你的处境 | 它能帮你什么 | 下一步该做什么 |
|---|---|---|
| 你在一篇论文里看到一个环的名字,想确认它到底是什么 | 用 circname 反查,拿到坐标、宿主基因与外显子区间 |
记下 circID,跨版本引用时用它而不是名字(§2.3) |
| 你在人身上找到一个候选环,想在鼠里做敲除实验 | 查 Orthology 列,看小鼠是否有同位点的直系同源环 | 保守判定只到「位点相差五核苷酸内」,实验前仍需自己比对序列 |
| 你要写一个环状 RNA 鉴定流程,需要参照实现 | 官方流程、工具版本、参数都写在关于页 | 照抄参数前先确认你的参考基因组版本与它一致(§5.6) |
| 你在做跨物种转录组比较,缺一个环状 RNA 层 | 二十个物种用同一套流程跑,口径统一 | 只比较同一组织类型、样本量相近的物种对 |
| 你要给一个环设计验证引物 | Primer3 自动生成跨反向剪接位点的 divergent 引物 | 出引物后自己跑一次 in silico PCR 确认产物 |
| 你在评估一个环状 RNA 数据库的可靠性 | 提供与另两个库的命名对照与 ID 转换工具 | 转换后用坐标复核,不要只信 ID 映射 |
1.5 一句话判断
它的价值不在「收了多少条」,而在「这些条用的是同一把尺」:同一套流程、同一套坐标约定、同一套命名规则,这才让跨物种、跨样本的比较在方法上站得住。
1.6 不适合谁:四条边界
不适合要现成表达矩阵的人。 下载包里没有矩阵。二十个物种、两千多份样本的表达值要在网页端逐条查,或者回到原始测序数据用同一套流程重算。想直接开箱训练的人会失望。
不适合要实验验证标签的人。 所有功能字段都是预测。做监督学习时它们只能当弱标签,且必须说明标签来源是计算而非实验。
不适合做物种间绝对丰度比较的人。 样本量从七份到一千五百多份不等,检出条数随之拉开两个数量级。跨物种比较只能在样本量匹配的子集里做。
不适合需要明确商业授权的人。 数据许可条款官方没有单独公布,论文的 CC BY-NC 4.0 约束的是论文文本,不能自动推出数据可商用。企业用户需要先联系通讯作者。
§2 数据构成与规格
2.1 一张表,二十个物种,四十个压缩包
数据组织的逻辑很简单:物种是最外层单位,每个物种给两个压缩包。第一个是注释与预测表,制表符分隔的纯文本,压在 zip 里;第二个是序列,FASTA 格式,每条记录对应表里的一行。
| 层级 | 内容 | 规模 |
|---|---|---|
| 数据库 | 全部 20 个物种 | 2,610,032 条环状 RNA |
| 物种 | 一个物种一个目录项 | 人类最多,线虫最少 |
| 压缩包 | 每物种 2 个(注释 / 序列) | 合计 40 个 |
| 行 | 一条环状 RNA | 与官方条数一致,另加一行表头 |
| 列 | 15 个字段 | 见 §2.2 |
没有整库打包,也没有按组织或按样本切分的子集。这一点值得提前知道:如果你只想要人类的心脏样本,仍然要先下完整个物种的注释表(约 93 MB),再去网页端逐样本查表达。
| 物种 | 目 | 参考基因组 | 环状 RNA 条数 |
|---|---|---|---|
| 人 Homo sapiens | 灵长目 | GRCh38 (hg38) | 849,495 |
| 猪 Sus scrofa | 偶蹄目 | Sscrofa11.1 | 277,448 |
| 小鼠 Mus musculus | 啮齿目 | GRCm38 (mm10) | 214,984 |
| 猕猴(恒河猴)Macaca mulatta | 灵长目 | Mmul_10 | 157,771 |
| 黑猩猩 Pan troglodytes | 灵长目 | pan_Tro_3.0 | 128,010 |
| 食蟹猴 Macaca fascicularis | 灵长目 | Macaca_fascicularis_6.0 | 99,057 |
| 猫 Felis catus | 食肉目 | Felis_catus_9.0 | 93,680 |
| 苏门答腊猩猩 Pongo abelii | 灵长目 | Susie_PABv2 | 92,264 |
| 家犬 Canis lupus familiaris | 食肉目 | ROS_Cfam_1.0 | 86,570 |
| 鸡 Gallus gallus | 鸡形目 | GRCg7b | 82,185 |
| 狒狒 Papio anubis | 灵长目 | Panubis1.0 | 77,664 |
| 豚尾猕猴 Macaca nemestrina | 灵长目 | Mnem_1.0 | 70,514 |
| 白眉猴 Cercocebus atys | 灵长目 | Caty_1.0 | 70,673 |
| 狨 Callithrix jacchus | 灵长目 | mCalJac1.pat.X | 66,613 |
| 绵羊 Ovis aries | 偶蹄目 | Oar_v3.1 | 66,644 |
| 兔 Oryctolagus cuniculus | 啮齿目(官方归类) | OryCun2.0 | 62,670 |
| 大鼠 Rattus norvegicus | 啮齿目 | mRatBN7.2 | 50,866 |
| 豚鼠 Cavia porcellus | 啮齿目 | Cavpor3.0 | 27,965 |
| 果蝇 Drosophila melanogaster | 双翅目 | BDGP6 (dm6) | 20,690 |
| 线虫 Caenorhabditis elegans | 小杆目 | WBcel235 (ce11) | 14,269 |
把这张表竖着读一遍,先注意物种的分布:灵长目占了十个,其余六个目分掉另外十个。这不是按生物多样性挑的,是按「有公开测序数据」挑的。农业物种只进来猪、牛科的绵羊、鸡,植物一个没有。
还有一处归类要留意:官方统计把兔放进啮齿目,而兔在分类学上属兔形目。这不是本库独有的做法,公共数据库里把兔与啮齿类并成一组很常见。引用这张表时照官方写不会错,但如果拿它去做目级统计,要知道这一组里混了两个目。
2.2 十五个字段的完整字典
注释表的列顺序在所有物种里一致:前三列是身份信息,其后是预测与统计字段,末尾四列是基因注释。
| 列名 | 含义 | 示例值 | 来源模块 |
|---|---|---|---|
circID |
唯一稳定编号,物种三字母码加宿主基因加序号 | CIRCHSA_TTN_49 |
内部编号 |
Location |
零基基因组坐标,染色体:起-止(链) | V:15874634-15876408(-) |
比对结果 |
circname |
社区建议命名,环类型加基因名加外显子或内含子区间 | circMAN1A2(2-5) |
命名规则 |
editing_site |
可被碱基编辑改变的位点,用于敲除环而不动线性转录本 | none;none;none;none |
序列扫描 |
subcell_location |
亚细胞定位预测与置信分 | cytoplasmic (-0.94) |
RNAlight |
length |
环状 RNA 全长,核苷酸数 | 998 |
序列计算 |
DIS3_signal |
富尿苷降解信号所在的区间段 | `85-91\ | 437-442` |
DIS3_motif |
具体基序序列与匹配到的模体类型 | 85-91:GCTCTGT:M2-GCTCTGC |
基序比对 |
Orthology |
与人源环的直系同源判定 | conserved / human specific / none |
LiftOver |
TGS |
是否有三代测序证据 | none / 方法名 |
长读长整合 |
species |
物种拉丁名,连字符连接 | Homo-sapiens |
元数据 |
gene_Ensembl |
宿主基因的 Ensembl 编号 | ENSG00000155657 |
注释库 |
gene_Refseq |
宿主基因的 RefSeq 编号或基因符号 | TTN |
注释库 |
transcript_Ensembl |
命名所参照的转录本 Ensembl 编号 | ENST00000342992 |
注释库 |
transcript_Refseq |
同上的 RefSeq 编号,缺失时写 NA | NA |
注释库 |
editing_site 这一列的结构值得单独说:它用分号分隔四个位置,分别对应敲除策略里四种可选的编辑方案,没有可用位点时整列写 none。DIS3_motif 用竖线分隔多个信号,每个信号内部再用冒号分成区间、实际序列、匹配的模体名三段。这两列是典型的「一行里塞结构化子串」,直接按分隔符切开就能还原成子表(§5.3)。
2.3 一条记录的完整解剖
拿线虫表里第一条 circRNA 和第一条 ciRNA 对照看,能一次看清两类环在字段上的差别。
circID CIRCCEL_nhr-102_1
Location V:15874634-15876408(-)
circname circnhr-102(1-7)
editing_site none;none;none;none
subcell_location cytoplasmic (-0.94)
length 998
DIS3_signal 85-91|437-442|605-610|646-652|791-796|928-933
DIS3_motif 85-91:GCTCTGT:M2-GCTCTGC|437-442:TCCGCG:M1-KTCGCT
Orthology none
TGS none
species Caenorhabditis-elegans
gene_Ensembl WBGene00003692
gene_Refseq nhr-102
transcript_Ensembl T06C12.6.1
transcript_Refseq NA
第二条是 ciRNA,差别集中在三处:编号前缀从 CIRCCEL_ 变成 CICEL_,名字从 circ 开头变成 ci 开头,长度掉到二十七。第三处不是巧合——内含子套索来源的环只包含一个内含子,长度自然短;外显子来源的环在这里跨了七个外显子,长度就近千。
circID CICEL_F56A8.3_3
Location III:13257530-13257557(+)
circname ciF56A8.3(3)
length 27
subcell_location cytoplasmic (-0.06)
这两个前缀是本库唯一区分两类环的方式。官方没有单独的类型列,做统计分析时必须自己从前缀切出来,否则会把两种长度分布完全不同、生成机制也不同的分子混在一起算。
2.4 样本从哪来,怎么分
样本来源有五个:RNA Atlas、ENCODE、NHPRTR(非人灵长类参考转录组资源)、NCBI 的 SRA、国家基因组科学数据中心的 GSA。官方说明除了线虫与果蝇用整体生物跨发育阶段采样,其余样本都经过人工整理,按来源研究的元数据归进 26 个器官系统。
| 分类轴 | 取值 | 说明 |
|---|---|---|
| 物种 | 20 个 | 见 §2.1 表 |
| 器官系统 | 26 个 | 人工归并,非自动映射 |
| 样本类型 | 整体生物 / 组织 / 细胞系 / 亚细胞组分 | 四类 |
| 病理状态 | 正常 / 癌 / 患病 | 粗分,无具体疾病编码 |
| 富集方式 | 核糖体 RNA 去除 / polyA 去除 / RNase R 处理 | 三档 |
富集方式的分布极不均衡。人类的一千五百多份样本里,核糖体 RNA 去除占绝大多数,polyA 去除与 RNase R 处理合计不到一百份。这个偏斜有生物学理由:环状 RNA 没有 polyA 尾,用 polyA 富集建库会系统性丢掉它们,所以主流做法是去核糖体 RNA。但也意味着用这三档数据做比较时,polyA 去除那批的检出率天然更低。
| 物种 | 核糖体 RNA 去除 | polyA 去除 | RNase R | 合计 |
|---|---|---|---|---|
| 人 | 1,469 | 58 | 33 | 1,560 |
| 小鼠 | 203 | 2 | 1 | 206 |
| 猪 | 134 | 0 | 0 | 134 |
| 果蝇 | 118 | 0 | 9 | 127 |
| 猕猴(恒河猴) | 68 | 0 | 0 | 68 |
| 线虫 | 27 | 0 | 6 | 33 |
| 食蟹猴 | 29 | 0 | 0 | 29 |
| 黑猩猩 | 27 | 0 | 0 | 27 |
| 鸡 | 16 | 0 | 6 | 22 |
| 大鼠 | 15 | 0 | 0 | 15 |
| 狒狒 | 15 | 0 | 0 | 15 |
| 绵羊 | 14 | 0 | 0 | 14 |
| 豚尾猕猴 | 14 | 0 | 0 | 14 |
| 白眉猴 | 14 | 0 | 0 | 14 |
| 猫 | 14 | 0 | 0 | 14 |
| 家犬 | 13 | 0 | 0 | 13 |
| 兔 | 13 | 0 | 0 | 13 |
| 狨 | 13 | 0 | 0 | 13 |
| 苏门答腊猩猩 | 12 | 0 | 0 | 12 |
| 豚鼠 | 7 | 0 | 0 | 7 |
这张表最重要的一列是合计:样本从七份到一千五百多份,跨度超过两个数量级。任何跨物种的定量结论都必须先把这一列放进模型当协变量。
2.5 条数与样本量的关系
把物种按样本量排序,再把条数放在旁边,方向很明确:样本越多,累加检出的环越多。但这个关系不是线性的,中间隔着基因组复杂度与测序深度。
| 物种 | 样本数 | 条数 |
|---|---|---|
| 人 | 1,560 | 八十四万余 |
| 小鼠 | 206 | 214,984 |
| 猪 | 134 | 277,448 |
| 果蝇 | 127 | 20,690 |
| 猕猴(恒河猴) | 68 | 157,771 |
| 线虫 | 33 | 14,269 |
| 豚鼠 | 7 | 27,965 |
把猪和果蝇并排看最能说明问题:样本量几乎相同,一个一百三十四份、一个一百二十七份,条数却差了一个数量级以上,前者二十七万余,后者两万余。差距来自基因组本身——猪的基因组约二十五亿碱基、基因数量与人类相当,果蝇只有约一亿四千万碱基。样本量相同而条数悬殊,说明这个数字里同时装着投入与物种属性,两者无法从同一列里拆开。
再看豚鼠:只有七份样本,条数却比三十三份样本的线虫多一倍。这一行直接否掉了「条数随样本单调增长」的简单读法。样本的组织来源、测序深度、建库质量都会改变结果,样本数只是其中一个可见的旋钮。
这张表也是 §1.2 第二条错误期待的量化依据。看到「人类八十四万、线虫一万四」就说人类环状 RNA 比线虫丰富六十倍,是把物种属性、样本投入、测序深度三件事压成了一个数字。
2.6 与同类资源的字段差异
环状 RNA 领域有三个常被拿来比较的库:本库、circAtlas 3.0、circBase。三者定位不同,字段设计也不同。
| 对比项 | CIRCpedia v3 | circAtlas 3.0 | circBase |
|---|---|---|---|
| 物种数 | 20 | 脊椎动物为主 | 多物种,以人鼠为主 |
| 样本口径 | 统一重跑 | 整合已发表结果 | 汇集已发表结果 |
| 条数量级 | 约 261 万 | 约 300 万 | 十万量级 |
| 命名规则 | 社区建议命名 + 稳定编号 | 自有编号 | 流水号 |
| 表达量 | FPBcirc / FPBlinear / CIRCscore | 有 | 无 |
| 跨物种保守性 | LiftOver + 位点阈值 | 有 | 无 |
| 三代测序证据 | 有专门列 | 部分 | 无 |
| 功能预测 | 六类模块 | 少量 | 无 |
| 下载形态 | 每物种两包 | 分物种 | 分物种 |
最关键的一行是「样本口径」。本库不沿用原论文的鉴定结果,而是把原始测序读段重新比对、重新定量。circBase 与本库的差别不只是条数,而是「这一条是怎么被算出来的」——前者汇集别人的判断,后者用自己的判断覆盖全部样本。代价是重跑时的参数选择会系统性地影响结果,好处是所有物种站在同一把尺上。
这带来一个实用推论:把本库的表和汇集型库的表做交集,得到的不是「高置信集合」,而是「两套判断标准都认的集合」。两个都认的记录确实更可能真,但被两边都漏掉的记录也真实存在,只是各自的阈值把它挡在门外。做候选筛选时按交集取会更保守,做召回评估时按交集取会低估实际含量。
§3 它属于谁:一支做环状 RNA 的实验室
3.1 从上海生科院到复旦
数据库的署名单位换过。第二版的通讯作者邮箱在 picb.ac.cn 域下,那是中国科学院分子植物科学卓越创新中心的域名;第三版的版权行写的是「Bioinformatics and Interdisciplinary Technologies (BITs), Yang Lab, IBS, Fudan University」,即复旦大学生物医学研究院。同一位通讯作者杨力,研究组随机构调整迁移,数据库也跟着搬了家。
这件事对使用者有直接影响:旧链接失效不是站点故障,是归属变更。引用旧地址的论文、教程、流程脚本都会指向一个不再提供服务的入口(§7.3 有本次访问的具体记录)。
| 版本 | 年份 | 署名单位 | 入口域名 |
|---|---|---|---|
| v1(beta) | 2015 | 中国科学院上海生命科学研究院 | picb.ac.cn/rnomics/circpedia |
| v2 | 2018 | 同上 | 同上 |
| v3 | 2025 | 复旦大学 BITs | bits.fudan.edu.cn/circpediav3 |
3.2 时间线
| 时间 | 事件 | 意义 |
|---|---|---|
| 2014 | CIRCexplorer 论文发表于 Cell | 方法学起点:互补序列介导的外显子环化 |
| 2015-12-10 | CIRCpedia 上线 beta | 首次公开 |
| 2016-04 至 2017-09 | CIRCexplorer2 连发四版;样本分批加入 | 人、鼠、果蝇、线虫陆续扩充 |
| 2016 | Genome Research 发表替代反向剪接图景 | 为数据库提供注释框架 |
| 2018-05-18 | 升级为 v2,六物种 | 首次成体系的多物种版本 |
| 2018-07-07 | 加入基于 hg19 的人类鉴定结果 | 双基因组版本并存 |
| 2025-07-01 | v3 上线 | 二十物种、两千余样本、加入 ciRNA |
| 2025-10-22 | 论文在线发表于 Nucleic Acids Research | 版本定型 |
| 2026-01 | 论文见刊,卷 54 第 D1 期 | 数据库专刊 |
这张表里有两行容易被忽略。2018 年 5 月 17 日官方把表达量改成 FPM,7 月又加入 hg19 版本——说明 v2 时期曾经并存两套基因组坐标与两套表达单位。如果你要复现 2018 年前后的分析,得先确认当时用的是哪一套。v3 只保留一套坐标,这个歧义消失了。
3.3 一条方法学的传承线
理解这个库要看它的工具链,因为它不是独立开发的数据库,而是自家流程的展示面。
| 工具 | 年份 | 作用 | 与本库的关系 |
|---|---|---|---|
| CIRCexplorer | 2014 | 从反向剪接读段鉴定环状 RNA | 方法学源头 |
| CIRCexplorer2 | 2016 | 加入替代反向剪接与可变剪接分析 | v1–v2 的鉴定引擎 |
| CLEAR | 2019 | 环状与线性 RNA 表达量的直接比较 | 引入 CIRCscore |
| CIRCexplorer3 | 2019 | 前两者的整合版 | v3 的鉴定与定量引擎 |
这条线的意义在于:数据库里每一条记录都是这套流程的输出,流程的假设会原样进入数据。比如 CLEAR 用「每基因表达最高的转录本」作线性分母,那么一个基因若有多个高表达转录本,环状与线性的比值就会依赖这个选择。用 CIRCscore 做跨基因比较时,这个约定必须写进方法节。
3.4 谁在维护,能找谁
官方页面给了两个联系邮箱,分别在关于页的通讯作者栏。代码与工具挂在 GitHub,数据库本体不开放源代码,只提供网页与下载。这种「工具开源、数据托管」的分工在国内生物数据库里很常见:方法可以被复现,数据只能被下载。
| 角色 | 对象 | 用途 |
|---|---|---|
| 通讯作者 | 杨力(复旦大学) | 数据使用授权、合作 |
| 通讯作者 | 马旭凯(复旦大学) | 技术问题、字段疑问 |
| 合作方 | 陈玲玲(分子细胞卓越中心) | 环状 RNA 生物学背景 |
| 工具代码 | CIRCexplorer 系列 GitHub 仓库 | 复现鉴定流程 |
§4 它最独特的东西:跨物种可比与一个基因的上千个环
4.1 为什么「统一重跑」比「汇集结果」贵得多
汇集别人的鉴定结果很省事:把各论文的补充表拉下来,统一坐标,去重,合并。代价是每篇论文用的流程、参数、参考基因组都不同,合并后的表里混着十几种判断标准。
统一重跑要把每一份原始测序数据重新比对。本库的两千多份样本,全都要走一遍比对、反向剪接读段提取、定量。这个代价换来的是可比性:同一个环在不同物种里的判定标准完全一致,样本之间的差异只剩生物学与测序深度。
| 做法 | 成本 | 可比性 | 典型代表 |
|---|---|---|---|
| 汇集已发表结果 | 低 | 差,标准混杂 | circBase |
| 整合并重新定量 | 中 | 中 | circAtlas |
| 全部重跑 | 高 | 好,标准统一 | 本库 |
这张表没有说哪种更好,只说它们回答的问题不同。想找「文献里报道过哪些环」,汇集型库更全;想问「这个环在这个物种的这个组织里表达多少」,重跑型库更可靠。
4.2 保守性是怎么判的
跨物种保守性用 UCSC LiftOver 做。把人类的环状 RNA 坐标按链文件映射到其他物种的基因组,如果映射过去的位点上存在一个环,且两个反向剪接位点相差不超过五个核苷酸,就判为保守;否则判为该物种特异。
| 判定 | 条件 | 含义 |
|---|---|---|
| conserved | 映射成功且位点相差 ≤5 nt | 认为存在直系同源环 |
| human specific | 映射成功但无对应环 | 人类特有 |
| none | 映射失败或无同源区域 | 无法判定 |
「无法判定」与「人类特有」是两件事,但在下游分析里经常被合并。一个基因在别的物种里根本没有对应区域(比如灵长类特有的基因家族),它的环会被判成 none,不是 human specific。做保守性统计时把 none 算进分母,会系统性低估保守比例。
4.3 案例:一个基因的一千九百一十七个环
官方论文的表格里有一行数字很扎眼:人类 TTN 基因(肌联蛋白)产生了 1,917 种环状 RNA 异构体,是全部人类基因里最多的。小鼠的同源基因 Ttn 只有 314 种,排在第一位,但绝对值差了六倍。
TTN 是人体最大的蛋白编码基因,转录本长度超过十万个核苷酸,外显子数量三百多。外显子越多,可组合的反向剪接方式越多,这是它排第一的结构基础。但这个解释只说明「可能多」,不说明「为什么是人比鼠多六倍」——样本量差异、测序深度、以及该基因在心脏与骨骼肌中的超高表达,三个因素叠在一起。
官方把这个基因单独拿出来讲,重点是一条具体的环:circTTN(76-142),编号 CIRCHSA_TTN_49。它在心脏样本里的表达被单独画了图,与它同源的线性 TTN 转录本放在一起比较。这条记录同时展示了本库的四个设计:命名用外显子区间(76 到 142)、编号用物种加基因加序号、表达用环与线性的比值、坐标可以在 JBrowse 里直接看。
| 层级 | 人类 TTN | 小鼠 Ttn |
|---|---|---|
| 环状 RNA 异构体数 | 1,917 | 314 |
| 全库基因排名 | 第 1 | 第 1 |
| 示例环命名 | circTTN(76-142) | 对应直系同源环 |
| 示例环编号 | CIRCHSA_TTN_49 | 按小鼠码另编 |
| 组织富集 | 心脏(官方图示) | 心脏与骨骼肌 |
这个案例在 §5.4 的取数流程与 §7.2 的批次讨论里还会再出现,因为它把「条数」「命名」「表达」「组织特异性」四件事压缩在一条记录上,比任何抽象描述都好用。
4.4 两类环混在一张表里
外显子反向剪接形成的 circRNA 与内含子套索形成的 ciRNA,生成机制不同、长度分布不同、亚细胞定位倾向也不同,但它们在同一个文件里,只靠编号前缀区分。
| 特征 | circRNA | ciRNA |
|---|---|---|
| 编号前缀 | CIRC + 物种码 |
CI + 物种码 |
| 命名前缀 | circ |
ci |
| 来源 | 外显子反向剪接 | 内含子套索 |
| 典型长度 | 数百至数千核苷酸 | 数十核苷酸 |
| 主要定位 | 细胞质为主 | 文献报道多滞留核内 |
| 剪接位点 | 跨外显子边界 | 内含子两端 |
如果做长度分布或定位富集分析,必须先按前缀切开。混算的结果会把两个峰糊成一个,既看不到 circRNA 的长尾,也看不到 ciRNA 的短峰。
4.5 边界条件:什么情况下它不再适用
| 条件 | 是否适用 | 判断依据 |
|---|---|---|
| 查某个已知环的表达组织谱 | 适用 | 按样本查询即可 |
| 跨物种找保守候选 | 适用,注意 none 与 specific 的区别 | §4.2 |
| 物种间绝对条数比较 | 不适用 | 样本量差两个数量级 |
| 需要实验验证的标签 | 不适用 | 全部为计算预测 |
| 商业产品中的再分发 | 谨慎 | 数据许可未公布 |
| 依赖最新基因组组装的分析 | 谨慎 | 部分物种用上一代组装 |
| 需要批量表达矩阵 | 不适用 | 下载表不含表达 |
| 植物环状 RNA 研究 | 不适用 | 二十个物种全为动物 |
这张表最后一行值得单独提:本库一个植物都没有。如果研究拟南芥、水稻、玉米的环状 RNA,需要去植物专门的库,与这里没有交集。
§5 怎么拿到:从四十个压缩包到一张可比矩阵
5.1 目录与下载面
下载页按目分组,每个物种一行两个按钮。链接结构固定,可以直接拼。
| 路径 | 内容 | 大小 |
|---|---|---|
/circpediav3/static/download_cache/annotation/<Species>.txt.zip |
注释与预测表 | 人类约 93 MB,线虫不到 1 MB |
/circpediav3/static/download_cache/sequence/<Species>_circ.fa.zip |
环状 RNA 序列 | 人类约 104 MB |
/circpediav3/static/20250418_CIRCpediav3_summary.xlsx |
官方样本汇总表 | 约 168 KB |
/circpediav3/static/circNum_stat.json |
各物种条数统计 | 数 KB |
/circpediav3/static/sample_stat.json |
各物种按富集方式的样本数 | 数 KB |
注意文件名里的物种写法有两套:注释包用连字符(Homo-sapiens),序列包用下划线(Homo_sapiens)。拼 URL 时混用会 404,这是最容易在批量脚本里踩的坑。
另一个要提前知道的事:文件路径里没有版本号。第三版的入口叫 circpediav3,这是版本信息唯一出现的地方,压缩包名与文件名都不带日期或修订号。也就是说,同一个 URL 在不同月份可能给出内容不同的文件,而你从文件名上看不出来。做长期项目时,唯一可靠的记录方式是下载后自己算校验和并存档,同时把访问日期写进方法节。相比之下,很多国际化数据库会在文件名里嵌版本号或以 DOI 冻结快照,这里没有这层保护。
5.2 批量下载与校验
#-- 物种名两套写法:注释用连字符,序列用下划线
BASE="https://bits.fudan.edu.cn/circpediav3/static/download_cache"
mkdir -p circpedia/annotation circpedia/sequence
for sp in Homo-sapiens Mus-musculus Sus-scrofa Gallus-gallus; do
curl -sSL --retry 3 "$BASE/annotation/${sp}.txt.zip" \
-o "circpedia/annotation/${sp}.txt.zip"
done
#-- 序列包把连字符换成下划线再拼
for sp in Homo_sapiens Mus_musculus Sus_scrofa Gallus_gallus; do
curl -sSL --retry 3 "$BASE/sequence/${sp}_circ.fa.zip" \
-o "circpedia/sequence/${sp}_circ.fa.zip"
done
#-- 解压后先数行数,再与官方条数对
unzip -o -q circpedia/annotation/Gallus-gallus.txt.zip -d circpedia/annotation/
wc -l circpedia/annotation/Gallus-gallus.txt
最后一行会给出「官方条数加一」。多出来的是表头,不是错误(§5.6)。
5.3 读表与拆子字段
import pandas as pd
#-- 制表符分隔,首行是表头;dtype 全按字符串读,避免 ID 被转成数字
df = pd.read_csv("circpedia/annotation/Caenorhabditis-elegans.txt",
sep="\t", dtype=str)
#-- 按编号前缀切出两类环
df["kind"] = df["circID"].str.startswith("CIRC").map({True: "circRNA", False: "ciRNA"})
print(df["kind"].value_counts())
#-- DIS3_signal 是一列里塞了多个区间,按竖线拆成多行
sig = (df[df["DIS3_signal"] != "none"]
.assign(sig=lambda d: d["DIS3_signal"].str.split("|"))
.explode("sig"))
sig[["sig_start", "sig_end"]] = sig["sig"].str.split("-", expand=True)
print(sig[["circID", "sig_start", "sig_end"]].head())
#-- 坐标列拆成染色体、起、止、链
loc = df["Location"].str.extract(r"^(?P<chrom>[^:]+):(?P<start>\d+)-(?P<end>\d+)\((?P<strand>[+-])\)$")
print(loc.head())
dtype=str 这一步不能省。circID 里含下划线与字母,但 gene_Refseq 之类的列可能是纯数字,pandas 默认会做类型推断,把 001 读成 1,后续匹配就断了。
5.4 取一条环的完整上下文
以 §4.3 的案例为例,从表里捞出人类 TTN 的全部环,看它们的长度与定位分布。
import pandas as pd
human = pd.read_csv("circpedia/annotation/Homo-sapiens.txt",
sep="\t", dtype=str,
usecols=["circID", "Location", "circname", "length",
"subcell_location", "Orthology", "gene_Refseq"])
#-- 按命名列筛比按基因注释列稳:名字里直接带基因符号
ttn = human[human["circname"].str.startswith("circTTN(", na=False)]
print(len(ttn)) #-- 与官方表格的 1917 对照
print(ttn["circID"].str.contains("TTN_49").sum())
#-- 只取编号精确等于 CIRCHSA_TTN_49 的那一行
row = human[human["circID"] == "CIRCHSA_TTN_49"]
print(row[["circname", "Location", "length", "subcell_location"]].to_string())
如果 len(ttn) 与官方表格对不上,先看筛的那一列。gene_Refseq 在不同物种里混着装 RefSeq 编号与基因符号(线虫表里就是 nhr-102 这样的符号),拿它当基因名筛会漏;circname 由命名规则生成,基因符号一定在里面,更稳。这也是 §4.3 的案例能被反复使用的原因:它把「一行数据能不能被稳定取出来」这件事变成了一个可验证的小测试。
5.5 序列包与引物设计的接口
序列包是 FASTA,每条记录的头行就是 circID。环形分子在文件里必然被剪开铺平成一串线性字符,剪口就落在反向剪接位点上,因此序列首尾两端在真实分子里是相连的。
from Bio import SeqIO
seqs = SeqIO.to_dict(SeqIO.parse("circpedia/sequence/Homo_sapiens_circ.fa", "fasta"))
rec = seqs["CIRCHSA_TTN_49"]
print(rec.id, len(rec.seq))
#-- 反向剪接位点在前 100 nt 与后 100 nt 的接缝处
head, tail = str(rec.seq[:100]), str(rec.seq[-100:])
print(head[:30])
print(tail[-30:])
设计 divergent 引物时,正向引物落在接缝下游、反向引物落在接缝上游,扩增产物才能跨过反向剪接位点。网页端的 Primer3 模块自动做这件事,但产物长度、退火温度、二聚体都要自己复核。拿本地序列自己再跑一遍,是验证官方引物最省事的办法。
5.6 六个最容易出错的地方
| 位置 | 错误写法 | 后果 | 正确做法 |
|---|---|---|---|
| 拼 URL | 注释包用下划线 | 404 | 注释用连字符,序列用下划线 |
| 数条数 | wc -l 直接当条数 |
多算一条表头 | 减去表头,或读表后取行数 |
| 读类型 | 让 pandas 推断 | 编号前导零丢失 | dtype=str |
| 分两类环 | 按长度阈值切 | ciRNA 与短 circRNA 混淆 | 按 circID 前缀切 |
| 判保守 | 把 none 当 human specific |
保守比例被低估 | 三分类分别统计 |
| 比物种 | 直接比条数 | 比的是样本投入 | 先按样本量分层 |
§6 与库内条目的关系
6.1 关系图谱
CIRCpedia 在站内的位置是「二级加工库」:它的原料来自测序归档库,它的注释来自参考基因组库,它的产出是别人做下游分析的起点。
| 库内条目 | X 是什么 | 与它的关系 |
|---|---|---|
| GEO 基因表达综合数据库 | 原始测序数据的归档库 | 上游来源之一,本库从那里取读段 |
| GENCODE 参考基因注释 | 人类与小鼠的基因与转录本注释 | 上游注释来源,决定基因与外显子编号 |
| GTEx 组织表达图谱 | 正常组织的大规模表达 | 同类但不同层:GTEx 看线性转录本,本库看环状 |
| FANTOM5 转录调控图谱 | 转录起始位点与增强子 | 互补:一个看起点,一个看闭合产物 |
| CZ CELLxGENE 单细胞平台 | 单细胞转录组 | 尺度不同:单细胞层面环状 RNA 检出极稀疏 |
| LINCS L1000 扰动图谱 | 扰动后的表达响应 | 可组合:用扰动数据看环状 RNA 的应答 |
最关键的一行是 GENCODE。本库的 gene_Ensembl、transcript_Ensembl 都指向那一套注释,circname 里的外显子编号也是相对那套转录本算的。GENCODE 换版本,名字就会变,编号却不变——这正是双轨设计的用处。
6.2 检索路径
| 你要找的东西 | 检索词 | 会落到哪里 |
|---|---|---|
| 某个环在人体的表达 | 网页端 Search,输入基因符号或坐标 | §5.4 的取数流程 |
| 环状 RNA 的规范命名 | circRNA nomenclature、circMAN1A2 |
§2.2 的命名列 |
| 跨物种保守环 | Orthology、conserved circRNA |
§4.2 的判定规则 |
| 环状与线性的比例 | CIRCscore、CLEAR |
§3.3 的工具链 |
| 环状 RNA 的降解 | DIS3、U-rich motif |
§2.2 的 DIS3_signal 列 |
| 植物环状 RNA | plant circRNA |
不在本库范围(§4.5) |
6.3 与其他库的分工判据
| 任务 | 主粮仓该用什么 | 本库的位置 | 原因 |
|---|---|---|---|
| 找文献报道过的环 | circBase 一类汇集库 | 辅助 | 汇集型更全 |
| 查组织表达谱 | 本库或 circAtlas | 主力 | 统一重跑,口径一致 |
| 跨物种保守分析 | 本库 | 主力 | 二十物种同流程 |
| 设计验证引物 | 本库 | 主力 | 内置 Primer3 |
| 环状 RNA 定量流程开发 | 本库 | 参照 | 官方给全了工具与参数 |
| 单细胞层面的环状 RNA | 单细胞专库 | 不适用 | 本库是批量测序 |
| 植物环状 RNA | 植物专库 | 不适用 | 无植物物种 |
| 临床样本的环状 RNA 标志物 | 有临床注释的专库 | 部分 | 本库只有正常/癌/患病粗分 |
这张表里最容易被高估的是最后一行。本库确实收了癌与患病样本,但病理状态只有三档粗分,没有分期、分级、治疗史、随访。想拿它做预后标志物研究,样本的临床维度根本不够,它只能给候选分子,给不了结局变量。
§7 质量评估与局限性
7.0 阅读本节前的一个前置校正
有一个常见的误判:把「条数多」当成「质量高」。本库两百六十多万条,是同类里最大的之一,但这个数字主要由样本量堆出来,不是由鉴定精度堆出来。评价它的时候要把两件事分开:覆盖广度(物种、组织、样本)与单条可靠性(一条记录能不能被独立复现)。
这个校正会改变下面五维评分的读法。规模一项它接近满分,单条可靠性一项它拿不到高分,因为所有记录都是计算产物、没有逐条验证。把两项混在一起看,会得出「这么大一定很可靠」或「没验证所以没用」两种相反的错判。
7.1 五维评分
按 DAIMS 的常用口径打分,每项 1–5 分,分数针对「作为环状 RNA 研究数据」这个用途:
| 维度 | 分数 | 理由 |
|---|---|---|
| 数据规模 | 5 | 二十物种、两千余样本、两百六十万条,同类前列 |
| 标注质量 | 3 | 流程统一、参数公开,但无实验验证 |
| 任务适配 | 5 | 跨物种比较与命名规范几乎没有替代品 |
| 文档完整 | 4 | 关于页写清流程与工具版本,字段含义需推断 |
| 可获取性 | 3 | 免注册可下,但无整库包、无 API、许可不明 |
合计 20 分(满分 25)。分数结构与小而精的专业库正好相反:它赢在规模与适配,输在单条可靠性与取数便利。
7.2 单条记录可靠性的三层
第一层是位点对不对。反向剪接位点由读段比对确定,落在零基坐标上,误差范围取决于比对算法与读长。这一层相对可靠,因为位点有读段直接支撑。
第二层是边界准不准。外显子边界来自参考注释,注释错了,circname 里的区间就错。这一层依赖 GENCODE 或 Ensembl 的质量,不由本库负责。
第三层是表达量稳不稳。FPB 是归一化后的相对值,受测序深度、建库方式、样本质量共同影响。同一份样本换个批次重测,FPB 会变。这一层最不稳定,也最容易被当成绝对量使用。
| 用途 | 依赖哪一层 | 风险 |
|---|---|---|
| 位点查询 | 第一层 | 低 |
| 命名与跨库对照 | 第二层 | 中,随注释版本漂移 |
| 表达比较 | 第三层 | 高,需同批次同建库方式 |
| 差异表达 | 第三层 | 高,须做批次校正 |
第三层的麻烦在于它不是随机噪声。同一份 RNA 样本,用核糖体 RNA 去除建库和用 RNase R 处理建库,得到的环状与线性比值会系统性不同——后者把线性分子降解掉,环状信号相对抬高。这意味着跨建库方式拼出来的表达矩阵里,批次和生物学混在一起,任何差异表达分析都要先把建库方式放进设计矩阵。§4.3 的案例正好说明这一点:同一条 circTTN(76-142) 在心脏样本里的读数,只有在同一批建库方式内部比较才有意义,跨批次比出来的高低可能是化学造成的。
7.3 已知的、可枚举的偏差
| 偏差 | 表现 | 影响 |
|---|---|---|
| 物种偏斜 | 灵长目十个,农业与模式物种少 | 进化结论偏向灵长类 |
| 样本偏斜 | 人类样本占六成以上 | 全库统计被人类主导 |
| 富集方式偏斜 | 核糖体 RNA 去除占绝对多数 | polyA 去除样本检出率低 |
| 组织覆盖不均 | 部分物种只有整体生物样本 | 无法做组织特异分析 |
| 基因组版本混用 | 人用 hg38、鼠用 mm10 | 与新组装数据合并需转换 |
| 无实验验证 | 全部记录为计算鉴定 | 假阳性率未知 |
| 许可不明 | 无数据使用条款 | 商业使用缺依据 |
| 站点状态 | 首页标注开发中 | 接口与字段可能变动 |
| 旧域名不可达 | 第二版入口的域名可解析,端口连不上 | 旧引用链断裂,脚本需改地址 |
倒数第二条是本次查询时直接从首页读到的:页面顶部有一行「Database under active development」的提示。这句话的意思是结构与内容仍可能调整。对做长期流程的人来说,这意味着要把下载日期与文件校验和记下来,不能假定明年下的还是同一份。
最后一条是本次查询的实际观测:第二版入口所在的域名能拿到地址解析,但八十与四百四十三端口都返回连接失败,同一时段其他站点可以正常访问。这不足以断定站点永久下线——也可能是该地址对境外来源做了限制——但对使用者来说结论一样:不能再把旧地址当作取数入口。旧论文、旧教程、旧脚本里指向它的链接都需要替换。
7.4 外部验证矩阵
本库被引用时常出现在三类场景,每类的验证强度不同。
| 验证角色 | 做法 | 讲得通的地方 | 风险 |
|---|---|---|---|
| 候选环的来源 | 从本库挑环,做 qPCR 验证 | 有坐标有序列,可直接设计引物 | 挑中的环可能验证失败,失败率官方未公布 |
| 跨物种保守性参照 | 用 Orthology 列筛保守环 | 判定规则明确可复现 | 阈值固定,无法按研究需要调整 |
| 流程对标 | 用本库结果检验自己的鉴定流程 | 官方流程公开,可逐步比对 | 参数不同导致差异,难以归因 |
| 注释基准 | 用本库命名统一文献里的环 | 社区建议命名,接受度高 | 旧文献的名字仍需人工映射 |
第一类的失败率是所有人都想知道、官方没有公布的数字。从计算鉴定到实验验证,中间隔着假阳性、表达丰度不足、引物效率三重损耗。用本库挑候选时,合理的预期是「筛出一批再去验证」,不是「挑一个就能成」。
这也决定了论文方法节该怎么写。只写「候选环来自 CIRCpedia」是不够的,至少还要给三样:下载日期、用了哪一列筛(Orthology 还是 CIRCscore)、以及筛选阈值。第三样最常被漏。当前版本里 Orthology 是三值枚举,筛选逻辑本身不复杂,但「保守」与「无法判定」怎么处理,不同团队做法不同,结果会差很多。把这三样写清,别人才能判断你报出的候选集到底是怎么来的。
7.5 它为何能持续:不是数据多,是那把尺没人替
环状 RNA 数据库不止一个,条数更多的也有。它能持续被引用,靠的是三件别处凑不齐的东西:同一套流程覆盖二十个物种、一套被社区接受的命名、以及一支还在维护这套流程的团队。前两件让它的数据能被直接比较,第三件让它在基因组版本更替时还能跟上。
只要「跨物种可比」这个需求还在,而别的库仍停留在汇集已发表结果,它的位置就不会被条数更大的库顶掉。
§8 生态位与历史
8.1 从方法到数据库的十年
2014 年那篇 Cell 论文解决了一个具体问题:外显子两端反向互补的序列(主要是 Alu 元件)能让剪接机器把下游接回上游。这个机制解释了大量环状 RNA 的来源,也给了鉴定流程一个可操作的信号——找跨反向剪接位点的读段。
两年后的 Genome Research 论文把这套流程升级,系统描述了替代反向剪接的图景:同一个基因座上,不同的反向剪接位点组合产生不同的环。这篇论文实际上定义了数据库要记录的最小单位——不是基因,是「一对反向剪接位点」。
| 阶段 | 时间 | 关键进展 |
|---|---|---|
| 方法奠基 | 2014 | 互补序列介导环化 |
| 图景描述 | 2016 | 替代反向剪接的系统分类 |
| 数据积累 | 2016–2018 | 样本持续扩充,至 v2 达一百八十余份 |
| 多物种化 | 2018 | v2,六物种,保守性分析 |
| 规模化 | 2025 | v3,二十物种,加入三代测序与 ciRNA |
8.2 三代测序带来了什么
v3 新增的六十三份三代测序样本,用的是四种长读长方法:circFL-seq、circNick-LRS、isoCirc、CIRI-long。长读长的价值在于能一次读通整个环,直接确定全长序列与内部结构,不必靠短读段拼接推断。
| 方法 | 平台类型 | 特点 |
|---|---|---|
| circFL-seq | 长读长 | 富集环状 RNA 后全长测序 |
| circNick-LRS | 长读长 | 切口后测序,保留全长信息 |
| isoCirc | 长读长 | 滚环扩增后测序 |
| CIRI-long | 长读长 | 从长读段直接识别环 |
六十三份相对两千三百多份是少数,但它们的作用不是增加条数,而是给短读段鉴定结果提供全长层面的佐证。TGS 这一列就是为此设的:有长读长证据的记录,可靠性高一档。
两类数据的分工值得说明。短读段只能证明「存在一个跨越反向剪接位点的接缝」,接缝之外环的内部结构靠推断;长读段能一次读穿整个环,直接给出全长与外显子组成。因此三代数据最适合做两件事:验证短读段推断出的外显子组合是否成立,以及发现短读段因重复序列而拼不出来的长环。六十三份样本覆盖不了二十个物种,多数物种的记录仍只有短读段支撑。
8.3 生态位:标准制定者
| 角色 | 特征 | 代表 |
|---|---|---|
| 标准制定者 | 定义命名、坐标、定量口径 | 本库 |
| 规模扩张者 | 追求条数与物种覆盖 | circAtlas |
| 历史档案 | 保留早期鉴定结果 | circBase |
| 专题库 | 聚焦翻译、互作、修饰等单一维度 | riboCIRC 等 |
本库坐在「标准制定者」这一格。它的条数不是最多,但它的命名被 2023 年那篇 Nature Cell Biology 的社区共识文件采纳,circMAN1A2(2-5) 这种写法正在成为通用格式。一个数据库能输出标准,比它能输出多少条更难得。
坐这一格有代价。标准要被接受,就得稳定;标准要稳定,就不能频繁改字段。这解释了为什么它的注释表只有十五列、为什么表达量没有塞进下载包——每加一列,下游所有解析脚本都要跟着改。第三版新增了六类预测,但它们被放在网页模块里而不是全部写进主表,只有少数派生成列(可编辑位点、亚细胞定位、降解信号)进了下载表。这是一种克制的设计取舍:宁可让你多点几次,也不让主表膨胀到无法维护。
8.4 谁在用它,用来做什么
从公开文献的引用方式看,使用者集中在三类:做环状 RNA 功能实验的团队(挑候选、设计引物)、做进化比较的团队(找保守环)、做流程开发的团队(对标鉴定结果)。三类里第一类最多,也最依赖它的命名与序列。
§9 使用指引
9.1 三种角色的路径
| 角色 | 第一天 | 第一周 | 注意事项 |
|---|---|---|---|
| 实验团队 | 用基因符号查目标环,拿序列设计引物 | 做 qPCR 验证,记录验证成功率 | 不要只看 CIRCscore 高就挑,先看组织是否匹配 |
| 计算团队 | 下注释表,跑通 §5.3 的读表 | 建立本地索引,接自己的表达管线 | 坐标零基,与 BED 一致,与 GFF 差一 |
| 进化团队 | 拉多物种表,按 Orthology 筛 | 控制样本量做分层比较 | none 不等于 human specific |
9.2 一条最短的可用流程
#-- 1. 下人类注释表与序列
BASE="https://bits.fudan.edu.cn/circpediav3/static/download_cache"
curl -sSL "$BASE/annotation/Homo-sapiens.txt.zip" -o human_anno.zip
curl -sSL "$BASE/sequence/Homo_sapiens_circ.fa.zip" -o human_seq.zip
unzip -o -q human_anno.zip && unzip -o -q human_seq.zip
#-- 2. 行数核对:减去表头应等于官方条数
awk 'END{print NR-1}' Homo-sapiens.txt
#-- 3. 按命名列取子集;第 3 列是 circname,前缀带基因符号
awk -F'\t' 'NR==1 || $3 ~ /^circTTN\(/' Homo-sapiens.txt > ttn.tsv
wc -l ttn.tsv
import pandas as pd
df = pd.read_csv("ttn.tsv", sep="\t", dtype=str)
print(df.shape, df["circID"].head(3).tolist())
#-- 取 §4.3 提到的那条环
hit = df[df["circID"] == "CIRCHSA_TTN_49"]
print(hit[["circname", "Location", "length"]].to_string(index=False))
9.3 引用方式
| 引用对象 | 内容 |
|---|---|
| 数据库(v3) | Zhai SN, Zhang YY, Chen MH, Fu ZC, Chen LL, Ma XK, Yang L. CIRCpedia v3. Nucleic Acids Res. 2026;54(D1):D78–D88. |
| 数据库(v2) | Dong R, Ma XK, Li GW, Yang L. CIRCpedia v2. Genomics Proteomics Bioinformatics. 2018;16(4):226–233. |
| 流程 | 引用 CIRCexplorer3/CLEAR 原文,说明用的是哪一版 |
| 访问记录 | 写明访问日期与下载文件的校验和 |
写方法节时建议注明三件事:用的哪一版、下载日期、以及参考基因组版本是否与自己的数据一致。第三条最常被漏,也最容易导致坐标对不上。
§10 AI 使用声明
| 项目 | 声明 |
|---|---|
| 文本生成 | 本文由 AI 辅助撰写,结构与事实经编辑核对 |
| 数字来源 | 规模、结构、边界三类数字来自官方站点、官方统计端点与论文全文 |
| 交叉核验 | 物种条数逐项求和与首页总数一致;样本分项求和加三代测序数等于总样本数 |
| 文件核验 | 一个物种的注释包已下载解压,列名与行数与官方数字一致 |
| 论文信息 | 已读核酸研究论文全文,第二版论文读摘要与流程段 |
| 未核验内容 | 各字段的假阳性率、二十个物种各自的样本明细 |
| 站点状态 | 旧域名本次查询无法建立连接,详见 §7.3 |
| 图像 | 无配图;封面为生成式提示词,不含真实数据截图 |
| 免责 | 本文不构成实验建议;数据使用须先确认许可 |
常见误读(避坑清单)
| 说法 | 实际 | 证据 |
|---|---|---|
| 「CIRCpedia 是植物环状 RNA 库」 | 二十个物种全是动物,无植物 | 官方统计端点的物种列表 |
| 「它是 circBase 的新版本」 | 两个独立项目,命名与口径都不同 | 两者的编号体系不通用 |
| 「下载表里带表达量」 | 十五列全是注释与预测 | 解压后的表头 |
| 「两百六十万条都经过验证」 | 全部为计算鉴定 | 关于页只写流程,无验证章节 |
| 「条数可以直接比物种」 | 样本量差两个数量级 | 样本统计端点的分项 |
「none 就是人类特有」 |
none 是无法判定,另有 specific |
论文的保守性判定段 |
| 「ciRNA 是 circRNA 的一种」 | 生成机制不同,靠前缀区分 | 编号前缀 CIRC 与 CI |
| 「旧网址还能用」 | 本次查询连接失败,已迁址 | §7.3 的访问记录 |
| 「有 REST API 可以直接调」 | 官方未提供公开接口 | 站点导航无 API 文档 |
| 「许可是 CC BY」 | 论文是 CC BY-NC,数据许可未公布 | 论文版权页与关于页 |
FAQ
Q1:CIRCpedia 是植物数据库吗?
不是。二十个物种全在动物界,分布在灵长目、啮齿目、偶蹄目、食肉目、鸡形目、双翅目、小杆目。植物环状 RNA 有另外的库,与它没有隶属关系。
Q2:它的旧网址为什么打不开?
第二版入口在中国科学院系统的域名下,本次查询时域名能解析但八十与四百四十三端口都无法建立连接,同一时段其他站点正常。第三版已迁到复旦大学域名,旧地址不应再作为取数入口。
Q3:下载表里有表达量吗?
没有。注释包只有十五列注释与预测字段。表达量要在网页端按样本查,或者拿原始数据用同一套流程重算。
Q4:为什么人类几十万条,线虫只有一万多?
主要差在样本量与测序深度,不是物种本身的丰度差异。人类有一千五百多份样本,线虫三十几份,检出条数随样本累加而增加。
Q5:可以用它训练功能预测模型吗?
可以当候选池,不能当金标准。功能字段全是计算预测,没有实验验证标签。当弱标签用要写明来源。
Q6:引用时该引哪一篇?
用第三版数据引 2026 年核酸研究那篇,写明访问日期与版本。只用了旧版结构才引 2018 年那篇,两篇的物种数与样本数都不同。
Q7:坐标是零基还是一基?
零基。官方在检索说明里明确写了 zero-based。接 BED 格式不用转换,接 GFF 要加一。
Q8:怎么区分 circRNA 和 ciRNA?
看编号前缀。CIRC 开头是外显子反向剪接来的,CI 开头是内含子套索来的。没有单独的类型列。
Q9:Conservative 判定可靠吗?
它是一个固定阈值的几何判定:LiftOver 映射成功且位点相差五核苷酸以内。可靠与否取决于链文件质量,做精细分析时要自己复核序列层面的一致性。
Q10:能商用吗?
论文是 CC BY-NC 4.0,约束的是论文文本。数据本身的许可官方没有单独公布,商用前需要联系通讯作者取得书面许可。
Q11:为什么下载包没有整库打包?
官方按物种提供四十个压缩包,没有全库合集。人类一个物种就接近两百兆,全量下载需要自己写循环。
Q12:有没有 API?
官方未提供公开的 REST 接口。取数以整包下载为主,网页端的检索结果适合人工查询,不适合批量抓取。
Q13:它的表能不能直接当 BED 用?
坐标本身可以,但格式要转。注释表是制表符分隔的十五列,不是 BED 的三到六列。按附录 D 的第二段代码转一次即可,注意 BED 的起始是零基、终止是开区间,与源数据的闭区间写法差一位时要在下游对齐。
术语表
| 术语 | 解释 |
|---|---|
| 环状 RNA | 首尾共价闭合的 RNA 分子,无 5′ 与 3′ 端 |
| circRNA | 外显子反向剪接形成的环状 RNA |
| ciRNA | 内含子套索来源的环状 RNA |
| 反向剪接 | 下游 5′ 剪接位点接回上游 3′ 剪接位点的异常剪接 |
| 反向剪接位点 | 环化时两个剪接位点的接缝,缩写 BSJ |
| FPB | 每十亿比对碱基中落在反向剪接位点的片段数 |
| FPBcirc | 环状 RNA 的 FPB 值 |
| FPBlinear | 同源线性转录本的 FPB 值 |
| CIRCscore | 环状 FPB 除以线性 FPB,衡量相对丰度 |
| 直系同源 | 不同物种中由共同祖先基因演化来的对应分子 |
| LiftOver | UCSC 提供的跨基因组坐标转换工具 |
| 零基坐标 | 第一个碱基编号为零的坐标体系 |
| 外显子区间命名 | 用参与环化的外显子编号命名,如 circTTN(76-142) |
| 稳定编号 | 不随命名规则变化的内部分配键 |
| 器官系统 | 官方把样本归并成的二十六个大类 |
| 核糖体 RNA 去除 | 建库时去掉核糖体 RNA,保留包括环状在内的其他 RNA |
| polyA 去除 | 去掉带 polyA 尾的 RNA,会系统性丢失环状 RNA |
| RNase R | 降解线性 RNA、保留环状 RNA 的核酸外切酶 |
| 三代测序 | 长读长测序,能读通整个环 |
| 碱基编辑位点 | 可被碱基编辑器改变、用于敲除环的位点 |
| divergent 引物 | 背向延伸、只有跨反向剪接位点才能扩增的引物对 |
| m6A | RNA 腺苷甲基化修饰,影响稳定性与翻译 |
| 开放阅读框 | 可翻译成肽的连续密码子序列 |
| IRES | 内部核糖体进入位点,允许帽非依赖翻译 |
| 亚细胞定位 | 分子在细胞内的分布区室 |
| 内含子套索 | 剪接时被切下并成环的内含子中间体 |
| 批次效应 | 因实验批次不同造成的系统性测量偏差 |
| 假阳性 | 被判定为存在、实际不存在的结果 |
附录 A:核心数字核对表
| 项 | 值 | 来源 | 来源层级 |
|---|---|---|---|
| 物种数 | 20 | 官方首页统计块 | 官方页面 |
| 测序样本数 | 2,413 | 官方首页统计块 | 官方页面 |
| 二代测序样本 | 2,350 | 关于页概述 | 官方页面 |
| 三代测序样本 | 63 | 关于页概述 | 官方页面 |
| 环状 RNA 总数 | 2,610,032 | 官方首页统计块 | 官方页面 |
| 人类条数 | 849,495 | 官方统计端点 | 官方文件 |
| 小鼠条数 | 214,984 | 官方统计端点 | 官方文件 |
| 线虫条数 | 14,269 | 官方统计端点;解压后行数减表头 | 官方文件 |
| 器官系统数 | 26 | 关于页 | 官方页面 |
| 组织数 | 203 | 论文讨论段 | 论文全文 |
| 细胞类型数 | 375 | 论文讨论段 | 论文全文 |
| 注释表列数 | 15 | 解压后的表头 | 官方文件 |
| 下载压缩包数 | 40 | 下载页逐项计数 | 官方页面 |
| 人类注释包大小 | 约 93 MB | 响应头 | 官方文件 |
| 人类序列包大小 | 约 104 MB | 响应头 | 官方文件 |
| 论文卷期页 | 54(D1): D78–D88 | 期刊元数据 | 论文全文 |
附录 B:数字的来源分层
第一层:官方页面与官方文件。 物种数、样本数、总条数、各物种条数、器官系统数、下载包大小、字段列表。这些来自首页统计块、关于页、下载页,以及可直接访问的两个统计端点与一个已解压的注释包。
第二层:论文全文。 组织数、细胞类型数、TGS 方法、保守性判定阈值、命名示例、工具版本。这些来自核酸研究 2026 年那篇的正文,属于作者自述,可核但未经第三方复现。
第三层:未核实。 各字段的假阳性率、每条环的实验验证状态、二十个物种的逐样本明细、旧域名失效的具体原因。这些需要逐条实验或长期观测,本文只做定性表述。
附录 C:完整参考文献
| 编号 | 文献 | 链接 | 用途 |
|---|---|---|---|
| 1 | CIRCpedia v3 官方站点 | https://bits.fudan.edu.cn/circpediav3 | 规模、结构、下载入口 |
| 2 | Zhai SN 等,CIRCpedia v3,NAR 2026 | https://doi.org/10.1093/nar/gkaf1039 | 流程、命名、保守性阈值 |
| 3 | Dong R 等,CIRCpedia v2,GPB 2018 | https://doi.org/10.1016/j.gpb.2018.08.001 | 版本沿革与旧域名 |
| 4 | Zhang XO 等,Genome Res 2016 | https://doi.org/10.1101/gr.202895.115 | 替代反向剪接的注释框架 |
| 5 | Ma XK 等,CLEAR,GPB 2019 | https://doi.org/10.1016/j.gpb.2019.11.004 | CIRCscore 的定量口径 |
| 6 | 环状 RNA 命名共识,Nat Cell Biol 2023 | https://doi.org/10.1038/s41556-022-01066-9 | 社区建议命名的出处 |
| 7 | 官方样本汇总表 | https://bits.fudan.edu.cn/circpediav3/static/20250418_CIRCpediav3_summary.xlsx | 样本元数据 |
| 8 | 官方条数统计端点 | https://bits.fudan.edu.cn/circpediav3/static/circNum_stat.json | 逐物种条数 |
附录 D:任务代码
任务一:跨物种保守环的筛选骨架
import pandas as pd
def load_species(path):
return pd.read_csv(path, sep="\t", dtype=str)
human = load_species("Homo-sapiens.txt")
mouse = load_species("Mus-musculus.txt")
#-- 先看两边的保守性列各自怎么取值
print(human["Orthology"].value_counts())
print(mouse["Orthology"].value_counts())
#-- 人类表里标为 conserved 的,去小鼠表里按编号前缀与基因名交叉核对
cons = human[human["Orthology"] == "conserved"]
print(len(cons), cons["gene_Refseq"].nunique())
#-- 按基因聚合,找保守环最多的基因
top = cons.groupby("gene_Refseq").size().sort_values(ascending=False).head(20)
print(top)
任务二:把注释表接成 BED 供基因组浏览器加载
import pandas as pd
df = pd.read_csv("Homo-sapiens.txt", sep="\t", dtype=str)
loc = df["Location"].str.extract(
r"^(?P<chrom>[^:]+):(?P<start>\d+)-(?P<end>\d+)\((?P<strand>[+-])\)$")
bed = pd.concat([loc, df[["circID", "circname", "length"]]], axis=1)
bed = bed.rename(columns={"circID": "name", "length": "score"})
bed["score"] = 0
bed = bed[["chrom", "start", "end", "name", "score", "strand"]]
bed.to_csv("circpedia_human.bed", sep="\t", index=False, header=False)
print(bed.shape, bed.head(3).to_string(index=False))
第二段代码输出的 BED 可以直接拖进 IGV 或 UCSC,坐标不用改,因为源数据本身就是零基。
附录 E:如果只记五件事
- 它是动物环状 RNA 库,二十个物种,没有植物。
- 两百六十多万条,是人类占比三成多、样本量决定条数的分布,不能横向比物种。
- 下载表只有注释,没有表达矩阵;表达要在网页端查或自己重算。
- 命名规则与稳定编号双轨,这是它最被低估的贡献。
- 数据许可未公布,商用前必须联系作者。
编辑说明
本篇的核验时间为 2026 年 10 月 28 日。核验方式分三步:直接访问官方站点与三个静态端点,读取首页统计块、关于页、下载页与两个 JSON 统计文件;下载并解压线虫注释包,核对列名与行数;通过 Europe PMC 取第三版论文全文与第二版摘要。未覆盖的内容包括各字段的假阳性率、二十个物种的逐样本明细,以及旧域名失效的确切原因(本次只观测到连接失败,未做路由层排查)。凡正文中出现「官方未公布」之处,均指官方页面与论文中未找到对应表述,不代表该项不存在。
相关数据集导航
以下为站内 AI-Ready 数据集百科中与本词条共享多个主题标签的相关数据集,按相关度降序排列:
- intact — 共享标签:基因组学与多组学 / 药物发现与化学
- msigdb — 共享标签:基因组学与多组学 / 药物发现与化学
- lipid-maps — 共享标签:基因组学与多组学 / 药物发现与化学
- intenz — 共享标签:基因组学与多组学 / 药物发现与化学
- alphafold — 共享标签:基因组学与多组学 / 药物发现与化学
- disgenet — 共享标签:基因组学与多组学 / 药物发现与化学
- open-targets — 共享标签:基因组学与多组学 / 药物发现与化学
- alphafold — 共享标签:基因组学与多组学 / 药物发现与化学
- rtx-kg2 — 共享标签:基因组学与多组学 / 药物发现与化学
- complexportal — 共享标签:基因组学与多组学 / 药物发现与化学
导航说明:本章节由全站统一标签体系自动计算生成(标签重合度算法),双向可达;点击链接可跳转至对应数据集词条。

