Класс BioIndexedFile

Суперклассы:

Предоставьте быстрый и эффективный доступ к файлу крупного текста с записями неоднородного размера

Описание

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

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

Конструкция

BioIFobj = BioIndexedFile(Format,SourceFile) возвращает объект BioIndexedFile BioIFobj, который индексирует содержимое SourceFile после правил парсинга, заданных Format, где SourceFile и Format задают имена текстового файла и формата файла, соответственно. Это также создает вспомогательный индексный файл, чтобы хранить информацию, которая предоставляет эффективный, прямой доступ к SourceFile. Индексный файл по умолчанию хранится в том же месте как исходный файл и имеет то же имя как исходный файл, но с расширением IDX. Конструктор BioIndexedFile использует индексный файл, чтобы создать последующие объекты из SourceFile, который экономит время.

BioIFobj = BioIndexedFile(Format,SourceFile,IndexDir) возвращает объект BioIndexedFile BioIFobj путем определения относительного или абсолютного пути к папке, чтобы использовать при поиске или сохранении индексного файла.

BioIFobj = BioIndexedFile(Format,SourceFile,IndexFile) возвращает объект BioIndexedFile BioIFobj путем определения имени файла, опционально включая относительный или абсолютный путь, чтобы использовать при поиске или сохранении индексного файла.

BioIFobj = BioIndexedFile(___,Name,Value) возвращает объект BioIndexedFile BioIFobj при помощи любых входных параметров от предыдущих синтаксисов и дополнительных опций, заданных в качестве одного или нескольких аргументов пары Name,Value.

Входные параметры

Format

Вектор символов или строка, задающая формат файла. Выбор:

  • 'SAM' — SAM-отформатированный файл

  • 'FASTQ' — FASTQ-отформатированный файл

  • 'FASTA' — FASTA-отформатированный файл

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

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

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

Примечание

Для всех форматов файлов содержимое файла должно только использовать символы текста ASCII. Символы Non-ASCII не могут быть правильно индексированы.

SourceFile

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

IndexDir

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

IndexFile

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

'IndexedByKeys'

Задает, можно ли получить доступ к ключам использования объекта BioIFobj. Выбором является true или false.

Совет

Установите значение к false, если вы не должны получать доступ к записям в ключах использования объекта. Выполнение так сохраняет время и пространство при создании объекта.

Значение по умолчанию: true

'MemoryMappedIndex'

Задает, хранит ли конструктор индексы во вспомогательном индексном файле и получает доступ к ним с помощью карт распределения памяти (true) или загружает индексы в память во время создания (false).

Совет

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

Значение по умолчанию: true

'Interpreter'

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

Когда Format является форматом общего назначения, таким как 'TABLE', 'MRTAB' или 'FLAT', затем значением по умолчанию является [], что означает, что функция является анонимной функцией, в которой вывод эквивалентен входу.

Когда Format является специализированным форматом, таким как 'SAM', 'FASTQ' или 'FASTA', затем значение по умолчанию является указателем на функцию, подходящим для того типа файла, и обычно не требует, чтобы вы изменили его.

'Verbose'

Управляет отображением состояния объектной конструкции. Выбором является true или false.

Значение по умолчанию: true

Примечание

Следующие аргументы пары "имя-значение" применяются только, когда оба из следующего верны:

  • Нет никакого существующего ранее индексного файла, сопоставленного с вашим исходным файлом.

  • Ваш исходный файл имеет формат общего назначения, такой как 'TABLE', 'MRTAB' или 'FLAT'.

Для исходных файлов со специализированными форматами предопределены следующие пары "имя-значение", и вы не можете изменить их.

'KeyColumn'

Положительное целое число, задающее столбец в 'TABLE' или файле 'MRTAB', который содержит ключи.

Значение по умолчанию: 1

'KeyToken'

Вектор символов или строка, которая происходит в каждой записи перед ключом для файлов 'FLAT', которые содержат ключи. Если значением является ' ', оно указывает, что ключ является первым вектором символов (или строка) в каждой записи и разграничен пробелами.

Значение по умолчанию: ' '

'HeaderPrefix'

Вектор символов или строка, задающая префикс, который обозначает строки заголовка в исходном файле так конструктор, игнорируют их при создании объекта. Если значением является [], это означает, что конструктор не проверяет на строки заголовка в исходном файле.

Значение по умолчанию: []

'CommentPrefix'

Вектор символов или строка, задающая префикс, который обозначает строки с комментариями в исходном файле так конструктор, игнорируют их при создании объекта. Если значением является [], это означает, что конструктор не проверяет на строки с комментариями в исходном файле.

Значение по умолчанию: []

'ContiguousEntries'

Задает, являются ли записи на непрерывных строках, что означает, что они не разделяются пустыми строками или строками с комментариями в исходном файле или нет. Выбором является true или false.

Совет

Установите значение к true, когда записи не будут разделены пустыми строками или строками с комментариями. Выполнение так сохраняет время и пространство при создании объекта.

По умолчанию: false

'TableDelimiter'

Вектор символов или строка, задающая символ разделителя, чтобы использовать в качестве разделителя столбцов для SourceFile, когда Format является 'TABLE' или 'MRTAB'. Выбором является '\t' (горизонтальная вкладка), ' ' (пробел), или ',', (запятая).

