如何在Snakemake中使用非Ensembl的自定义参考基因组?
自定义参考基因组适配rna-seq-kallisto-sleuth工作流的配置方法
完全可行,但不能直接沿用原配置里的Ensembl相关参数,需要替换为自定义参考文件路径,并调整部分工作流规则,具体操作如下:
1. 修改config.yaml的ref配置段
原配置里的species、release、build这些依赖Ensembl的参数可以直接注释或删除,换成你本地的转录组FASTA和注释GTF路径,同时调整代表转录本的选择策略。示例配置如下:
ref: # 本地自定义转录组FASTA文件的绝对/相对路径 transcriptome_fasta: "/lab/data/your_species/transcriptome.fa" # 本地自定义基因注释GTF文件的绝对/相对路径 annotation_gtf: "/lab/data/your_species/annotation.gtf" # 如果需要做可变剪接的结构域注释,保留PFAM版本;不需要可注释 pfam: "33.0" # 代表转录本选择:优先用你实验室定义的首选转录本ID列表文件;没有的话选mostsignificant representative_transcripts: "/lab/data/your_species/representative_transcripts.txt" ontology: gene_ontology: "http://current.geneontology.org/ontology/go-basic.obo"
⚠️ 关键注意点:转录组FASTA里的序列ID必须和GTF文件中的transcript_id完全一致,否则kallisto定量会出现关联错误。
2. 调整工作流的参考处理规则
原工作流默认从Ensembl自动下载参考文件,需要做以下调整:
- 找到工作流中负责下载Ensembl参考的规则(通常命名含
download_ref),将其禁用(比如在规则前加#注释)。 - 确保工作流能基于你提供的转录组FASTA生成kallisto索引:如果工作流已有相关规则,只需保证
transcriptome_fasta路径配置正确即可自动触发;如果没有,手动添加如下规则到Snakefile中:
rule build_kallisto_index: input: fasta = config["ref"]["transcriptome_fasta"] output: index = "results/ref/kallisto/index.idx" shell: "kallisto index -i {output.index} {input.fasta}"
- 检查后续kallisto定量规则的输入索引路径,确保指向你生成的自定义索引,而非原Ensembl路径。
3. 注释信息适配
- 你的GTF文件必须包含
gene_id、transcript_id、gene_name等核心注释字段,否则sleuth的差异分析无法正确关联转录本与基因。 - 如果需要GO富集分析,要么你的注释文件已包含GO term,要么准备好基因与GO term的映射文件,替换工作流中默认从Ensembl获取注释的步骤。
内容的提问来源于stack exchange,提问作者Mae Berlow
相关产品推荐
相关产品推荐

