
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本pipeline从GDC对齐的链特异性RNA-Seq BAM文件中生成每个基因的读计数。
读计数通过featureCounts(subread v1.6.4)在链特异性模式下生成,参数为:-g gene_id -t exon -Q 10 -p -B -s 2。之后使用https://docs.gdc.cancer.gov/Data/Bioinformatics_Pipelines/Expression_mRNA_Pipeline/#upper-quartile-fpkm将读计数转换为FPKM和FPKM-UQ。
使用的基因注释与GDC一致(gencode.v22.annotation.gtf.gz;md5:291330bdcff1094bc4d5645de35e0871),可在https://gdc.cancer.gov/about-data/data-harmonization-and-generation/gdc-reference-files页面获取。请注意,尽管基因注释与GDC相同,但GDC的读计数是通过HTSeq在非链特异性模式下完成的,因此本pipeline与GDC报告的读计数并不完全一致。
每个样本会生成一个TSV文件,基因顺序完全相同。输出TSV文件包含以下列:
| 列名 | 描述 |
|---|---|
| gene_id | Ensembl基因ID |
| read_count | featureCounts生成的链特异性读计数 |
| fpkm | FPKM值 |
| fpkm_uq | FPKM-UQ值 |
可使用https://gdc.cancer.gov/about-data/data-harmonization-and-generation/gdc-reference-files页面上的基因信息(https://api.gdc.cancer.gov/data/b011ee3e-14d8-4a97-aed4-e0b10f6bbe82;md5:0a3f1d9b0a679e2a426de36d8d74fbf9)获取每个基因的额外信息。
每批执行会生成一个TSV文件analysis_summary.dat,包含所有输出,列如下:
| 列名 | 描述 |
|---|---|
| # case | (与BAM map一致) |
| disease | (与BAM map一致) |
| data_path | 输出TSV文件的路径 |
| file_format | 始终为TSV |
| sample_name | (与BAM map一致) |
| sample_uuid | (与BAM map一致) |
使用Docker Hub上的镜像 https://hub.docker.com/r/lbwang/cptac_rna_expression。具体工具要求可查看Dockerfile。
pipeline需要以下输入,通过snakemake_config.json传递:
json{ "sample_list": "样本名称列表", "bam_map": "(CPTAC)BAM map的路径", "gdc_gtf": "GDC注释GTF的路径(例如gencode.v22.annotation.gtf)", "gdc_gene_info": "GDC基因信息TSV的路径(例如gencode.gene.info.v22.tsv)", "workflow_root": "本仓库的本地文件路径(例如/path/to/cptac_rna_expression)" }
克隆本仓库为pipeline_workflow:
git clone https://github.com/ding-lab/cptac_rna_expression pipeline_workflow
文件夹结构应如下:
<root> - pipeline_workflow - <batch1> - <batch2>
若conda环境不存在,创建环境:
conda create -n cptac_expression python=3.7 \ snakemake-minimal=5.10.0 \ pandas=1.0.1 \ samtools=1.9 htslib=1.9 \ subread=1.6.4
创建新的批处理文件夹,例如cptac2_prospective:
mkdir cptac2_prospective
创建snakemake_config.json:
json{ "sample_list": "samples.list", "bam_map": "bammap.converted.tsv", "gdc_gtf": "/diskmnt/Datasets/Reference/GDC/gencode.v22.annotation.gtf", "gdc_gene_info": "/diskmnt/Datasets/Reference/GDC/gencode.gene.info.v22.tsv", "workflow_root": "/diskmnt/Projects/cptac_scratch/CPTAC_expression/pipeline_workflow" }
运行完整pipeline:
snakemake \ --configfile=snakemake_config.json \ -s ../pipeline_workflow/Snakefile \ -j 50 --resources io_heavy=4 -- \ make_analysis_summary
参考示例路径:/storage1/fs1/lding/Active/CPTAC3/Analysis/rna_expression_pipeline/2020-02-25_PDA。
创建新批处理:
cd /storage1/fs1/path/to/rna_expression_pipeline/ # 创建批处理名称 export BATCH="2020-02-25_PDA" # 创建批处理文件夹 mkdir $BATCH cd $BATCH # 创建samples.list。例如: cut -f2 CPTAC3.catalog/BamMap/compute1.BamMap.dat | tail +2 > samples.list # 缓存BAM map,建议在文件名中添加CPTAC3.catalog的当前提交哈希 cp CPTAC3.catalog/BamMap/compute1.BamMap.dat compute1.BamMap.cptac3_catalog_commit_6509b69.dat # 创建snakemake_config.json { "sample_list": "samples.list", "bam_map": "compute1.BamMap.cptac3_catalog_commit_6509b69.dat", "gdc_gtf": "../annotations/gencode.v22.annotation.gtf", "gdc_gene_info": "../annotations/gencode.gene.info.v22.tsv", "workflow_root": "/storage1/fs1/lding/Active/CPTAC3/Analysis/rna_expression_pipeline/pipeline_workflow" } # 设置日志结构 mkdir logs mkdir logs/cluster # 复制bash脚本run.sh和run_master_job.sh
设置snakemake配置文件。默认配置文件位于/storage1/fs1/lding/Active/CPTAC3/Analysis/rna_expression_pipeline/ris_lsf。必要时修改以下文件:
config.yaml控制作业失败时的重启次数和提交的总作业数。
lsf-submit.py设置额外的LSF选项。注意作业组是必需的。
pythondef generate_lsf_command(job_properties: dict, cluster: dict) -> str: # ... # RIS compute1命令 queue = "general" job_grp = "/liang-bo.wang/cptac_rna" docker_img = "lbwang/cptac_rna_expression" # ...
若使用新的snakemake配置文件,修改run_master_job.sh以指向新配置文件。
运行pipeline:
bash run.sh
BAM文件应对齐到hg38(最好与https://gdc.cancer.gov/about-data/data-harmonization-and-generation/gdc-reference-files一致)。bam_map参数提供的BAM map应模仿CPTAC3目录的BAM map列,必须包含以下TSV格式的列:
# sample_name:注意# 是列名的一部分;样本名称在BAM map中必须唯一casediseaseUUID:若UUID不可用,可使用任何标识符data_pth:样本BAM的绝对路径;文件名必须为*.rna_seq.genomic.gdc_realn.bamexperimental_strategy:必须为RNA-Seqdata_format:必须为BAMreference:必须为hg38您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务