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