当前位置: 首页 > news >正文

网站备案中页面国外做mg动画的网站大全

网站备案中页面,国外做mg动画的网站大全,长春市住房和城乡建设局网站,专业装饰企业展厅设计公司AnnData#xff1a;单细胞和空间组学分析的数据基石 今天我们来系统学习一下单细胞分析的标准数据类型——AnnData#xff01; AnnData就是有注释的数据#xff0c;全称是Annotated Data。 AnnData是为了矩阵类型数据设计的#xff0c;也就是长得和表格一样的数据。比如…AnnData单细胞和空间组学分析的数据基石 今天我们来系统学习一下单细胞分析的标准数据类型——AnnData AnnData就是有注释的数据全称是Annotated Data。 AnnData是为了矩阵类型数据设计的也就是长得和表格一样的数据。比如说我们有 n n n个样本观测值每个样本用一个 d d d维的向量表示这个向量的每一个维度表示着一个特征。也就是说这是一个 n × d n \times d n×d的矩阵。 举个例子在scRNA-seq数据中每一行表示一个带有barcode的细胞每一列表示带有gene id的基因。而且数据还不只这一个矩阵每个细胞和基因可能会有额外的信息metadata比如①细胞的来源②基因是否甲基化等等。此外还有一些非结构化的metadata比如画图用的一些参数调色板等。 目前来说似乎除了AnnData没有其他的数据结构可以做到 处理稀疏性处理非结构化的数据处理样本和特征的metadata容易上手 AnnData的论文也发在了nature biotechnology上 安装与导入 # !pip install anndata import numpy as np import pandas as pd import anndata as ad from scipy.sparse import csr_matrix print(ad.__version__)0.10.4初始化AnnData 我们来创建一个AnnData对象吧首先我们通过NumPy随机生成一些数据然后再用csr_matrix()转换成稀疏矩阵。 我们生成的数据是一个大小为100*2000数据符合泊松分布的矩阵可以假装是100个细胞和2000个基因的counts矩阵。 泊松分布Poisson distribution是一种离散概率分布它用于表示在固定时间或空间区间内发生某事件的概率假设这些事件以已知的恒定平均速率独立发生。泊松分布通常用于模拟那些发生次数较少但有大量独立机会发生的事件。 我们使用泊松分布生成随机数可能是因为我们想模拟一个细胞的基因表达而这其实也算以某个固定的平均速率发生而且每个事件的发生是差不多独立的。 泊松分布适合于模拟生物学实验中的计数数据如RNA测序中每个基因的counts因为这些counts可以看作是在固定时间内发生的事件数量。 λ1代表着事件发生的平均次数是1这样会比较稀疏 counts csr_matrix(np.random.poisson(1, size(100, 2000)), dtypenp.float32) # 使用NumPy库生成一个形状为100x2000的数组数组中的每个元素都是从参数为1的泊松分布中随机抽取的数值。 # 将上述生成的数组转换为压缩稀疏行CSR格式的稀疏矩阵。 # CSR格式是一种高效存储和操作稀疏矩阵的方式特别是当矩阵中大部分元素为零时。 adata ad.AnnData(counts) # 创建了一个AnnData对象它是anndata库中的一个核心数据结构用于存储带注释的多维数据。 # 在这里counts稀疏矩阵被用作AnnData对象的主数据矩阵X。 adataAnnData object with n_obs × n_vars 100 × 2000上面的输出是总结了一下样本和特征有多少如果想看我们的数据就可以通过adata.X。 adata.X100x2000 sparse matrix of type class numpy.float32with 125993 stored elements in Compressed Sparse Row format现在我们来设置一下样本和特征的名字这也算是建立索引的步骤。 # 设置观测值名称每个名称格式为Cell_序号 adata.obs_names [fCell_{i:d} for i in range(adata.n_obs)] # 使用列表推导式创建了一个新的列表列表中的每个元素都是以Cell_开头后面跟着一个整数序号的字符串。 # 这个序号从0开始一直到adata.n_obs观测值的数量减1。 adata.var_names [fGene_{i:d} for i in range(adata.n_vars)] print(adata.obs_names[:10])Index([Cell_0, Cell_1, Cell_2, Cell_3, Cell_4, Cell_5, Cell_6,Cell_7, Cell_8, Cell_9],dtypeobject)取子集 这么多数据我们一般会关注自己想要的索引方式非常方便。直接用列表把样本和特征的名字一放就行。 adata[[Cell_1, Cell_10], [Gene_5, Gene_1900]]View of AnnData object with n_obs × n_vars 2 × 2加点额外的metadata 样本/特征 细胞有类别、基因也不仅仅只有counts怎么加额外的特征呢这也很简单就搞一个和样本或者特征一样长的向量赋值即可。 So we have the core of our object and now we’d like to add metadata at both the observation and variable levels. This is pretty simple with AnnData, both adata.obs and adata.var are Pandas DataFrames. ct np.random.choice([B, T, Monocyte], size(adata.n_obs,)) adata.obs[cell_type] pd.Categorical(ct) # Categoricals are preferred for efficiency adata.obs我们可以发现我们的数据描述也变了多了一个obs: cell_type这也就是我们刚刚定义的细胞类型。 adataAnnData object with n_obs × n_vars 100 × 2000obs: cell_type通过metadata取子集 我们可以用我们刚刚为细胞加的特征cell_type来选择我们想要的数据比如我们想要所有B细胞的数据。 bdata adata[adata.obs.cell_type B] bdataView of AnnData object with n_obs × n_vars 36 × 2000obs: cell_type样本和特征水平的多维度metadata矩阵 我们有时候想加的metadata不是一个向量能描述的它可能是个矩阵。比如细胞的UMAP降维结果降到2维就是一个细胞个数*2维的矩阵。这时候我们就可以用obsm或者varm来添加就行。 adata.obsm[X_umap] np.random.normal(0, 1, size(adata.n_obs, 2)) # 生成一个100*2的正态分布随机数矩阵 adata.varm[gene_stuff] np.random.normal(0, 1, size(adata.n_vars, 5)) adata.obsmAxisArrays with keys: X_umap再看看我们的adata又更新了。 adataAnnData object with n_obs × n_vars 100 × 2000obs: cell_typeobsm: X_umapvarm: gene_stuff关于.obsm/.varm的额外说明 .obsm和.varm可以存储来自不同来源的矩阵。这些数据可以是Pandas DataFrame、scipy稀疏矩阵或numpy数组。也就是说我们可以将这些不同类型的数据结构直接存储在.obsm或.varm中而无需进行转换。当使用scanpy进行单细胞分析时.obsm和.varm中的值列不容易直接用于绘图。相比之下.obs中的项可以更容易地被绘制在UMAP等降维图上。例如如果我们有UMAP坐标存储在.obsm中我们可能需要将它们转移到.obs中以便使用scanpy的绘图功能。 非结构化的metadata 非结构化就是随便什么数据都行不管是列表、字典还是什么其他的只要是对于我们数据分析有用的都可以放进来就放在.uns里面就行。 adata.uns[random] [1, 2, 3] adata.unsOrderedDict([(random, [1, 2, 3])])adataAnnData object with n_obs × n_vars 100 × 2000obs: cell_typeobsm: X_umapvarm: gene_stuff欸非结构化metadata的就没有直接显示。 Layers 最后得说一下layers这个非常有用。我们经常会对原始数据进行处理比如标准化、对数化等等。这些可以转换后的数据可以存储在layer中。 adata.layers[log_transformed] np.log1p(adata.X) adataAnnData object with n_obs × n_vars 100 × 2000obs: cell_typeuns: randomobsm: X_umapvarm: gene_stufflayers: log_transformed还原回DataFrames 直接使用.to_df()即可还可以指定layer。 adata.to_df(layerlog_transformed)你看dataframe的行列索引也都是我们的.obs_names/.var_names。 保存结果 AnnData提供了一种基于HDF5的持久化文件格式h5ad。这种格式专门设计用于存储AnnData对象使得数据可以高效地被读取和写入。 当AnnData对象中有包含少量类别的字符串列时如果这些字符串列还没有被转换为分类数据类型categoricalsAnnData会自动将它们转换为分类数据类型。分类数据类型是pandas库中的一种数据类型用于表示具有固定数量类别的变量这种类型在内存使用和性能上比普通字符串类型更优。 例如如果我们有一列全是字符串它只包含几个不同的值如yes和noAnnData会自动将这个列的数据类型转换为分类数据类型这样可以提高数据处理的效率和速度。 adata.write(my_results.h5ad, compressiongzip)!ls -lh | grep my_results.h5ad-rw-rw-r-- 1 659K Jan 14 15:31 my_results.h5ad结语 这次只是学习了AnnData最基础的知识之后会介绍AnnData进阶的操作。 参考资料Getting started with anndata — anndata 0.11.0.dev46g0219fef documentation 如果觉得还不错记得点赞收藏哟谢谢大家的阅读︶↗
http://www.dnsts.com.cn/news/12295.html

