AndersenLab/nemascan-nf

GitHub: AndersenLab/nemascan-nf

一个专为秀丽隐杆线虫设计的Nextflow流程,用于全基因组关联定位和遗传性状分析。

Stars: 0 | Forks: 0

## 简介 **andersenlab/nemascan-nf** 是一个生物信息学流程,可用于在*秀丽隐杆线虫*物种中进行全基因组关联定位分析。它至少需要一个包含多个虫株SNV数据的VCF文件和一个包含一个或多个性状表型数据的tsv文件作为输入,创建基因型矩阵,并能执行全基因组定位、对显著QTL进行精细定位、使用转录本eQTL进行中介分析,并为每个性状生成一份交互式报告。 ![andersenlab/nemascan-nf 地铁图](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4cd90c88e2002327.svg) 1. 提取VCF文件中存在的品系 (`zcat`, `awk`) 2. 调整和筛选性状品系并合并重复 (`awk`) 3. 按品系列表和非缺失SNV筛选VCF ([`bcftools`](https://samtools.github.io/bcftools/bcftools.html)) 4. 按连锁不平衡对标记进行修剪,用于全基因组定位的子集 ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 5. 创建基于文本的基因型矩阵 ([`bcftools`](https://samtools.github.io/bcftools/bcftools.html), `sed`) 6. 创建染色体名称到编号的映射 (`zcat`, `awk`) 7. 将筛选后的VCF文件转换为plink格式 ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 8. 创建遗传相关性矩阵 ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 9. 查找基于PCA的协变量(可选) ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 10. 执行全基因组关联定位 ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 11. 估算狭义遗传力 ([`R`](https://www.r-project.org/), [`R-sommer`](https://cran.r-project.org/web/packages/sommer/index.html)) 12. 查找用于p值校正的基于特征值的有效检验次数 ([`python`](https://www.python.org/)) 13. 标准化性状表型值 (`awk`) 14. 提取落在显著QTL区间内的eQTL (`awk`) 15. 计算多重中介值和显著基因 ([`R`](https://www.r-project.org/), [`R-Multimed`](https://www.rdocumentation.org/packages/mediation/versions/4.5.1)) 16. 计算每个显著基因的中介值 ([`R`](https://www.r-project.org/), [`R-Multimed`](https://www.rdocumentation.org/packages/mediation/versions/4.5.1)) 17. 按品系列表、显著QTL区间和非缺失SNV筛选填补后的VCF ([`bcftools`](https://samtools.github.io/bcftools/bcftools.html)) 18. 将筛选后的VCF文件转换为plink格式 ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 19. 创建完整的遗传相关性矩阵 ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 20. 查找基于PCA的协变量(可选) ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 21. 执行全基因组关联定位 ([`plink`](https://www.cog-genomics.org/plink/1.9/)) 22. 创建基于文本的QTL区间基因型矩阵 ([`bcftools`](https://samtools.github.io/bcftools/bcftools.html), `sed`) 23. 查找显著QTL峰值与周围标记之间的连锁不平衡 ([`bcftools`](https://samtools.github.io/bcftools/bcftools.html)) 24. 将变异影响数据(可选)和LD值附加到精细定位输出中的每个标记 ([`python`](https://www.python.org/)) 25. 创建基于HTML的报告 ([`python`](https://www.python.org/), `javascript`, [`DataTables`](https://datatables.net/), [`plotly`](https://plotly.com/javascript/)) ## 用法 ### 输入 您将需要几个输入文件,其中一些特定于您选择运行的模块。 **VCF 文件** (`--vcf`): 您将需要一个包含所有样本基因型的VCF文件。包含的样本应具有遗传独特性(即每个同型品系组一个样本)。VCF文件应为纯文本或gzip压缩格式,不能是BCF格式。 **性状文件** (`--traits`): 您将需要一个制表符分隔的文件,格式如下: | strain | trait1 | trait2 | | ------ | ------ | ------ | | AB1 | 0.123 | 1.532 | | N2 | 1.765 | 2.657 | 该文件必须有一个以"strain"开头的标题行,后续的每个列标题对应一个性状名称。每一行代表单个样本。第一列包含品系名称,其余列包含每个性状的表型值。 **同型品系文件** (`--isogroups`, 可选): 这是一个制表符分隔的文件,包含品系名称、其同型参考品系和替代品系名称。如果要定位的物种是*C. elegans*、*C. briggsae*或*C. tropicalis*,并且指定了物种,如果没有传递同型品系文件,此数据将自动从[CaeNDR](https://caendr.org/request-strains/isotype_list)下载。否则,将不会根据同型品系数据进行任何品系的调整或筛选。 此文件需要以下格式: | strain | isotype | previous_names | | ------ | ------- | -------------- | | AB1 | AB1 | | | ECA153 | N2 | N2_(CGC)\|N2 | 可以使用"|"作为分隔符指定多个替代名称。并非每个品系都需要指定替代名称。 **填补后的VCF文件** (`--imputed`, 可选,仅限精细定位): 对于精细定位,您需要一个基因型已填补的VCF文件,以最大化可用于关联定位的标记数量。如果未指定填补后的VCF文件,则使用原始输入VCF。该文件应为纯文本或gzip压缩格式,不能是BCF格式。 **注释文件** (`--annotation`, 可选,仅限精细定位): 为了评估每个变异的功能影响,您可以传递一个制表符分隔的文件,详细说明每个变异的影响。该文件的格式预期与使用CSQ、VEP、Annovar或SnpEff工具为CaeNDR生成的格式匹配。您可以在[此处](https://caendr.org/faq#tool-differences)阅读更多相关信息。如果您想使用此功能,我们建议从[CaeNDR](https://caendr.org/data/data-release)下载注释。 **单倍型文件** (`--haplotypes`, 可选,仅限精细定位): 为了查看变异差异是否由更广泛的遗传分层驱动,您可以传递一个bed文件,其中包含品系单倍型,用于在最终的性状报告中绘图。该文件应为bed格式,包含染色体、起始位置、结束位置、品系名称、单倍型名称、两个本流程未使用的列以及单倍型颜色。每一行代表单个品系中的一个单倍型区块。如果要定位的物种是*C. elegans*、*C. briggsae*或*C. tropicalis*,并且指定了物种,如果没有传递单倍型文件,此数据将自动从[CaeNDR](https://caendr.org/data/data-release)下载。 **基因文件** (`--genes`, 可选,仅限精细定位): 这是一个bed12文件,包含转录本模型,用于在变异注释图上绘制基因。如果要定位的物种是*C. elegans*、*C. briggsae*或*C. tropicalis*,并且指定了物种,如果没有传递基因文件,此数据将自动从[CaeNDR](https://caendr.org/data/data-release)下载。 ### 参数 **-output-dir** (默认值: nemascan_) 用于保存结果文件的输出目录。请注意,这里使用单个连字符`-`来指定选项,而不是双连字符`--`,因为这是一个通用的Nextflow参数,而不是特定于工作流的参数。 **--gwa_method** (默认值: both) 要使用的遗传结构校正方法。可以是`inbred`(近交)、`loco`(留一染色体法)或`both`,以同时运行两个版本的关联定位。 **--species** (默认值: null) 输入数据来源的物种。仅当物种是*C. elegans*、*C. briggsae*或*C. tropicalis*时,用于从[CaeNDR](https://caendr.org/)访问物种特异性数据。 **--mapping** (默认值: true) 一个true/false值,指示是否运行GWA定位。运行精细定位、中介分析和报告创建需要此选项。 **--finemapping** (默认值: true) 一个true/false值,指示是否对GWA发现的任何显著QTL运行精细定位。 **--mediation** (默认值: false) 一个true/false值,指示是否对GWA发现的任何显著QTL运行eQTL中介分析。如果为true,则物种必须是*C. elegans*才能使用来自[Zhang *et al.*](http://dx.doi.org/10.1038/s41467-022-31208-4)的现有eQTL数据,或者必须分别使用 `--transcript eqtl ` 和 `--transcript_expression ` 传递eQTL和转录文件。 **--skip_report** (默认值: false) 一个true/false值,指示是否为每个测试的性状生成HTML报告。所有其他输出文件仍将生成。如果正在测试大量性状,此选项可用于节省存储空间。 **--pca** (默认值: false) 一个true/false值,指示是否使用第一主成分作为关联定位的协变量。这有助于批次校正和系统性偏差。 **--skip_pruning** (默认值: false) 一个true/false值,指示是否跳过对表型值的异常值剔除。 **--summarization_method** (默认值: median) 用于合并表型性状值中重复值的方法。可以是`median`(中位数)或`mean`(均值)。 **--maf** (默认值: 0.05) 次要等位基因频率阈值。在构建遗传相关性矩阵时,仅考虑频率至少达到此值的等位基因。 **--significance_threshold** (默认值: BF) 这是用于多重检验校正的方法,可以是`BF`(Bonferroni校正)或`EIGEN`(使用[此处](https://www.nature.com/articles/6800717)详述的校正策略),或用户定义的p值阈值。如果传递了阈值,则不应用多重检验校正。 **--alpha** (默认值: 0.05) 要使用的显著性阈值。此值会根据执行的检验次数(BF)或有效检验次数(EIGEN)进行多重检验校正。 **--snp_grouping** (默认值: 1000) 用于将多个显著QTL合并为单个区间的测试SNV窗口大小。 **--ci_size** (默认值: 150) 在显著QTL区间两端延伸的SNV数量。 **--sparse_cut** (默认值: 0.05) 用于生成稀疏遗传相关图的相关性阈值。仅在使用`inbred`方法处理遗传结构时使用。 **--highlight_strains** (默认值: null) 在基因型-表型图中要突出显示的品系的逗号分隔列表。 ### 运行流程 现在,您可以使用以下命令运行流程: ``` nextflow run andersenlab/nemascan-nf \ --vcf \ --trait \ --species \ -profile \ -output-dir ``` 在Rockfish集群上运行此流程时,不需要配置profile即可使用容器和slurm支持。 ## 流程输出 此流程会生成多个输出文件,其中一些是特定于模块的(例如,定位、精细定位、中介分析)。 ### 基因型矩阵 无论运行流程的哪个部分,都会生成一个基因型矩阵。同时还会生成一个品系问题文件,详细说明品系名称的更改和被拒绝的品系。 ### GWA 定位 如果执行了全基因组关联定位,将为每个性状和使用的方法(`inbred`、`loco`或`both`)组合生成一份来自GCTA的GWA报告。为每个性状-方法组合生成一个包含显著QTL及其相关基因组区间的tsv文件。生成一个包含每个性状狭义遗传力的文件,每性状一行。最后,还会生成一个包含使用eigen方法计算的独立检验次数的文件。 ### 精细定位 对于在每种方法中发现的每个显著QTL,将生成一个精细定位关联文件。这是标准的GCTA输出,并附加了QTL峰值与区间内所有其他标记之间的连锁不平衡值,并且如果传递了变异注释文件,则会添加4个额外列:WormBase基因名称、基因名称、推断的后果和氨基酸变化。 ### 中介分析 对于每个性状,将生成一个多重中介结果文件,分析QTL区间内的所有eQTL。如果确定有任何基因是显著的,则会生成一个单中介文件,包含对每个显著基因进行中介检验的结果。 ### GWA 报告 如果未跳过GWA报告,将为每个性状生成一份HTML报告,总结上述所有输出,并包含交互式图表和表格。 ### 输出目录结构 ``` / ├─ / │ ├─ fine_mapping/ (if fine-mapping run) │ │ └─ / │ │ ├─ / │ │ │ └─ __.annotated.gwa │ │ │ │ │ ├─ / │ │ │ └─ __.annotated.gwa │ │ ... │ │ │ ├─ gwa/ (if mapping run) │ │ └─ / │ │ ├─ _.gwa │ │ └─ __qtl.tsv │ │ │ ├─ mediation/ (if mediation run) │ │ └─ / │ │ ├─ / │ │ │ ├─ ___medmulti.tsv │ │ │ └─ ___med.tsv │ │ ... │ │ │ └─ report/ (if report run) │ └─ _report.html │ ├─ / │ ├─ fine_mapping/ (if fine-mapping run) │ │ │ ... │ ... │ ├─ independent_tests.txt (if mapping run) ├─ strain_issues.txt ├─ trait_heritability.tsv (if mapping run) └─ versions.txt ``` ## 引用 如果您在分析中使用了andersenlab/nemascan-nf,请使用以下DOI进行引用:[10.1093/g3journal/jkac114](https://doi.org/10.1093/g3journal/jkac114)
标签:bcftools, Nextflow 工作流, PCA, plink, Python, p 值校正, R 语言, SNV 数据处理, VCF 文件处理, 中介分析, 全基因组关联映射, 关联分析, 基因型矩阵, 基因数据处理, 基因组变异分析, 基因组学, 工作流管理, 数据可视化, 数据预处理, 无后门, 生物信息学, 生物信息学管道, 生物数据分析, 精细映射, 线虫研究, 统计建模, 表型分析, 表型-基因型关联, 计算生物学, 逆向工具, 遗传学, 遗传相关性矩阵, 高通量测序分析