许多生物实验产生,由于其体积庞大的数据文件难以访问,读取文件到MATLAB时可能会造成内存问题®工作区。您可以构建一个BioIndexedFile
对象来访问包含非均匀大小的项,如序列,注释和到数据集的交叉引用一个大的文本文件的内容。该BioIndexedFile
对象允许您快速,高效地访问这些数据没有源文件加载到内存中。
您可以使用BioIndexedFile
对象访问单个条目或条目的子集时,源文件太大,无法装入到内存中。您可以访问使用索引或键条目。你可以阅读和分析使用提供口译或自定义解释功能的一个或多个条目。
使用BioIndexedFile
对象与你的大源文件结合:
访问进行验证或进一步分析条目的子集。
解析条目使用自定义解释功能。
您可以使用BioIndexedFile
对象访问大的文本文件。
源文件可以拥有这些应用程序特定的格式:
FASTA
FASTQ
SAM
源文件也可以拥有这些通用格式:
表- 制表符分隔的多个列的表。键可以在任何列。具有相同的键行被视为单独的条目。
多行表- 制表符分隔的多个列的表。键可以在任何列。具有相同的键相邻行被认为是一个条目。使用相同的密钥不连续的行被视为单独的条目。
平面- 与级联条目平面文件分离由字符向量,通常//
。内的条目,关键是从进入的其余由空格隔开。
之前构建BioIndexedFile
对象,找到您的硬盘驱动器或本地网络上的源文件。
当你构建一个BioIndexedFile
从首次你的源文件对象,你还可以创建一个辅助索引文件,默认保存到同一位置作为源文件。但是,如果你的源文件是只读的位置,可以指定不同的位置来保存索引文件。
如果你构建一个BioIndexedFile
从之后的几次源文件的对象,它采用现有的索引文件,从而节省时间的优势。但是,索引文件必须在相同的位置或通过随后的结构的语法指定的位置。
如果访问您的源文件时内存不足是不是一个问题,你可能想尝试适当的读功能,如genbankread
,从基因库中导入数据®文件。。
此外,一些读取功能,诸如fastaread
,fastqread
,samread
和sffread
包括Blockread
财产,它可以让你从文件中读取条目的一个子集,从而节省内存。
为了构建BioIndexedFile
从多行的表文件中的对象:
创建一个包含源文件的完整绝对路径的变量。为了您的源文件,使用yeastgenes.sgd
文件,该文件包含在生物信息工具箱™软件。
的资源文件=其中( 'yeastgenes.sgd');
使用BioIndexedFile
构造函数构造一个BioIndexedFile
从对象yeastgenes.sgd
源文件,它是一个多行表文件。保存在当前文件夹的索引文件。表明该源文件密钥是在柱3。此外,指示该源文件中的标题行与开头!
,所以构造函数忽略它们。
gene2goObj = BioIndexedFile( 'mrtab',的资源文件, ' '...... 'KeyColumn',3, 'HeaderPrefix','!')
该BioIndexedFile
构造函数构造gene2goObj
, 一个BioIndexedFile
对象,并且还产生具有相同名称作为源文件的索引文件,但有一个延伸部IDX。因为我们指定这个位置它存储在当前文件夹这个索引文件。然而,索引文件的默认位置是相同的位置源文件。
不要修改索引文件。如果你修改它,你可以得到无效的结果。此外,构造函数不能从相关联的源文件中使用的改性索引文件,以构建将来对象。
为了确定由索引条目的数量BioIndexedFile
对象,请使用NumEntries
财产BioIndexedFile
目的。例如,对于gene2goObj
目的:
gene2goObj.NumEntries
ANS = 6476
对于所有属性的列表和说明BioIndexedFile
对象时,看到BioIndexedFile类
。
检索使用从您的源文件中的条目:
条目的索引
该项键
使用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的关键所有条目。
该BioIndexedFile
对象包括读
方法,你可以用它来读取和源文件解析条目的子集。该读
方法解析使用由指定的解释器功能的条目翻译员
财产BioIndexedFile
目的。
使用前读
方法,确保翻译员
财产BioIndexedFile
目的适当地设定。
如果从构建的BioIndexedFile对象... | 口译属性... |
---|---|
以一个应用程序特定格式的源文件(FASTA,FASTQ,或SAM) | 默认情况下是一个句柄功能,适用于该文件类型,通常不需要你去改变它。 |
与表,多行的表,或平格式的源文件 | 默认情况下是[] 的,这意味着所述解释器是一个匿名函数,其中输出等于输入。可以改变这对手柄以接受一个或更多个级联的条目的特征向量,并返回一个结构或含有该解释的数据结构的数组的函数。 |
有两种方法来设置翻译员
财产BioIndexedFile
目的:
当构建BioIndexedFile
对象,请使用翻译员
属性名称/属性值对
构建后BioIndexedFile
对象,设置翻译员
属性
有关设置的更多信息翻译员
一个物业BioIndexedFile
对象时,看到BioIndexedFile类
。
该读
方法读取并分析您指定使用任何条目索引或键条目的子集。
要快速找到与特定基因相关联的所有基因本体论(GO)术语,因为输入键是基因名称:
设置翻译员
财产gene2goObj
BioIndexedFile
反对的句柄读取条目并返回仅含有GO术语塔的功能。在这种情况下,解释程序是一个句柄到接受字符向量,并且提取那些以字符开始的匿名函数走
。
gene2goObj.Interpreter = @(x)的正则表达式(X, 'GO:\ d +', '匹配')
只读有YAT2的关键条目,并返回他们的GO术语。
GO_YAT2_entries =读(gene2goObj, 'YAT2')
GO_YAT2_entries = 'GO:0004092' 'GO:0005737' 'GO:0006066' 'GO:0006066' 'GO:0009437'