第2章:生物信息学基础:基因组、转录组、蛋白质组

做药物靶点发现,第一步就是跟生物数据打交道。说白了,你盯着屏幕看到的一串串ATCG,或者一堆FPKM值,它们背后都有对应的生物学意义。

我刚开始做这行的时候,直接上手跑流程,结果输出了一堆看不懂的ID。后来我花了一周恶补基础知识,回头看才发现——那些“看不懂”的ID其实就是基因组坐标。嗯,今天咱们就把这三块基础打牢。

2.1 基因组数据基础

基因组数据是所有分析的地基。你跑变异检测、做差异表达,最终的落脚点都得回到基因组上。

2.1.1 参考基因组与FASTA格式

参考基因组是一段“标准模板”。每个物种都有对应的参考基因组,比如人类用的是GRCh38/hg38。我建议你第一次用某个物种时,先去Ensembl或UCSC官网确认版本号。为什么?因为同一个基因在不同版本里坐标可能差十万八千里。

FASTA是存储序列的标准格式。结构很简单:

>chr1
AGCTTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCT
>chr2
GCGATCGTAGCTAGCTAGCTAGCTAGCTAGCTAGCT

第一行是“>”开头的描述行,后面就是序列本体。有些FASTA文件很大(人类的3GB起步),所以后期我们会用samtools或seqkit来索引和切片。

2.1.2 基因注释与GTF/GFF格式

有了序列,你还要知道“哪里是基因”。这就是基因注释文件干的事。

GTF和GFF是两种常见的注释格式,结构上差不多。我个人习惯用GTF,因为UCSC和Ensembl都提供这个格式。来看看它长什么样:

chr1    Ensembl  exon    11873   12227   .   +   .   gene_id "ENSG00000223972"; transcript_id "ENST00000456328";
chr1    Ensembl  CDS     12010   12187   .   +   0   gene_id "ENSG00000223972"; transcript_id "ENST00000456328";

每一行有9列:染色体、来源、特征类型、起始、结束、分数、链、相位、属性。关键要记住:exon(外显子)和CDS(编码区)是两个不同的概念。外显子是基因的一部分,但CDS才是真正翻译成蛋白的区段。

避坑指南:我曾经在项目里直接用了GTF的exon坐标去设计PCR引物,结果扩增出来的产物根本不翻译。后来才明白——应该用CDS区域而不是整个外显子。

2.2 转录组数据基础

转录组是“正在表达的基因”的快照。你做的RNA-seq就是这个原理——把细胞里正在转录的RNA都测一遍,然后通过比对来确定哪些基因活跃、表达量有多高。

2.2.1 测序数据格式:FASTQ

FASTQ是测序仪吐出来的原始文件。它比FASTA多了一行碱基质量分:

@SRR001666.1 1/1
CTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCTAGCT
+
IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

第1行以@开头,是序列ID;第2行是碱基序列;第3行是+,有时会重复ID;第4行是质量分,每个字符对应一个碱基的质量。质量分用的是ASCII码,范围从33到126,分数越高说明这个碱基测出来越可靠。

2.2.2 表达定量与表达矩阵

拿到比对结果后,下一步就是定量。常用的工具有featureCounts(极快)、HTSeq-count(准确但慢)、salmon/kallisto(直接做伪比对)。

最终你会得到一个表达矩阵,行是基因,列是样本:

Geneid  Control1  Control2  Treatment1  Treatment2
BRCA1   1240      1100      305         289
BRCA2   890       950       150         130
TP53    2340      2500      4100        3980

这里的数字是counts,代表比对到该基因的reads数。注意,counts受基因长度和测序深度影响,所以后续做差异表达时,不同工具(DESeq2、limma、edgeR)会用不同的归一化策略。

关键认知:
• counts:原始计数,适合差异表达分析
• FPKM/RPKM:考虑了基因长度和总reads,适合基因间比较
• TPM:比FPKM更稳定,适合样本间比较。我个人习惯用TPM做可视化,用counts跑差异分析

2.3 蛋白质组数据基础

蛋白质组是“真正干活的分子”。转录组告诉你“有这个基因可能被转录”,蛋白质组告诉你“这个蛋白真的被翻译出来了”。

