在对象管理序列读取数据

概观

高通量测序仪器产生大量的序列读取,可挑战来存储和管理数据。使用对象包含此数据可让您轻松访问,处理和过滤数据。

生物信息工具箱™包括与序列读取数据时两个对象。

目的 包含此信息 从其中的一个建设
BioRead
  • 序列头

  • 阅读序列

  • 序列质量(碱基判定)

  • FASTQ文件

  • SAM文件

  • 方法创建的FASTQ结构fastqread功能)

  • SAM结构(使用所创建的samread功能)

  • 包含报头,序列和质量信息单元阵列(使用所创建的fastqread功能)

BioMap
  • 序列头

  • 阅读序列

  • 序列质量(碱基判定)

  • 序列比对和映射信息(相对于单个参考序列),包括映射质量

  • SAM文件

  • BAM文件

  • SAM结构(使用所创建的samread功能)

  • BAM结构(使用所创建的bamread功能)

  • 包含报头,序列,质量和映射/对准信息单元阵列(使用所创建的samread要么bamread功能)

表示生物反应器对象中的序列和质量数据

先决条件

一个BioRead对象表示序列读取的集合。对象中的每个元素都与序列、序列头和序列质量信息相关联。

构造一个BioRead对象的两种方法之一:

  • 索引-数据保留在源文件中。构造对象并访问其内容是内存效率。但是,不能修改对象属性,而不能修改对象属性名称财产。这是默认的方法,如果您构建一个BioRead从FASTQ-或SAM格式的文​​件对象。

  • 在内存中- 数据被读入存储器中。构造对象和访问它的内容是由可用的存储器量的限制。但是,您可以修改对象属性。当你构建一个BioRead对象,然后将数据读入内存。当你构建一个BioRead对象从FASTQ或sam格式的文件中提取,使用在记忆中名称 - 值对参数来将数据读入存储器中。

从FASTQ或sam格式的文件构造一个BioRead对象

请注意

这个例子构建一个BioRead从FASTQ格式的文件对象。使用类似的步骤构建BioRead从SAM格式的文​​件中的对象。

使用BioRead构造函数来构造BioRead从FASTQ格式的文件对象,并设置名称属性:

BRObj1 = BioRead( 'SRR005164_1_50.fastq', '姓名', '为MyObject')
BRObj1 = BioRead具有属性:质量:[50X1文件索引属性]顺序:[50X1文件索引属性]部首:[50X1文件索引属性] NSeqs:50名称: '为MyObject'

构造函数构造BioRead对象,如果索引文件不存在,它也创建了相同的文件名的索引文件,但与.IDX扩展。默认情况下,该索引文件存储在与源文件相同的位置。

警告

源文件和索引文件必须始终同步。

  • 构建后BioRead对象,不要修改索引文件,否则在使用现有对象或构造新对象时可能会得到无效结果。

  • 如果修改了源文件,删除索引文件,因此对象的构造函数构建新对象时会创建一个新的索引文件。

请注意

因为你这个构造BioRead从源文件中的对象,则不能修改的属性(除名称)的BioRead目的。

表示序列,质量和对准/映射数据在一个对象BioMap

先决条件

一个BioMap对象表示序列的集合中读取针对一个参考序列图。对象中的每个元件与读序列,序列首标,序列的质量信息,和对准/映射信息相关联。

当构建BioMap从BAM文件对象,文件的最大尺寸是由你的操作系统和可用内存的限制。

构造一个BioMap对象的两种方法之一:

  • 索引-数据保留在源文件中。构造对象并访问其内容是内存效率。但是,不能修改对象属性,而不能修改对象属性名称财产。这是默认的方法,如果您构建一个BioMap从SAM-对象或BAM格式的文​​件。

  • 在内存中- 数据被读入存储器中。构造对象和访问它的内容是由可用的存储器量的限制。但是,您可以修改对象属性。当你构建一个BioMap从结构,在存储器中的数据对象的住宿。当你构建一个BioMap从一个或SAM- BAM格式的文​​件对象,使用在记忆中名称 - 值对参数来将数据读入存储器中。

从SAM或bami格式的文件构造一个BioMap对象

请注意

这个例子构建一个BioMap从SAM格式的文​​件中的对象。使用类似的步骤构建BioMap从BAM格式的文​​件中的对象。

  1. 如果你不知道你的源文件的参考序列的数量和名称,确定他们使用saminfo要么baminfo功能和ScanDictionary名称-值对的论点。

    samstruct = saminfo (ex2。山姆”、“ScanDictionary”,真正的);samstruct.ScannedDictionary
    ANS = 'SEQ1' 'SEQ2'

    提示

    前面的语法扫描整个SAM文件,这很费时。如果您确信SAM文件的头信息是正确的,则忽略ScanDictionary参数,并检查SequenceDictionary现场来代替。

  2. 使用BioMap构造函数来构造BioMap从SAM文件,并设置对象名称财产。因为本例中sam格式的文件,ex2.sam,包含多个参考序列,可以使用SelectRef名称 - 值对参数来指定一个参考序列,SEQ1:

    BMObj2 = BioMap( 'ex2.sam', 'SelectRef', 'SEQ1', '姓名', '为MyObject')
    BMObj2 = BioMap属性:SequenceDictionary:“seq1”参考:[1501 x1文件索引属性]签名:[1501 x1文件索引属性]开始:[1501 x1文件索引属性]MappingQuality: [1501 x1文件索引属性]国旗:[1501 x1文件索引属性]MatePosition: [1501 x1文件索引属性]质量:[1501 x1文件索引属性]序列:[1501 x1文件索引属性]标题:[1501 x1文件索引属性]NSeqs: 1501姓名:“MyObject”

