动态神经时空表征。
dyneusr的Python项目详细描述
动态神经成像时空表征
DyNeuSR是一个用于神经成像数据拓扑表示的python可视化库。
dyneusr是专为处理拓扑数据分析(tda)中mapper算法生成的形状图而设计的,如论文“Generating dynamical neuroimaging spatiotemporal representations (DyNeuSR) using topological data analysis”(geniesse et al.,2019)和“Towards a new approach to reveal dynamical organization of the brain using topological data analysis”(saggar et al.,2018)所述。查看这个blog post了解更多关于激发dyneusr开发的初始工作。
在头脑中进行神经影像数据分析时,开发人员将现有的映射器实现(例如,与网络分析工具(如:A8))和其他神经成像数据可视化库(例如,{ } })连接起来,并提供了一个高层次的接口,用于处理和操作神经影像数据的形状图表示。把这些表现和神经生理学联系起来。dyneusr还提供了一个交互式的web界面,用于可视化和探索形状图。要查看这个可视化界面的实际效果,请查看demos。
demos演示
- Trefoil knot(code)
- Trefoil knot (custom layouts)(code)
- Haxby fMRI data (t-SNE lens)(code)
- Haxby fMRI data (UMAP lens)(code)
- Haxby fMRI data (supervised UMAP lens)(code)
相关项目
- DyNeuSR Fire是一个为dyneusr提供命令行接口的新项目。它将
kmapper
和dyneusr
封装到单个管道中,并使用Python Fire库自动生成一个简单的命令行界面,该界面接受多个重要选项并允许用户自定义此管道。有关dyneusr fire的更多信息,请查看docs。
引用
如果您觉得dyneusr有用,请考虑引用:
Geniesse, C., Sporns, O., Petri, G., & Saggar, M. (2019). Generating dynamical neuroimaging spatiotemporal representations (DyNeuSR) using topological data analysis. Network Neuroscience. Advance publication. doi:10.1162/netn_a_00093
有关映射器方法的详细信息,请参见:
Saggar, M., Sporns, O., Gonzalez-Castillo, J., Bandettini, P.A., Carlsson, G., Glover, G., & Reiss, A.L. (2018). Towards a new approach to reveal dynamical organization of the brain using topological data analysis. Nature Communications, 9(1). doi:10.1038/s41467-018-03664-4
api用法&示例
dyneusr提供了一个python api,用于处理和可视化mapper生成的形状图。这个存储库包括几个介绍dyneusr的api并突出dyneusr分析的不同方面的{a24}。有关更详细的教程,请查看dyneusr-notebooks。
图形可视化(trefoil knot)
fromdyneusrimportDyNeuGraphfromdyneusr.datasetsimportmake_trefoilfromdyneusr.toolsimportvisualize_mapper_stagesfromkmapperimportKeplerMapper# Generate synthetic datasetdataset=make_trefoil(size=100)X=dataset.datay=dataset.target# Generate shape graph using KeplerMappermapper=KeplerMapper(verbose=1)lens=mapper.fit_transform(X,projection=[0])graph=mapper.map(lens,X,nr_cubes=6,overlap_perc=0.2)# Visualize the shape graph using DyNeuSR's DyNeuGraph dG=DyNeuGraph(G=graph,y=y)dG.visualize('dyneusr_output.html')
mapper参数比较(trefoil knot)
# Define projections to compareprojections=([0],[0,1],[1,2],[0,2])# Compare different sets of columns as lensesforprojectioninprojections:# Generate shape graph using KeplerMappermapper=KeplerMapper(verbose=1)lens=mapper.fit_transform(X,projection=projection)graph=mapper.map(lens,X,nr_cubes=4,overlap_perc=0.3)# Visualize the stages of Mapperfig,axes=visualize_mapper_stages(dataset,lens=lens,graph=graph,cover=mapper.cover,layout="spectral")
神经成像应用程序(haxby decoding)
importnumpyasnpimportpandasaspdfromnilearn.datasetsimportfetch_haxbyfromnilearn.input_dataimportNiftiMaskerfromkmapperimportKeplerMapper,Coverfromsklearn.manifoldimportTSNEfromsklearn.clusterimportDBSCAN# Fetch dataset, extract time-series from ventral temporal (VT) maskdataset=fetch_haxby()masker=NiftiMasker(dataset.mask_vt[0],standardize=True,detrend=True,smoothing_fwhm=4.0,low_pass=0.09,high_pass=0.008,t_r=2.5,memory="nilearn_cache")X=masker.fit_transform(dataset.func[0])# Encode labels as integersdf=pd.read_csv(dataset.session_target[0],sep=" ")target,labels=pd.factorize(df.labels.values)y=pd.DataFrame({l:(target==i).astype(int)fori,linenumerate(labels)})# Generate shape graph using KeplerMappermapper=KeplerMapper(verbose=1)lens=mapper.fit_transform(X,projection=TSNE(2))graph=mapper.map(lens,X,cover=Cover(20,0.5),clusterer=DBSCAN(eps=20.))# Visualize the shape graph using DyNeuSR's DyNeuGraph dG=DyNeuGraph(G=graph,y=y)dG.visualize('dyneusr_output.html')
设置
依赖项
Python 3.6
必需的python包
使用pip安装
与pip一起安装:
pip install dyneusr
从源安装:
git clone https://github.com/braindynamicslab/dyneusr.git
cd dyneusr
pip install -r requirements.txt
pip install -e .
pytest
使用conda安装
如果您的默认环境是python 2,我们建议您在单独的python 3环境中安装dyneusr
。您可以找到有关为python 3here创建单独环境的更多信息。
如果您没有conda,或者您是科学python的新手,我们建议您下载Anaconda scientific python distribution。
创建新的conda环境并从源安装:
conda create -n dyneusr python=3.6
conda activate dyneusr
git clone https://github.com/braindynamicslab/dyneusr.git
cd dyneusr
conda install --file requirements-conda.txt
pip install -e .
pytest
这将创建一个新的conda环境dyneusr
,并在其中安装所需的依赖项。要访问它,请使用conda activate dyneusr
命令(如果conda版本>;=4.4)和source activate dyneusr
命令(如果conda版本<;4.4)。
支持
请随时report任何问题,request新功能,或propose改进。你也可以联系斯坦福大学教育学院的Caleb Geniess。
如果您为dyneusr捐款,请随时将您的姓名添加到list of contributors。
引文
Geniesse, C., Sporns, O., Petri, G., & Saggar, M. (2019). Generating dynamical neuroimaging spatiotemporal representations (DyNeuSR) using topological data analysis. Network Neuroscience. Advance publication. doi:10.1162/netn_a_00093
推荐PyPI第三方库
如果您的默认环境是python 2,我们建议您在单独的python 3环境中安装dyneusr
。您可以找到有关为python 3here创建单独环境的更多信息。
如果您没有conda,或者您是科学python的新手,我们建议您下载Anaconda scientific python distribution。
创建新的conda环境并从源安装:
conda create -n dyneusr python=3.6 conda activate dyneusr git clone https://github.com/braindynamicslab/dyneusr.git cd dyneusr conda install --file requirements-conda.txt pip install -e . pytest
这将创建一个新的conda环境dyneusr
,并在其中安装所需的依赖项。要访问它,请使用conda activate dyneusr
命令(如果conda版本>;=4.4)和source activate dyneusr
命令(如果conda版本<;4.4)。
支持
请随时report任何问题,request新功能,或propose改进。你也可以联系斯坦福大学教育学院的Caleb Geniess。
如果您为dyneusr捐款,请随时将您的姓名添加到list of contributors。
引文
Geniesse, C., Sporns, O., Petri, G., & Saggar, M. (2019). Generating dynamical neuroimaging spatiotemporal representations (DyNeuSR) using topological data analysis. Network Neuroscience. Advance publication. doi:10.1162/netn_a_00093