Сохраните и управляйте аннотациями функции в объектах

Представляйте аннотации функции в объекте GTFAnnotation или GFFAnnotation

GFFAnnotation и объекты GTFAnnotation представляют набор аннотаций функции для одной или нескольких ссылочных последовательностей. Вы создаете эти объекты из GFF (Общий Формат Функции) и GTF (Формат Переноса генов) файлы. Каждый элемент в объекте представляет одну аннотацию. Свойства и методы, сопоставленные с объектами, позволяют вам исследовать и отфильтровать данные на основе ссылочной последовательности, функция (такая как CDS или экзон), или определенный ген или расшифровка стенограммы.

Создайте объект аннотации

Используйте функцию конструктора GFFAnnotation, чтобы создать объект GFFAnnotation или из GFF-или из отформатированного GTF файла:

GFFAnnotObj = GFFAnnotation('tair8_1.gff')
GFFAnnotObj = 

  GFFAnnotation with properties:

    FieldNames: {1x9 cell}
    NumEntries: 3331

Используйте функцию конструктора GTFAnnotation, чтобы создать объект GTFAnnotation из отформатированного GTF файла:

GTFAnnotObj = GTFAnnotation('hum37_2_1M.gtf')
GTFAnnotObj = 

  GTFAnnotation with properties:

    FieldNames: {1x11 cell}
    NumEntries: 308

Получите общую информацию из объекта аннотации

Определите имена полей и количество записей в объекте аннотации путем доступа к свойствам FieldNames и NumEntries. Например, чтобы видеть имена полей для каждого объекта аннотации, созданного в предыдущем разделе, запросите свойство FieldNames:

GFFAnnotObj.FieldNames
ans = 

  Columns 1 through 6

   'Reference'   'Start'   'Stop'   'Feature'   'Source'   'Score'

  Columns 7 through 9

   'Strand'   'Frame'   'Attributes'
GTFAnnotObj.FieldNames
ans = 

  Columns 1 through 6

   'Reference'   'Start'   'Stop'   'Feature'   'Gene'   'Transcript'

  Columns 7 through 11

   'Source'   'Score'   'Strand'   'Frame'   'Attributes'

Определите область значений ссылочных последовательностей, которые охвачены аннотациями функции при помощи метода getRange с объектом аннотации, созданным в предыдущем разделе:

range = getRange(GFFAnnotObj)
range =

        3631      498516

Доступ к данным в объекте аннотации

Создайте структуру данных об аннотации

Создание структуры данных об аннотации позволяет вам получить доступ к значениям полей. Используйте метод getData, чтобы создать структуру, содержащую подмножество данных в объекте GFFAnnotation, созданном в предыдущем разделе.

% Extract annotations for positions 1 through 10000 of the 
% reference sequence
AnnotStruct = getData(GFFAnnotObj,1,10000)
AnnotStruct = 

60x1 struct array with fields:
    Reference
    Start
    Stop
    Feature
    Source
    Score
    Strand
    Frame
    Attributes

Доступ к значениям полей в структуре

Используйте точечную индексацию, чтобы получить доступ ко всем или определенным значениям полей в структуре.

Например, извлеките положения запуска для всех аннотаций:

Starts = AnnotStruct.Start;

Извлеките положения запуска для аннотаций 12 - 17. Заметьте, что необходимо использовать квадратные скобки при индексации области значений положений:

Starts_12_17 = [AnnotStruct(12:17).Start]
Starts_12_17 =

   4706        5174        5174        5439        5439        5631

Извлеките положение запуска и функцию 12-й аннотации:

Start_12 = AnnotStruct(12).Start
Start_12 =

        4706
Feature_12 = AnnotStruct(12).Feature
Feature_12 =

CDS

Используйте аннотации функции с последовательностью считанные данные

Исследуйте результаты HTS упорядочивающие эксперименты при помощи GFFAnnotation и объектов GTFAnnotation с объектами BioMap. Например, вы можете:

  • Определите количества чтений последовательности, выровненных в области ссылочной последовательности, сопоставленной с определенными аннотациями, такой как в рабочих процессах RNA-Seq.

  • Найдите аннотации в определенной области значений пика интереса к ссылочной последовательности, такой как в рабочих процессах ЧИПА-Seq.

Определите аннотации интереса

  1. Создайте объект GTFAnnotation из GTF - отформатированный файл:

    GTFAnnotObj = GTFAnnotation('hum37_2_1M.gtf');
    
  2. Используйте метод getReferenceNames, чтобы возвратить имена для ссылочных последовательностей для объекта аннотации:

    refNames = getReferenceNames(GTFAnnotObj)
    refNames = 
    
        'chr2'
  3. Используйте метод getFeatureNames, чтобы получить имена функции из объекта аннотации:

    featureNames = getFeatureNames(GTFAnnotObj)
    featureNames = 
    
        'CDS'
        'exon'
        'start_codon'
        'stop_codon'
    
  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.

AnnotStruct = getData(GTFAnnotObj,'Reference','chr2',...
                      'Feature','exon','Gene','uc002qvv.2')
AnnotStruct = 

12x1 struct array with fields:
    Reference
    Start
    Stop
    Feature
    Gene
    Transcript
    Source
    Score
    Strand
    Frame
    Attributes

Структура возврата содержит 12 элементов, указывая, что существует 12 аннотаций, которые соответствуют вашим критериям фильтра.

Извлеките области значений положения для аннотаций интереса

После фильтрации данных, чтобы включать только аннотации, которые являются экзонами, сопоставленными с uc002qvv.2 геном на хромосоме 2, используйте поля Start и Stop, чтобы создать векторы запуска и конечных положений для областей значений, сопоставленных с этими 12 аннотациями.

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

Определите количества чтений последовательности, выровненных к аннотациям

Создайте объект BioMap из отформатированного BAM файла, содержащего считанные данные последовательности, выровненные к хромосоме 2.

BMObj3 = BioMap('ex3.bam');

Затем используйте область значений для аннотаций интереса, как введено к методу getCounts объекта BioMap. Это возвращает количества коротких чтений, выровненных к аннотациям интереса.

counts = getCounts(BMObj3,StartPos,EndPos,'independent', true)
counts =

        1399
           1
          54
         221
          97
         125
           0
           1
           0
          65
           9
          12