相关文章:

  • 怎么自建导购网站做淘客wordpress 跳转函数
  • 网站大全官网炫酷响应式网站设计
  • 网站运行速度优化一个好的网站需要具备什么
  • 515ppt网站建设html5 网站源代码
  • 高端响应式网站设计it外包工作怎么样
  • 建设工程施工合同网站自己做网站是否要买云主机
  • 怎么做自己的简历网站安阳网站建设哪家公司好
  • 安徽省建设工程造价管理总站网站旅游网站开发方案ppt
  • 网站架设百度公司简介
  • 网站侧导航公司管理流程图大全
  • 网站底部友情链接涿州做网站建设
  • 响应式学校网站模板中山网站建设案例
  • 南京网站开发注册app建设网站需要注意什么
  • wordpress主题常规选项修改不seo网站搜索优化
  • 信阳网站建设的费用创意品牌网站
  • 品牌微信网站建设网站建设 部署与发布题库
  • 东莞网站平台后缀如何制作自己的网址链接
  • 做电影网站看电影算网站流量吗wordpress 第一张图片不显示
  • 家具企业网站模板重复打开同一个网站怎么做
  • 论坛网站开发开题报告专业苏州房产网站建设
  • 做一个网站成本多少钱公司网站如何上传视频
  • 惠东网站设计wordpress网站根目录
  • 最好网站设计案例开发公司经营管理存在的问题
  • 江苏省交通厅门户网站建设管理办法淘宝网站是语言用什么做的
  • 大型网站seo课程怎么做淘宝客优惠劵网站
  • 绛帐做企业网站学网站建设维护
  • 0基础建站教程公司建设网站的申请
  • 网站推广经典案例重庆网站建设 观音桥
  • 培训网站建设学校上海市建设工程协会网站
  • php网站模版网站建设招聘系统