单位 2 / 11

DNA/RNA 序列分析:比对、基序、开放阅读框和基础生物信息学

收益:

  • 了解序列比对、基序搜索和开放阅读框 (ORF) 的概念,并让人工智能生成可执行、可验证的 Biopython/分析代码。
  • 能够检查人工智能生成的序列和代码中的框架、链和基因组版本假设,并将结果与已知参考进行比较
  • 能够遵守不使用人工智能从头脑中给出的任何序列的原则,并从 NCBI / Ensembl 等主要来源确认每个序列

序列分析是分子生物学最基本的任务:读取由字母 A、T、G、C 组成的 DNA 链(或 RNA 中的 U),对其进行比较,并找到其中有意义的区域(基因、基序、调控序列)。在本单元中,您将学习如何在这些作品中使用人工智能(AI)作为代码编写和解释的伙伴;但您将了解为什么应该始终使用可执行代码和主要源来验证结果。我们的核心工具集将是 Biopython(一个为处理生物序列而编写的 Python 库)和官方比对工具。

首先警告:LLM 可能会从内存中产生错误,即使是很短的序列。当要求它正面计算序列的反向补码时,它可能会混淆一个字母。因此,永远不要依靠AI的文本响应来执行字符串操作,而是使用AI编写并运行的代码。

基本概念:我们做什么?

  • 碱基对(bp):DNA 的字母单位。人类基因组大约有 32 亿个碱基对。
  • 链:DNA是双螺旋;这两条链互为互补链。在哪个线程中声明变体很重要。
  • 密码子:三个碱基组;每个密码子对应一个氨基酸(蛋白质的组成部分)。例如,ATG 通常是起始密码子(蛋氨酸)。
  • 开放阅读框(ORF):可以编码蛋白质的序列区域,从起始密码子延伸到终止密码子(TAA、TAG、TGA)。
  • Motif:具有特定功能的重复短序列模式;例如,转录因子结合的区域。
  • 对齐:将两个或多个序列依次排列以查看它们的相似之处。

逐步:序列分析工作流程

1. 从可靠来源获取该系列。不要让AI说“提醒”顺序;从 NCBI、Ensembl 等来源将其下载为 FASTA(存储序列的标准文本格式),并将该序列提供给 AI。

2. 使用代码完成交易。通过Biopython代码完成反向互补、转录(DNA→RNA)、翻译(RNA→蛋白质)、GC比等操作并自己运行代码。

3. 检查框架和线程假设。请他/她在注释行中清楚地说明代码正在哪个线程以及哪个阅读框架中运行。

4. 将结果与已知参考值进行比较。将您生成的蛋白质或 ORF 与数据库中的已知记录进行匹配。长度和初始不匹配是最常见的错误。

5. 使用官方工具确认对齐。不要让AI“眼球”两个系列的相似度;使用 BLAST(序列相似性搜索工具)或比对库获取数值分数。

提示:始终将字符串长度作为您的第一个检查。蛋白质的氨基酸数量大约是编码序列碱基数量(不包括终止密码子)的三分之一。如果长度不合适,则框架或螺纹错误。

三个迷你箱子

情况 1 — 逆补错误。一名学生向 AI 询问序列 5'-GATTACA-3' 的反向互补序列; AI给出了“TGTAATC”(正确)。然而,在更长的20个碱基序列中,AI跳过了一个碱基,结果是19个碱基。当学生在 Biopython 中使用 Seq("...").reverse_complement() 运行它时,它需要 20 个碱基并捕获错误。损失时间:2分钟。

情况 2 — 移码。研究人员将 900 个碱基的编码序列翻译成蛋白质; AI通过文本“读取”280个氨基酸的蛋白质。预期为 299 个氨基酸(900/3 − 1 stop)。不同的是,AI是从第二个核苷酸开始的。当代码从第一帧开始时,获得了正确的长度。

案例 3 — 获得确认。一名实验室技术人员检查了两种细菌菌株的 16S rRNA 序列,询问“它们是否相同?”他问人工智能; “很可能是一样的,”人工智能说。当技术人员运行 BLAST 时,他看到了 97.8% 的相似性和 12 个碱基差异——这是物种级别歧视的关键差异。如果没有数字分数,报告中将输入错误的“相同”结果。

示例:可验证的 Biopython 流

from Bio.Seq import Seq# 从您从 NCBI 下载的 FASTA 导入序列;不要让人工智能说“提醒我”。 dna = Seq("ATGGCCATTGTAATGGGCCGCTGAAAGGGTGCCCGATAG")print("长度 (bp):", len(dna))print("GC 率 (%):", round(100 * (dna.count("G") + dna.count("C")) / len(dna), 1))print("反向补码:", dna.reverse_complement())# 从第 1 帧开始翻译;直到终止密码子 Protein = dna.translate(to_stop=True)print("蛋白质:", Protein, "| 长度 (mm):", len(蛋白质))

即使人工智能编写了这段代码,你也可以通过运行它来看到输出的准确性。长度、GC 比率和蛋白质与已知参考相当。

四个可复制模板

1)可验证的数组操作:

