BioIndexedFile class

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

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

Описание

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

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

Конструкция

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

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

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

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

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

Format

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

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

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

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

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

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

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

Примечание

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

SourceFile

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

IndexDir

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

IndexFile

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

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

Задайте дополнительные разделенные запятой пары Name,Value аргументы. 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 istable или 'MRTAB'. Выбором является '\t' Горизонтальная табуляция (пробел) или ',', (запятая).

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

'EntryDelimiter'

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

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

Свойства

FileFormat

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

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

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

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

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

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

  • '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® 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/BR2021ad_1655202_180016/mlx_to_docbook1/tpd68ce094/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/BR2021ad_1655202_180016/mlx_to_docbook1/tpd68ce094/bioinfo-ex58973989
   Size: 494723 bytes
   Date: 20-Apr-2021 23:54:11
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
  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'}