拿到一张耐药基因结果表后,最容易做的事情是数行、按药物类别画柱状图,再把柱子高低解释成耐药程度。这个过程看起来流畅,却可能在三个位置引入错误。不同证据等级被合并,同一个基因被多个类别重复计数,不同样本的读数或基因数又被当成了可直接比较的量。RGI 的输出字段相对丰富,恰好适合用来学习怎样避免这些问题。
本文是一篇官方文档核对和结果审阅教程。我们实际执行了文中独立编写的表格核验练习,使用六条明确虚构的记录测试汇总逻辑,没有安装或运行 RGI,也没有使用 CARD 序列和数据库开展分析。下文不会给出虚构的检出率、耗时或样本耐药结论。这样区分,是为了让读者知道哪些内容来自官方定义,哪些来自本次可以复查的统计练习。

一、先分清参考数据库、检测模型和分析程序
CARD 提供耐药相关参考知识,RGI 使用其中的模型开展序列分析。这里的“模型”不只是一个序列名称,还包括采用什么证据以及怎样判定命中。数据库版本改变,模型内容和阈值也可能改变,所以同一份输入在不同时间得到不同记录,并不一定说明输入发生了变化。概念关系可以从RGI 官方项目说明开始核对。
读者可以先把分析过程写成三列记录。第一列是输入内容及校验值,第二列是程序和依赖版本,第三列是数据库版本、模型范围和运行参数。后面出现结果差异时,逐列比较比只问“用了哪个软件”更有效。特别是批次研究,不宜让每个样本随运行日期自动使用不同的数据库,再把差异全部解释为生物学变化。
还要把用途写清楚。希望了解样本中有哪些候选耐药相关基因,与希望预测每种药物的敏感性,并不是同一个交付目标。前者可以围绕序列证据和模型进行报告,后者还涉及适用对象、实验条件和表型证据。官方问答也明确讨论了耐药组预测与药敏谱预测的区别。CARD 与 RGI 常见问题
本篇选择文档与结果解读的另一个原因,是尚未确认本次商业内容工作具有相应软件与数据库使用许可。官方对商业机构使用材料列有书面许可要求,公开可访问或可以从包管理器安装,并不等于所有用途都自动获准。本文不分发其软件、数据库和参考序列,具体使用范围应对照官方条款确认。
二、三个等级不能只按百分比相似度理解
Perfect、Strict、Loose 描述的是匹配与模型判定的关系,不是三个通用的测序质量等级。对于蛋白同源模型,Perfect 对应与参考蛋白全长完全一致的匹配,Strict 使用模型整理的比对分数门槛,Loose 则处于更宽松的发现范围。不同模型有各自门槛,不能把统一的相似度百分比替换成整个判断过程。蛋白同源模型定义
这个区别可以用普通的字符串比较来理解。一段很短的共同片段可能完全相同,但它不足以证明两条全长序列具有同样的功能。另一方面,全长序列只有少数位置不同,也不一定意味着它完全失去原有功能。相似比例、比对覆盖范围、序列长度和模型证据需要一起看。只截取表格中的最高相似度,会丢掉决定解释范围的信息。
Loose 适合保留待复核线索,不能因为它在表中有一行,就自动进入最终确认集合。实际项目应先制定纳入规则,再查看结果数量。若看到某组结果少才临时加入宽松记录,而另一组仍只统计严格记录,就会人为制造组间差异。更稳妥的做法是将主要分析与探索性候选分开,分别报告规则和数量。
| 审阅问题 | 先检查什么 | 容易出现的误读 |
|---|---|---|
| 证据属于哪一层 | Perfect、Strict、Loose | 所有行都视为同等确认 |
| 使用哪类模型 | 同源、变异、调控等 | 找到同源序列就等于满足全部条件 |
| 匹配覆盖多少 | 序列长度与比对区间 | 局部一致等于全长一致 |
| 是否发生等级调整 | Nudged 与说明字段 | 标签相同就意味着判定过程相同 |
| 当前统计单位是什么 | 样本、开放阅读框、类别 | 类别合计等于独立基因数 |
三、模型类型决定还要追问什么
蛋白变异模型除了同源关系,还需要检查模型定义的变异条件。换句话说,检测到某个基础功能基因,不等于已经检测到使其具有特定耐药意义的变异。阅读结果时应先确认模型类型,再确认记录给出的变异证据,避免把宿主本来就存在的同源基因一概标为获得性耐药决定因素。蛋白变异模型定义
调控相关模型又有不同的解释范围。官方蛋白过表达模型可以包含野生型和带变异的调控蛋白信息。因此,模型名称里出现过表达,并不等于这份测序数据已经测到了表达量升高。基因组序列与表达测量属于不同证据层次,把模型的机制描述改写成该样本的直接实验结果,会夸大结论。蛋白过表达模型定义
这一点也影响报告措辞。可以写某条记录符合某类模型的候选证据,并指出还需要哪些验证。不要在缺少相应检测时直接写成样本对所有关联药物都耐药。对未命中的结果,同样应保留范围限制,它只表示当前输入、当前程序支持范围和当前数据库下没有相应报告,不代表所有可能机制都被排除。
实际审阅时,建议从一条读者最关心的记录开始,沿着输入序列、预测基因、匹配模型、证据等级、分类标签逐步追溯。只要其中某一步不能回答,就先补齐证据,而不是继续堆叠图表。这个习惯能够发现字段错位、旧版本映射和不完整序列带来的解释问题。
四、输入类型不同,分析链条也不同
以组装核酸作为输入时,基因预测是进入蛋白层面分析的重要环节。若需要分析的开放阅读框没有被预测出来,下游再严格的匹配也无法恢复一条从未进入搜索的蛋白。直接提供蛋白输入可以跳过这一步,但质量责任会转移到上游注释。阅读RGI main 的官方说明时,应把输入模式和基因预测范围一并记录。
因此,比对两个软件的结果时,不宜只比较最终基因名称列表。一个使用原始组装,另一个使用已经过滤过的蛋白集,两者没有进入同一个输入空间。先检查序列是否缺失、是否存在截短、标识符能否对应、基因预测模式是否一致,才能区分上游差异和匹配算法差异。
短读段入口则面临另一个问题。多个相近参考序列可能共享读段,使等位基因级别的归属存在歧义。RGI bwt 和 main 的输出不是可以直接互换的两张表,尤其不能把短读段映射当作已经完成所有变异模型的判定。当前官方说明还强调读段输出的计数需要另行进行丰度归一化。RGI bwt 使用说明
读者可以先确定希望回答的是是否检测到、属于哪个家族,还是不同样本中相对多少。只有第三个问题需要进一步设计归一化分母,而它也不能自动回答绝对拷贝量。测序深度不同、群落组成不同或参考范围不同,都会改变原始读数的可比性。
五、怎样设计一张不容易误导的汇总表
我们为统计练习写了六条虚构记录,来自两个虚构样本。每条记录包含样本名、开放阅读框标识符、证据等级、类别标签和是否经过等级调整。没有填写真实基因序列、真实耐药变异或真实数据库编号。这份数据的用途仅是检查汇总逻辑,读者不应把其中任何数量引用为 RGI 对生物样本的分析结果。
六条记录中,三个证据等级各有两条。按练习预设的主汇总规则,保留 Perfect 和 Strict 后剩四条,其中一条被明确标记为经过等级调整。脚本同时保留这个标记,而不是因为最后标签属于 Strict 就把来源差异抹去。这是一项信息保存原则,是否将这条记录纳入某项研究,应由实际研究标准决定。
四条保留记录对应的类别成员关系共有六个,其中类别甲为三个、类别乙为两个、类别丙为一个。原因是有两条记录各关联两个类别。于是,类别计数合计六,独立记录却只有四,两者完全可以同时正确。如果把三个类别画成互斥扇区,再标成“全部基因组成”,就会暗示一种并不存在的互斥关系。
另一个设计是让两个样本都使用 orf1、orf2 这样的局部标识符。六条记录如果只按开放阅读框名称去重,会剩四个名称,错误地合并不同样本的对象。实际汇总应保留样本与局部标识符组成的联合键。若把同一份结果重复导入,联合键重复应触发核查,而不是悄悄把结果乘以两倍。
下面的核心片段展示了这个原则,完整脚本还会检查等级值和重复记录。这里的代码只整理表格,不执行耐药预测。
key = (row["sample"], row["ORF_ID"])
if key in seen:
raise ValueError("Duplicate sample/ORF key")
seen.add(key)
if row["Cut_Off"] in {"Perfect", "Strict"}:
retained.append(row)
labels = {
item.strip()
for item in row["Drug Class"].split(";")
if item.strip()
}
class_memberships.update(labels)
实际运行练习后,六行数据得到六个样本与阅读框联合键。追加一条重复记录形成七行时,程序明确报出重复键,没有继续生成看似合理的汇总。这个小实验说明,输入核验最好发生在画图之前。图形工具可以把错误数字画得很漂亮,却不会替研究者发现重复导入。
六、字段名称接近,不代表统计含义相同
阅读输出时,应先分清哪个字段属于查询对象,哪个属于参考对象,哪个是分类标签。最佳命中名称、开放阅读框标识符和基因家族不能随意互换。前者可以用于描述参考关联,后两者分别涉及待分析对象和更高层分类。按不同字段去重,会得到不同问题的答案,必须在表题或方法中写清楚。
长度也值得单独核对。官方字段说明中的参考长度百分比以预测蛋白长度和参考蛋白长度的比值表达,不能看到“百分比”就认定它是实际对齐覆盖率。实际对齐区间、两端是否截短、是否有未对齐部分,还需要其他字段和原始比对帮助判断。这个问题与任何比对软件都相关,先定义分子和分母比记住一个列名更可靠。
对数据库更新前后的比较,建议保留旧版结果,在相同输入上产生新版结果,然后区分新增记录、消失记录、等级变化和仅名称变化。若直接把两个版本的名称列做集合差,命名更新也可能被误当成基因出现或消失。能够回到原始序列与模型标识,才更容易识别这些变化。
七、记录版本和参数,才能解释变化
官方支持将数据库加载到工作目录或程序环境中的不同位置。分析人员应记录实际使用的数据库位置和版本,而不是只记录曾经下载过哪个压缩包。尤其在多个项目共用环境时,一个项目更新共享数据库可能影响后续运行。具体查询与加载方法见官方数据库管理说明。
本文不展示未经执行的安装命令作为实跑过程,也不预先编造运行输出。已经取得适用授权的读者开展分析时,可以把程序版本、数据库版本、输入校验值、完整参数和标准日志作为最小记录集。结果整理脚本再单独保存一份,这样才能区分识别阶段变化与汇总阶段变化。
版本敏感选项也应单独列出。官方说明提到不同代际对等级调整的默认行为存在变化,因此旧教程中的默认设置不能直接套到新环境。文章中的统计练习保留 Nudged 字段,正是为了提醒读者检查判定来源。这个字段本身不能代替对实际版本规则的核对。
八、工具的优势、局限和可带走的方法
RGI 的优势是把候选序列与有组织的模型和分类体系联系起来,便于追溯判定依据。局限包括对上游输入质量、数据库覆盖、模型支持范围和版本行为的依赖。某个工具没有报告的内容,可能是缺少输入、缺少模型或当前程序没有实现相应判定,不能简单归结成该机制不存在。
读者完成本文后,可以立即检查自己的结果是否保留了证据等级和模型类型,是否把一个对象的多个类别误当成多个独立对象,是否在跨样本汇总时使用了联合键,以及原始计数是否具有可比的分母。这些问题不依赖重新跑一遍大型分析,却往往能修正最常见的报告错误。
下载结果审阅练习及同组材料可以取得本篇原创脚本、六条虚构记录及本地运行核验结果。材料明确区分本篇表格练习与同组其他工具的实跑,不包含 CARD 数据库,也不能用来推断任何样本的耐药表型。
当分析需要跨批次保留数据库版本、参数和审阅记录时,可以了解云生信生物信息分析环境服务。
