主要内容

使用下一代测序数据

概述

许多生物实验产生巨大的数据文件,由于其尺寸而难以访问,这可能会在将文件读入Matlab时导致内存问题®工作区。你可以构造一个生物indexedfile.对象来访问包含大小不一条目的大型文本文件的内容,如序列、注释和对数据集的交叉引用。这生物indexedfile.对象允许您快速有效地访问该数据,而无需将源文件加载到内存中。

你可以使用生物indexedfile.对象在源文件太大而无法放入内存时访问单个项或项的子集。您可以使用索引或键来访问条目。您可以使用提供的解释器或自定义解释器函数读取和解析一个或多个条目。

使用生物indexedfile.对象与您的大源文件结合使用:

  • 访问条目的子集以进行验证或进一步分析。

  • 使用自定义解释器函数解析条目。

您可以访问哪些文件?

你可以使用生物indexedfile.对象访问大文本文件。

你的源文件可以有以下特定于应用程序的格式:

  • Fasta.

  • FASTQ.

  • 山姆

你的源文件也可以有这些通用格式:

  • 表格-用tab分隔的多列表。键可以在任何列中。具有相同密钥的行被视为单独的条目。

  • 多行表-用tab分隔的多列表。键可以在任何列中。具有相同键的连续行被视为单个条目。具有相同键的不连续行被认为是单独的条目。

  • -通常由字符向量分隔的连接条目的平面文件//.在条目中,键与条目的其余部分用空格分隔。

在你开始之前

在建造A之前生物indexedfile.对象,在硬盘驱动器或本地网络上找到源文件。

当你建造一个生物indexedfile.从源文件中的对象首次,您还创建了一个辅助索引文件,默认情况下保存到与源文件相同的位置。但是,如果您的源文件位于只读位置,则可以指定要保存索引文件的其他位置。

提示

如果你构建一个生物indexedfile.对象从源文件上的后续场合,它利用了现有的索引文件,保存时间。但是,索引文件必须位于同一位置或后续构造语法指定的位置。

提示

如果在访问源文件时内存不足不是问题,那么可以尝试使用适当的读函数,例如GenBankread.,用于从GenBank导入数据®文件。。

另外,诸如Fastaread.fastqreadSamread.,sffread包括A.覆盖属性,它允许您从文件中读取一个条目的子集,从而节省内存。

创建BioIndexedFile对象以访问您的源文件

构建一个生物indexedfile.来自多行表文件的对象:

  1. 创建包含源文件的完整绝对路径的变量。对于您的源文件,请使用yeastgenes.sgd文件,该文件包含在生物信息学工具箱™软件中。

    源文件=(“yeastgenes.sgd”);
  2. 使用生物indexedfile.构造函数构造一个生物indexedfile.对象来自yeastgenes.sgd源文件是一个多行表文件。将索引文件保存在当前文件夹中。指示源文件键位于第3列中。此外,还指示源文件中的标题线是前排的!!,所以构造函数忽略它们。

    gene2goObj = BioIndexedFile( 'mrtab',的资源文件, ' '...... 'KeyColumn',3, 'HeaderPrefix','!')

    生物indexedfile.构造函数构造gene2goobj.,一个生物indexedfile.对象,并创建与源文件同名但具有IDX扩展名的索引文件。它将这个索引文件存储在当前文件夹中,因为我们指定了这个位置。但是,索引文件的默认位置与源文件相同。

    警告

    不要修改索引文件。如果您修改它,您可能会得到无效的结果。另外,构造函数不能使用修改过的索引文件从关联的源文件构造将来的对象。

确定条目索引的数量通过一个BioIndexedFile对象

确定a索引的条目数生物indexedfile.对象,使用Numentries.财产的生物indexedfile.目的。例如,对于gene2goobj.对象:

gene2goobj.numentries.
ans = 6476

笔记

有关对象的所有属性的列表和描述,请参见生物indexedfile.

从源文件中检索条目

使用以下任一方法从源文件中检索条目:

  • 进入的指数

  • 输入关键

使用索引检索条目

使用getEntryByIndex从源文件中检索与指定索引对应的源文件子集的方法。例如,从中检索前12个条目yeastgenes.sgd源文件:

subset_entries = getEntryByIndex(Gene2Goobj,[1:12]);

使用键检索条目

使用GetEntrybyKey.方法检索源文件中与指定键关联的条目子集。例如,从中检索键为AAC1和AAD10的所有条目yeastgenes.sgd源文件:

subset_entries = getEntryByKey(gene2goObj, {'AAC1' 'AAD10'});

输出subset_entries是由连接项组成的字符向量。因为钥匙在yeastgenes.sgd如果源文件不是唯一的,则此方法将返回所有键值为AAC1或AAD10的条目。

从源文件中阅读条目

生物indexedfile.对象包含了一个方法,您可以使用它来读取和解析源文件的条目子集。这方法使用由指定的解释器函数解析条目翻译财产的生物indexedfile.目的。

设置解释器属性

在使用之前方法,确保翻译财产的生物indexedfile.对象的值。

如果您从...中构建了BioIndexedFile对象 翻译属性......
具有特定于应用程序格式的源文件(FASTA,FASTQ或SAM) 默认情况下是适合于该文件类型的函数句柄,通常不需要您更改它。
具有表,多行表或平面格式的源文件 默认情况下是[],这意味着解释器是一种匿名函数,其中输出等同于输入。您可以将其更改为接受一个或多个连接条目的字符向量的函数的句柄,并返回包含解释数据的结构或结构阵列。

有两种方法来设置翻译财产的生物indexedfile.对象:

  • 在建造时生物indexedfile.对象,使用翻译属性名称/属性值对

  • 在构建生物indexedfile.对象,设置翻译财产

笔记

有关设置的更多信息翻译对象的属性,参见生物indexedfile.

阅读一个条目的子集

方法读取并解析使用条目索引或键指定的条目子集。

例子

为了快速查找与特定基因相关的所有基因本体(GO)术语,因为进入键是基因名称:

  1. 设定翻译财产的gene2goobj.生物indexedfile.对象转换为函数的句柄,该函数读取条目并仅返回包含GO项的列。在本例中,解释器是一个匿名函数的句柄,该函数接受字符向量并提取以字符开头的字符向量

    gene2goObj。翻译= @(x) regexp(x,'GO:\d+','match')
  2. 只读具有YAT2键的条目,并返回其GO条款。

    GO_YAT2_entries = read(gene2goObj, 'YAT2')
    GO_YAT2_entries = 'GO:0004092' 'GO:0005737' 'GO:0006066' 'GO:0006066' 'GO:0009437'