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

Обзор

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

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

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

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

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

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

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

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

  • FASTA

  • FASTQ

  • СЭМ

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

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

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

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

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

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

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

Совет

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

Совет

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

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

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

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

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

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

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

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

    Внимание

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

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

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

gene2goObj.NumEntries
ans =

        6476

Примечание

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

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

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

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

  • Ключ записи

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

Используйте метод 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 включает метод read, который можно использовать в чтение и проанализировать подмножество записей от исходного файла. Метод read анализирует записи с помощью функции интерпретатора, заданной свойством Interpreter объекта BioIndexedFile.

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

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

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

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

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

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

Примечание

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

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

Метод 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'