为以下 FASTA 序列编写可执行 Biopython 代码:[序列/任务]。计算帧 1 的长度、GC 比率、反向补码和平移。注释掉假定的线程和帧。不产生序列;只需使用我给你的顺序即可。

2)ORF筛选:

编写一个 Python 代码,查找给定序列中的所有开放阅读框(以及可选反向链上的所有三个开放阅读框)。报告每个 ORF 的起始位置、长度和翻译的蛋白质。还要标记最长的 ORF。

3)对准确认:

我想比较两个数组。 “相似的?”不要用眼睛来判断;编写成对比对代码并以数字形式报告相似性百分比和差异数。资料来源:[系列 1]、[系列 2]。

4)主题搜索:

在给定字符串中搜索以下主题(也作为正则表达式):[motif]。列出所有匹配项的位置(从 1 开始)。还要编写并指定重叠匹配。

弱提示/强提示

弱:“写出这个序列的蛋白质:ATGGCC……”

问题:AI 用文本进行翻译,可能会混淆框架/线程,无法验证长度。

Strong:“编写一个可执行的 Biopython 代码,从第 1 帧翻译以下序列,报告长度和终止密码子;不要更改序列,只需使用我给出的序列:ATGGCC...”

为什么它强大:处理是用代码完成的,框架清晰,输出可以用数字验证。

任务

错误的做法

正确的方法

反向互补

让AI用文字书写

Biopython 反向补集()

翻译

让AI根据记忆进行翻译

代码,指定框架

相似性

“类似?”眼睛决定

BLAST/对齐分数

主题

让AI用手数数

代码,带有位置列表

数组源

让AI记住

来自 NCBI/Ensembl 的 FASTA

常见错误

  • 没有指定框架。从错误的框架翻译会产生短的或有缺陷的蛋白质。
  • 使纱线缠结。变体或图案可以是反向螺纹;应该写出线程假设。
  • 让AI记住序列。 LLM 无法无错误地生成长字符串;您总是提供该系列。
  • 通过眼睛判断相似性。不要在没有数字分数的情况下说“相同/相似”。
  • RNA/DNA 混合物。将 U 与 T 混合会扰乱翻译;明确输入类型。
注意:即使 BLAST 和类似工具的相似度很高,也不一定意味着生物学上“相同”; e 值(机会概率)和对齐区域的长度应一起评估。

深度:正确读取 BLAST 输出

让 AI 解释 BLAST 结果可以节省时间;但在您亲自阅读这三个问题之前,不要做出任何决定。第一个是e值(期望值):这个分数可能偶然出现的期望次数;像 1e-50 这样非常小的值意味着强,像 0.1 这样的值几乎是噪音。第二个是查询覆盖率:匹配覆盖查询序列的百分比; 98% 的相似度但只有 20% 的覆盖率意味着序列的一小部分是相似的并且具有误导性。第三个是百分比同一性。如果没有这三者一起阅读,仅高百分比并不能证明任何事情。

一个具体的例子:一位研究人员对他刚刚测序的基因片段进行了 BLAST; “与人类 BRCA2 匹配 99%,相同基因”,AI 说道。当研究人员查看输出时,他发现覆盖率仅为 15%——匹配部分只是 BRCA2 数千个碱基中的一个短的重复区域。正确的解释不是“相同的基因”,而是“共享一个共同的重复基序”。阅读范围可以防止完全错误识别。

爆炸柱

它说什么

陷阱

E值

巧合的概率

如果很高,比赛可能就没意义了

查询覆盖率

覆盖查询率

如果较低,则该百分比具有误导性

同一性百分比

匹配基本费率

独自一人是不够的

比特分数

归一化对齐强度

按长度解释

5)BLAST输出解释模板:

解释以下 BLAST 表,但不要做出决定:分别总结每行的 e 值、查询覆盖率和同一性百分比,并指出在得出“相同基因”等结论之前需要满足哪些阈值。表:[粘贴]。

综上所述

  • 序列操作(反向补码、翻译、ORF、GC 比率)应使用 AI 编写并运行的代码来完成,而不是使用 AI 的文本响应来完成。
  • 应始终明确说明框架和线程假设;长度检查是最快的错误捕获工具。
  • 始终从可靠来源(NCBI、Ensembl)获取序列;不要让人工智能记住它。
  • 相似性和一致性是通过官方工具和数字评分来评估的,而不是通过眼睛来评估。

应用任务

从可靠来源(例如 NCBI)下载短编码序列。有了上面的模板1和2,向AI索要一段Biopython代码,运行代码;将您产生的蛋白质的长度和序列与数据库中的已知记录进行比较。如果发现不匹配,请尝试通过更改框架/线程假设来修复它并记下该过程。

清单

  • [ ] 我从可靠来源获得了该序列,我没有让 AI 记住它。
  • [ ] 我用可执行代码执行了数组操作。
  • [ ] 我已经明确指定了框架和线程假设。
  • [ ] 我将蛋白质/ORF 长度与参考进行了比较。
  • [ ] 我评估了与官方工具和数值评分的相似度。
  • [ ] 我检查了 RNA/DNA 和 U/T 分离。