构造函数构造一个BioMap对象,如果索引文件不存在,它也会创建一个或两个索引文件:

  • 如果从萨姆格式的文件构造,它将创建一个与源文件具有相同文件名的索引文件,但扩展名为. idx。默认情况下,该索引文件存储在与源文件相同的位置。

  • 如果从BAM格式的文​​件构建,它创建具有相同的文件名与源文件两只指数文件,但一用一.BAI延伸和一个带有.LINEARINDEX扩展。这些索引文件,在默认情况下,存储在相同的位置源文件。

警告

源文件和索引文件必须始终保持同步。

  • 构建后BioMap对象,不修改索引文件,也可以使用现有的对象或构建新的对象时,得到无效的结果。

  • 如果修改了源文件,删除索引文件,因此对象的构造函数构建新对象时会自动创建新的索引文件。

请注意

因为你这个构造BioMap从源文件中的对象,则不能修改的属性(除名称参考)的BioMap目的。

从SAM或BAM结构构造一个BioMap对象

请注意

这个例子构建一个BioMap使用来自SAM结构对象samread。使用类似的步骤构建BioMap使用来自BAM结构对象bamread

  1. 使用samread函数来创建从SAM格式文件中的SAM结构:

    SAMStruct = samread( 'ex2.sam');
  2. 为了构建一个有效的BioMap对象,该文件必须只包含一个引用序列。属性确定萨姆格式文件中引用序列的数量和名称独特的函数查找惟一名称引用名称结构领域:

    独特的({SAMStruct.ReferenceName})
    ANS = 'SEQ1' 'SEQ2'
  3. 使用BioMap构造函数来构造BioMap从SAM结构对象。因为SAM结构包含多个参考序列,可以使用SelectRef名称 - 值对参数来指定一个参考序列,SEQ1:

    BMObj1 = BioMap(SAMStruct, 'SelectRef', 'SEQ1')
    BMObj1 = BioMap与属性:SequenceDictionary:{ 'SEQ1'}参考:{1501x1细胞}签名:{1501x1细胞}开始:[1501x1 UINT32] MappingQuality:[1501x1 UINT8]标记:[1501x1 UINT16] MatePosition:[1501x1 UINT32]质量:{1501x1细胞}序列:{1501x1细胞}部首:{1501x1细胞} NSeqs:1501名称: ''

从BioRead或BioMap对象中检索信息

您可以取回全部或信息从一个子集BioRead要么BioMap目的。

从BioRead或BioMap对象检索属性

你可从一个元素特定属性BioRead要么BioMap目的。

例如,检索从所有的标题BioRead对象,请使用属性,如下所示:

allHeaders = BRObj1.Header;

属性中的所有元素的头都包含在该语法中BioRead目的。

同样,检索从对准读取序列的所有起始位置BioMap对象,请使用开始对象属性:

allStarts = BMObj1.Start;

此语法返回一个包含在所述参考序列进行比对的序列读取的相对于开始位置的位置编号的矢量BioMap目的。

检索从BioRead或BioMap对象的多个属性

您可以检索从多个属性BioRead要么BioMap对象在单个命令中使用得到方法。例如,检索a的起始位置和头信息BioMap对象,请使用得到方法如下:

multiProp = GET(BMObj1,{ '开始', '标题'});

此语法返回一个包含所有开始位置和头一个的信息的单元阵列BioMap目的。

请注意

属性名称是区分大小写的。

对于所有属性的列表和说明BioRead对象,看到BioRead类。对于所有属性的列表和说明BioMap对象,看到BioMap类。

从BioRead或BioMap对象中检索信息的子集

使用专门的得到用数值向量,逻辑向量,或标题的单元阵列的方法,以从对象检索的信息的子集。例如,为了检索来自前10种元素BioRead对象,请使用getSubset方法:

newBRObj = getSubset(BRObj1,[1:10]);

此语法返回一个新的BioRead对象包含在原来的前10种元素BioRead目的。

例如,要检索的序列与标头SRR005164.1,SRR005164.7和SRR005164.16第一12个位置,可使用getSubsequence方法:

