Инструменты упорядочивания высокой пропускной способности производят большие суммы считанных данных последовательности, которые могут быть сложными, чтобы сохранить и справиться. Используя объекты содержать эти данные позволяет вам легко доступ, управляйте и отфильтруйте данные.
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.ScannedDictionary
ans = '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);