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 =
4706Feature_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