
简介这是一份围绕生物信息学核心知识的公开课获奖课件主题为常用生物数据库和数据格式面向初学者、生物信息学相关专业学生及科研人员帮助解决数据库多、格式杂、不知如何选择和使用的问题。课件由单个pptx文件构成大小约9.49MB共1个文件内含图文并茂的幻灯片适合课堂展示、自学入门或作为授课参考资料目前已有88人浏览学习。课件系统覆盖常用序列数据库NCBI、EBI、DDBJ、基因功能数据库Gene Ontology、KEGG、InterPro和基因组数据库UCSC、Ensembl不仅介绍各数据库的基本功能与侧重点还详细讲解FASTA、FASTQ、GFF、GenBank等常见数据格式的结构、字段及适用场景并以GenBank完整记录为例拆解其头部描述符、特征表和序列数据三部分便于直观理解。此外课件还介绍了权威的Nucleic Acids Research年度数据库列表有助于读者把握最新数据库选择方向通过学习这份课件读者能够快速构建生物数据库与格式的整体框架为后续数据分析与科研实践打下扎实基础。1. 生物数据库和数据格式公开课课件不是讲完全部数据库而是讲透一条检索路径公开课课件只要沾上“生物数据库”四个字十有八九会做成一堂网页截图巡礼一页一个数据库首页学生看完了只记住图标。真正能让评审点头、让学员课后敢说自己会用的课件切口往往很小。这份课件的价值点应当落在“一个基因从核酸序列到蛋白注释的完整数据链路”上核心要回答三件事常用生物数据库各自管哪一段数据FASTA、FASTQ、GenBank、GFF3、VCF 这几种数据格式到底在描述什么以及如何用一条接口把不同格式统一返回出来做比较。它适合生物医药背景的本科生、刚接触生信的临床科研人员也适合准备教学比赛的高校青年教师——这堂课的目标不是“看过数据库”而是“拿到一个基因名能独立查回序列和注释并且知道自己在看什么”。2. 生物数据库怎么选NCBI、Ensembl、UniProt 的分工和课件最少需要几张表2.1 先说清楚“常用”指什么给学员一张能抄的数据库分工表讲数据库最怕贪多。课件标题写“常用生物数据库”不等于要把 UCSC、Ensembl、NCBI、UniProt、PDB、KEGG、miRBase 全部铺开。一堂 45 分钟的公开课能讲透三个主线库已经很好再多就成了名词展览。我一般会这样划分三条主线对应核酸序列、基因组注释、蛋白功能三段数据。NCBI 的 Gene、Nucleotide、dbSNP 覆盖基因与核酸序列Ensembl 覆盖基因组组装和转录本注释UniProt 覆盖蛋白序列和功能描述。三者的关系可以用一个场景串起来学员拿到一个基因名 TP53先到 NCBI 查基因编号和参考序列再到 Ensembl 看它在染色体上的坐标和转录本结构最后到 UniProt 看蛋白结构域和功能注释。这个过程本身就是一条完整的检索路径。课件里值得放一张这样的分工表不需要面面俱到每行只写“管什么、课件里用来做什么”。表格越短学员越愿意抄。数据库管什么这堂课用它做什么NCBI Gene / Nucleotide基因编号、核酸序列、变异查基因 ID、下载 FASTA 和 GenBank 记录Ensembl基因组组装、转录本、基因注释查染色体的基因坐标、转录本结构、GFF3 下载UniProt蛋白序列、结构域、功能注释查蛋白功能、结构域位置、跨膜区2.2 课件里唯一值得现场演示的路径从 Gene 检索到 FASTA 返回一张图胜过十段话的地方是展示这条检索路径时。课件里不必逐个点击网页建议直接用 NCBI E-utilities 接口做现场检索一来速度快二来返回结果是纯文本学员能直观看到数据库的“统一返回数据格式”长什么样。以下是我会在课件里放的第一组检索命令用于把基因名转成 Gene ID。# 第一步在 NCBI Gene 库里检索人类 TP53返回 JSON 格式 curl -s https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?dbgenetermTP53%5BTitle%5D%20AND%20human%5BOrganism%5Dretmodejson这条命令的关键在 term 参数。TP53[Title]限定标题字段避免把“p53 binding protein”这类名字也搜进来human[Organism]限定物种不加这个限定返回结果里会混进斑马鱼、小鼠的 TP53 同源基因课堂演示如果在这里翻车非常尴尬。retmodejson让结果以 JSON 返回浏览器和终端都能直接读。拿到返回值里的 id 列表后再做第二步按 ID 取详情。# 第二步用上一步拿到的 Gene ID 7157 查询基因概要 # 人类 TP53 的 Gene ID 是 7157这个编号可以在课件里写死 curl -s https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?dbgeneid7157retmodejson | python3 -m json.tool管道后面的python3 -m json.tool只做格式化让返回的 JSON 缩进对齐学员在投影上看得清楚。esummary 返回的内容包含基因全名、染色体定位、基因类型、别名正好用来解释“为什么 Gene ID 比基因名更适合作为数据库之间通信的主键”——因为基因名有别名、有大小写不敏感问题而 Gene ID 是稳定数字。这里有个课件制作上的细节现场演示依赖网络任何时候都可能卡在第一步请求上。我的经验是提前在本地缓存一份同样的 JSON 文件放在课件同一目录下断网时直接打开缓存文件讲字段不打断课程节奏。2.3 用 JSON 把 NCBI 返回结果“统一返回数据格式”讲明白很多学员第一次接触生物数据库时最大的困惑是同样的基因在不同网站里的描述长得完全不一样。这个困惑的根源在于没有理解“统一返回数据格式”这个概念——数据库通过 URL 参数约定返回格式同一个数据源你可以要求它返回 FASTA也可以要求它返回 GenBank 或 GFF3。这一节在课件里非常出效果。用同一个 efetch 接口只改 rettype 参数返回三种不同格式并排贴在课件上。# 用 rettype 参数指定返回格式fasta / gb / gff3 curl -s https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?dbnucleotideidNM_000546rettypefasta curl -s https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?dbnucleotideidNM_000546rettypegb curl -s https://eutils.ncbi.nlm.nih.gov/entrez/eutils/efetch.fcgi?dbnucleotideidNM_000546rettypegff3三条命令只有 rettype 不同返回结果的结构差异却非常明显。FASTA 只有头行和序列GenBank 记录包含完整的 LOCUS、FEATURES、ORIGIN 区块GFF3 则是按行排列的基因坐标特征。课件把这三种并列展示学员的直观感受比讲十页定义都强。参数说明只需要一句rettype 是 NCBI 定义好的“返回格式开关”fasta 是纯序列、gb 是 GenBank 完整注释、gff3 是用于基因组浏览器的坐标注释。2.4 数据库默认更新频繁课件怎么避免被版本拖着走生物数据库不是静态教材。NCBI 的 Gene 条目会更新注释Ensembl 每年发布两到四次新版本dbSNP 的 build 号也一直在涨。今天课件里截图的位置下学期可能就变了。这不是课件作者不认真是数据库本身的属性。应对方法不是不截图而是给每一张数据截图盖一个“版本印章”。我在课件页脚固定写三行参考基因组版本 GRCh38/hg38、dbSNP Build 155、查询日期。没有这个习惯的课件下课后学员复现时对不上版本便会失去信任感加了这行字即使数据库更新学员也能知道差异来自版本而非操作错误。这种细节在公开课评审里很加分它直接体现了教师的专业严谨度而不是照本宣科。3. 数据格式怎么讲才不劝退FASTA、FASTQ、GenBank、GFF3、VCF 的一次性讲法3.1 建立直觉同一段基因五种格式回答的是五个问题数据格式的讲解如果只罗列格式规范学员不到十分钟就会走神。换个讲法每种格式回答一个特定问题。FASTA 回答“序列是什么”做比对和 BLAST 时用FASTQ 回答“测序仪直接吐出来的读段长什么样、质量如何”是测序数据的原始形态GenBank 回答“这段序列有哪些基因和 CDS 注释”是带注释的核酸记录GFF3 回答“基因在染色体上的坐标区间如何”是基因组浏览器和注释工具的共同语言VCF 回答“这个样本在哪些位点有变异”是变异检测结果的通用载体。把这五个问题写在课件开场后面每讲一种格式都回扣一句学员就会理解“我什么时候该用哪个文件”。这比背格式规范实用得多。我甚至会在课件里把这句话加粗你在 NCBI 搜一个基因默认得到 FASTA 和 GenBank你在做变异分析最终要产出 VCF你想把基因画在染色体上需要的是 GFF3。格式不是孤立的它跟着分析任务走。3.2 用真实行片段拆字段从 FASTA 到头行再到 GFF3 的 9 列讲字段规范时我用真实数据库返回的行片段作为教学素材但会在课件里注明两件事一是截断显示二是注明完整序列的来源与版本。这样既不误导学员去核对一串不存在的完整序列也保持了真实数据的可信度。FASTA 只需要讲清楚头行。一个真实头行的典型返回是下面这样NC_000017.11:g.7668401_7725864 Homo sapiens TP53 ATTTGCGTGTGGAGTATTTGGATGACAGAAACACTTTTCGACATAG...课件中截断显示头行里的NC_000017.11是 RefSeq 的染色体 accession7668401_7725864是该基因在 GRCh38 上的坐标区间Homo sapiens TP53是物种和基因名。序列行在课件里只保留前 80 个字符并在备注页写明“完整序列请课下用 efetch 获取”。这样学员既能看清结构又不会误以为这一小段就是全长。GFF3 是全场最难讲的一种格式难在它有 9 列字段而且前 8 列全是数字或点的组合。我的方法是只解读一行真实返回其余不铺开。##gff-version 3 NC_000017.11 Ensembl gene 7668401 7725864 . . IDgene:ENSG00000141510;NameTP53这里 9 列分别是 seqid、source、type、start、end、score、strand、phase、attributes。课堂讲解的核心是第 1、4、5、9 列。seqid 是染色体编号start 和 end 构成基因区间第 9 列 attributes 里藏着基因 ID这是后续用 bedtools 等工具做区间运算时最常被引用的部分。source 列标的是 Ensembl意味着这条注释来自 Ensembl 的预测流程type 列是 gene表示这一行描述的是一个基因特征下面通常还会跟 transcript、exon 等更细粒度的行。VCF 的讲解同样落到列结构上。我用下面这个最小示例不带具体 rs 编号避免学员误认为这是某个真实变异位点##fileformatVCFv4.2 #CHROM POS ID REF ALT QUAL FILTER INFO 17 7675087 . C T . PASS AF0.01只需指出 POS 这一个位点位置、REF/ALT 两组碱基、INFO 列里的 AF 等位基因频率学员就能理解 VCF 是“位点级”的文件和 GFF3 表示“区间级”特征的方式完全不同。FASTQ 我一般放在课件演示环节而不是讲字段环节。用一个小例子说明四行结构第一行 开头是读段标识第二行是碱基序列第三行 号第四行是质量字符。质量字符串里每个字符对应一个碱基的测序质量I表示最高质量。这个例子用一个虚构的短读段即可没必要从真实测序数据里截取大文件。demo-read-001 length36 ACGTACGTACGTACGTACGTACGTACGTACGTACGTAC IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII3.3 格式转换要演示但不要讲全三个命令解决 90% 的课堂需求格式转换是学员实际干活时最常遇到的需求但课件里不必展开成《生物信息学格式转换手册》。我的选择是只演示三个命令每一个都对应一个真实高频场景。第一个场景是拿到 FASTQ 后想快速看看序列内容用 seqtk 转 FASTA第二个场景是把 GFF3 转成 BED 便于在浏览器和 bedtools 中使用第三个场景是检查 FASTA 是否完整。# 场景一FASTQ 转 FASTA输入可以是 gz 压缩文件 seqtk seq -a SRR000001_1.fastq.gz SRR000001_1.fastaseqtk 的-a参数表示输出 FASTA 格式。这里有一个学员最容易困惑的点为什么测序数据文件经常带 .gz 后缀。答案写在命令里——seqtk 可以直接读压缩文件说明 FASTQ 文件体积大是常态压缩存储是标准做法。紧接着可以提示转出来的 FASTA 是双行格式每两条记录之间空行不空行都不影响后续分析。# 场景二从 GFF3 中提取全部 gene 特征转成 BED 区间坐标 awk -v OFS\t $3gene{print $1, $4-1, $5, $9} demo.gff3 demo.bed这条 awk 命令是课件里性价比最高的一行代码。它做了两件事用$3gene过滤出 gene 类型的行然后把 GFF3 的第 4 列 start 减 1、第 5 列 end 不变输出为 BED 格式。减 1 这个操作不是随意为之而是 GFF3 用 1-based 闭区间、BED 用 0-based 半开区间的坐标体系差异。课件里我会在这条命令旁边放一个对照注释GFF3 区间 100-200 转成 BED 是 99-200。这一条讲透后学员以后遇到坐标转换心里就有底了。# 场景三统计 FASTA 文件中序列条数 grep -c ^ TP53.fastagrep -c统计以 开头的行数也就是序列条数。这个命令演示的目的不是功能本身而是引导学员形成“下载文件后先自检”的习惯也是给下一章做铺垫。3.4 课件里放一张“格式速查表”胜过二十页截图课件最后需要一张能带走的速查表每行一种格式、一句话说清它是什么、坐标规则、常见后缀。这张表学生截图带走以后课程的价值才会延伸到课后。格式内容坐标规则常见后缀FASTA序列本身无.fa / .fastaFASTQ测序读段 碱基质量无.fastq / .fq.gzGenBank核酸序列 注释1-based.gb / .gbkGFF3基因组区间特征1-based 闭区间.gff3VCF变异位点信息1-based.vcf / .vcf.gz表格做出来后我还习惯在课件里加一句提醒格式是人为规定的数据库返回什么取决于你请求时指定的参数。给学员这样的统一返回视角比逼他们背下每种规范更有价值。4. 生物公开课课件避坑演示翻车和课件结构的 5 个常见问题4.1 界面截图总是过时数据库改版后学生在课上找不到按钮现象课件里贴的是半年前的 NCBI 检索页面截图学员课后自己操作时发现菜单布局完全不同按照课件指示点了半天找不到对应入口。原因NCBI、Ensembl 这类大型数据库的界面持续改版尤其 NCBI 在近几年的检索结果页做了多次结构改动旧的搜索框和过滤栏截图很快就对不上。解决开课当天在无痕浏览器里重新访问一遍要演示的页面并重新截图确保课件里的界面与实际一致。关键操作步骤不贴静态图改用录屏片段嵌入课件录屏的容错性远高于截图。课件页脚保留查询日期学员课后对照时能判断差异是版本引起的。4.2 现场检索不限定物种TP53 搜出来一半是斑马鱼现象课堂上演示 NCBI Gene 检索输入 TP53 后返回结果列表里出现大量非人类同源基因学员开始疑惑“到底该点哪个”。原因Gene 数据库默认不做物种限定同源基因会并列展示。TP53 在人类、小鼠、斑马鱼、线虫里都有对应记录不限定物种自然一团乱。解决课件里把完整检索式写出来强制要求带上物种限定词例如TP53[Title] AND human[Organism]。演示前先在终端跑一遍确认返回的 id 是否符合预期。这一条虽然简单却是现场演示翻车频率最高的环节值得在课件里用红字标注。4.3 GFF3 坐标讲成 0-based课后作业差一个碱基现象学员课后做练习用 Python 按课件给的坐标切片序列切出来的区间总是差一个碱基对不上注释结果。原因GFF3 的坐标体系是 1-based 闭区间start 和 end 都算在区间内而 Python 切片是 0-based 半开区间两个体系混用就会系统性偏移一个位置。解决课件里必须专门用一页把坐标系差异讲透。我给一个可复现的对照某个特征在 GFF3 里写 100-200在 BED 里应该写成 99-200在 Python 切片时seq[99:200]才能取到一致的序列。这个例子配一条 awk 转换命令学员亲手转一次就记住了。4.4 讲格式不带上下文学员背下字段却不知道文件从哪来现象把 GFF3 的 9 列字段讲得很细学员也记住了但课后拿到一个真实文件仍然不知如何下手不知道这个文件的坐标对应哪个版本。原因孤立的格式规范是死的。如果学员没见过格式从数据库下载原文件、没有亲手解压一次、没有看一眼版本号字段讲得再细也只是名词记忆。解决讲任一格式前先现场下载一次。哪怕是只下载一条基因记录也让学员亲眼看到文件头部的元数据行和版本声明。GFF3 的##gff-version 3行和注释来源VCF 的##fileformatVCFv4.2行都是学员以后判别文件可用的第一步。让学员养成先看头部再看数据的习惯比记住字段顺序更重要。4.5 教学重难点与演示内容错位把 45 分钟上成了网页浏览课现象整节课一半时间在逐页打开数据库网站学员看得眼花缭乱课尾练习时连一个基因的 FASTA 都拿不出来。原因课件内容贪多没有形成主线。每个数据库各讲两页、每种格式各配三张截图看起来内容丰富实际没有一条能走通的动手路径。解决设计一条贯穿全课的检索引例从基因名到 Gene ID到 FASTA 与 GenBank 对比再到 GFF3 坐标解释最后落到 UniProt 蛋白注释。全程只走这一条路但每个环节都做到位。公开课评审更看重目标是否达成而不是素材量是否庞大。5. 把课件从“能讲”做到“能复现”一页课堂练习单和一组校验命令5.1 课堂练兵给定基因名学员 3 分钟拿到 FASTA 和 GFF3课件最后一个环节我习惯不放新知识点而是把当堂内容压缩成一个可验证的小任务。练习单上只留四行任务配空白横线让学员填写结果自选一个基因名用刚才的方法查出 NCBI Gene ID记录它的染色体定位和 RefSeq accession用 efetch 返回它的 FASTA 头行最后写清楚参考基因组版本号。四步全部完成这堂课的目标才算真正落地。5.2 给课件配一组“自检命令”下错文件当场就能发现我会再给学员两个快速校验命令用来判断自己下载的文件是否合理。# 校验一FASTA 文件的序列条数与头行内容 grep -c ^ TP53.fasta head -1 TP53.fasta# 校验二GFF3 文件除注释行外每行是否有且仅有 9 列 grep -v ^# demo.gff3 | awk -F\t {if(NF!9) print bad line at, NR, columns:, NF}两条命令都解释过之后学员拿到任何来源的生物数据都能先做一次体检而不是直接拖进工具里报一堆难以理解的错误。这些年我上过不少类似的课最大的教训就是版本号和物种限定永远写进课件别指望临场记住课堂演示前预跑一遍检索命令哪怕多花五分钟也比现场翻车强得多。希望帮到你。本文还有配套的精品资源点击获取