HYDRA的快速python实现

pyHYDRA的Python项目详细描述


pyHYDRA

^{str1}$pyHYDRA是半监督聚类方法的快速python实现:HYDRA。此外,pyHYDRA还允许按照AD-ML中提出的良好实践来执行二进制分类任务。在

与HYDRA的matlab实现相比,pyHYDRA具有以下优点:

  • 多线程实现,计算速度更快
  • 更复杂的交叉验证(CV)策略,例如,重复100次保持CV
  • {a3}后续二进制分类的额外功能。在

安装

Ananconda允许您安装、运行和更新python包及其依赖项。我们强烈建议用户在您的计算机上安装Anancond3。 在安装了Python3之后,有三种选择可以使用pyHYDRA。在

使用pyHYDRA作为python包

我们建议用户使用Conda虚拟环境:

1) conda create --name pyHYDRA python=3.6

激活虚拟环境:

^{pr2}$

安装其他python包依赖项(转到pyHYDRA的根文件夹):

3) ./install_requirements.sh

最后,我们需要从PyPi安装pyHYDRA:

3) pip install pyhydra==1.0.5

从命令行使用pyHYDRA:

在^{str 1}中安装所有依赖项后$要求.txt文件,转到pyHYDRA的根文件夹,其中设置.py定位:

pip install -e .

使用pyHYDRA作为开发版本:

python -m pip install git+https://github.com/anbai106/pyHYDRA.git

输入结构

pyHYDRA需要一个受BIDS启发的特定输入结构。 组标签/诊断的一些约定:-1代表健康对照组(CN),1代表患者(PT);分类变量,如性别,应编码为数字:例如,女性代表0,男性代表1。在

tsv

对于具有ROI特征的聚类和分类(默认情况下,分类不以协变量tsv为输入),前3列是participant\uidsession\uiddiagnosis。在

对于体素图像的分类,featuretsv需要在diagnosis列之后为path添加一个列,而不需要其他列。在

特性tsv示例:

participant_id    session_id    diagnosis    ROI1    ROI2 ...
sub-CLNC0001      ses-M00    -1   432.1    596.9
sub-CLNC0002      ses-M00    1    398.2    601.3
sub-CLNC0003      ses-M00    -1    412.0    567.3
sub-CLNC0004      ses-M00    -1    487.4    600.1
sub-CLNC0005      ses-M00    1    346.5    529.5
sub-CLNC0006      ses-M00    1    443.2    663.2
sub-CLNC0007      ses-M00    -1    450.2    599.3
sub-CLNC0008      ses-M00    1    443.2    509.4

协变量tsv示例:

participant_id    session_id    diagnosis    age    sex ...
sub-CLNC0001      ses-M00    -1   56.1    0
sub-CLNC0002      ses-M00    1    57.2    0
sub-CLNC0003      ses-M00    -1    43.0    1
sub-CLNC0004      ses-M00    -1    25.4    1
sub-CLNC0005      ses-M00    1    74.5    1
sub-CLNC0006      ses-M00    1    44.2    0
sub-CLNC0007      ses-M00    -1    40.2    0
sub-CLNC0008      ses-M00    1    43.2    1

体素分类的特征tsv示例:

participant_id    session_id    diagnosis    path ...
sub-CLNC0001      ses-M00    -1   path1
sub-CLNC0002      ses-M00    1    path2
sub-CLNC0003      ses-M00    -1    path3
sub-CLNC0004      ses-M00    -1    path4
sub-CLNC0005      ses-M00    1    path5
sub-CLNC0006      ses-M00    1    path6
sub-CLNC0007      ses-M00    -1    path7
sub-CLNC0008      ses-M00    1    path8

示例

我们在pyHYDRA/data文件夹中提供了一个玩具数据集。在

正在运行pyHYDRA进行群集CN vs subtype 1 vs subset2 vs…:

from pyhydra.hydra_clustering import clustering
feature_tsv="pyHYDRA/data/test_feature.tsv"
output_dir = "PATH_OUTPUT_DIR"
k_min=2
k_max=8
cv_repetition=100
clustering(feature_tsv, output_dir, k_min, k_max, cv_repetition)

请注意,上述示例假设输入特征已被协变量效应校正,如年龄和性别,如果没有,可以运行:

from pyhydra.hydra_clustering import clustering
feature_tsv="pyHYDRA/data/test_feature.tsv"
output_dir = "PATH_OUTPUT_DIR"
k_min=2
k_max=8
cv_repetition=100
covariate_tsv="pyHYDRA/data/test_covariate.tsv"
clustering(feature_tsv, output_dir, k_min, k_max, cv_repetition, covariate_tsv=covariate_tsv)

运行pyHYDRA进行二进制分类CN vs PT:

from pyhydra.adml_classification import classification_roi
feature_tsv="pyHYDRA/data/test_feature.tsv"
output_dir = "PATH_OUTPUT_DIR"
cv_repetition=250
classification_roi(feature_tsv, output_dir, cv_repetition)

或者

from pyhydra.adml_classification import classification_voxel
feature_tsv="pyHYDRA/data/test_feature_voxel.tsv"
output_dir = "PATH_OUTPUT_DIR"
cv_repetition=250
classification_voxel(feature_tsv, output_dir, cv_repetition)

引用这部作品

如果您使用此软件进行群集:

Wen, J., Varol, E., Davatzikos, C., 2020. Multi-scale feature reduction and semi-supervised learning for parsing neuroanatomical heterogeneity. Organization for Human Brain Mapping. - Poster

Varol, E., Sotiras, A., Davatzikos, C., 2017. HYDRA: Revealing heterogeneity of imaging and genetic patterns through a multiple max-margin discriminative analysis framework. Neuroimage, 145, pp.346-364. doi:10.1016/j.neuroimage.2016.02.041 - Paper in PDF

如果您使用此软件进行分类:

Wen, J., Samper-González, J., Bottani, S., Routier, A., Burgos, N., Jacquemont, T., Fontanella, S., Durrleman, S., Epelbaum, S., Bertrand, A. and Colliot, O., 2020. Reproducible evaluation of diffusion MRI features for automatic classification of patients with Alzheimer’s disease. Neuroinformatics, pp.1-22. doi:10.1007/s12021-020-09469-5 - Paper in PDF

J. Samper-Gonzalez, N. Burgos, S. Bottani, S. Fontanella, P. Lu, A. Marcoux, A. Routier, J. Guillon, M. Bacci, J. Wen, A. Bertrand, H. Bertin, M.-O. Habert, S. Durrleman, T. Evgeniou and O. Colliot, Reproducible evaluation of classification methods in Alzheimer’s disease: Framework and application to MRI and PET data. NeuroImage, 183:504–521, 2018 doi:10.1016/j.neuroimage.2018.08.042 - Paper in PDF - Supplementary material

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java mahout创建带有首选项的基于项目的推荐程序   java Maven:过滤任何资源   swing为什么Java中的侦听器相互依赖?   java在TextView中显示json响应   drjava从txt文件中检索一个随机字,但没有得到任何输出,也没有编译错误   JWindow上的java JPanel,添加组件   安卓使用jcocoa将ios代码转换为java   除非调整帧的大小,否则java动画不起作用   从java代码创建Json文件   java使用jdom向现有xml添加内容   如何在java中设置socket写超时?   java将值拆分为两个随机数