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

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

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

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

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

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

  GFFAnnotation with properties:

    FieldNames: {1x9 cell}
    NumEntries: 3331

Используйте GTFAnnotation функция конструктора, чтобы создать a 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 метод, чтобы создать структуру, содержащую подмножество данных в a 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. Создайте a 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];

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

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

BMObj3 = BioMap('ex3.bam');

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

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

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