Много биологических экспериментов производят огромные файлы данных, к которым трудно получить доступ из-за их размера, который может вызвать проблемы памяти при чтении файла в MATLAB® Workspace. Можно создать объект BioIndexedFile
получить доступ к содержимому файла крупного текста, содержащего неоднородные записи размера, такие как последовательности, аннотации и перекрестные ссылки на наборы данных. Объект BioIndexedFile
позволяет вам быстро, и эффективно получите доступ к этим данным, не загружая исходный файл в память.
Можно использовать объект BioIndexedFile
получить доступ к отдельным записям или подмножеству записей, когда исходный файл является слишком большим, чтобы поместиться в память. Можно получить доступ к записям с помощью индексов или ключей. Можно считать и проанализировать одну или несколько записей с помощью обеспеченный интерпретаторы или пользовательскую функцию интерпретатора.
Используйте объект BioIndexedFile
в сочетании со своим большим исходным файлом к:
Доступ к подмножеству записей для валидации или последующего анализа.
Проанализируйте записи с помощью пользовательской функции интерпретатора.
Можно использовать объект BioIndexedFile
получить доступ к файлам крупного текста.
Ваш исходный файл может иметь эти специализированные форматы:
FASTA
FASTQ
СЭМ
Ваш исходный файл может также иметь эти общие форматы:
Таблица Разграниченная вкладкой таблица с несколькими столбцами. Ключи могут быть в любом столбце. Строки с тем же ключом рассматриваются отдельными записями.
Multi-row Table — Разграниченная вкладкой таблица с несколькими столбцами. Ключи могут быть в любом столбце. Непрерывные строки с тем же ключом рассматриваются однократным въездом. Строки, состоящие из нескольких несмежных участков, с тем же ключом рассматриваются отдельными записями.
Flat — Плоский файл с конкатенированными записями, разделенными вектором символов, обычно //
. В рамках записи ключ разделяется от остальной части записи пробелом.
Прежде, чем создать объект BioIndexedFile
, найдите свой исходный файл на вашем жестком диске или локальной сети.
Когда вы создаете объект BioIndexedFile
из своего исходного файла впервые, вы также создаете вспомогательный индексный файл, который по умолчанию сохранен в то же местоположение как ваш исходный файл. Однако, если ваш исходный файл находится в месте только для чтения, можно задать другое место, чтобы сохранить индексный файл.
Если вы создаете объект BioIndexedFile
из своего исходного файла в последующих случаях, он использует в своих интересах существующий индексный файл, который экономит время. Однако индексный файл должен быть в том же месте или местоположении, заданном последующим синтаксисом конструкции.
Если недостаточно память не является проблемой при доступе к исходному файлу, можно хотеть попробовать соответствующую функцию чтения, такую как genbankread
, для того, чтобы импортировать данные из файлов GenBank®..
Кроме того, несколько функций чтения, таких как fastaread
, fastqread
, samread
и sffread
включают свойство Blockread
, которое позволяет вам считать подмножество записей из файла, таким образом сохраняя память.
Создать объект BioIndexedFile
из многострочного табличного файла:
Создайте переменную, содержащую полный абсолютный путь вашего исходного файла. Для вашего исходного файла используйте файл yeastgenes.sgd
, который включен с программным обеспечением Bioinformatics Toolbox™.
sourcefile = which('yeastgenes.sgd');
Используйте функцию конструктора BioIndexedFile
, чтобы создать объект BioIndexedFile
из исходного файла yeastgenes.sgd
, который является многострочным табличным файлом. Сохраните индексный файл в Текущей папке. Укажите, что ключи исходного файла находятся в столбце 3. Кроме того, укажите, что строки заголовка в исходном файле снабжены предисловием с !
, таким образом, конструктор игнорирует их.
gene2goObj = BioIndexedFile('mrtab', sourcefile, '.', ... 'KeyColumn', 3, 'HeaderPrefix','!')
Функция конструктора BioIndexedFile
создает gene2goObj
, объект BioIndexedFile
, и также создает индексный файл с тем же именем как исходный файл, но с расширением IDX. Это хранит этот индексный файл в Текущей папке, потому что мы задали это местоположение. Однако местоположение по умолчанию для индексного файла является тем же местоположением как исходный файл.
Не изменяйте индексный файл. Если вы изменяете его, можно получить недопустимые результаты. Кроме того, функция конструктора не может использовать измененный индексный файл, чтобы создать будущие объекты из связанного исходного файла.
Чтобы определить количество записей, индексированных объектом 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) сопоставило с определенным геном, потому что ключи записи являются названиями генов:
Установите свойство Interpreter
объекта gene2goObj
BioIndexedFile
к указателю на функцию, которая читает записи и возвращает только столбец, содержащий ПОЙТИ термин. В этом случае интерпретатор является указателем на анонимную функцию, которая принимает векторы символов и извлекает тех, которые запускают с символов GO
.
gene2goObj.Interpreter = @(x) regexp(x,'GO:\d+','match')
Только для чтения записи, которые имеют ключ YAT2 и возвращают их ИДТИ условия.
GO_YAT2_entries = read(gene2goObj, 'YAT2')
GO_YAT2_entries = 'GO:0004092' 'GO:0005737' 'GO:0006066' 'GO:0006066' 'GO:0009437'