subSeqs = getSubsequence(BRObj1,... { 'SRR005164.1', 'SRR005164.7', 'SRR005164.16'},[1:12]')
subSeqs = 'TGGCTTTAAAGC' 'CCCGAAAGCTAG' 'AATTTTGCGGCT'

例如,可以检索有关一个第三元件信息BioMap对象,请使用获取信息方法:

Info_3 = getInfo(BMObj1, 3);

此语法返回包含该信息的第三元件的制表符分隔的字符向量:

  • 序列头

  • SAM标志的序列

  • 对准的读取序列相对于参考序列的开始位置

  • 序列的映射质量分数

  • 序列的签名(雪茄格式的字符向量)

  • 序列

  • 质量分数序列位置

请注意

方法名称是区分大小写。

对于一个方法的完整列表和说明BioRead对象,看到BioRead类。对于一个方法的完整列表和说明BioMap对象,看到BioMap类。

坐落在一个BioRead或BioMap对象信息

先决条件

要修改的属性(除名称参考)BioRead要么BioMap对象时,数据必须在存储器中,并且不索引。为了确保数据在内存中,请执行下列操作之一:

提供自定义页眉的序列

首先,创建与在存储器中的数据中的对象:

BRObj1 = BioRead( 'SRR005164_1_50.fastq', 'InMemory',TRUE);

要为感兴趣的序列(在本例中为序列1到5)提供自定义头部,请执行以下操作:

BRObj1.Header(1:5)= { 'H1', 'H2', 'H3', 'H4', 'H5'};

另外,您也可以使用setHeader方法:

BRObj1 =的setHeader(BRObj1,{ 'H1', 'H2', 'H3', 'H4', 'H5'},[1:5]);

其他几个专业方法让你在设置元素的子集的性质BioRead要么BioMap目的。

请注意

方法名称是区分大小写。

对于一个方法的完整列表和说明BioRead对象,看到BioRead类。对于一个方法的完整列表和说明BioMap对象,看到BioMap类。

确定一个参考序列的覆盖率

当工作BioMap对象,您可以确定读取序列,其数量:

  • 在参考序列的特定区域内对齐

  • 在参考序列的特定区域内对齐到每个位置

例如,您可以计算在引用序列的前25个位置内对齐的读取序列的数量、索引和起始位置。为此,使用getCounts,getIndexgetStart方法:

Cov = getCounts(BMObj1, 1,25)
COV = 12
指数= getIndex(BMObj1,1,25)
索引= 1 2 3 4 5 6 7 8 9 10 11 12
startPos = getStart(BMObj1,指数)
startPos = 13 5 6 9 13 13 15 18 22 22 24

第一两种语法返回读出的序列数和指数的是参考序列的指定的区域内的对准。最后语法返回包含每个对准读取序列的起始位置的矢量,对应于所述参考序列的位置的数字。

例如,您还可以计算读取序列是对齐的数字每一个的参考序列的前10个位置。对于这个计算,使用getBaseCoverage方法:

COV = getBaseCoverage(BMObj1,1,10)
Cov = 1 1 2 2 3 4 4 4 5 5

构造序列与参考序列的对齐

它构建和查看所读取的序列的比对有用的是对准于参考序列的特定区域。这也有利于了解其内容序列比对这个区域的BioMap目的。

例如,要检索的读取序列的比对,以在所述参考序列的第一12个位置BioMap对象,请使用getAlignment方法:

[Alignment_1_12,指数] = getAlignment(BMObj2,1,12)
Alignment_1_12 = CACTAGTGGCTC CTAGTGGCTC AGTGGCTC GTGGCTC GCTC指数= 1 2 3 4 5

返回读序列的标头对准于参考序列的特定区域:

alignedHeaders = getHeader(BMObj2,指数)
alignedHeaders = 'B7_591:4:96:693:509' ' eas551: 7:52:368:113' 'EAS51_64:8:5:734:57' ' b7_591:1:28:587:906' ' eas56: 59:8: 387:758' '

使用SAM标志过滤读取序列

SAM-和BAM格式的文​​件包括11个二进制标志的每次读序列状态。这些标志描述读取序列的不同测序和比对方面。有关标志的详细信息,请参阅SAM格式规范。该filterByFlag方法使您可以过滤a中的读取序列BioMap通过使用这些标志对象。

过滤未映射阅读序列

  1. 构造一个BioMap从SAM格式的文​​件中的对象。

    BMObj2 = BioMap( 'ex1.sam');
  2. 使用filterByFlag方法创建一个逻辑向量,指示a中的读取序列BioMap被映射对象。

    LogicalVec_mapped = filterByFlag(BMObj2, 'unmappedQuery',假);
  3. 使用这个逻辑向量和getSubset方法创建一个新的BioMap仅包含映射读取序列对象。

    filteredBMObj_1 = get子集(BMObj2, LogicalVec_mapped);

过滤程序读取序列不在一对映射

  1. 构造一个BioMap从SAM格式的文​​件中的对象。

    BMObj2 = BioMap( 'ex1.sam');
  2. 使用filterByFlag方法创建一个逻辑向量,指示a中的读取序列BioMap以适当的对映射的对象,也就是说,读序列和它的伙伴都映射到引用序列。

    LogicalVec_paired = filterByFlag(BMObj2, 'pairedInMap',TRUE);
  3. 使用这个逻辑向量和getSubset方法创建一个新的BioMap对象,只包含以适当对映射的读序列。

    filteredBMObj_2 = get子集(BMObj2, LogicalVec_paired);