AI 助手已经能写出像样的序列分析代码,但它会算错、会猜错你的文件格式、会在路径上翻车。本讲带你完成第一次"人机分工":你描述需求,AI 写代码,你逐行读懂、亲手验证、自己改参数。装好 Python,今晚就能跑通。
导读本教程以《Python for Biologists》(Martin Jones) 的生物学例子为骨架,但教学目标不是"从零手写代码",而是 AI 时代更实用的四件事:看懂 AI 生成的代码、说清自己的需求、验错——判断 AI 写得对不对、微调——自己改关键参数。本讲完成第一件事的闭环:让 AI 写一段计算 DNA 序列 AT 含量的程序,你读懂它、验证它、再改改它。
本讲信息
| 《Python for Biologists》(Martin Jones, 2014) 第 1 章框架,按 AI 协作场景重新组织 |
| |
| 一台 Windows 电脑;任一对话式 AI 助手(Kimi、ChatGPT、Claude 等均可,本教程不绑定具体产品) |
| |
| 一个能计算任意 DNA 序列 AT 含量的小程序,以及一套"让 AI 写代码"的提问模板 |
AI 都能写代码了,还要学吗
要回答这个问题,先看三个几乎每个用 AI 写代码的科研工作者都遇到过的场景。
场景一:AI 给的代码跑出一个数,你敢写进论文吗?AI 生成代码又快又像样,但它不理解你的生物学问题——它可能把"AT 含量"算成"A 的含量",可能忽略了序列里的换行符,可能用错了分母。代码能运行 ≠ 结果正确。判断对错的前提是你读得懂它在算什么。
场景二:你说"帮我分析这个 FASTA 文件",AI 给的不是你要的。AI 不知道你的文件长什么样:序列 ID 行有没有空格?序列是大写还是小写?有没有简并碱基?需求描述得越具体,AI 给的答案越靠谱——而"描述具体"需要你理解程序面对的是什么数据。
场景三:筛选阈值从 60% 改成 50%,还要再问一次 AI?这类小改动在代码里就是改一个数字。看得懂代码的人十秒钟自己改完;看不懂的人只能把整段对话重来一遍,还要重新验证 AI 这次有没有顺手改坏别的地方。
这三个场景对应的能力——看懂、说清、验错、微调——就是这个教程的全部目标。你不需要成为程序员,你需要成为 AI 代码的"审稿人"。
先建立一个心智模型:程序只是一段文本
抛开神秘感,一个 Python 程序就是一个纯文本文件,里面写着一组指令;电脑上的 Python 解释器是一个软件,它读这个文件,从上往下逐行照做。
在这个模型里,AI 助手的角色很清晰:它帮你写这段文本。它写得快、语法熟,但它没见过你的数据、不知道你的目的,所以文本可能有错。你的角色是:把需求讲清楚 → 读懂它写的文本 → 用真实数据验证 → 不对就指出来让它改,或者自己改。
所以整个教程的顺序是:先装好"执行文本的软件"(Python),再学会"让 AI 写文本"(提问),然后逐章学会"读懂文本"(语法)。
动手准备:安装 Python 3
第 1 步:下载
打开 python.org,进入 Downloads,下载最新的 Python 3 Windows 安装包(64-bit)。
第 2 步:安装——一个关键勾选项
运行安装包,在第一屏勾选 "Add python.exe to PATH",再点 "Install Now"。
为什么必须勾选?不勾选,Windows 命令行就找不到 python 命令,后面所有"运行脚本"的步骤都会报错。这是安装环节最常见的坑。已经装完但没勾的,重新运行安装包选 Modify 补救。
第 3 步:验证
按 Win + R,输入 cmd 回车,在打开的窗口里输入:
显示出版本号(数字随你的版本不同)即安装成功。macOS 用户同样从 python.org 安装,验证命令为 python3 --version。
第一次协作:让 AI 帮你算 AT 含量
假设你手上有一条序列 ATGCGTACGTAGC,想知道它的 AT 含量(A 和 T 占的比例)。这是分子生物学里的常规计算,手工数容易错,正好拿来练手。
打开你的 AI 助手,把下面这段提示词原样发给它:
提示词模板(可直接复制)
请用 Python 3 写一段小程序:计算 DNA 序列 "ATGCGTACGTAGC" 的 AT 含量(A 和 T 两种碱基占总长度的百分比),把结果打印出来,保留 1 位小数。序列直接写在代码里。请只给我代码,不要解释。
注意这个提示词里的四个要素:任务(算什么)、输入(序列是什么、在哪)、输出(打印、几位小数)、约束(Python 3、只要代码)。这四要素是本教程反复使用的提问骨架——AI 答非所问时,先检查哪个要素没说清。
AI 返回的代码可能长这样(不同 AI、不同次的写法会有差异,这很正常):
dna = "ATGCGTACGTAGC"
at_content = (dna.count("A") + dna.count("T")) / len(dna) * 100
print("AT含量:", round(at_content, 1), "%")
把代码复制下来,粘贴到一个文本文件里,保存为 at_content.py(扩展名必须是 .py)。可以用 Python 自带的 IDLE 编辑器(开始菜单搜 IDLE,File → New File),在 IDLE 里按 F5 运行:
程序跑通了。但先别急着信它——这正是下一节要做的事。
逐行读懂:这段代码到底在算什么
只有三行,逐行拆开看:
| 把序列文本装进一个叫 dna 的变量。引号表示这是一段文本(字符串),等号表示"把右边的东西交给左边的名字"。以后要换序列,只改引号里的内容。 |
| at_content = (dna.count("A") + dna.count("T")) / len(dna) * 100 | 计算核心。dna.count("A") 数出 A 的个数,dna.count("T") 数出 T 的个数,相加后除以 len(dna)(序列总长度),再乘 100 变成百分比。结果存进变量 at_content。 |
| print("AT含量:", round(at_content, 1), "%") | print() 把结果显示到屏幕;round(..., 1) 把数字保留 1 位小数。逗号隔开的几项会依次打印,中间自动加空格。 |
这三行里已经出现了本教程最重要的三个概念:变量(给数据起名字)、字符串的方法(count 这种"点后面跟着的动作")、函数(len、round、print 这种"名字加括号"的工具)。后面几讲会逐个展开,现在只要混个脸熟。
亲手验证:AI 算对了吗
代码能跑不代表算得对。验证这个数据量小到可以手工完成:
序列 ATGCGTACGTAGC 共 13 个碱基。逐个标出来:A 出现在第 1、7、11 位,共 3 个;T 出现在第 2、6、10 位,共 3 个。(3 + 3) ÷ 13 × 100 = 46.15…%,保留 1 位小数是 46.2%——和程序的输出一致。这次 AI 算对了。
验证清单(每次用 AI 写的代码都过一遍)1. 跑通了吗?没报错只是第一步,不代表结果对。2. 逻辑对不对?逐行读,确认它算的就是你要的(比如分母是"总长度"而不是"A+T 的数量")。3. 用已知答案的数据测过吗?找一个小到能手算的输入(本讲就是 13 bp 的序列),手工结果和程序结果必须一致。
第三条是科研场景里最实用的一条:你永远应该先用"知道答案的小数据"测试,再把代码用到真实大数据上。
自己动手:换一条序列
现在做一次典型的"微调"——不需要问 AI,自己改。把第一行引号里的序列换成你自己的(比如从某篇文章的图里抄一段),保存,重新运行:
dna = "GCGCGCATATATGC" # 只改引号里的内容,其余别动
改完如果报 SyntaxError,九成是这两个原因之一:引号打成了中文引号,或者引号只留了一半。检查这两个地方,比把整段代码贴回给 AI 快得多。
AI 时代特有的几个新手坑
1. 把 Markdown 标记一起复制了。AI 聊天界面里的代码通常包在 ``` 符号里,有的还带行号。这些标记不是代码,粘进 .py 文件会直接报错。只复制代码本体。
2. 文件存成了 at_content.py.txt。Windows 默认隐藏扩展名,用记事本保存时容易多出 .txt。用 IDLE 保存可以避免;或在文件资源管理器里勾选"查看 → 文件扩展名"确认真实文件名。
3. 直接拿真实数据测新代码。AI 写的代码第一次用,先在 13 bp 的玩具序列上验证,再上你那个 2 GB 的测序文件——顺序反了,你会分不清是代码错了还是数据有问题。
接下来
到这里,你已经走通了 AI 时代用代码解决问题的完整闭环:描述需求 → AI 生成 → 逐行读懂 → 手工验证 → 自己微调。后面九讲要做的事情,就是把"读懂"这一步不断加深——下一讲从变量和数据类型开始:程序是怎么"记住"一条序列、一个数字、一组文件的,以及为什么把数字和文本搞混会让 AI 的代码直接崩溃。
下讲预告 · 第 2 讲:变量与数据类型——程序怎么"记住"东西字符串、整数、小数有什么区别;为什么 "13" + "13" 等于 1313 而不是 26;看懂 AI 代码里的变量命名,以及一个让 AI 少犯错的习惯:在提示词里说清你的数据类型。
本讲框架参考《Python for Biologists》(Martin Jones, 2014) 第 1 章,按 AI 协作场景重新组织;示例代码为 Python 3,AT 含量计算结果(46.2%)已经手工核对。文中不绑定任何具体 AI 产品,提示词模板适用于主流对话式 AI 助手。