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

news2024/12/1 0:30:15

艾伦人类脑图谱(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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/527671.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

工业识别与定位系统源码解决方案

工厂人员定位系统源码,工业领域定位系统源码 近年来人员定位系统在工业领域的发展势头迅猛,工业识别与定位成为促进制造业数字化的关键技术。通过实时定位可以判断所有的人、物、车的位置。实时定位系统要适用于复杂工业环境,单一技术是很难…

tinyWebServer 学习笔记——二、HTTP 连接处理

文章目录 一、基础知识1. epoll2. 再谈 I/O 复用3. 触发模式和 EPOLLONESHOT4. HTTP 报文5. HTTP 状态码6. 有限状态机7. 主从状态机8. HTTP_CODE9. HTTP 处理流程 二、代码解析1. HTTP 类2. 读取客户数据2. epoll 事件相关3. 接收 HTTP 请求4. HTTP 报文解析5. HTTP 请求响应 …

OpenText 数据迁移解决方案的工作原理及其优势

OpenText Migrate 让迁移变得简单 选择正确的迁移技术您所需要了解的事情 无痛迁移 当谈到停机的常见原因时,灾难往往会得到最多的关注。 但灾难只是导致停机的一小部分原因。 计划的停机时间造成了资源的真正消耗,许多纯粹为灾难恢复应运而生的工具和…

【Simulink】 0基础入门教程 P2 常用模块的使用介绍

目录 常用模块介绍 (1) relational operator,用于数值的大小比较 (2) compare to constant,用于和数值做大小比较 (3)logical operator,用于逻辑运算 与运算 或运算 非运算 (4) switch,类似于C语言中的if 语句&#xff0c…

stm32 MCU液晶TM1622 HT1622驱动调试

本文使用的例程软件工程代码如下 (1条消息) stm32MCU液晶TM1622HT1622驱动调试,源代码,实际项目使用资源-CSDN文库 HT1622/HT1622G/TM1622是一款常用的LCD驱动芯片 TM1622/HT1622厂家不一样,但是芯片功能基本上一直,硬件上基本…

『C++』C++的类型转换

「前言」文章是关于C特殊类型转换 「归属专栏」C嘎嘎 「笔者」枫叶先生(fy) 「座右铭」前行路上修真我 「枫叶先生有点文青病」 「每篇一句」 有些事不是看到了希望才去坚持, 而是因为坚持才会看到希望。 ——《十宗罪》 目录 一、C语言中的类型转换 二、为什么C需…

tinyWebServer 学习笔记——三、定时器处理非活跃链接

文章目录 一、基础知识1. 概念2. API3. 信号处理机制 二、代码解析1. 信号处理函数2. 信号通知逻辑3. 定时器4. 定时器容器5. 定时任务处理函数6. 使用定时器 参考文献 一、基础知识 1. 概念 非活跃:指客户端与服务器建立连接后,长时间不交换数据&…

第二章 数据的表示和运算

1.进位计数制 其他进制转十进制 二进制<——> 八进制&#xff0c;十六进制 (注意&#xff1a;小数部分也是从右往左算十进制——>任意进制&#xff08;整数部分&#xff09; 十进制——>任意进制&#xff08;小数部分&#xff09; 十进制转二进制&#xff08;拼凑…

【gitee流水线实现自动化部署】

首先进入自己的gitee仓库 创建流水线 配置基本信息 名称标识 事件监听 -----触发条件 主要是任务排编内 vue前端则选择node构建 这些就是字面意思 若无特殊需求 按照默认的即可 构建完之后添加新任务 主机部署 选择部署 主机部署 添加主机组 新建主机组 自主导入 之后配…

配置Git

1.安装Git git官网 2.配置Git 在点击桌面上的Git Bash快捷图标中输入&#xff1a; 配置用户名&#xff1a; git config --global user.name "username" //&#xff08; "username"是自己的账户名&#xff0c;&#xff09; 配置邮箱&#xff1a; git…

Mac终端主题配置

如果你不想安装item2这类第三方终端&#xff0c;可以试试我下面的步骤&#xff0c;先上效果图&#xff0c;如果感觉还符合你的胃口&#xff0c;可以继续读下去啦!!! 1.下载item2的主题安装包 https://github.com/mbadolato/iTerm2-Color-Schemes 2.解压缩&#xff0c;打开…

电脑断电文件丢失如何找回?给你支几招!

电脑断电文件丢失如何找回&#xff1f;我好不容易熬夜加班做的活动方案&#xff0c;正当将U盘文件转移到笔记本电脑的时候&#xff0c;没有注意笔记本的电量&#xff0c;在转移数据的过程中突然断电了。我的电脑一下子就“熄”了&#xff0c;方案都没来得及保存。这真是一个悲剧…

06. git关联远程仓库

大家好&#xff0c;前面几节&#xff0c;我们用很长的篇幅介绍了git本地使用过程中的一些基本命令&#xff0c;本节开始&#xff0c;我们介绍通过远程仓库多人协作的时候&#xff0c;基本操作以及遇见的问题。 本节内容预告&#xff1a; 1、github 与gitlab简介 2、git本地连接…

【软考高项】项目范围管理中的需求跟踪矩阵说明

文章目录 需求跟踪矩阵的创建角色步骤 需求跟踪矩阵变更角色步骤 需求跟踪矩阵是把产品需求从其来源连接到能满足需求的可交付成果的一种表格。使用需求跟踪矩阵&#xff0c;把每个需求与业务目标或项目目标联系起来&#xff0c;有助于确保每个需求都具有业务价值。 需求跟踪矩…

从零开始Vue3+Element Plus的后台管理系统(三)——按需自动引入组件和unplugin-vue-components

按需导入Element Plus遇到页面卡顿问题 本项目使用Element Plus的方式是按需自动导入 首先安装unplugin-vue-components 和 unplugin-auto-import这两款插件 npm install -D unplugin-vue-components unplugin-auto-import然后把下列代码插入到你的 Vite 配置文件中 Vite# …

Salesforce Experience Cloud_体验云顾问认证考试-备考攻略 (内含模拟练习题)

Salesforce Experience Cloud顾问认证专为具有Experiences应用程序实施和咨询经验的顾问设计的&#xff0c;适用于使用Experience平台的声明性自定义功能展示其在设计、配置、构建和实施Salesforce Experience应用程序方面的技能和知识的备考者。 备考者需要有6个月的Experien…

周赛345(模拟、分类讨论、DFS求完全联通分量)

文章目录 周赛345[2682. 找出转圈游戏输家](https://leetcode.cn/problems/find-the-losers-of-the-circular-game/)模拟 [2683. 相邻值的按位异或](https://leetcode.cn/problems/neighboring-bitwise-xor/)方法一&#xff1a;分类讨论&#xff08;反向思考&#xff09;方法二…

Android 调用TTS语音引擎过程及问题记录

Android 调用TTS引擎过程及问题记录 前言 背景是需要在华为平板上部署一个能够进行相关中文语音提示的APP&#xff0c;华为系统为鸿蒙3.0&#xff0c;对应Android API 12. Android 调用TTS引擎 调用TTS引擎之前&#xff0c;首先要确认自己的设备中是否安装了相关的文本转语音…

从《水浒传》看项目管理

水浒传和项目管理&#xff0c;这两个看似毫不相关的话题&#xff0c;其实有着惊人的相似之处。你没听错&#xff0c;就是水浒传&#xff01;这个充满了江湖义气和刀光剑影的故事&#xff0c;竟然能给我们现代人提供一些关于项目管理的启示。别怀疑&#xff0c;跟我一起来看看吧…

nginx liunx最新版本安装flask部署

一、nginx安装 1.进入Nginx官网的资源下载页&#xff1a;http://nginx.org/en/download.html 2.下载nginx-1.22.1.tar.gz&#xff0c; 3解压&#xff1a; tar -zxvf nginx-1.22.1.tar.gz解压完成后会在当前目录下得到一个新的nginx文件夹 4.终端进入nginx文件夹目录&#x…