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