exponenta event banner

Класс 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

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

Примечание

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

  • С исходным файлом не связан ни один ранее существовавший индексный файл.

  • Исходный файл имеет формат общего назначения, например: '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 ® 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. 

Возвращает термин 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'}