主要内容

在对象中存储和管理特性注释

在GFFAnnotation或GTFAnnotation对象中表示特征注释

GFFAnnotationGTFAnnotation对象表示一个或多个引用序列的特性注释的集合。您从GFF(通用特征格式)和GTF(基因传输格式)文件构建这些对象。对象中的每个元素表示一个注释。与对象相关联的属性和方法允许您根据参考序列、特征(如CDS或外显子)或特定基因或转录本调查和过滤数据。

构造注释对象

使用GFFAnnotation构造函数,用于构造GFFAnnotation对象从GFF或gtf格式的文件:

GFFAnnotObj = GFFAnnotation('tair8_1.gff')
GFFAnnotObj =带有属性的GFFAnnotation: FieldNames: {1x9 cell} NumEntries: 3331

使用GTFAnnotation构造函数,用于构造GTFAnnotation对象从gtf格式的文件:

GTFAnnotObj = GTFAnnotation('hum37_2_1M.gtf')
GTFAnnotObj = GTFAnnotation with properties: FieldNames: {1x11 cell} NumEntries: 308

从注释对象中检索常规信息

属性来确定注释对象中的字段名称和条目数字段名NumEntries属性。例如,要查看上一节构造的每个注释对象的字段名,请查询字段名属性:

GFFAnnotObj。字段名
ans =第1至第6列'Reference' 'Start' 'Stop' 'Feature' 'Source' 'Score'第7至第9列'Strand' 'Frame' 'Attributes'
GTFAnnotObj。字段名
ans =第1 ~ 6列“Reference”“Start”“Stop”“Feature”“Gene”“Transcript”第7 ~ 11列“Source”“Score”“Strand”“Frame”“Attributes”

方法确定功能注释所涵盖的引用序列的范围getRange方法,使用上一节中构造的注释对象:

range = getRange(GFFAnnotObj)
范围= 3631 498516

访问注释对象中的数据

创建注释数据的结构

创建注释数据的结构使您可以访问字段值。使用getData类中数据子集的结构GFFAnnotation在前一节中构造的。

提取%引用序列中位置1到10000的注释
注释struct = 60x1结构数组与字段:参考开始停止特征源得分链帧属性

访问结构中的字段值

使用点索引访问结构中的所有或特定字段值。

例如,提取所有注释的起始位置:

start = AnnotStruct.Start;

提取注释12到17的起始位置。请注意,在索引位置范围时必须使用方括号:

Starts_12_17 = [AnnotStruct(12:17).]开始)
Starts_12_17 = 4706 5174 5174 5439 5439 5631

提取第12个标注的起始位置和特征:

Start_12 = AnnotStruct(12)。开始
Start_12 = 4706
Feature_12 = AnnotStruct(12)。功能
Feature_12 = CDS

对序列读取数据使用特征注释

对HTS测序实验结果进行了研究GFFAnnotationGTFAnnotation对象与BioMap对象。例如,您可以:

  • 确定与特定注释相关的参考序列区域对齐的序列读取计数,例如在RNA-Seq工作流程中。

  • 在参考序列(如ChIP-Seq工作流)中,在感兴趣的峰值的特定范围内查找注释。

确定感兴趣的注释

  1. 构造一个GTFAnnotation对象从GTF格式的文件:

    gtfnotobj = GTFAnnotation('hum37_2_1M.gtf');
  2. 使用getReferenceNames方法返回注释对象的引用序列的名称:

    refNames = getReferenceNames(GTFAnnotObj)
    refNames = 'chr2'
  3. 使用getFeatureNames方法从注释对象中检索特征名称:

    featureNames = getFeatureNames(GTFAnnotObj)
    featureNames = 'CDS' '外显子' '开始密码子' '停止密码子'
  4. 使用getGeneNames方法从注释对象中检索唯一基因名称的列表:

    geneNames = getGeneNames(GTFAnnotObj)
    geneNames = 'uc002qvu. '2“uc002qvv。2“uc002qvw。2“uc002qvx。2“uc002qvy。2“uc002qvz。2“uc002qwa。2“uc002qwb。2“uc002qwc。1“uc002qwd。2“uc002qwe。3“uc002qwf。2“uc002qwg。2“uc002qwh。2“uc002qwi。3“uc002qwk。2“uc002qwl。2“uc002qwm。1“uc002qwn。1“uc002qwo。1“uc002qwp。2“uc002qwq。2“uc010ewe。2“uc010ewf。1“uc010ewg。2“uc010ewh。1“uc010ewi。2 ' ' uc010yim.1 '

前面的步骤为我们提供了与可用注释相关的可用参考序列、特征和基因的列表。使用这些信息来确定感兴趣的注释。例如,您可能只对与uc002qvv相关联的外显子注释感兴趣。2号染色体上的2个基因。

过滤注释

使用getData方法过滤注释并创建一个只包含感兴趣的注释的结构,这些注释是与uc002qvv关联的外显子。2号染色体上的2个基因。

notstruct = getData(GTFAnnotObj,'Reference','chr2',…)“功能”、“外显子”、“基因”,“uc002qvv.2”)
AnnotStruct = 12x1结构数组与字段:参考开始停止特征基因转录源得分链帧属性

返回结构包含12个元素,表明有12个注释满足您的筛选标准。

提取感兴趣注释的位置范围

筛选数据后,只包含与uc002qvv相关联的外显子注释。使用Start和Stop字段创建与12个注释相关的范围的开始和结束位置的向量。

StartPos = [AnnotStruct.Start];EndPos = [AnnotStruct.Stop];

确定与注释对齐的序列读取计数

构造一个BioMap对象,该文件包含与染色体2对齐的序列读取数据。

BMObj3 = BioMap('ex3.bam');

然后使用感兴趣的注释的范围作为输入getCountsa方法BioMap对象。这将返回与感兴趣的注释对齐的短读计数。

count = getCounts(BMObj3,StartPos,EndPos,'independent', true)
计数= 1399 1 54 221 97 125 0 1 0 65 9 12