2.3.1 蛋白质序列与结构数据

蛋白质序列常用FASTA格式,但字母表不一样:

>sp|P04637|P53_HUMAN Tumor suppressor p53
MEEPQSDPSVEPPLSQETFSDLWKLLPENNVLSPLPSQAMDDLMLSPDDIEQWFTEDPGP
DEAPRMPEAAPPVAPAPAAPTPAAPAPAPSWPLSSSVPSQKTYQGSYGFRLGFLHSGTA

UniProt是最权威的蛋白质数据库,每个条目有:

  • Accession(唯一ID,如P04637)
  • Entry name(如P53_HUMAN)
  • 功能注释、结构域信息、亚细胞定位
  • 对应基因名、同源物种信息

2.2.2 理解序列比对P值与E值

做BLAST或DIAMOND时,你一定会看到这两个指标。很多人搞混它们,我这里用一个简单的比喻来解释。

指标 含义 通俗解释
P-value 两条序列偶然对上的概率 好比你扔骰子,连出6次6点的概率
E-value 在数据库大小前提下,期望出现该比对结果的行数 相当于你扔1000次骰子,出现6次6点的期望次数

E值越低,比对越可靠。一般我设阈值E_value < 1e-5,这个在蛋白质同源搜索里够用。

注意:E值受数据库大小影响。数据库越大,E值可能会更高。举个例子,我用同一段序列去搜UniProt(全库)和Swiss-Prot(人工审核子库),在全库搜到的E值可能会变高。这不是序列本身的问题,是搜索空间变大了。

2.4 整合:基因组-转录组-蛋白质组的数据链路

真正做药物靶点发现,你得把这三层数据连起来。我经历过一个悲伤的故事:有人从RNA-seq差异基因列表里挑了个高表达基因,买了蛋白表达系统,结果发现那个基因根本不翻译蛋白——因为它是长链非编码RNA。

为什么呢?因为转录组和蛋白质组之间有个翻译调控的开关。测到mRNA不代表有蛋白,mRNA量高不代表蛋白量高。所以现在很多项目要求数据集同时包含RNA-seq和蛋白质组质谱数据。

下面这张图概括了这三者的关系,以及它们怎么串起来支撑下游靶点发现:

基因组 → 转录组 → 蛋白质组:药物靶点发现数据链路 参考基因组 FASTA + GTF/GFF 转录组 RNA-seq / 表达矩阵 蛋白质组 UniProt / 质谱数据 变异检测 / 基因注释 差异表达 / 富集分析 候选靶点列表 交叉验证可成药的基因/蛋白 合成致死、Crispr筛选、表达关联分析需要跨组学数据联动

我常跟团队说一句话:如果你只做了转录组分析,那叫“猜测”;如果你还能拿到蛋白质组验证,那才叫“证据”。

2.5 数据获取实用命令

最后,给几个能在命令行里立马用的命令。你先装好curl和wget:

# 下载人类参考基因组(GRCh38/hg38的染色体1)
wget https://hgdownload.soe.ucsc.edu/goldenPath/hg38/chromosomes/chr1.fa.gz
# 解压
gunzip chr1.fa.gz

# 获取基因注释GTF(从Ensembl)
wget https://ftp.ensembl.org/pub/release-111/gtf/homo_sapiens/Homo_sapiens.GRCh38.111.gtf.gz
gunzip Homo_sapiens.GRCh38.111.gtf.gz

# 下载UniProt蛋白质序列(人类)
wget https://ftp.uniprot.org/pub/databases/uniprot/current_release/knowledgebase/taxonomic_divisions/uniprot_sprot_human.fasta.gz
gunzip uniprot_sprot_human.fasta.gz
小技巧:我习惯把下载的参考基因组建个索引,这样后续比对能快5-10倍。比如用bwa:
bwa index chr1.fa

搞定这些基础数据后,后面的分析才有根。我们后面章节会一步步把这些数据源串联成真正的靶点发现Pipeline。先到这里,你把这些命令跑一遍,看看下载的文件长什么样,心里就有底了。