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.
Создайте объект 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];
Создайте объект 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