一个用于Allen脑图谱基因数据的工具箱|abagen详细使用教程-获取基于脑区的基因表达矩阵(脑区*gene)

艾伦人类脑图谱是一个包含全基因组数据的在线数据库,广泛应用于神经科学研究。abagen是用于处理该数据的Python工具箱,提供标准化流程。本文介绍了abagen的安装、数据下载和如何获取基于大脑分区的基因表达矩阵,旨在简化科研人员的数据处理工作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

艾伦人类脑图谱(Allen Human Brain Atlas)

  • 艾伦人类脑图谱是一个由艾伦脑科学研究所(Allen Institute for Brain Science)开发的在线基因表达图谱数据库,旨在提供人类大脑各个区域的细胞类型和基因表达信息。
  • 这个数据库包含了人类全基因组微阵列数据集、RNA测序数据集等,并使用标准化的数据处理流程和软件工具进行分析和可视化。
  • 该数据库对于研究人类大脑结构和功能以及神经系统疾病等方面都有很重要的作用。

艾伦人类脑图谱在影像学中的应用

目前国内外的科研人员,已经有很多将艾伦脑的基因表达数据与神经影像数据结合分析,已经有了不少的成果,然而各个研究小组之间缺乏标准化,导致了很多使用这些数据的处理流程。abagen是一个用于处理转录组数据的开源工具箱,给出了标准化的处理流程,该文章发表在eLife上,对于想使用艾伦脑图谱数据库而自己又难以对数据进行处理的研究者只使用该工具箱,使用大牛的分析流程,可减少不必要的麻烦(被审稿人质疑)和节约时间成本。

abagen工具箱的使用|获取基于大脑分区的基因表达数据

abagen一个python的工具箱,目前最新版本是0.1.3,对于python环境的基础要求如下。我自己的测试环境是搭建的anocanda 3.10环境,测试可以使用。

nibabel
numpy>=1.14.0
pandas>=0.25.0
scipy

安装流程

因为国外的包下载非常慢,因此使用镜像源安装
pip install abagen -i https://pypi.douban.com/simple/
因为该包通过 conda install abagen无法搜索到包,因此在conda环境中也只能通过pip安装

下载6名捐献者的转录组数据
官方提供的方法如下:

1.安装io模块(用于连接艾伦研究所的官网下载数据)
2.import abagen
  files = abagen.fetch_microarray(donors='all', verbose=0)
3.上述代码可以将6捐献者的数据下载到默认路径下$HOME/abagen-data,通常是C盘的用户目录下,
你也可以指定data_dir将数据下载到指定目录下。
4. 6名捐献者的数据大约有4G,且服务器在国外,大概率程序会运行很久然后报错(血泪史)

本文提供的方法:

  • 直接到到官网进行数据的下载 AHBA microarray data
  • 将数据放在任意的一个文件夹内,后续加载数据直接指定该文件夹即可
  • 官网的下载页面如下,下载圈出来的数据即可,其它的按需下载:
    下载圈出来的数据
  • 网站服务器在国外,不确定能否打开,如果实在没办法可以联系博主获取。

获取基于大脑分区的基因表达数据
abagen的主要流程如下图所示(论文原图)
在这里插入图片描述
通过该工具箱,输入大脑的分区模板,即可得到一个【脑区*基因】的矩阵,具体的代码如下

import abagen
存放6个捐献者数据的文件夹
data_dir = '~\microarray'
大脑分区数据(可以是surface也可以是volume)
atlas_file = 'AAL.nii'
核心代码,用于获取基因表达矩阵
expression = abagen.get_expression_data(atlas_file, missing='centroids',data_dir=data_dir)
用于保存数据到csv 
expression.to_csv('glasser360MNI_LR.nii_centroids.csv')  
  • 其中missing表示如果该脑区没有采集到基因表达数据的处理方式,即插值(两种方式),或者对应脑区不做处理
  • 可选的值如下:{‘centroids’, ‘interpolate’, None}
  • centroids:该区域的值于最近的样本组织的基因表达数值一致。
  • interpolate:采用反距离加权平均进行插值
  • None:不做处理,赋值NAN

插值处理
如果是皮层数据,上面代码中的atlas可以按照如下方式导入

from abagen import images
atlas = ('/.../fsaverage6-lh.label.gii', '/.../fsaverage6-rh.label.gii')
surf = ('/.../fsaverage6-lh.surf.gii', '/.../fsaverage6-lh.surf.gii')
atlas = images.check_atlas(atlas, geometry=surf, space='fsaverage6')

