1. motif的基本定义:一个被重复使用的序列片段
先直接回答那个最基础的问题:基因组学里的motif,翻译过来就是“基序”,它指的是DNA、RNA或蛋白质序列中一段具有特定生物学功能、且被反复出现的短片段。
听起来有点抽象?我换个说法。如果把基因组比喻成一本书,那么motif就是书里反复出现的“成语”。成语由几个汉字固定组合而成,意思稳定、能被读者立刻识别;motif也一样,它是一段固定的核苷酸序列(比如ATAGGCGA),在基因组的不同位置反复出现,而每次出现都承载着某种特定的生物学含义。
在基因组学里,我们遇到最多的motif大概分成三类:
- DNA motif(顺式调控元件):位于基因上游或内含子中,是蛋白质(主要是转录因子)的“停靠点”。转录因子和这段DNA结合,就能开启或关闭下游基因的表达。
- RNA motif:位于RNA分子上,参与剪接调控、翻译调控、RNA定位等过程。比如很多病毒RNA里有内部核糖体进入位点(IRES)这种motif,能“骗”宿主细胞的核糖体来翻译病毒蛋白。
- 蛋白质motif:是蛋白质序列里保守的功能区段,比如锌指结构域、亮氨酸拉链等,负责与其他分子相互作用。
如果只记一句话,你就记这个:motif是“序列上有模式、功能上有意义”的短片段。后面的所有技术细节,都是围绕着“怎么找到它”和“找到它之后有什么用”这两件事展开的。
2. 为什么基因组学会盯着“短片段”不放:motif背后的调控逻辑
很多刚接触生信的人会有一个困惑:基因组那么长(人类基因组约30亿碱基),为什么要揪着十几二十个碱基的短片段研究?
因为基因组的“调控密码”恰恰藏在这些短片段里。
高通量测序时代之前,生物学界的主流认知是“一个基因sequence决定一个蛋白”。后来大家逐渐发现,基因的表达量不是固定的,不同组织、不同时间点、不同生理状态下,基因的“开关”被人精确控制着。这个控制的核心执行者之一,就是转录因子。
转录因子本身是蛋白质,它必须“认得”基因组上特定的序列才能发挥作用。这个“特定序列”,就是前面说的DNA motif。
这里有个非常关键的生物化学逻辑:
- 转录因子蛋白结构中的某个功能域,会以特定的空间构象与DNA双螺旋的“大沟”或“小沟”接触。
- 这种接触依赖氢键和范德华力。一个碱基的差异就可能改变氢键的供体/受体模式,导致结合亲和力骤降。
- 因此,转录因子偏好的DNA序列是高度保守的,进化上会维持在一个很窄的“序列模式”范围内。
这个“序列模式”在计算上怎么表示?最经典的就是位置权重矩阵(position weight matrix,PWM)。
你可以把PWM理解成一个“序列喜好打分表”。拿一个6bp长的motif举例,PWM就是一个4行6列的矩阵,每一列对应一个碱基位置,四个碱基A/C/G/T在各自位置的权重代表“这个位置上出现哪个碱基更有利于结合”。对一条候选序列打分时,把每个位置的权重取对数相加,得到的总分就能反映“转录因子会不会看上这段DNA”。
用生活例子类比:PWM像猜密码锁。假设你知道某把锁的六位密码中,第一位很可能是数字1或2,第二位偏爱7等,你手里有了概率分布表,就能评估任意一串六位数字“像不像”真正的密码。motif扫描的本质,就是拿着这把“概率标尺”在全基因组里量每一段序列的“像不像”。
所以为什么motif重要?因为motif是“序列-功能”之间最直接的桥梁之一。只要你找到某个转录因子的结合motif,你就能在全基因组范围内预测它的调控靶点,这等于拿到了一张“基因调控地图”的局部图。
3. 怎么找到motif:从实验到算法,一条完整的方法链
找到motif一般分为两条路线:实验路线和计算路线。实际工作中,两者往往是配合使用的。
3.1 实验方法:从体内拉出DNA-蛋白质复合物
先说实验路线,因为它是“标准答案”的来源。
目前最主流的实验是ChIP-seq(染色质免疫沉淀测序)。操作逻辑并不复杂:用甲醛把细胞内DNA和蛋白质交联固定,然后超声打成小片段,用目标转录因子的抗体把这些“蛋白-DNA复合物”沉淀下来,洗掉没结合的DNA,解交联后测序。测序得到的成百上千万条DNA片段,在基因组上会形成一个个“峰”,这些峰通常就是转录因子结合的位置。
从ChIP-seq的peak里找motif,叫做de novo motif discovery(从头发现motif)。这类算法(如MEME、HOMER、DREME)做的事情本质上是:给你一堆peak区域的序列,让你找出其中被“富集”的短序列模式。
打个比方:你收集了1000张同一个名人出席活动的照片,然后用AI算法“分析”出这些照片里共同出现的面部特征,比如眼睛、鼻子、嘴的相对位置和形态。de novo发现motif就是在做类似的事——不是让你指定要找什么序列,而是让算法告诉你“这些序列里反复出现的共有模式是什么”。
在实际工具操作层面,MEME的GUI上手门槛低,适合新手;HOMER的命令行效率高,适合批量处理peak文件。我个人的经验是:先用HOMER跑一遍找到候选motif,再用MEME的DREME模式做交叉验证,因为不同算法的数学假设不同,两个算法都显著富集的motif,大概率是真实生物学信号而非算法假象。
3.2 计算方法:拿已知motif去基因组里“扫描”
实验可以发现新motif,但如果你手上已经有“标准答案”了,要干的事是用它去全基因组里找结合位点。
这步叫motif scanning(motif扫描),也是日常必用场景。举例:你的课题是研究某个转录因子FOXA1在肝癌里的调控作用,已经从文献或数据库(如JASPAR、TRANSFAC)里拿到了FOXA1的PWM。接下来你想知道全基因组里有几千个潜在的FOXA1结合位点,就可以用FIMO(MOODS、PWMScan等工具)做全基因组扫描。
算法过程一句话概括:把PWM沿着基因组序列逐窗口滑动,计算每个窗口“拟合”PWM的程度,输出一个p值或q值。p值小于某阈值的窗口,就被认为是潜在的结合位点。
有个非常常见的坑:motif扫描的阈值会影响结果量级十到百倍。阈值定得太严,结果少但可靠性高,漏掉弱结合位点;阈值定得太松,结果数量暴涨但假阳性很多。我个人倾向的实践是:先用默认的p值阈值(比如1e-4或1e-5)跑出结果,然后根据下游验证的可行性调整。如果下游要做实验验证,建议严格一点;如果只是做全基因组层面的统计富集分析,稍宽松的阈值反而有助于捕捉弱信号。
3.3 常见工具速查表
| 用途 | 工具名 | 特点与建议 |
|---|---|---|
| de novo motif发现 | MEME / DREME | MEME适合长motif,DREME适合短基序、速度快 |
| de novo motif发现 | HOMER | 专为ChIP-seq峰值分析设计,结果包含motif富集与注释 |
| motif扫描 | FIMO | 基于MEME套件,逐窗口扫描并给出统计显著性,适合全基因组 |
| motif扫描 | MOODS | 基于位置特异性评分矩阵的快速扫描,适合超大规模数据 |
| 数据库查询 | JASPAR / TRANSFAC | 收集已知转录因子PWM,JASPAR免费开放,TRANSFAC较全但需许可 |
| 大模型辅助(新趋势) | gkm-SVM / DeepBind | 用词向量/kmer特征或深度学习直接从序列学习结合模式,不用PWM表示motif |
4. 用PWM扫描motif的完整实操:FIMO实战流程
上面说了很多概念,现在给你一条能直接跑通的分析链路。以FIMO从人类基因组里找特定转录因子的潜在结合位点为例。
第一步:准备PWM(motif矩阵)文件
JASPAR数据库下载来的motif格式通常是.meme或.jaspar格式,FIMO可以直接读.meme格式。也可以用HOMER从自己的ChIP-seq峰里生成motif,然后用HOMER的homer2格式转换为MEME格式再给FIMO用。
第二步:准备参考基因组序列
把人类参考基因组(比如GRCh38/hg38)的fasta文件准备好。注意染色体命名要和基因组坐标一致。
第三步:运行FIMO
fimo --verbosity 1 --qv-thresh --thresh 1e-5 --oc fimo_output foxa1.meme hg38.fa这行命令的意思:容忍q值小于1e-5的位点,输出到fimo_output目录下。核心参数再拆解一遍:
--qv-thresh:表示用的是q值(多重检验校正后)而非p值,全基因组扫描位点数量大,不用q值校正的话假阳性会失控。--thresh 1e-5:显著性阈值。--motif:如果motif文件里有多个motif,可以指定只扫描某一个。
第四步:解析输出文件
FIMO输出一个fimo.tsv文件,每行是一个预测的结合位点,包含序列名、起始位置、结束位置、链方向、得分、p值、q值等。拿到这个结果就做下游分析:看位点落在基因启动子还是远端增强子区域,用bedtools intersect与基因注释做交集,所以基本步骤是“扫描位点→注释区域→富集分析→实验验证”。
第五步:做质量控制
这一部看起来简单但容易被跳过。建议画两个图:
- motif得分分布直方图。如果是明显双峰分布,说明阈值切得合理;如果是长尾平滑分布,说明信号弱或数据集噪声大。
- 目标位点与peak中心的距离分布。如果大多数预测结合位点都远离ChIP-seq peak的中心,说明这个motif可能不是该转录因子的主要结合模式,或者PWM本身质量有问题。
这些可视化做得简不简洁无所谓,关键是得做完它,不然你后面拿一长串位点列表直接做功能注释,做了半天发现源头就是错的,白费力气。
5. motif在不同数据维度下的另类使用:不只是“找结合位点”
很多人以为motif分析只服务于转录因子结合位点预测,其实远远不止。按我这几年的项目经验,motif至少在四个方向上被反复使用:
5.1 启动子与增强子预测
基因组上有许多非编码区变异(比如全基因组关联分析GWAS找到的风险位点),它们在基因组上落点常常不是编码区,而是基因上游或基因间的增强子。怎么判断一个非编码变异是否有调控功能?一个常用判据就是:该变异是否落在某个已知转录因子的motif上,或者是否改变了motif的匹配得分。
这叫motif disruption analysis(motif破坏分析)。做法:给定参考等位基因序列和变异等位基因序列,分别计算这条序列对某PWM的匹配得分,如果两个等位基因对应的得分差异显著,就认为这个变异可能通过改变转录因子结合来影响基因表达。
这类分析在疾病风险位点注释里非常常用,尤其是在风湿免疫病、糖尿病等复杂疾病的大规模GWAS后处理中。我做过一个类似的项目:把一个遗传变异落在某个motif导致结合位点增强,该现象直接解释了为什么风险个体某个基因表达上调。
5.2 染色质开放性分析
ATAC-seq(转座酶可及性染色质测序)是当前研究染色质可及性的主力技术。ATAC-seq的峰代表了“开放染色质区域”,通常意味着这些区域有潜在的调控活性。在这些peak里做motif富集,就能推断哪些转录因子参与了染色质开放状态的维持。
这里有个常见问题:ATAC-seq peak集合巨大(一个样本轻松上万),如果直接把所有peak拿去做motif富集,结果常常是一大堆“管家转录因子”的motif(比如SP1、CTCF这种到处都是的),很难区分细胞类型特异的调控因子。
解决思路是差异motif富集:比较两种状态(如正常细胞vs肿瘤细胞)的peak强度,然后看哪些motif在高可信的差异peak里富集。这比全peak富集更有生物学指向性。这一步可以手写一个简单的随机抽样/置换检验,也可以用现成的工具如diffTF。
5.3 结合位点的协同性分析
转录因子很少“单打独斗”。两个转录因子如果motif在基因组上靠得很近(比如距离<30bp),很可能存在协同调控关系,其中一个因子结合后招募另一个因子。
做这种分析有一个经典方法:motif distance co-occurrence分析。把两个motif在全基因组上的预测位点取出来,看它们的相对距离分布是否显著富集于短距离区间。
实际经验里,我建议坐标比对最好用bedtools closest或bedtools pairtobed,但要注意链方向。motif在基因组正链和负链上的“方向”是翻译出来的,FIMO输出结果每一行都明写正负链,做co-occurrence分析前必须把两条链分开或正确合并,否则方向信息丢失会让后面的距离统计失真。
5.4 序列生成与突变设计
大模型逐渐进入基因组学领域之后,motif被用于设计实验验证序列。比如你想验证某段启动子的哪个位置最影响转录因子结合,就可以扫描这段启动子序列上的所有motif,然后针对motif核心位置做定点突变,再送去做报告基因实验(luciferase assay)。这些突变设计如果完全手搓,不仅慢而且容易漏位点,基于PWM扫描的自动设计能保证每个潜在功能位点都被覆盖。
6. 做motif分析绕不开的坑:从数据质量到假阳性陷阱
6.1 PWM来源不同,结果差异巨大
JASPAR里同一个转录因子的motif可能有好几个版本(比如不同物种、不同实验条件产生的matrix)。不同版本的PWM扫描同一段基因组,结果重叠率可能只有30%-50%。所以做分析前一定要确认PWM版本,最好在工作记录里写明是从哪个数据库、哪个版本来的,不然复现的时候别人根本不知道你用的是哪个“FOXA1”。
6.2 ChIP-seq peak的“海市蜃楼”
ChIP-seq鉴定到的peak区域并不等于转录因子直接结合的区域,因为ChIP-seq的有效分辨率通常在几百碱基对级别,而motif只有十几个碱基对。所以ChIP-seq peak中心不一定会出现完美匹配的motif。这是正常现象。判断一个peak里有没有目标motif,建议看peak区域内motif匹配位点的分布是否显著富集,而不是找一个完美的“正中靶心”。
6.3 假阳性:全基因组扫描的“救火问题”
前面反复提过阈值问题,这里专门再强调一次。全基因组每条链约30亿碱基,如果阈值为1e-4,哪怕完全随机序列也能挑出约3万个显著位点。因为这些位点只是统计上显著,不一定是生物学真实结合位点。想降低假阳性,务必要考虑基因组GC含量和序列背景模型。FIMO的默认背景模型是基于输入序列本身的碱基频率,如果你扫描的是A/T富集区域,会系统性高估某些motif的频率。
如果你处理的课题本身有背景序列偏差(比如基因组的CpG岛区域),建议用fasta-get-markov生成自定义的一阶或二阶背景模型,再喂给FIMO,这样q值才有意义。
6.4 别忘了做正对照
一个非常容易被忽略的好习惯:分析管线里加一个正对照。比如你已经知道某个转录因子有实验验证过的结合位点(比如文献里EMSA验证过的),把这几条已验证的序列丢进你的扫描流程,如果它们都没有被检测到,那你的流程阈值或PWM方向设置必然出了问题。这个“正对照”步骤花不了10分钟,却能救回你后面三个月的实验时间。
7. 一个具体的完整分析案例:从ChIP-seq数据到候选靶基因
最后给一个能完全落地的项目案例,按照步骤来,你基本能复现。
项目背景:你研究转录因子MYC在结肠癌细胞系HCT116中的调控网络。输入数据是公开的MYC ChIP-seq数据(可以从ENCODE或GEO下载)。
- 下载原始数据(fastq格式),用bowtie2或bwa比对到hg38参考基因组,得到bam文件。
- 用MACS2 call peak,参数建议:
macs2 callpeak -t myc.bam -c input.bam -f BAMPE -g hs -n MYC. 对比输入对照是必须的,不用input的call peak结果会包含大量假阳性。 - 用HOMER做de novo motif发现:
findMotifsGenome.pl myc_peaks.bed hg38 MYC_motif -size 200 -mask。其中-size 200表示取peak中心前后200bp,-mask则是屏蔽重复序列。 - 查看
homerMotifs.all.motifs文件,确认富集排名最前的motif是否与MYC已知的E-box motif(CACGTG)一致。这一步本质上是QC,但新手常常跳过。 - 从完整peak列表里取每个peak中心区域的序列,用FIMO扫描MYC的PWM,得到所有潜在结合位点。
- 用
bedtools intersect把结合位点与基因TSS注释(可以取TSS上下游2kb作为启动子区间)做交集,得到MYC的候选靶基因列表。 - 对候选靶基因做GO/KEGG富集分析(工具可以用clusterProfiler或DAVID),看看是否显著富集到细胞周期、DNA复制等MYC经典通路。如果富集到稀奇古怪的免疫通路,先别急着发文章——先回头检查步骤3-5里哪一步的参数可能出了问题。
这个流程我跑过很多次,平均一个样本从下载原始数据到拿到候选靶基因列表,在单机16核服务器上大约需要6-10小时,其中call peak和motif发现是耗时的两个大头。如果你只是做motif计算分析,不必等全部流程跑完再验证,中间产物(比如第2步的bam文件和第三部的motif结果)就值得你检查。
我的经验是,无论多着急,这一步的QC时间不可压缩。de novo发现出来的motif如果跟文献里的“金标准”motif对不上,就直接说明你的peak质量有问题或样本存在污染,后面做再多功能分析也是基于一个坏地基。
写到这里,motif是什么、怎么找、怎么用、怎么避坑,基本都给你过了一遍。剩下的就是拿真实数据上手跑一遍,踩两个坑之后自然就明白我在说什么了。