Значение по умолчанию: '\t'

'EntryDelimiter'

Вектор символов или строка, задающая символ разделителя, чтобы использовать в качестве разделителя записи для SourceFile, когда Format является 'FLAT'.

Значение по умолчанию: '//'

Свойства

FileFormat

Формат файла исходного файла

Эта информация только для чтения. Возможные значения:

  • 'SAM' — SAM-отформатированный файл

  • 'FASTQ' — FASTQ-отформатированный файл

  • 'FASTA' — FASTA-отформатированный файл

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

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

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

IndexedByKeys

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

Эта информация только для чтения.

IndexFile

Путь и имя файла вспомогательного индексного файла.

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

InputFile

Путь и имя файла исходного файла.

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

Interpreter

Обработайте к функции, используемой методом read, чтобы проанализировать записи в исходном файле.

Эта функция интерпретатора должна принять вектор символов одной или нескольких конкатенированных записей и возвратить структуру или массив структур, содержащих интерпретированные данные. Установите это свойство, когда ваш исходный файл будет иметь 'TABLE', 'MRTAB' или формат 'FLAT'. Когда ваш исходный файл является специализированным форматом, таким как 'SAM', 'FASTQ' или 'FASTA', затем значение по умолчанию является указателем на функцию, подходящим для того типа файла, и обычно не требует, чтобы вы изменили его.

MemoryMappedIndex

Хранятся ли индексы к исходному файлу в файле с отображенной памятью или в памяти.

NumEntries

Количество записей индексируется объектом.

Эта информация только для чтения.

Методы

getDictionaryПолучите ссылочные имена последовательности из SAM-отформатированного исходного файла, сопоставленного с объектом BioIndexedFile
getEntryByIndexПолучите записи из исходного файла, сопоставленного с объектом BioIndexedFile с помощью числового индекса
getEntryByKeyПолучите записи из исходного файла, сопоставленного с объектом BioIndexedFile с помощью алфавитно-цифрового ключа
getIndexByKeyПолучите индексы из исходного файла, сопоставленного с объектом BioIndexedFile с помощью алфавитно-цифрового ключа
getKeys Получите алфавитно-цифровые ключи из исходного файла, сопоставленного с объектом BioIndexedFile
getSubsetСоздайте объект, содержащий подмножество элементов от объекта BioIndexedFile
чтениеСчитайте одну или несколько записей из исходного файла, сопоставленного с объектом BioIndexedFile

Копировать семантику

Значение. Чтобы изучить, как классы значения влияют на операции копии, смотрите Копирование Объектов (MATLAB) в документации MATLAB® Programming Fundamentals.

Примеры

свернуть все

Этот пример показывает, как создать объект BioIndexedFile и получить доступ к его условиям генной онтологии (GO).

Создайте переменное, содержащее полный абсолютный путь исходного файла.

sourcefile = which('yeastgenes.sgd');

Скопируйте файл в текущую рабочую директорию.

copyfile(sourcefile,'yeastgenes_copy.sgd');

Создайте объект BioIndexedFile из исходного файла, который является файлом с разделением табуляцией, рассматривая непрерывные строки с тем же ключом как однократный въезд. Укажите, что ключи расположены в столбце 3 и что строки заголовка снабжены предисловием с'!'.

gene2goObj = BioIndexedFile('mrtab','yeastgenes_copy.sgd','KeyColumn',3,'HeaderPrefix','!');
Source File: yeastgenes_copy.sgd
   Path: /tmp/BR2019ad_1062519_57051/mlx_to_docbook2/tpdcb84bfc/bioinfo-ex58973989
   Size: 21455392 bytes
   Date: 15-Mar-2018 17:45:16
Creating new index file ...
Indexer found 36266 entries after parsing 111912 text lines.
Index File: yeastgenes_copy.sgd.idx
   Path: /tmp/BR2019ad_1062519_57051/mlx_to_docbook2/tpdcb84bfc/bioinfo-ex58973989
   Size: 494723 bytes
   Date: 21-Feb-2019 19:15:21
Mapping object to yeastgenes_copy.sgd.idx ... 
Done. 

Возвратите ПОЙТИ термин во все записи, которые сопоставлены с геном YAT2. Доступ к записям, которые имеют ключ YAT2.

YAT2_entries = getEntryByKey(gene2goObj,'YAT2');

Настройте объектный интерпретатор, чтобы возвратить только столбец, содержащий ПОЙТИ термин.

gene2goObj.Interpreter = @(x) regexp(x,'GO:\d+','match');

Проанализируйте записи с ключом YAT2 и возвратитесь, все ИДУТ условия от тех записей.

GO_YAT2_entries = read(gene2goObj, 'YAT2')
GO_YAT2_entries = 1x14 cell array
  Columns 1 through 4

    {'GO:0004092'}    {'GO:0006066'}    {'GO:0006066'}    {'GO:0009437'}

  Columns 5 through 8

    {'GO:0005829'}    {'GO:0005737'}    {'GO:0004092'}    {'GO:0016740'}

  Columns 9 through 12

    {'GO:0016746'}    {'GO:0006629'}    {'GO:0016746'}    {'GO:0005737'}

  Columns 13 through 14

    {'GO:0006631'}    {'GO:0005737'}