exponenta event banner

Хранение аннотаций элементов и управление ими в объектах

Представление аннотаций элементов в объекте GFFAnnotation или GTFAnotation

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.

  • Найдите аннотации в определенном диапазоне пика интереса в ссылочной последовательности, например в рабочих процессах ChIP-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