Управляйте последовательностью считанные данные в объектах

Обзор

Высокопроизводительные инструменты секвенирования производят большие суммы считанных данных последовательности, которые могут быть сложными, чтобы сохранить и справиться. Используя объекты содержать эти данные позволяет вам легко доступ, управляйте и отфильтруйте данные.

Bioinformatics Toolbox™ включает два объекта для работы со считанными данными последовательности.

ОбъектСодержит эту информацию Создайте из одного из них
BioRead
  • Заголовки последовательности

  • Считайте последовательности

  • Качества последовательности (базовый вызов)

  • Файл FASTQ

  • Файл СЭМА

  • Структура FASTQ (созданное использование fastqread функция

  • Структура SAM (созданное использование samread функция

  • Массивы ячеек, содержащие заголовок, последовательность и информацию о качестве (созданное использование fastqread функция

BioMap
  • Заголовки последовательности

  • Считайте последовательности

  • Качества последовательности (базовый вызов)

  • Выравнивание последовательности и информация об отображении (относительно одной ссылочной последовательности), включая отображение качества

  • Файл СЭМА

  • Файл BAM

  • Структура SAM (созданное использование samread функция

  • Структура BAM (созданное использование bamread функция

  • Массивы ячеек, содержащие заголовок, последовательность, качество и информацию об отображении/выравнивании (созданное использование samread или bamread функция

Представляйте данные о последовательности и качестве в объекте BioRead

Необходимые условия

A BioRead объект представляет набор чтений последовательности. Каждый элемент в объекте сопоставлен с последовательностью, заголовком последовательности и информацией о качестве последовательности.

Создайте a BioRead объект одним из двух способов:

  • Индексированный — данные остаются в исходном файле. Построение объекта и доступ к его содержимому являются эффективной памятью. Однако вы не можете изменить свойства объектов кроме Name свойство. Это - метод по умолчанию, если вы создаете a BioRead объект от FASTQ-или SAM-отформатированного файла.

  • В Памяти — данные считаны в память. Построение объекта и доступ к его содержимому ограничиваются суммой доступной памяти. Однако можно изменить свойства объектов. Когда вы создаете a BioRead объект от массивы структур FASTQ или массивы ячеек, данные считаны в память. Когда вы создаете a BioRead объект от FASTQ-или SAM-отформатированного файла, используйте InMemory аргумент пары "имя-значение", чтобы считать данные в память.

Создайте объект BioRead из FASTQ-или SAM-отформатированного файла

Примечание

Этот пример создает a BioRead объект из FASTQ-отформатированного файла. Используйте подобные шаги, чтобы создать a BioRead объект из SAM-отформатированного файла.

Используйте BioRead функция конструктора, чтобы создать a 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'

Построение функции конструктора a BioRead возразите и, если индексный файл уже не существует, он также создает индексный файл с тем же именем файла, но с.IDX расширением. Этот индексный файл, по умолчанию, хранится в том же месте как исходный файл.

Внимание

Ваш исходный файл и индексный файл должны всегда быть в синхронизации.

  • После построения a BioRead возразите, не изменяйте индексный файл, или можно получить недопустимые результаты при использовании существующего объекта или построения новых объектов.

  • Если вы изменяете исходный файл, удаляете индексный файл, таким образом, конструктор Object создает новый индексный файл при построении новых объектов.

Примечание

Поскольку вы создали это BioRead объект от исходного файла, вы не можете изменить свойства (за исключением Name) из BioRead объект.

Представляйте Последовательность, Качество и Данные о Выравнивании/Отображении в Объекте BioMap

Необходимые условия

A BioMap объект представляет набор чтений последовательности, которые сопоставляют против одной ссылочной последовательности. Каждый элемент в объекте сопоставлен с последовательностью чтения, заголовком последовательности, информацией о качестве последовательности и информацией о выравнивании/отображении.

При построении a BioMap объект из файла BAM, максимальный размер файла ограничивается вашей операционной системой и доступной памятью.

Создайте a BioMap объект одним из двух способов:

  • Индексированный — данные остаются в исходном файле. Построение объекта и доступ к его содержимому являются эффективной памятью. Однако вы не можете изменить свойства объектов кроме Name свойство. Это - метод по умолчанию, если вы создаете a BioMap объект от SAM-или отформатированного BAM файла.

  • В Памяти — данные считаны в память. Построение объекта и доступ к его содержимому ограничиваются суммой доступной памяти. Однако можно изменить свойства объектов. Когда вы создаете a BioMap объект от структуры, данные остаются в памяти. Когда вы создаете a BioMap объект от SAM-или отформатированного BAM файла, используйте InMemory аргумент пары "имя-значение", чтобы считать данные в память.

Создайте объект BioMap из SAM-или отформатированного BAM файла

Примечание

Этот пример создает a BioMap объект из SAM-отформатированного файла. Используйте подобные шаги, чтобы создать a BioMap объект из отформатированного BAM файла.

  1. Если вы не знаете номер и имена ссылочных последовательностей в вашем исходном файле, определите их использующий saminfo или baminfo функционируйте и ScanDictionary аргумент пары "имя-значение".

    samstruct = saminfo('ex2.sam', 'ScanDictionary', true);
    samstruct.ScannedDictionary
    ans = 
    
        'seq1'
        'seq2'

    Совет

    Предыдущий синтаксис сканирует целый файл SAM, который является трудоемким. Если вы уверены, что информация о Заголовке файла SAM правильна, не используйте ScanDictionary аргумент пары "имя-значение", и смотрит SequenceDictionary поле вместо этого.

  2. Используйте BioMap функция конструктора, чтобы создать a 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'

Функция конструктора создает a BioMap возразите и, если индексные файлы уже не существуют, это также создает один или два индексных файла:

  • При построении из SAM-отформатированного файла это создает один индексный файл, который имеет то же имя файла как исходный файл, но с.IDX расширением. Этот индексный файл, по умолчанию, хранится в том же месте как исходный файл.

  • При построении из отформатированного BAM файла это создает два индексных файла, которые имеют то же имя файла как исходный файл, но один с.BAI расширением и один с.LINEARINDEX расширением. Эти индексные файлы, по умолчанию, хранятся в том же месте как исходный файл.

Внимание

Ваш исходный файл и индексные файлы должны всегда быть в синхронизации.

  • После построения a BioMap возразите, не изменяйте индексные файлы, или можно получить недопустимые результаты при использовании существующего объекта или построения новых объектов.

  • Если вы изменяете исходный файл, удаляете индексные файлы, таким образом, конструктор Object создает новые индексные файлы при построении новых объектов.

Примечание

Поскольку вы создали это BioMap объект от исходного файла, вы не можете изменить свойства (за исключением Name и Reference) из BioMap объект.

Создайте объект BioMap из структуры BAM или SAM

Примечание

Этот пример создает a BioMap объект от использования структуры SAM samread. Используйте подобные шаги, чтобы создать a BioMap объект от использования структуры BAM bamread.

  1. Используйте samread функция, чтобы создать структуру SAM из SAM-отформатированного файла:

    SAMStruct = samread('ex2.sam');
    
  2. Создать допустимое BioMap объект из SAM-отформатированного файла, файл должен содержать только одну ссылочную последовательность. Определите номер и имена ссылочных последовательностей в вашем SAM-отформатированном файле с помощью unique функционируйте, чтобы найти уникальные имена в ReferenceName поле структуры:

    unique({SAMStruct.ReferenceName})
    ans = 
    
        'seq1'    'seq2'
    
  3. Используйте BioMap функция конструктора, чтобы создать a 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

Можно получить все или подмножество информации от a BioRead или BioMap объект.

Получите свойство из объекта BioRead или BioMap

Можно получить определенное свойство из элементов в a BioRead или BioMap объект.

Например, чтобы получить все заголовки из a BioRead объект, используйте Header свойство можно следующим образом:

allHeaders = BRObj1.Header;

Этот синтаксис возвращает массив ячеек, содержащий заголовки для всех элементов в BioRead объект.

Точно так же, чтобы получить всех запускают положения выровненных последовательностей чтения от a BioMap объект, используйте Start свойство объекта:

allStarts = BMObj1.Start;

Этот синтаксис возвращает вектор, содержащий положения запуска выровненных последовательностей чтения относительно чисел положения в ссылочной последовательности в a BioMap объект.

Получите несколько свойств из объекта BioRead или BioMap

Можно получить несколько свойств из a BioRead или BioMap объект в одной команде с помощью get метод. Например, чтобы получить и запустите информацию о положениях и заголовках a BioMap объект, используйте get метод можно следующим образом:

multiProp = get(BMObj1, {'Start', 'Header'});

Этот синтаксис возвращается, массив ячеек, содержащий всех, запускают информацию о положениях и заголовках a BioMap объект.

Примечание

Имена свойства являются чувствительными к регистру.

Для списка и описания всех свойств a BioRead возразите, смотрите BioRead класс. Для списка и описания всех свойств a BioMap возразите, смотрите BioMap класс.

Получите подмножество информации от объекта BioRead или BioMap

Используйте специализированный get методы с числовым вектором, логическим вектором или массивом ячеек заголовков, чтобы получить подмножество информации от объекта. Например, чтобы получить первые 10 элементов из a 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'

Например, чтобы получить информацию о третьем элементе в a BioMap объект, используйте getInfo метод:

Info_3 = getInfo(BMObj1, 3);

Этот синтаксис возвращает разграниченный вкладкой вектор символов, содержащий эту информацию для третьего элемента:

  • Заголовок последовательности

  • SAM отмечает для последовательности

  • Запустите положение выровненной последовательности чтения относительно ссылочной последовательности

  • Отображение качества выигрывает за последовательность

  • Подпись (отформатированный СИГАРОЙ вектор символов) для последовательности

  • Последовательность

  • Качественная музыка к положениям последовательности

Примечание

Имена методов являются чувствительными к регистру.

Для полного списка и описания методов a BioRead возразите, смотрите BioRead класс. Для полного списка и описания методов a BioMap возразите, смотрите BioMap класс.

Установите информацию в объекте BioRead или BioMap

Необходимые условия

Изменить свойства (кроме Name и Reference) из a BioRead или BioMap объект, данные должны быть в памяти, и не индексированы. Гарантировать данные находится в памяти, выполнить одно из следующих действий:

Обеспечьте пользовательские заголовки для последовательностей

Во-первых, создайте объект с данными в памяти:

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 методы позволяют вам установить свойства подмножества элементов в a BioRead или BioMap объект.

Примечание

Имена методов являются чувствительными к регистру.

Для полного списка и описания методов a BioRead возразите, смотрите BioRead класс. Для полного списка и описания методов a BioMap возразите, смотрите BioMap класс.

Определите покрытие ссылочной последовательности

При работе с a BioMap объект, можно определить количество последовательностей чтения что:

  • Выровняйтесь в определенной области ссылочной последовательности

  • Выровняйтесь к каждой позиции в определенной области ссылочной последовательности

Например, можно вычислить номер, индексы, и запустить положения последовательностей чтения, которые выравниваются в первых 25 положениях ссылочной последовательности. Для этого используйте getCountsgetIndex, и 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

Создайте выравнивания последовательности к ссылочной последовательности

Полезно создать и просмотреть выравнивание последовательностей чтения, которые выравниваются в определенную область ссылочной последовательности. Также полезно знать, которые читают, последовательности выравниваются в эту область в a BioMap объект.

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

SAM-и отформатированные BAM файлы включают состояние 11 бинарных флагов для каждой последовательности чтения. Эти флаги описывают различные аспекты секвенирования и выравнивания последовательности чтения. Для получения дополнительной информации о флагах см. Спецификацию Формата SAM. filterByFlag метод позволяет вам отфильтровать последовательности чтения в a BioMap объект при помощи этих флагов.

Отфильтруйте несопоставленные последовательности чтения

  1. Создайте a BioMap объект из SAM-отформатированного файла.

    BMObj2 = BioMap('ex1.sam');
  2. Используйте filterByFlag метод, чтобы создать логический вектор, указывающий на последовательности чтения в a BioMap объект, которые сопоставлены.

    LogicalVec_mapped = filterByFlag(BMObj2, 'unmappedQuery', false);
    
  3. Используйте этот логический вектор и getSubset метод, чтобы создать новое BioMap объект, содержащий только сопоставленные последовательности чтения.

    filteredBMObj_1 = getSubset(BMObj2, LogicalVec_mapped);

Отфильтруйте последовательности чтения, которые не сопоставлены в паре

  1. Создайте a BioMap объект из SAM-отформатированного файла.

    BMObj2 = BioMap('ex1.sam');
  2. Используйте filterByFlag метод, чтобы создать логический вектор, указывающий на последовательности чтения в a BioMap объект, которые сопоставлены в соответствующей паре, то есть, и последовательность чтения и ее помощник, сопоставлен со ссылочной последовательностью.

    LogicalVec_paired = filterByFlag(BMObj2, 'pairedInMap', true);
    
  3. Используйте этот логический вектор и getSubset метод, чтобы создать новое BioMap объект, содержащий только последовательности чтения, которые сопоставлены в соответствующей паре.

    filteredBMObj_2 = getSubset(BMObj2, LogicalVec_paired);