其中微阵列文件夹data_dir数据组织形式如下

├── normalized_microarray_donor10021/
│   ├── MicroarrayExpression.csv
│   ├── Ontology.csv
│   ├── PACall.csv
│   ├── Probes.csv
│   └── SampleAnnot.csv
├── normalized_microarray_donor12876/
├── normalized_microarray_donor14380/
├── normalized_microarray_donor15496/
├── normalized_microarray_donor15697/
└── normalized_microarray_donor9861/

get_expression_data的默认参数

def get_expression_data(atlas,atlas_info=None,*,
                        ibf_threshold=0.5,
                        probe_selection='diff_stability',
                        donor_probes='aggregate',
                        sim_threshold=None,
                        lr_mirror=None,
                        exact=None, missing=None,
                        tolerance=2,
                        sample_norm='srs',
                        gene_norm='srs',
                        norm_matched=True,
                        norm_structures=False,
                        region_agg='donors',
                        agg_metric='mean',
                        corrected_mni=True,
                        reannotated=True,
                        return_counts=False,
                        return_donors=False,
                        return_report=False,
                        donors='all',
                        data_dir=None,
                        verbose=0,
                        n_proc=1):

声明

  • 本文更多的是给大家提供一个快速使用该开源工具箱的方法,降低方法使用的门槛,让大家不用把时间浪费在搭建环境编写脚本等坑上面;如果需要对参数进行定制则需要仔细阅读工具箱手册及相应的论文对处理的流程有整体的理解。
  • 个人水平有限,欢迎大佬指正,欢迎友好交流!

参考文献:

  1. Markello, RD, Arnatkevic̆iūtė, A, Poline, J-B, Fulcher, BD, Fornito, A, & Misic, B. (2021). Standardizing workflows in imaging transcriptomics with the abagen toolbox. Biorxiv. doi:10.1101/2021.07.08.451635
  2. Arnatkevic̆iūtė, A, Fulcher, BD, & Fornito, A. (2019). A practical guide to linking brain-wide gene expression and neuroimaging data. NeuroImage, 189, 353-367. doi:10.1016/j.neuroimage.2019.01.011
  3. Hawrylycz, MJ, Lein, ES, Guillozet-Bongaarts, AL, Shen, EH, Ng, L, Miller, JA, …, & Jones, AR. (2012). An anatomically comprehensive atlas of the adult human brain transcriptome. Nature, 489(7416), 391–399. doi:10.1038/nature11405
  4. https://abagen.readthedocs.io/en/stable/citing.html
  5. https://human.brain-map.org/static/download
"abagen"是一个用于分析人类大基因表达Python工具包。它提供了一种方便的方式来检索和处理来自不同实验数据集的基因表达数据,并进行功能分析和可视化。下面是关于如何使用abagen详细教程: 1. 安装与准备: 首先,确保已经安装了Python和pip包管理器,并在命令行中使用pip安装abagen: ``` pip install abagen ``` 然后,准备一系列已下载的大图像数据(如Allen图像数据集)和相关基因表达数据(如GTEx或Allen图像数据集)。 2. 数据处理与导入: 在你的Python脚本中导入abagen模块,并使用`abagen.fetch_microarray()`函数来下载和处理大图像和基因表达数据,生成一个`MicroarrayDataset`对象。 3. 数据筛选与预处理: 从`MicroarrayDataset`对象中,使用`aba.select()`函数根据不同的条件(如特定大脑区域或基因)选择感兴趣的数据。 4. 功能分析与可视化: 使用`aba.enrichr()`函数进行基因功能注释和富集分析,根据不同的Gene Ontology(GO)项或其他数据库将基因分为不同的功能类别。 使用`aba.plot_expression()`函数可视化基因的表达模式以及不同区域之间的差异。 5. 结果解释与分析: 可以根据功能富集分析和可视化结果来解释和分析所选择的基因的生物学意义,并进一步深入研究在不同大脑区域中基因表达的差异或共同机制。 总结起来,abagen一个方便易用的工具包,可用于处理和分析人类大基因表达数据。通过它可以选择、预处理、功能分析和可视化基因表达数据,帮助我们更好地理解人基因调控机制和功能分布。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小李的风

谢谢老板!!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值