Neural ADMIXTURE:基于AI的快速基因组群体结构聚类工具
所有的软件产品都值得用AI重塑一次,基因组工具也不例外。
今日分享一篇发表在Nature子刊上的文章:Neural ADMIXTURE for rapid genomic clustering。Neural Admixture可替代Admixture,实现快速计算。
原理
Neural ADMIXTURE 是一种基于神经网络的自编码器方法,其核心思想是利用深度学习技术来加速遗传簇分配的计算过程。它遵循与ADMIXTURE相同的建模假设,但通过神经网络结构来优化计算过程,从而显著减少了计算时间。Neural ADMIXTURE采用了多头方法,允许在单次运行中计算多个簇数量,这进一步提高了计算效率。
Neural ADMIXTURE的模型包括两个主要部分:编码器和解码器。编码器由两个线性层组成,中间是一个高斯误差线性单元(GELU)激活函数,然后是一个softmax激活函数,将基因型序列投影到一个向量上,表示每个个体的分数祖先分配。解码器是一个线性层,其权重限制在0和1之间,导致一个可解释的投影矩阵,学习簇中心点,或者等价地说,每个群体的每个位点的平均变异频率。
此外,Neural ADMIXTURE还引入了两种初始化技术,一种基于主成分分析(PCA),另一种基于原型分析,以加快训练过程并改善结果。模型还提供了两种机制来纳入关于数据集中混合程度的先验知识,通过在训练期间应用L2正则化和softmax调节来控制簇分配的软度。
模型结构
评估结果
研究者们对Neural ADMIXTURE进行了深入的评估,并将其与现有的竞争方法(ADMIXTURE、AIStructure、TeraStructure、HaploNet)在多个数据集上进行了比较。这些数据集包括从不同系统模拟的数据和来自大规模现实世界生物银行的样本。结果表明,Neural ADMIXTURE在CPU和GPU上的速度都比现有算法快,并且在预测祖先分配(Q)和等位基因频率(F)方面至少与现有算法一样好。在多个数据集上的测试中,Neural ADMIXTURE显示出与已知标签的Q估计值的相似度更高,平均而言,Neural ADMIXTURE的Q估计值与已知标签的相似度高于以前的方法。
在UK Biobank的计算分析中,研究者们展示了Neural ADMIXTURE在非常大的数据集上的聚类速度。Neural ADMIXTURE能够在11小时内处理完整的UK Biobank数据集,包括488,377个样本,而ADMIXTURE则需要大约一个月的时间来完成同样的任务。这表明传统的技术如ADMIXTURE对于如此大规模的Biobank来说速度太慢,特别是因为在研究中通常需要使用不同的参数和数据子集进行多次额外运行。
使用多头神经网络ADMIXTURE(K=6)获得的整个UK Biobank数据集(N=488,377)的Q分数遗传簇估计。
结论
Neural ADMIXTURE提供了一种快速且可扩展的方法,用于在大型Biobank中对遗传序列的群体结构进行表征。这对于纠正现有研究中对欧洲血统样本的极端不平衡至关重要,以避免在精准健康研究中忽略世界大部分人口而产生新的鸿沟。Neural ADMIXTURE的快速计算能力使得研究者能够在不同的超参数和不同的K值下快速获得结果,这对于研究的效率和准确性具有重要意义。
备注:该软件为人类群体结构分析而设计开发,小编没有用动植物样本来进行测试,但初步认为是可行的。毕竟,动植物基因组的大部分软件都源于人类基因组研究。
数据代码
该软件在 PyPi 库中以“neural-admixture”的名称作为可安装包提供。
源代码及其使用方法参考:https://github.com/ai-sandbox/neural-admixture
示例代码:
# 安装
$ pip install neural-admixture
# 无监督方法(单头)
$ neural-admixture train --k K --name RUN_NAME --data_path DATA_PATH --save_dir SAVE_PATH --init_file INIT_FILE
# 无监督方法(多头)
$ neural-admixture train --min_k MIN_K --max_k MAX_K --name RUN_NAME --data_path DATA_PATH --save_dir SAVE_PATH --init_file INIT_FILE
# 有监督方法
$ neural-admixture train --k K --supervised --populations_path POPS_PATH --name RUN_NAME --data_path DATA_PATH --save_dir SAVE_PATH # only single-head support at the moment
# ADMIXTURE调用
$ ./admixture snps_data.bed 8 -s 42
# 对应的Neural ADMIXTURE调用
$ neural-admixture train --k 8 --data_path snps_data.bed --save_dir SAVE_PATH --init_file INIT_FILE --name snps_data --seed 42
# 日志结果
$ neural-admixture train --k 8 ... | tee run.log
本文来自博客园,作者:生物信息与育种,转载请注明原文链接:https://www.cnblogs.com/miyuanbiotech/p/18449509。若要及时了解动态信息,请关注同名微信公众号:生物信息与育种。