Neurosynth是一个可以大规模自动合成功能磁共振数据的平台,可以从成千上万篇已发表fMRI 研究中合成出这样的图像:
对 922 项奖励研究进行自动meta分析
数据库中有:
- 从14371 项研究中报告的 507891 个激活词;
- 交互的,可下载的meta分析的1334 个术语;
- 150,000 多个大脑位置的功能连接和共激活图谱。
注: 示例均基于version7
解释数据
coordinates.tsv.gz
-
coordinates.tsv.gz
结尾的文件包含 Neurosynth 数据库不同版本的坐标。每一行代表一个坐标(一共507891行)。这些文件以制表符分隔并压缩,可以用pandas.read_table()
加载这些压缩文件。
其中id表示研究,x,y,z表示坐标metadata.tsv.gz
-
以
metadata.tsv.gz
结尾的文件包含 Neurosynth 数据库不同版本的元数据。每一行代表一项研究(id)(一共14371行),文件中id的顺序和-coordinates.tsv.gz
相对应。但由于一项研究有多个坐标,所以行数不一样。
features.npz -
以
features.npz
结尾的文件包含不同类型词汇表 “vocabulary ”的特征值。以压缩的稀疏矩阵形式存储,以减小文件大小。npz文件是一个numpy格式的将多个数组存在一起的压缩文件,每个数组以字典的形式保存,
import numpy as np
data = np.load()
# 加载npz文件
print(data.files)
#查看文件有[‘indices’, ‘indptr’, ‘format’, ‘shape’, ‘data’]数组
indices:0,1,…,14370重复100次 [14371001 ]
‘indptr’ :0 14371 28742 43113 等 [1011]
‘shape’ :14371,100
‘data’:[1434100*1]
相关的特征存储在以vocabulary.txt
结尾的文件中。vocabulary.txt
-
vocabulary.txt 一共一百个特征
每一行与features.npz
的列相对应
metadata.json -
metadata.json
文件包含同名文件的附加信息,即从截至 2018 年 7 月 Neurosynth 数据库中14371 篇文章的摘要中用 LDA 提取的 100 个主题集,生成关于features.npz
和vocabulary.txt
文件。keys.tsv
-
以
keys.tsv
结尾的文件包含了主题模型中每个主题的前 100 个top词汇。在总结主题时,这些顶级词汇可能会很有用。vocab-terms
-
这个词汇表指的是使用向量器从摘要中提取的术语(如 “语言”、“情感”、“记忆 ”等)。当前版本的术语词汇表可在 Neurosynth 网站上查阅。
vocab-terms_source-abstract_type-tfidf_features.npz
文件每行表示研究,每列表示不同术语的权重,为tf-idf值。vocab-LDA[50|100|200|400]
-
vocab-LDA[50|100|200|400]`: 这些词汇是对文章使用 潜狄利克特分配主题模型(LDA)拟合出的。
LDA 主题模型以跨 “主题 ”的概率分布来描述文本,而 “主题 ”又是跨词汇的概率分布。 有关 LDA 在 fMRI 研究中的更多信息,请参阅 Poldrack et al. (2012)。
这四个词汇表分别指 50、100、200 和 400 个主题的不同主题模型。
注: 用于注释 Neurosynth 数据库的原始文本是文章摘要、没有进行分享,可以使用以下工具从 PubMed 轻松下载nimare.extract.download_abstracts
.
重建特征数据(14371*3228)
如果要将特征数据重构为类似电子表格的格式,则需要将 features.npz
、metadata.tsv.gz
和 vocab-terms.txt
文件合并。
Python代码:
import numpy as np
import pandas as pd
from scipy import sparse
feature_data_sparse = sparse.load_npz("data-neurosynth_version-7_vocab-terms_source-abstract_type-tfidf_features.npz")
feature_data = feature_data_sparse.todense()
metadata_df = pd.read_table("data-neurosynth_version-7_metadata.tsv.gz")
ids = metadata_df["id"].tolist()
feature_names = np.genfromtxt("data-neurosynth_version-7_vocab-terms_vocabulary.txt", dtype=str, delimiter="\t").tolist()
feature_df = pd.DataFrame(index=ids, columns=feature_names, data=feature_data)
输出结果示例图: