Работа с данными о секвенировании следующего поколения

Обзор

Много биологических экспериментов производят огромные файлы данных, которые затрудняют, чтобы получить доступ из-за их размера, который может вызвать проблемы памяти при чтении файла в MATLAB® Рабочая область. Можно создать BioIndexedFile возразите, чтобы получить доступ к содержимому файла крупного текста, содержащего неоднородные записи размера, такие как последовательности, аннотации и перекрестные ссылки на наборы данных. BioIndexedFile объект позволяет вам быстро, и эффективно получите доступ к этим данным, не загружая исходный файл в память.

Можно использовать BioIndexedFile возразите, чтобы получить доступ к отдельным записям или подмножеству записей, когда исходный файл будет слишком большим, чтобы поместиться в память. Можно получить доступ к записям с помощью индексов или ключей. Можно считать и проанализировать одну или несколько записей с помощью обеспеченный интерпретаторы или пользовательскую функцию интерпретатора.

Используйте BioIndexedFile возразите в сочетании со своим большим исходным файлом против:

  • Доступ к подмножеству записей для валидации или последующего анализа.

  • Проанализируйте записи с помощью пользовательской функции интерпретатора.

Какие файлы могут вы доступ?

Можно использовать BioIndexedFile возразите, чтобы получить доступ к файлам крупного текста.

Ваш исходный файл может иметь эти специализированные форматы:

  • FASTA

  • FASTQ

  • СЭМ

Ваш исходный файл может также иметь эти общие форматы:

  • Таблица Разграниченная вкладкой таблица с несколькими столбцами. Ключи могут быть в любом столбце. Строки с тем же ключом рассматриваются отдельными записями.

  • Multi-row Table — Разграниченная вкладкой таблица с несколькими столбцами. Ключи могут быть в любом столбце. Непрерывные строки с тем же ключом рассматриваются однократным въездом. Строки, состоящие из нескольких несмежных участков, с тем же ключом рассматриваются отдельными записями.

  • Flat — Плоский файл с конкатенированными записями, разделенными вектором символов, обычно //. В рамках записи ключ разделяется от остальной части записи пробелом.

Прежде чем вы начнете

Прежде, чем создать a BioIndexedFile возразите, найдите свой исходный файл на вашем жестком диске или локальной сети.

Когда вы создаете a BioIndexedFile возразите от своего исходного файла впервые, вы также создаете вспомогательный индексный файл, который по умолчанию сохранен в то же местоположение как ваш исходный файл. Однако, если ваш исходный файл находится в месте только для чтения, можно задать другое место, чтобы сохранить индексный файл.

Совет

Если вы создаете a BioIndexedFile возразите от своего исходного файла в последующих случаях, он использует в своих интересах существующий индексный файл, который экономит время. Однако индексный файл должен быть в том же месте или местоположении, заданном последующим синтаксисом конструкции.

Совет

Если недостаточно память не является проблемой при доступе к исходному файлу, можно хотеть попробовать соответствующую функцию чтения, такой как genbankread, для того, чтобы импортировать данные от GenBank® файлы..

Кроме того, несколько функций чтения такой как fastaread, fastqread, samread, и sffread включайте Blockread свойство, которое позволяет вам считать подмножество записей из файла, таким образом сохраняя память.

Создайте объект BioIndexedFile к доступу к вашему исходному файлу

Создать a BioIndexedFile объект из многострочного табличного файла:

  1. Создайте переменную, содержащую полный абсолютный путь вашего исходного файла. Для вашего исходного файла используйте yeastgenes.sgd файл, который включен с программным обеспечением Bioinformatics Toolbox™.

    sourcefile = which('yeastgenes.sgd');
  2. Используйте BioIndexedFile функция конструктора, чтобы создать a BioIndexedFile объект от yeastgenes.sgd исходный файл, который является многострочным табличным файлом. Сохраните индексный файл в Текущей папке. Укажите, что ключи исходного файла находятся в столбце 3. Кроме того, укажите, что линии заголовка в исходном файле снабжены предисловием с !, таким образом, конструктор игнорирует их.

    gene2goObj = BioIndexedFile('mrtab', sourcefile, '.', ...
                                'KeyColumn', 3, 'HeaderPrefix','!')

    BioIndexedFile функция конструктора создает gene2goObjA BioIndexedFile объект, и также создает индексный файл с тем же именем как исходный файл, но с расширением IDX. Это хранит этот индексный файл в Текущей папке, потому что мы задали это местоположение. Однако местоположение по умолчанию для индексного файла является тем же местоположением как исходный файл.

    Внимание

    Не изменяйте индексный файл. Если вы изменяете его, можно получить недопустимые результаты. Кроме того, функция конструктора не может использовать модифицированный индексный файл, чтобы создать будущие объекты из связанного исходного файла.

Определите количество записей, индексируемых объектом BioIndexedFile

Определить количество записей, индексированных a BioIndexedFile объект, используйте NumEntries свойство BioIndexedFile объект. Например, для gene2goObj объект:

gene2goObj.NumEntries
ans =

        6476

Примечание

Для списка и описания всех свойств объекта, смотрите BioIndexedFile.

Получите записи из своего исходного файла

Получите записи из своего исходного файла с помощью также:

  • Индекс записи

  • Ключ записи

Получите записи Используя индексы

Используйте getEntryByIndex метод, чтобы получить подмножество записей от вашего исходного файла, которые соответствуют заданным индексам. Например, получите первые 12 записей из yeastgenes.sgd исходный файл:

subset_entries = getEntryByIndex(gene2goObj, [1:12]);

Получите записи Используя ключи

Используйте getEntryByKey метод, чтобы получить подмножество записей от вашего исходного файла, которые сопоставлены с заданными ключами. Например, получите все записи с ключами AAC1 и AAD10 от yeastgenes.sgd исходный файл:

subset_entries = getEntryByKey(gene2goObj, {'AAC1' 'AAD10'});

Выход subset_entries вектор символов конкатенированных записей. Поскольку ключи в yeastgenes.sgd исходный файл не уникален, этот метод возвращает все записи, которые имеют ключ AAC1 или AAD10.

Считайте записи из своего исходного файла

BioIndexedFile объект включает a read метод, который можно использовать в чтение и проанализировать подмножество записей от исходного файла. read метод анализирует записи с помощью функции интерпретатора, заданной Interpreter свойство BioIndexedFile объект.

Установите свойство интерпретатора

Перед использованием read метод, убедитесь Interpreter свойство BioIndexedFile объект установлен соответственно.

Если вы создали объект BioIndexedFile из...Свойство Interpreter...
Исходный файл со специализированным форматом (FASTA, FASTQ или SAM)По умолчанию указатель на функцию, подходящую для того типа файла, и обычно не требует, чтобы вы изменили его.
Исходный файл с таблицей, многострочной таблицей или плоским форматомПо умолчанию [], что означает, что интерпретатор является анонимной функцией, в которой выход эквивалентен входу. Можно изменить это в указатель на функцию, которая принимает вектор символов одной или нескольких конкатенированных записей и возвращает структуру или массив структур, содержащих интерпретированные данные.

Существует два способа установить Interpreter свойство BioIndexedFile объект:

  • При построении BioIndexedFile объект, используйте Interpreter имя свойства / пара значения свойства

  • После построения BioIndexedFile объект, набор Interpreter свойство

Примечание

Для получения дополнительной информации об установке Interpreter свойство объекта, смотрите BioIndexedFile.

Считайте подмножество записей

read метод читает и анализирует подмножество записей, что вы задаете индексы использования или записи или ключи.

Пример

Быстро найти все термины генной онтологии (GO) сопоставило с определенным геном, потому что ключи записи являются названиями генов:

  1. Установите Interpreter свойство gene2goObj BioIndexedFile возразите против указателя на функцию, которая читает записи и возвращает только столбец, содержащий ПОЙТИ термин. В этом случае интерпретатор является указателем на анонимную функцию, которая принимает векторы символов и извлекает тех, которые начинают с символов GO.

    gene2goObj.Interpreter = @(x) regexp(x,'GO:\d+','match')
  2. Только для чтения записи, которые имеют ключ YAT2 и возвращают их ИДТИ термины.

    GO_YAT2_entries = read(gene2goObj, 'YAT2')
    GO_YAT2_entries = 
    
    'GO:0004092' 'GO:0005737' 'GO:0006066' 'GO:0006066' 'GO:0009437'