Инструменты упорядочивания высокой пропускной способности производят большие суммы считанных данных последовательности, которые могут быть сложными, чтобы сохранить и справиться. Используя объекты содержать эти данные позволяет вам легко доступ, управляйте и отфильтруйте данные.
Bioinformatics Toolbox™ включает два объекта для работы со считанными данными последовательности.
| Объект | Содержит эту информацию | Создайте из одного из них |
|---|---|---|
BioRead
|
| |
BioMap
|
|
Объект BioRead представляет набор чтений последовательности. Каждый элемент в объекте сопоставлен с последовательностью, заголовком последовательности и информацией о качестве последовательности.
Создайте объект BioRead одним из двух способов:
Индексированный — данные остаются в исходном файле. Построение объекта и доступ к его содержимому являются эффективной памятью. Однако вы не можете изменить свойства объектов кроме свойства Name. Это - метод по умолчанию, если вы создаете объект BioRead из FASTQ-или SAM-отформатированного файла.
В Памяти — данные считаны в память. Построение объекта и доступ к его содержимому ограничиваются суммой доступной памяти. Однако можно изменить свойства объектов. Когда вы создаете объект BioRead из массивы структур FASTQ или массивы ячеек, данные считаны в память. Когда вы создадите объект BioRead из FASTQ-или SAM-отформатированного файла, используйте аргумент пары "имя-значение" InMemory, чтобы считать данные в память.
Этот пример создает объект BioRead из FASTQ-отформатированного файла. Используйте подобные шаги, чтобы создать объект BioRead из SAM-отформатированного файла.
Используйте функцию конструктора BioRead, чтобы создать объект BioRead из FASTQ-отформатированного файла и установить свойство Name:
BRObj1 = BioRead('SRR005164_1_50.fastq', 'Name', 'MyObject')BRObj1 =
BioRead with properties:
Quality: [50x1 File indexed property]
Sequence: [50x1 File indexed property]
Header: [50x1 File indexed property]
NSeqs: 50
Name: 'MyObject'Построение функции конструктора объект BioRead и, если индексный файл уже не существует, это также, создает индексный файл с тем же именем файла, но с.IDX расширением. Этот индексный файл, по умолчанию, хранится в том же месте как исходный файл.
Ваш исходный файл и индексный файл должны всегда быть в синхронизации.
После построения объекта BioRead не изменяйте индексный файл, или можно получить недопустимые результаты при использовании существующего объекта или построения новых объектов.
Если вы изменяете исходный файл, удаляете индексный файл, таким образом, конструктор Object создает новый индексный файл при построении новых объектов.
Поскольку вы создали этот объект BioRead из исходного файла, вы не можете изменить свойства (за исключением Name) объекта BioRead.
Объект BioMap представляет набор чтений последовательности, которые сопоставляют против одной ссылочной последовательности. Каждый элемент в объекте сопоставлен с последовательностью чтения, заголовком последовательности, информацией о качестве последовательности и информацией о выравнивании/отображении.
При построении объекта BioMap из файла BAM максимальный размер файла ограничивается операционной системой и доступной памятью.
Создайте объект BioMap одним из двух способов:
Индексированный — данные остаются в исходном файле. Построение объекта и доступ к его содержимому являются эффективной памятью. Однако вы не можете изменить свойства объектов кроме свойства Name. Это - метод по умолчанию, если вы создаете объект BioMap из SAM-или отформатированного BAM файла.
В Памяти — данные считаны в память. Построение объекта и доступ к его содержимому ограничиваются суммой доступной памяти. Однако можно изменить свойства объектов. Когда вы создаете объект BioMap из структуры, данные остаются в памяти. Когда вы создадите объект BioMap из SAM-или отформатированного BAM файла, используйте аргумент пары "имя-значение" InMemory, чтобы считать данные в память.
Этот пример создает объект BioMap из SAM-отформатированного файла. Используйте подобные шаги, чтобы создать объект BioMap из отформатированного BAM файла.
Если вы не знаете номер и имена ссылочных последовательностей в вашем исходном файле, определите их использующий saminfo или функцию baminfo и аргумент пары "имя-значение" ScanDictionary.
samstruct = saminfo('ex2.sam', 'ScanDictionary', true);
samstruct.ScannedDictionaryans =
'seq1'
'seq2'Предыдущий синтаксис сканирует целый файл SAM, который является трудоемким. Если вы уверены, что информация о Заголовке файла SAM правильна, не используйте аргумент пары "имя-значение" ScanDictionary и осмотрите поле SequenceDictionary вместо этого.
Используйте функцию конструктора BioMap, чтобы создать объект BioMap из файла SAM и установить свойство Name. Поскольку SAM-отформатированный файл в этом примере, ex2.sam, содержит несколько ссылочных последовательностей, используйте аргумент пары "имя-значение" SelectRef, чтобы задать одну ссылочную последовательность, seq1:
BMObj2 = BioMap('ex2.sam', 'SelectRef', 'seq1', 'Name', 'MyObject')BMObj2 =
BioMap with properties:
SequenceDictionary: 'seq1'
Reference: [1501x1 File indexed property]
Signature: [1501x1 File indexed property]
Start: [1501x1 File indexed property]
MappingQuality: [1501x1 File indexed property]
Flag: [1501x1 File indexed property]
MatePosition: [1501x1 File indexed property]
Quality: [1501x1 File indexed property]
Sequence: [1501x1 File indexed property]
Header: [1501x1 File indexed property]
NSeqs: 1501
Name: 'MyObject'Функция конструктора создает объект BioMap и, если индексные файлы уже не существуют, она также создает один или два индексных файла:
При построении из SAM-отформатированного файла это создает один индексный файл, который имеет то же имя файла как исходный файл, но с.IDX расширением. Этот индексный файл, по умолчанию, хранится в том же месте как исходный файл.
При построении из отформатированного BAM файла это создает два индексных файла, которые имеют то же имя файла как исходный файл, но один с.BAI расширением и один с.LINEARINDEX расширением. Эти индексные файлы, по умолчанию, хранятся в том же месте как исходный файл.
Ваш исходный файл и индексные файлы должны всегда быть в синхронизации.
После построения объекта BioMap не изменяйте индексные файлы, или можно получить недопустимые результаты при использовании существующего объекта или построения новых объектов.
Если вы изменяете исходный файл, удаляете индексные файлы, таким образом, конструктор Object создает новые индексные файлы при построении новых объектов.
Поскольку вы создали этот объект BioMap из исходного файла, вы не можете изменить свойства (за исключением Name и Reference) объекта BioMap.
Этот пример создает объект BioMap из структуры SAM с помощью samread. Используйте подобные шаги, чтобы создать объект BioMap из структуры BAM с помощью bamread.
Используйте функцию samread, чтобы создать структуру SAM из SAM-отформатированного файла:
SAMStruct = samread('ex2.sam');
Чтобы создать допустимый объект BioMap из SAM-отформатированного файла, файл должен содержать только одну ссылочную последовательность. Определите номер и имена ссылочных последовательностей в вашем SAM-отформатированном файле с помощью функции unique, чтобы найти уникальные имена в поле ReferenceName структуры:
unique({SAMStruct.ReferenceName})ans =
'seq1' 'seq2'
Используйте функцию конструктора BioMap, чтобы создать объект BioMap из структуры SAM. Поскольку структура SAM содержит несколько ссылочных последовательностей, используйте аргумент пары "имя-значение" SelectRef, чтобы задать одну ссылочную последовательность, seq1:
BMObj1 = BioMap(SAMStruct, 'SelectRef', 'seq1')
BMObj1 =
BioMap with properties:
SequenceDictionary: {'seq1'}
Reference: {1501x1 cell}
Signature: {1501x1 cell}
Start: [1501x1 uint32]
MappingQuality: [1501x1 uint8]
Flag: [1501x1 uint16]
MatePosition: [1501x1 uint32]
Quality: {1501x1 cell}
Sequence: {1501x1 cell}
Header: {1501x1 cell}
NSeqs: 1501
Name: ''Можно получить все или подмножество информации от объекта BioRead или BioMap.
Можно получить определенное свойство из элементов в объекте BioRead или BioMap.
Например, чтобы получить все заголовки из объекта BioRead, используйте свойство Header можно следующим образом:
allHeaders = BRObj1.Header;
Этот синтаксис возвращает массив ячеек, содержащий заголовки для всех элементов в объекте BioRead.
Точно так же, чтобы получить всех запускают положения выровненных последовательностей чтения от объекта BioMap, используют свойство Start объекта:
allStarts = BMObj1.Start;
Этот синтаксис возвращает вектор, содержащий положения запуска выровненных последовательностей чтения относительно чисел положения в ссылочной последовательности в объекте BioMap.
Можно получить несколько свойств из объекта BioRead или BioMap в одной команде с помощью метода get. Например, чтобы получить и запустите информацию о положениях и заголовках объекта BioMap, используйте метод get можно следующим образом:
multiProp = get(BMObj1, {'Start', 'Header'});Этот синтаксис возвращается, массив ячеек, содержащий всех, запускают информацию о положениях и заголовках объекта BioMap.
Используйте специализировал методы get с числовым вектором, логическим вектором или массивом ячеек заголовков, чтобы получить подмножество информации от объекта. Например, чтобы получить первые 10 элементов из объекта BioRead, используйте метод getSubset:
newBRObj = getSubset(BRObj1, [1:10]);
Этот синтаксис возвращает новый объект BioRead, содержащий первые 10 элементов в исходном объекте BioRead.
Например, чтобы получить первые 12 положений последовательностей с заголовками SRR005164.1, SRR005164.7 и SRR005164.16, используют метод getSubsequence:
subSeqs = getSubsequence(BRObj1, ...
{'SRR005164.1', 'SRR005164.7', 'SRR005164.16'}, [1:12]')subSeqs =
'TGGCTTTAAAGC'
'CCCGAAAGCTAG'
'AATTTTGCGGCT'Например, чтобы получить информацию о третьем элементе в объекте BioMap, используйте метод getInfo:
Info_3 = getInfo(BMObj1, 3);
Этот синтаксис возвращает разграниченный вкладкой вектор символов, содержащий эту информацию для третьего элемента:
Заголовок последовательности
SAM отмечает для последовательности
Запустите положение выровненной последовательности чтения относительно ссылочной последовательности
Отображение качества выигрывает за последовательность
Подпись (отформатированный СИГАРОЙ вектор символов) для последовательности
Последовательность
Качественная музыка к положениям последовательности
Чтобы изменить свойства (кроме Name и Reference) объекта BioRead или BioMap, данные должны быть в памяти, и не индексированы. Гарантировать данные находится в памяти, выполнить одно из следующих действий:
Создайте объект из структуры, как описано в Построении Объект BioMap от Структуры BAM или SAM.
Создайте объект из исходного файла с помощью аргумента пары "имя-значение" InMemory.
Во-первых, создайте объект с данными в памяти:
BRObj1 = BioRead('SRR005164_1_50.fastq','InMemory',true);Чтобы обеспечить пользовательские заголовки для последовательностей интереса (в этом случае последовательности 1 - 5), сделайте следующее:
BRObj1.Header(1:5) = {'H1', 'H2', 'H3', 'H4', 'H5'};Также можно использовать метод setHeader:
BRObj1 = setHeader(BRObj1, {'H1', 'H2', 'H3', 'H4', 'H5'}, [1:5]);Несколько других специализированных методов set позволяют вам установить свойства подмножества элементов в объекте BioRead или BioMap.
При работе с объектом BioMap можно определить количество последовательностей чтения что:
Выровняйтесь в определенной области ссылочной последовательности
Выровняйтесь к каждой позиции в определенной области ссылочной последовательности
Например, можно вычислить номер, индексы, и запустить положения последовательностей чтения, которые выравниваются в первых 25 положениях ссылочной последовательности. Для этого используйте getCounts, getIndex и методы getStart:
Cov = getCounts(BMObj1, 1, 25)
Cov =
12
Indices = getIndex(BMObj1, 1, 25)
Indices =
1
2
3
4
5
6
7
8
9
10
11
12
startPos = getStart(BMObj1, Indices)
startPos =
1
3
5
6
9
13
13
15
18
22
22
24Первые два синтаксиса возвращают номер и индексы последовательностей чтения, которые выравниваются в заданной области ссылочной последовательности. Последний синтаксис возвращает вектор, содержащий положение запуска каждой выровненной последовательности чтения, соответствуя количествам положения ссылочной последовательности.
Например, можно также вычислить количество последовательностей чтения, которые выравниваются к каждой из первых 10 позиций ссылочной последовательности. Для этого вычисления используйте метод getBaseCoverage:
Cov = getBaseCoverage(BMObj1, 1, 10)
Cov =
1 1 2 2 3 4 4 4 5 5Полезно создать и просмотреть выравнивание последовательностей чтения, которые выравниваются в определенную область ссылочной последовательности. Также полезно знать, которые читают, последовательности выравниваются в эту область в объекте BioMap.
Например, чтобы получить выравнивание последовательностей чтения к первым 12 позициям ссылочной последовательности в объекте BioMap, используйте метод getAlignment:
[Alignment_1_12, Indices] = getAlignment(BMObj2, 1, 12)
Alignment_1_12 =
CACTAGTGGCTC
CTAGTGGCTC
AGTGGCTC
GTGGCTC
GCTC
Indices =
1
2
3
4
5
Возвратите заголовки последовательностей чтения, которые выравниваются в определенную область ссылочной последовательности:
alignedHeaders = getHeader(BMObj2, Indices)
alignedHeaders =
'B7_591:4:96:693:509'
'EAS54_65:7:152:368:113'
'EAS51_64:8:5:734:57'
'B7_591:1:289:587:906'
'EAS56_59:8:38:671:758'SAM-и отформатированные BAM файлы включают состояние 11 бинарных флагов для каждой последовательности чтения. Эти флаги описывают различные аспекты упорядочивания и выравнивания последовательности чтения. Для получения дополнительной информации о флагах смотрите Спецификацию Формата SAM. Метод filterByFlag позволяет вам отфильтровать последовательности чтения в объекте BioMap при помощи этих флагов.
Создайте объект BioMap из SAM-отформатированного файла.
BMObj2 = BioMap('ex1.sam');Используйте метод filterByFlag, чтобы создать логический вектор, указывающий на последовательности чтения в объекте BioMap, которые сопоставлены.
LogicalVec_mapped = filterByFlag(BMObj2, 'unmappedQuery', false);
Используйте этот логический вектор и метод getSubset, чтобы создать новый объект BioMap, содержащий только сопоставленные последовательности чтения.
filteredBMObj_1 = getSubset(BMObj2, LogicalVec_mapped);
Создайте объект BioMap из SAM-отформатированного файла.
BMObj2 = BioMap('ex1.sam');Используйте метод filterByFlag, чтобы создать логический вектор, указывающий на последовательности чтения в объекте BioMap, которые сопоставлены в соответствующей паре, то есть, и последовательность чтения и ее помощник сопоставлены со ссылочной последовательностью.
LogicalVec_paired = filterByFlag(BMObj2, 'pairedInMap', true);
Используйте этот логический вектор и метод getSubset, чтобы создать новый объект BioMap, содержащий только последовательности чтения, которые сопоставлены в соответствующей паре.
filteredBMObj_2 = getSubset(BMObj2, LogicalVec_paired);