程序参数
本节对各模块参数分成布尔、必须、半必须、可选四类进行详细介绍。
- 布尔参数在配置文件中分为赋值和未赋值两种,在命令行中分为指明和未指明两种。 当为赋值或指明时,程序将执行参数对应的功能;反之,程序不执行相应功能。
- 必须参数若未赋值,所属模块被调用时会报错。
- 半必须参数若未赋值,调用模块下特定功能时会报错。
- 可选参数若未被赋值,特定功能无法使用,但不会报错。
除非模块参数外,其他参数仅当所属模块被调用时才会使用。
非模块参数
下面参数将在各模块中使用:
-c
, --config-path
(str) :配置文件路径,文件中指明程序所需调用的各参数的值。 当文件中参数与命令行被调参数重复时,程序将以命令行值为标准。
-o
, --output-folder
(str) :程序运行结果的输出路径。默认为当前工作路径。
基因型数据预处理模块参数
- 布尔参数
-pg
,--preprocessed-geno
:调用预处理基因型数据模块,可选值 [all, filter]
。其中all表示程序将调用完整的预处理模块, 包括对统计与可视化数据基本情况,根据缺失率、MAF筛除不符合要求的样本个体及snp位点,根据高频基因型填补snp的缺失数据, 根据r^2去除冗余snp,根据snp编号或样本编号提取特定样本的特定基因型数据功能;而filter表示程序将调用部分的预处理模块, 仅包括根据snp编号或样本编号提取特定样本的特定基因型数据功能。
- 必须参数
--fileprefix
(str) :基因型数据文件名前缀。
- 可选参数
--fileformat
(str) :基因型数据文件格式,可选值 [ped, bed]
。默认值 bed
--plink-path
(str) :指定 plink 调用路径。默认值 plink
--remove-sampleid-path
(str) :待删除样本编号文件路径,格式为以空格或制表符作为分隔符的两列样本编号。 其中第一列为 familyID,第二列为 within-familyID。程序将根据样本编号删除基因型文件中对应样本数据。
--keep-sampleid-path
(str) :待提取样本编号文件路径,格式为以空格或制表符作为分隔符的两列样本编号。 其中第一列为 familyID,第二列为 within-familyID。程序将根据样本编号提取基因型文件中对应样本数据。
--extract-snpid-path
(str) :待提取snp编号文件路径,格式为一列snp编号。程序将根据snp编号提取基因型文件中对应snp数据。
--exclude-snpid-path
(str) :待删除snp编号文件路径,格式为一列snp编号。程序将根据snp编号删除基因型文件中对应snp数据。
--snpmaxmiss
(float) :snp最大缺失率。筛除缺失率超过阈值的snp。默认值 0.05
--samplemaxmiss
(float) :样本最大缺失率。筛除缺失率超过阈值的样本。默认值 0.05
--maf-max
(float) :最小等位基因频率。筛除最小等位基因频率小于阈值的snp。默认值 0.01
--r2-cutoff
(float) :与 plink 中--indep-pairwise
参数等价。默认值 0.8
表型数据预处理模块参数
- 布尔参数
-pp
,--preprocessed-phe
:调用预处理表型数据模块。
--phe-norm
:调用表型数据归一化函数。
--phe-plot
:使用 z-score 对表型数据进行归一化。
- 必须参数
--phefile-path
(str) :表型数据文件路径。
- 半必须参数
--ppexsampleid-path
(str) :待提取样本编号文件路径,文件内容仅为一列样本编号。
--ppgroupfile-path
(str) :组编号数据文件路径。
--ppgroupfile-sep
(str) :组编号数据文件分隔符。默认值为 ','
--ppgroupid-name
(str) :组编号数据文件中储存组编号信息的列名。
--num2wordfile-path
(str) :整数与表型对应转化表文件路径。该参数仅在--phe-recode=num2word
时使用。
- 可选参数
--phefile-sep
(str) :表型数据文件分隔符。默认值为 ','
--phe-name
(str) :表型数据文件中储存表型信息的列名。
--phe-recode
(str) :调用表型数据重编码函数,可选值 [word2num, num2word]
。其中 word2num 表示将表型数据重编码为连续非负整数形式, num2word 表示将连续非负整数形式重编码为表型数据(需要提供整数与表型对应转化表)。当执行分类任务时,Lightgbm 仅接受带有示例标签[0,N) 的连续整数。 如果训练样本来自5组,则需要 [0、1、2、3、4] 作为5组的标签,但这通常与实际的组命名不匹配。使用此参数, 程序可以实现样本标签和[0,N)个连续整数之间的可逆转换。为下游分类任务提供兼容的表型数据。
群体结构分析模块参数
- 布尔参数
-s
,--structure
:调用群体结构分析模块。
--structure-plot
:调用群体结构绘图函数。总计输出2或3幅散点图展示降维与聚类结果。
- 必须参数
--genofile-path
(str) :基因型数据文件路径,常为预处理后结果作为输入。
- 半必须参数
--n-clusters
(int) :形成的簇数以及生成的质心数。该参数仅在--cluster-mode=kmeans
时使用。
--sgroupfile-path
(str) :组编号数据文件路径。
--sgroupfile-sep
(str) :组编号数据文件分隔符。默认值 ','
--sgroupfile-name
(str) :组编号数据文件中储存组编号信息的列名。
- 可选参数
--redim-mode
(str) :降维算法,可选值 [tsne, pca]
。默认值 pca
--pca-explained-var
(int or float) :参数值为大于1的整数或0-1间的小数。当参数值为整数时,表示pca降维后数据的维度; 当参数值为小数时,表示pca降维后数据可解释的变异量。默认值为 0.95。该参数仅在--redim-mode=pca
时使用
--window-size
(int) :降维中滑窗大小。由于 t-SNE 降维算法计算速度随维度的增加而大幅降低,程序通过滑窗的方式对数据进行初步降维。 默认值为 20。该参数仅在--redim-mode=tsne
时使用。
--cluster-mode
(str) :聚类算法,可选值 [kmeans, optics]
。默认值 kmeans
--optics-min-samples
(int or float) :参数值为大于1的整数或0-1间的小数。当参数值为整数时,表示构成核心点所需的最小样本数; 当参数值为小数时,表示构成核心点所需的最小样本数占总样本数的比例。该参数仅在--cluster-mode=optics
时使用。默认值为 0.025
--optics-xi
(int or float) :聚集成类所需的可达距离梯度的最小值。该参数仅在--cluster-mode=optics
时使用。默认值为 0.05
--optics-min-cluster-size
(int or float) :参数值为大于1的整数或0-1间的小数。当参数值为整数时,表示聚集成类所需的最小样本数;当参数值为小数时,表示聚集成类所需的最小样本数占总样本数的比例。该参数仅在--cluster-mode=optics
时使用。默认值为 0.03
特征选择与表型预测模块参数
- 布尔参数
-e
,--engine
:调用特征选择与表型预测模块。
-t
,--train
:调用训练模型功能。
-cv
:调用交叉验证功能。
-p
,--predict
:调用表型预测功能。
-sf
,--select-feature
:调用特征选择功能。
--bygain-boxplot
:绘制随snp加入模型误差不断变化的箱线图。该参数在-sf
时使用。
- 半必须参数
--traingeno
(str) :训练集样本基因型数据文件路径。文件分隔符为',',第一行为snp编号信息,第一列为样本编号信息。 该参数在-t
或-cv
被指明时使用。
--trainphe
(str) :训练集样本表型数据文件路径。文件分隔符为',',包含表头,第一列为样本编号信息。该参数在-t
或-cv
被指明时使用。
--testgeno
(str) :测试集样本基因型数据文件路径。文件分隔符为',',第一行为snp编号信息,第一列为样本编号信息。该参数在-p
被指明时使用。
--modelfile-path
(str) :lightgbm 模型文件路径,程序通过此模型完成对测试集样本的表型预测。该参数在-p
被指明时使用。
- 可选参数
--validgeno
(str) :验证集样本基因型数据文件路径。文件分隔符为',',第一行为snp编号信息,第一列为样本编号信息。该参数在-t
被指明时使用。
--validphe
(str) :验证集样本样本编号信息文件路径。文件分隔符为',',包含表头,第一列为样本编号信息。该参数在-t
被指明时使用。
--init-model-path
(str) :起始模型文件路径,lightgbm 算法会在此模型基础上继续训练。常用于大数据的分批训练。 该参数在-t
或-cv
被指明时使用。
--min-detal
(float) :每次训练对模型精确度提升的最小百分值。程序会返回提升的精确度小于此阈值时模型的训练次数与此时模型交叉验证的精确度。 当objective=regression
时,精确度为预测结果与真实值间 mse 的均值。该参数在-cv
被指明时使用。默认值 0.05
--cv-times
(int) :交叉验证的重复次数。该参数在-sf
被指明时使用。默认值 5
--cv-nfold
(int) :每次交叉验证的折叠数。该参数在-cv
被指明时使用。默认值 5
--min-gain
(float) :交算每个snp在模型中的总增益,将最大增益与--min-gain
的乘积作为阈值。当snp在模型中的总增益小于阈值时, 此snp不会被选择。该参数在-sf
且--bygain-boxplot
被指明时使用。默认值 0.05
--max-colorbar
(float) :各snp在各树中的最大增益值与--max-colorbar
的乘积将作为热图中 colorbar 的最大值。 该参数在-sf
被指明时使用。默认值 0.6
lightgbm参数
--learning-rate
(float) :模型的学习率。默认值为0.1
--num-leaves
(int) :每棵决策树的最大叶片数。默认值为10
--num-threads
(int) :可供核心模块运算调用的 CPU 线程数。默认值为0,0表示 OpenMP 中的默认线程数。
--min-data-in-leaf
(int) :每个叶片中最小样本数。默认值为1
--objective
(str) :模型训练的目的类型,可选值 ['regression', 'multiclass']
。默认值为'regression'
--device-type
(str) :模型运算所调用的设备类型,可选值 ['cpu', 'gpu']
。默认值为'cpu'
--max-depth
(int) :决策树最大深度。若值<=0表示没有最大深度限制。默认值为-1
--feature-fraction
(float) :训练模型所用到的特征数占总特征数的比例。默认值为1
--verbosity
(int) :控制模型训练过程中信息的输出复杂度。< 0: Fatal, = 0: Error (Warning), = 1: Info, > 1: Debug。默认值为0
--num-class
(int) :训练集中样本的类别数。该参数仅在多分类任务时被调用,即--objective:multiclass
。默认值为1
--num-boost-round
(int) :模型的训练(迭代)次数。默认值为100
--early-stopping-rounds
(int) :此参数仅在-cv
或-t
且有验证集的情况下别调用。每经过N轮(N为用户定义此参数的值)训练后, 程序将计算模型在验证集上的预测精度,若预测精度不再提升,模型将立即停止训练。该参数可以用于防止模型训练过拟合。默认值为20
--verbose-eval
(int) :此参数仅在-cv
或-t
且有验证集的情况下别调用。每经过N轮(N为用户定义此参数的值)训练后, 程序将计算模型在验证集上的预测精度并输出。默认值为10