从 GEO 系列矩阵格式数据中提取元数据和数据集
项目描述
地理数据集
国家生物技术信息中心提供可供全球研究人员免费下载的微阵列数据集。编写此模块是为了便于从用 python 编写的应用程序中处理这些数据集。
1. 文件结构
包含此数据集的数据的文件被组织成 TAB 分隔的数据列。所有文件都包含一定数量的元数据,这些元数据编码在文件的开头行中。例如,元数据记录以“!”开头的描述性记录标签开头,!Series_title。
实际的表达数据可以在同一个文件中找到,也可以在单独的文件中找到,每个样本一个,其名称可以在相关联的元数据中找到。为简单起见,假设表达式数据遵循同一文件中的元数据,在描述符标签之间:
!series_matrix_table_begin
和:
!series_matrix_table_end
1.1 gse(脚本)
提供了一个名为gse的命令行脚本,它使用此模块中定义的类将数据呈现到控制台和文件中,具体取决于命令行中使用的开关。输出默认包含一个与输入同名的文件,但扩展名更改为“.P”以表示 python腌制内容。这将包含腌制的 GEOSeries对象,稍后可以使用cPickle.load函数将其取消腌制。
gse将尝试将输入文件解释为腌制的GEOSeries实例。否则,它将尝试从假定为GSE_series_matrix.txt文件的内容创建一个新实例。结果是,如果您已经有一个腌制实例,您可以将其用于后续操作(例如显示级别),而无需重新处理原始输入,从而节省一些时间。
2. 元数据
GSE 系列矩阵中有两种元数据:系列元数据和样本元数据。系列元数据通常有两个字段或列,由选项卡分隔。第一列是元数据描述符,始终以!Series_ 开头,第二列是关联值。例如:
!Series_title <TAB> "Reconstruction of the dynamic regulatory ..."
请注意,有时字符串类型的值可能会用引号引起来。这并不完全一致,但似乎经常发生这种情况。
样本元数据的格式大致相似,第一列是描述符,总是以!Sample_ 开头。在第一个列之后将有与数据集中的样本一样多的列,并且应该以与数据集中的表达式数据列(即样本)相同的顺序出现。然而,为了确保元数据与相应的样本正确关联,样本元数据行之一包含在数据集中找到的样本 ID,因此应间接将所有其他样本元数据与相应样本关联,通过这个sample_id元数据行。
2.1 显示元数据
--show-metadata开关将导致将系列和示例元数据发送到stdout。共有三种格式:pretty、json和html,而pretty是默认格式。使用--metadata-format=开关选择格式。
3. 数据集输出
如果未指定输出文件,则根本不会发出表达式数据。使用 --output =或-o 开关来指定输出目标。如果要输出到stdout,请使用--output=-或-i - (即,使用连字符作为文件名。)
3.1 原始与对数表达式值
一些数据集包含“原始”数据(或读取计数)。通常,我们希望表达式值以log2值的形式给出。--log2标志将导致表达式数据因此被转换。
3.1 分组样本输出
如果有多个级别的元数据,这些可用于对样本进行分组,通过对同一组中的样本取列值的算术平均值来聚合它们。比如说,你有十个样本,实际上是两组,每组五个重复。将有 定义这些组的示例元数据。然后,putput 将是两列(加上索引列,通常是每行的探针 ID),其值是两组中每组值的平均值。
可用的样本元数据级别可以使用--list-levels开关显示,该开关打印出从 0 开始的枚举列表。第零级只是单个样本,未分组。
使用--group-by=``*level*或``-g 级别开关请求对样本进行分组。如果未指定,这显然默认为零。可以使用非负整数或元数据描述符指定级别。如果使用描述符,如果描述符标签中有嵌入的空格,请记住将其括在引号中。
4. GSE 课程
该模块中定义了三个类,其中两个充当其他类的容器。
4.1 GSE系列
这是包含指定数据集的数据和元数据的顶级类。它被传递一个类似文件的对象,从中读取和解析(预期的)GSE 系列矩阵。生成的实例提供了几种方法来显示元数据或发出包含数据集的 TSV 文件作为表,其中列可能根据列索引元数据进行分组。
4.2 GSESeries元数据
系列矩阵的元数据通过GSESeries实例的元数据属性访问。可以使用属性属性列出属性。当然,这些可以而且将会随着每个特定的数据集而变化。
4.3 GESample元数据
系列矩阵中每个样本的元数据可以通过GSESeries 实例的samples属性访问。这实际上是一个返回一个生成器的属性,该生成器可用于以“样本顺序”迭代样本,即它们在矩阵中出现的顺序。要从其索引中获取特定样本,请使用生成器创建一个列表,然后对该列表进行索引。例如:
fifth_sample = list(series_instance.samples)[4]
5. 岩浆2
较旧的 Web 应用程序称为Guide(见下文)使用内部设计的 SQL 数据库模式,称为MAGMA。(这是一个首字母缩略词,但是,只要把它想象成一堆东西在一个大漩涡中旋转的熔融团块,散发出大量的热量并时不时地引起震颤。)MAGMA 是为Guide完全重新设计的。 s 继任者HaemoSphere,被称为MAGMA2。
5.1 gse-岩浆(脚本)
命令行脚本gse-magma获取由gse生成的腌制GEOSeries对象并发出 DDL,该 DDL 会将数据集元数据输入到 MAGMA2 中。
输出文件名还将包含一个可以使用--version开关设置的版本(默认值:1.0)。
包含要添加到MAGMA2数据集元数据的行的 DDL 文件位于:
<handle>.<version>_DDL.sql
5.2 gse-magma(高级配置)
创建 DDL 特别棘手,因为并非所有 GSE 文件都包含相同类型的元数据,我们也不会总是希望对任何给定数据集使用相同的元数据。因此,可以使用--magma2-config=开关指定配置选项,编码为 python 对象。
此文件可以包含可调用对象的自定义设置,这些对象将 GEOSeries 实例作为参数并返回一个字符串。例如,dataset_handle对象可能如下所示:
dataset_handle = lambda gseObj: gseObj.accession
还可以定义dataset_version和dataset_description对象。
示例元数据的引用方式有些相同——作为可调用的 Python 对象——但传递的参数是 GSESampleMetadata 实例。这将在一个循环中调用,该循环遍历每个样本,因此与每个样本相关的元数据可用于这些可调用对象。例如:
sample_metadata_description = lambda samp_inst: samp_inst.title
返回给定样本samp_inst的描述性文本。
这些可调用对象可以是成熟的函数,而不仅仅是匿名lambda函数。其他,脚手架或支持代码也可以包含在此配置文件中。在命名不应被视为配置变量的变量时应小心:它们的名称应始终以下划线 (_) 开头。有关详细信息,请参阅cfgparse模块的文档。
可以使用--template开关生成模板配置文件。这只是打印出默认配置,其中所有值都设置为空字符串或零。
6. 指南
WEHI 有一个内部开发的 Web 应用程序,称为Guide,它是一种基因组浏览器,与我们科学家常用的数据集集合相结合。该模块的编写首先是为了支持和促进向本指南集合添加新数据集。
Guide现在已被HaemoSphere取代,它使用了MAGMA的更新版本,恰如其分地称为MAGMA2。本节仅出于历史目的而包含在内。自 2014 年 1 月 1 日起,GSE 不再支持指南。
6.1 gse-guide(脚本)
命令行脚本gse-guide采用gse生成的腌制GEOSeries对象并发出三个文件,然后将这些文件合并到 Guide 应用程序的数据库中。Guide 希望看到两个文件,其中包含一个名为matricks的拾取对象,它有点像pandas DataFrame。(较新版本的指南将弃用矩阵以支持pandas。)
使用--handle=开关将导致创建这两个文件。最初,这些包含原始(即未聚合的)样本和根据提取它们的细胞类型聚合的样本。在这里,“细胞类型”可能用词不当,但由于历史原因,它仍然被使用。单元类型分组由--group-by=开关指定,默认为第二个 ( --group-by=1 ) 元数据级别值。
输出文件名还将包含一个可以使用--version开关设置的版本(默认值:1.0)。
结果将是两个名为:
SampleSignalProfiles.<handle>.<version>.pickled
和:
CelltypeSignalProfiles.<handle>.<version>.pickled
此外,将在以下位置找到包含要添加到指南数据库表的行的 DDL 的文件:
<handle>.<version>_DDL.sql
6.2 gse-guide(高级配置)
创建 DDL 特别棘手,因为并非所有 GSE 文件都包含相同类型的元数据,我们也不会总是希望对任何给定数据集使用相同的元数据。因此,可以使用--guide-config=开关指定配置选项,编码为 python 对象。
此文件可以包含可调用对象的自定义设置,这些对象将 GEOSeries 实例作为参数并返回一个字符串。例如,dataset_handle对象可能如下所示:
dataset_handle = lambda gseObj: gseObj.accession
还可以定义dataset_version和dataset_description对象。
示例元数据的引用方式有些相同——作为可调用的 Python 对象——但传递的参数是 GSESampleMetadata 实例。这将在一个循环中调用,该循环遍历每个样本,因此与每个样本相关的元数据可用于这些可调用对象。例如:
sample_description = lambda samp_inst: samp_inst.title
返回给定样本samp_inst的描述性文本。
这些可调用对象可以是成熟的函数,而不仅仅是匿名lambda函数。其他,脚手架或支持代码也可以包含在此配置文件中。在命名不应被视为配置变量的变量时应小心:它们的名称应始终以下划线 (_) 开头。有关详细信息,请参阅cfgparse模块的文档。
可以使用--template开关生成模板配置文件。这只是打印出默认配置,其中所有值都设置为空字符串或零。
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。