The GFFAnnotation
и GTFAnnotation
объекты представляют набор аннотаций функций для одной или нескольких ссылочных последовательностей. Эти объекты создаются из файлов GFF (General Feature Format) и GTF (Gene Transfer Format). Каждый элемент объекта представляет одну аннотацию. Свойства и методы, связанные с объектами, позволяют вам исследовать и фильтровать данные на основе ссылки последовательности, функции (такого как 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.
Создайте a GTFAnnotation
объект из GTF- форматированного файла:
GTFAnnotObj = GTFAnnotation('hum37_2_1M.gtf');
Используйте getReferenceNames
метод для возврата имен для ссылочных последовательностей для объекта аннотации:
refNames = getReferenceNames(GTFAnnotObj)
refNames = 'chr2'
Используйте getFeatureNames
метод для извлечения имен функции из объекта аннотации:
featureNames = getFeatureNames(GTFAnnotObj)
featureNames = 'CDS' 'exon' 'start_codon' 'stop_codon'
Используйте 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