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.
Создайте 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