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. Символы, отличные от 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

Примечание

Следующие аргументы пары "имя-значение" применяются только в том случае, когда оба из следующих аргументов равны 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-форматированный файл

  • '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® Документация по основам программирования.

Примеры

свернуть все

В этом примере показано, как создать объект 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. 

Верните термин GO из всех записей, которые связаны с генной YAT2. Доступ к записям, которые имеют ключ YAT2.

YAT2_entries = getEntryByKey(gene2goObj,'YAT2');

Настройте интерпретатор объектов, чтобы вернуть только столбец, содержащий термин GO.

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

Проанализируйте записи с помощью ключа YAT2 и верните все условия GO из этих записей.

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'}