EA043338B1 - METHOD AND DEVICE FOR COMPACT REPRESENTATION OF BIOINFORMATION DATA USING SEVERAL GENOMIC DESCRIPTORS - Google Patents

METHOD AND DEVICE FOR COMPACT REPRESENTATION OF BIOINFORMATION DATA USING SEVERAL GENOMIC DESCRIPTORS Download PDF

Info

Publication number
EA043338B1
EA043338B1 EA201991908 EA043338B1 EA 043338 B1 EA043338 B1 EA 043338B1 EA 201991908 EA201991908 EA 201991908 EA 043338 B1 EA043338 B1 EA 043338B1
Authority
EA
Eurasian Patent Office
Prior art keywords
class
reads
blocks
descriptor
information
Prior art date
Application number
EA201991908
Other languages
Russian (ru)
Inventor
Клаудио Алберти
Гиоргио Зоиа
Даниэле Рензи
Мохамед Хосо Балуч
Original Assignee
Геномсыс Са
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Геномсыс Са filed Critical Геномсыс Са
Publication of EA043338B1 publication Critical patent/EA043338B1/en

Links

Description

Перекрестная ссылка на родственные заявкиCross reference to related applications

Настоящая заявка испрашивает приоритет и преимущество следующих заявок на патент:This application claims priority and benefit to the following patent applications:

PCT/US2017/017842, поданной 14 февраля 2017 г., и PCT/US2017/041591, поданной 11 июля 2017 г.PCT/US2017/017842 filed February 14, 2017 and PCT/US2017/041591 filed July 11, 2017.

Область техникиField of technology

В соответствии с настоящим изобретением предлагается новый способ представления данных секвенирования генома, который сокращает используемый объем памяти и улучшает характеристики доступа за счет обеспечения новых функциональных возможностей, которые недоступны в способах представления известного уровня техники.The present invention provides a new method for presenting genome sequencing data that reduces memory footprint and improves access characteristics by providing new functionality that is not available in prior art presentation methods.

Уровень техникиState of the art

Надлежащая форма представления данных секвенирования генома является основополагающей для обеспечения эффективных приложений геномного анализа, таких как определение вариантов генома и все другие анализы, выполняемые в различных целях путем обработки данных секвенирования и метаданных.Proper representation of genome sequencing data is fundamental to enable efficient genomic analysis applications such as genomic variant detection and all other analyzes performed for various purposes by processing sequencing data and metadata.

Секвенирование генома человека стало доступным после появления недорогих технологий секвенирования с высокой пропускной способностью. Такая возможность открывает новые перспективы в нескольких областях, от диагностики и лечения рака до выявления генетических заболеваний, от патогенетического надзора за идентификацией антител до создания новых вакцин, лекарственных препаратов и адаптации персонализированных лечебных процедур.Sequencing of the human genome has become available with the advent of low-cost, high-throughput sequencing technologies. This capability opens new perspectives in several areas, from cancer diagnosis and treatment to the detection of genetic diseases, from pathogenic surveillance to the identification of antibodies to the creation of new vaccines, drugs and the adaptation of personalized treatment procedures.

Больницы, поставщики услуг по анализу геномных данных, специалисты в области биоинформатики и крупные центры хранения биологических данных ищут недорогие, быстрые, надежные и взаимосвязанные решения для обработки геномной информации, которые позволили бы распространить геномную медицину в мировом масштабе. Поскольку одним из узких мест в процессе секвенирования стало хранение данных, все больше внимания уделяется способам представления данных секвенирования генома в сжатой форме.Hospitals, genomic data analytics providers, bioinformaticians and large biological data centers are seeking low-cost, fast, reliable and interconnected genomic solutions to enable the advancement of genomic medicine on a global scale. As data storage has become one of the bottlenecks in the sequencing process, increasing attention is being paid to ways to present genome sequencing data in a compressed form.

Наиболее используемые представления геномной информации данных секвенирования основываются на форматах архивирования FASTQ и SAM. Цель состоит в сжатии традиционно используемых форматов файлов (соответственно FASTQ и SAM для невыровненных и выровненных данных). Такие файлы составляют из символов обычного текста и сжимают, как упоминалось выше, с использованием подходов общего назначения, таких как схемы LZ (от Lempel и Ziv, фамилий авторов, опубликовавших первые версии), например, широко известные zip, gzip и т.д. При использовании средств сжатия общего назначения, таких как gzip, результатом сжатия обычно бывает большой двоичный объект. Получаемую в результате информацию в такой монолитной форме довольно трудно архивировать, передавать и обрабатывать, в частности, как в случае высокопроизводительного секвенирования, когда объем данных чрезвычайно велик. Формат ВАМ отличается низкими характеристиками сжатия, так как он сосредоточен на сжатии неэффективного и избыточного формата SAM, а не на выделении фактической геномной информации, содержащейся в файлах SAM, и адаптирует алгоритмы сжатия текста общего назначения, такие как gzip, вместо использования специфического характера каждого источника данных (самих геномных данных).The most commonly used representations of genomic information from sequencing data are based on the FASTQ and SAM archiving formats. The goal is to compress traditionally used file formats (FASTQ and SAM for unaligned and aligned data, respectively). Such files are composed of plain text characters and compressed, as mentioned above, using general purpose approaches such as LZ schemes (from Lempel and Ziv, the names of the authors who published the first versions), such as the well-known zip, gzip, etc. When using general-purpose compression tools such as gzip, the compression result is typically a blob. The resulting information in such a monolithic form is quite difficult to archive, transmit and process, particularly as in the case of high-throughput sequencing where the volume of data is extremely large. The BAM format has poor compression performance because it focuses on compressing the inefficient and redundant SAM format rather than extracting the actual genomic information contained in the SAM files, and adapts general purpose text compression algorithms such as gzip rather than taking advantage of the specific nature of each source data (genomic data itself).

Более сложным подходом к сжатию геномных данных, который применяется реже, но более эффективен по сравнению с ВАМ, является CRAM. CRAM обеспечивает более эффективное сжатие за счет внедрения дифференциального кодирования относительно референса (в частности, использования избыточности источника данных), но ему все же недостает функций, таких как инкрементальные обновления, поддержка потоковой обработки данных и выборочного доступа к конкретным классам сжатых данных. Эти подходы обеспечивают плохие коэффициенты сжатия и структуры данных, которые сложны для перемещения по ним и манипулирования после сжатия. Последующий анализ может быть сильно замедлен ввиду необходимости обработки больших и жестко заданных структур данных даже для выполнения простой операции или получения доступа к выбранным областям геномного набора данных. CRAM опирается на концепцию записи CRAM. Каждая запись CRAM представляет одно картированное или некартированный рид путем кодирования всех элементов, необходимых для его восстановления.A more complex approach to genomic data compression, which is used less frequently but is more efficient than BAM, is CRAM. CRAM provides more efficient compression by implementing differential reference encoding (specifically, exploiting data source redundancy), but it still lacks features such as incremental updates, support for streaming data processing, and selective access to specific classes of compressed data. These approaches provide poor compression ratios and data structures that are difficult to navigate and manipulate once compressed. Subsequent analysis can be severely slowed by the need to process large and hard-coded data structures to even perform a simple operation or access selected regions of a genomic dataset. CRAM builds on the concept of CRAM writing. Each CRAM entry represents one mapped or unmapped read by encoding all the elements needed to reconstruct it.

CRAM демонстрирует следующие ограничения и недостатки, которые решаются и преодолеваются изобретением, описанным в данном документе.CRAM exhibits the following limitations and disadvantages, which are addressed and overcome by the invention described herein.

1. CRAM не поддерживает индексацию данных и произвольный доступ к подмножествам данных с общими специфическими признаками. Индексация данных выходит за рамки данной спецификации (см. раздел 12 Спецификации CRAM v3.0) и реализуется в виде отдельного файла. Напротив, в подходе согласно изобретению, описанному в данном документе, используется способ индексации данных, который интегрирован с процессом кодирования, и индексы встраиваются в закодированный (т.е. сжатый) двоичный поток.1. CRAM does not support data indexing and random access to data subsets with common specific characteristics. Data indexing is outside the scope of this specification (see section 12 of the CRAM v3.0 Specification) and is implemented as a separate file. In contrast, the inventive approach described herein uses a data indexing method that is integrated with the encoding process, and the indices are embedded in the encoded (ie, compressed) binary stream.

2. CRAM строят из блоков основных данных, которые могут содержать картированные риды любого типа (идеально совпадающие риды, риды только с заменами, риды с инсерциями или делециями (называемыми также инделами)). Не существует понимания классификации и группирования ридов в классы в соответствии с результатом картирования относительно референсной последовательности. Т.е. проверять нужно все данные даже в случае поиска ридов с определенными характеристиками. Такое ог-2. CRAM is built from core data blocks that can contain mapped reads of any type (perfectly matched reads, reads with only substitutions, reads with insertions or deletions (also called indels)). There is no understanding of the classification and grouping of reads into classes according to the mapping result relative to the reference sequence. Those. You need to check all the data even when searching for reads with certain characteristics. Such a og-

- 1 043338 раничение снимается с помощью данного изобретения за счет классифицирования и разбиения данных на классы перед кодированием.- 1 043338 limitation is removed with the help of this invention by classifying and dividing the data into classes before encoding.

3. CRAM основан на принципе инкапсуляции каждого рида в запись CRAM. Это означает, что при поиске ридов, отличающихся определенными биологическими характеристиками (например, ридов с заменами, но без инделов, или идеально картированных ридов) нужно проверять каждую полную запись.3. CRAM is based on the principle of encapsulating each read in a CRAM record. This means that when searching for reads that differ in certain biological characteristics (for example, reads with substitutions but no indels, or perfectly mapped reads), you need to check every complete record.

В отличие от этого в настоящем изобретении существует понятие классов данных, кодируемых в отдельных информационных блоках, и нет понятия записи, инкапсулирующей каждый рид. Это позволяет эффективнее получать доступ к наборам ридов с определенными биологическими характеристиками (например, к ридам с заменами, но без инделов, или к идеально картированным ридам) без необходимости декодирования каждого рида (блока ридов) для проверки его характеристик.In contrast, in the present invention there is a concept of data classes encoded in separate information blocks, and there is no concept of a record encapsulating each read. This allows you to more efficiently access sets of reads with specific biological characteristics (for example, reads with substitutions but no indels, or perfectly mapped reads) without having to decode each read (block of reads) to check its characteristics.

4. В записи CRAM каждое поле записи связано с определенным флагом, и каждый флаг должен всегда иметь одно и то же значение ввиду отсутствия понятия контекста, так как каждая запись CRAM может содержать данные какого-либо другого типа. Данный механизм кодирования вносит избыточную информацию и препятствует использованию эффективного контекстного энтропийного кодирования.4. In a CRAM record, each field of the record is associated with a specific flag, and each flag must always have the same value due to the absence of the concept of context, since each CRAM record may contain some other type of data. This encoding mechanism introduces redundant information and prevents the use of efficient contextual entropy encoding.

Вместо этого в настоящем изобретении не существует понятия флага, обозначающего данные, так как это по сути определено информационным блоком, которому принадлежат эти данные. Отсюда значительное сокращение символов, которые нужно использовать, и, как следствие, снижение энтропии источника информации, что приводит к более эффективному сжатию. Такое улучшение возможно за счет использования различных блоков, позволяющих кодеру повторно использовать один и тот же символ в пределах каждого блока в разных значениях в соответствии с контекстом. В CRAM каждый флаг должен всегда иметь одно и то же значение ввиду отсутствия понятия контекстов и каждая запись CRAM может содержать данные любого типа.Instead, in the present invention there is no concept of a flag indicating data, since this is essentially determined by the information block to which the data belongs. This results in a significant reduction in the symbols that need to be used and, as a consequence, a reduction in the entropy of the information source, which leads to more efficient compression. This improvement is possible through the use of different blocks, allowing the encoder to reuse the same character within each block with different meanings according to the context. In CRAM, each flag must always have the same value because there is no concept of contexts, and each CRAM entry can contain any type of data.

5. В CRAM замены, инсерции и делеции представляют с помощью различных дескрипторов, и именно такой выбор увеличивает размер алфавита источника информации и дает повышенную энтропию источника. В подходе описываемого здесь изобретения, напротив, используют один алфавит и одно кодирование для замен, инсерций и делеций. Это упрощается процесс кодирования и декодирования и создает модель источника с пониженной энтропией, кодирование которой обеспечивает потоки двоичных данных, отличающиеся высокими характеристиками сжатия.5. In CRAM, substitutions, insertions and deletions are represented using different descriptors, and it is these choices that increase the size of the alphabet of the information source and give increased source entropy. In contrast, the approach of the invention described here uses one alphabet and one encoding for substitutions, insertions and deletions. This simplifies the encoding and decoding process and creates a low-entropy source model whose encoding produces highly compressible binary data streams.

Целью настоящего изобретения является сжатие геномных последовательностей путем классифицирования и разделения данных секвенирования так, чтобы избыточная информация, подлежащая кодированию, была сведена к минимуму, а функции, такие как выборочный доступ и поддержка инкрементальных обновлений, действовали непосредственно в сжатой области.The purpose of the present invention is to compress genomic sequences by classifying and partitioning sequencing data so that redundant information to be encoded is minimized and functions such as selective access and support for incremental updates operate directly on the compressed region.

Один из аспектов представленного подхода состоит в определение классов данных и метаданных, структурируемых в различных блоках и кодируемых по отдельности. Более актуальные улучшения такого подхода по сравнению с существующими способами, заключаются в следующем:One aspect of the presented approach is the definition of data and metadata classes, structured in different blocks and encoded separately. More relevant improvements to this approach compared to existing methods are as follows:

1) улучшение характеристик сжатия путем снижения энтропии источника информации за счет обеспечения эффективной модели источника для каждого класса данных или метаданных;1) improving compression performance by reducing the entropy of the information source by providing an efficient source model for each class of data or metadata;

2) возможность осуществления выборочного доступа к частям сжатых данных и метаданных в целях любой дальнейшей обработки непосредственно в сжатой области;2) the ability to selectively access parts of the compressed data and metadata for the purpose of any further processing directly in the compressed area;

3) возможность инкрементального (т.е. без необходимости в декодировании и повторном кодировании) обновления сжатых данных и метаданных новыми данными секвенирования, и/или метаданными, и/или новыми результатами анализа, связанными с определенными наборами ридов секвенирования.3) the ability to incrementally (i.e., without the need for decoding and re-encoding) compressed data and metadata with new sequencing data and/or metadata and/or new analysis results associated with specific sets of sequencing reads.

Краткое описание чертежейBrief description of drawings

На фиг. 1 показано, как положение картированных пар ридов кодируют в блоке pos в виде разницы относительно абсолютного положения первого картированного рида.In fig. Figure 1 shows how the position of mapped read pairs is encoded in the pos block as a difference relative to the absolute position of the first mapped read.

На фиг. 2 показано, как два рида в паре могут происходить из двух цепочек ДНК.In fig. Figure 2 shows how two reads in a pair can come from two strands of DNA.

На фиг. 3 показано, как кодируют обратный комплемент рида 2, если цепочку 1 используют в качестве референса.In fig. Figure 3 shows how the reverse complement of read 2 is encoded if strand 1 is used as a reference.

На фиг. 4 показаны четыре возможные комбинации ридов, составляющих пару ридов, и соответствующее кодирование в блоке rcomp.In fig. Figure 4 shows the four possible combinations of reads that make up a read pair and the corresponding encoding in the rcomp block.

На фиг. 5 для трех пар ридов показано, как вычислять расстояние спаривания в случае ридов постоянной длины.In fig. Figure 5 for three pairs of reads shows how to calculate the pairing distance in the case of reads of constant length.

На фиг. 6 показано, как ошибки спаривания, кодированные в блоке pair, позволяют декодеру восстанавливать правильное спаривание пары с помощью кодированного MPPPD.In fig. 6 shows how pairing errors encoded in the pair block allow the decoder to recover the correct pairing using the encoded MPPPD.

На фиг. 7 показано кодирование расстояния спаривания, когда рид картирован не на тот референс, что его парный рид. В этом случае к расстоянию картирования добавляют дополнительные дескрипторы. Одним из них является флаг сигнализации, вторым - идентификатор референса и еще одним - расстояние спаривания.In fig. Figure 7 shows the coding of the pairing distance when a read is mapped to a different reference than its paired read. In this case, additional descriptors are added to the mapping distance. One is the signaling flag, the second is the reference ID and another is the pairing distance.

На фиг. 8 показано кодирование несовпадение n-типа в блоке nmis.In fig. Figure 8 shows the encoding of an n-type mismatch in the nmis block.

На фиг. 9 показана картированная пара ридов, в которой присутствуют замены по сравнению с референсной последовательностью.In fig. Figure 9 shows a mapped read pair that contains substitutions compared to the reference sequence.

- 2 043338- 2 043338

На фиг. 10 показано, как вычислять положения замен в виде абсолютных или разностных значений.In fig. Figure 10 shows how to calculate substitution positions as absolute or difference values.

На фиг. 11 показано, как вычислять символы, кодирующие типы замен, когда используются кодыIn fig. Figure 11 shows how to evaluate symbols encoding substitution types when codes are used

IUPAC. Символы представляют расстояние, в кольцевом векторе замены, между молекулой, присутствующей в риде, и молекулой, присутствующей на референсе в этом положении.IUPAC. The symbols represent the distance, in the circular substitution vector, between a molecule present in the read and a molecule present on the reference at that position.

На фиг. 12 показано, как кодировать замены в блоке snpt.In fig. Figure 12 shows how to encode substitutions in a snpt block.

На фиг. 13 показано, как вычислять коды замены, когда используются коды неоднозначности IUPAC.In fig. Figure 13 shows how to calculate replacement codes when IUPAC ambiguity codes are used.

На фиг. 14 показано, как кодировать блок snpt, когда используются коды неоднозначности IUPAC.In fig. Figure 14 shows how to encode a snpt block when IUPAC ambiguity codes are used.

На фиг. 15 показано, как для ридов класса I используют вектор замены, тот же самый, что и для класса М, с добавлением специальных кодов для вставок символов А, С, G, Т, N.In fig. Figure 15 shows how for class I reads a replacement vector is used, the same as for class M, with the addition of special codes for inserting characters A, C, G, T, N.

На фиг. 16 показаны некоторые примеры кодирования несовпадений и инделов в случае кодов неоднозначности IUPAC. В этом случае вектор замены намного длиннее, и поэтому возможных вычисляемых символов больше, чем в случае с пятью символами.In fig. Figure 16 shows some examples of coding mismatches and indels for IUPAC ambiguity codes. In this case, the replacement vector is much longer, and therefore there are more possible characters to be calculated than in the five-character case.

На фиг. 17 показан другая модель источника для несовпадений и инделов, где каждый блок содержит положение несовпадений или инсерций одного типа. В этом случае никаких символов для типа несовпадения или индела не кодируют.In fig. Figure 17 shows another source model for mismatches and indels, where each block contains the position of mismatches or insertions of the same type. In this case, no characters are encoded for the mismatch or indel type.

На фиг. 18 показан пример кодирования несовпадений и инделов. Когда в риде нет несовпадений или инделов данного типа, в соответствующем блоке кодируют 0. 0 Действует в качестве разделителя ридов и признака конца в каждом блоке.In fig. Figure 18 shows an example of coding mismatches and indels. When a read contains no mismatches or indels of a given type, a 0 is encoded in the corresponding block. 0 Acts as a read delimiter and terminator in each block.

На фиг. 19 показано, как изменение в референсной последовательности может преобразовать риды М в риды Р. Эта операция может снизить информационную энтропию структуры данных особенно в случае данных с высоким покрытием.In fig. Figure 19 shows how a change in the reference sequence can transform M reads into P reads. This operation can reduce the information entropy of the data structure, especially in the case of high coverage data.

На фиг. 20 показан геномный кодер 2010 в соответствии с одним вариантом осуществления настоящего изобретения.In fig. 20 shows a genomic encoder 2010 in accordance with one embodiment of the present invention.

На фиг. 21 показан геномный декодер 218 в соответствии с одним вариантом осуществления настоящего изобретения.In fig. 21 shows a genomic decoder 218 in accordance with one embodiment of the present invention.

На фиг. 22 показано, как внутренний референс может быть построен путем кластеризации ридов и сборки сегментов, взятых из каждого кластера.In fig. Figure 22 shows how an internal reference can be constructed by clustering reads and assembling segments taken from each cluster.

На фиг. 23 показано, как стратегия построения референса заключается в сохранении самых последних ридов После того как к ридам была примерена определенная сортировка (например, в лексикографическом порядке).In fig. Figure 23 shows how the strategy for building a reference is to save the most recent reads After a certain sorting has been applied to the reads (for example, in lexicographical order).

На фиг. 24 показано, как рид, принадлежащий классу некартированных ридов (класс U), может быть кодировано с помощью шести дескрипторов, хранящихся или содержащихся в соответствующих блоках.In fig. Figure 24 shows how a read belonging to the class of unmapped reads (class U) can be encoded using six descriptors stored or contained in corresponding blocks.

На фиг. 25 показано, как альтернативное кодирование ридов, принадлежащих классу U, где дескриптор pos имеет знак, используют для кодирования положения картирования рида на построенном референсе.In fig. 25 shows how alternative encoding of reads belonging to class U, where the descriptor pos has a sign, is used to encode the mapping position of the read on the constructed reference.

На фиг. 26 показано, как преобразования референса могут быть применены для удаления несовпадений из ридов. В некоторых случаях преобразования референса могут приводить к образованию новых несовпадений или изменению типа несовпадений, обнаруженных при сравнении с референсом до выполнения преобразования.In fig. Figure 26 shows how reference transformations can be applied to remove mismatches from reads. In some cases, reference transformations may result in the creation of new mismatches or a change in the type of mismatches found when compared to the reference before the transformation was performed.

На фиг. 27 показано, как преобразования референса могут изменить принадлежность ридов к классу при устранении всех или подмножества несовпадений (т.е. рид, принадлежащий классу М до преобразования, назначают классу Р После того как преобразование референса было применено).In fig. Figure 27 shows how reference transformations can change the class membership of reads by eliminating all or a subset of mismatches (i.e., a read belonging to class M before the transformation is assigned to class P after the reference transformation has been applied).

На фиг. 28 показано, как полукартированные пары ридов (класс НМ) могут быть использованы для заполнения неизвестных областей референсной последовательности путем сборки более длинных контигов с помощью некартированных ридов.In fig. Figure 28 shows how semi-mapped read pairs (HM class) can be used to fill unknown regions of a reference sequence by assembling longer contigs using unmapped reads.

На фиг. 29 показано, как кодеры данных класса N, М и I конфигурируют с помощью векторов порогов и формируют отдельные подклассы классов данных N, М и I.In fig. 29 shows how N, M, and I data class encoders are configured using threshold vectors and form separate subclasses of N, M, and I data classes.

На фиг. 30 показано, как все классы данных могут использовать один и тот же преобразованный референс для повторного кодирования, или для каждого класса N, М и I или любой их комбинации может быть использовано свое преобразование.In fig. 30 shows how all data classes can use the same transformed reference for re-encoding, or each class N, M and I, or any combination thereof, can use a different transform.

На фиг. 31 показана структура заголовка геномного набора данных.In fig. 31 shows the header structure of a genomic dataset.

На фиг. 32 показана общая структура таблицы главного индекса (MIT), где каждая строка содержит геномные интервалы нескольких классов данных Р, N, M, I, U, НМ и, кроме того, указатели на метаданные и аннотации. Столбцы относятся к определенным положениям на референсных последовательностях, связанных с кодированными геномными данными.In fig. 32 shows the general structure of a master index table (MIT), where each row contains genomic intervals of several data classes P, N, M, I, U, HM and, in addition, pointers to metadata and annotations. Columns refer to specific positions on reference sequences associated with the encoded genomic data.

На фиг. 33 показан пример одной строки MIT, содержащей геномные интервалы, относящиеся к ридам класса Р. Геномные области, относящиеся к различным референсным последовательностям, разделены специальным флагом (S в данном примере).In fig. Figure 33 shows an example of one MIT line containing genomic intervals related to reads of class P. Genomic regions related to different reference sequences are separated by a special flag (S in this example).

На фиг. 34 показаны общая структура таблицы локального индекса (LIT) и порядок ее использова- 3 043338 ния для хранения указателей на физическое местоположение кодированной геномной информации в сохраняемых или передаваемых данных.In fig. 34 shows the general structure of a local index table (LIT) and how it is used to store pointers to the physical location of encoded genomic information in stored or transmitted data.

На фиг. 35 показан пример LIT, используемой для доступа к блокам доступа № 7 и 8 в полезной нагрузке блока.In fig. 35 shows an example of a LIT used to access access blocks No. 7 and 8 in the block payload.

На фиг. 36 показана функциональная взаимосвязь между несколькими строками MIT и LIT, содержащимися в заголовках геномных блоков.In fig. 36 shows the functional relationship between several MIT and LIT lines contained in the genomic block headers.

На фиг. 37 показано, как блок доступа составляют из нескольких блоков геномных данных, переносимых разными геномными потоками, содержащими данные, принадлежащие разным классам. Каждый блок дополнительно содержит пакеты данных, используемые в качестве блоков передачи данных.In fig. 37 shows how an access block is composed of several blocks of genomic data carried by different genomic streams containing data belonging to different classes. Each block further contains data packets used as data transmission blocks.

На фиг. 38 показано, как блоки доступа составляют из заголовка и мультиплексированных блоков, принадлежащих одному или более блоками однородных данных. Каждый блок может состоять из одного или более пакетов, содержащих фактические дескрипторы геномной информации.In fig. 38 shows how access blocks are composed of a header and multiplexed blocks belonging to one or more homogeneous data blocks. Each block may consist of one or more packets containing actual descriptors of genomic information.

На фиг. 39 показаны множественные выравнивания без сплайсинга. Крайнее левое рид имеет N выравниваний. N является первым значением дескриптора mmap, подлежащим декодированию, и сигнализирует о количестве выравниваний первого рида. Следующие N значений дескриптора mmap декодируют и используют для вычисления Р, представляющего собой количество выравниваний второго рида.In fig. Figure 39 shows multiple alignments without splicing. The leftmost read has N alignments. N is the first mmap descriptor value to be decoded and signals the number of alignments of the first read. The next N values of the mmap descriptor are decoded and used to calculate P, which is the number of alignments of the second read.

На фиг. 40 показано, как дескрипторы pos, pair и mmap используют для кодирования множественных выравниваний без сплайсов. Крайнее левый рид имеет N выравниваний.In fig. Figure 40 shows how the pos, pair, and mmap descriptors are used to encode multiple alignments without splices. The leftmost read has N alignments.

На фиг. 41 показаны множественные выравнивания со сплайсами.In fig. Figure 41 shows multiple splice alignments.

На фиг. 42 показано использование дескрипторов pos, pair, mmap и msar для представления множественных выравниваний со сплайсами.In fig. Figure 42 shows the use of pos, pair, mmap, and msar descriptors to represent multiple splice alignments.

Сущность изобретенияThe essence of the invention

Признаки приведенной ниже формулы изобретения решают проблему решений известного уровня техники путем создания способа кодирования данных геномной последовательности, где данные геномной последовательности содержат риды последовательностей нуклеотидов, причем способ включает в себя этапы выравнивания ридов на одну или более референсных последовательностей с созданием тем самым выровненных ридов;The features of the following claims solve the problem of prior art solutions by providing a method for encoding genomic sequence data, wherein the genomic sequence data comprises nucleotide sequence reads, the method including the steps of aligning the reads to one or more reference sequences thereby creating aligned reads;

классифицирования выровненных последовательностей согласно заданным правилам сопоставления с одной или более референсных последовательностей с созданием тем самым классов выровненных ридов;classifying the aligned sequences according to specified rules of comparison with one or more reference sequences, thereby creating classes of aligned reads;

кодирования классифицированных выровненных ридов в виде множества блоков дескрипторов, причем кодирование классифицированных выровненных ридов в виде множества блоков дескрипторов включает в себя выбор дескрипторов в соответствии с классами выровненных ридов;encoding the classified aligned reads as a plurality of descriptor blocks, wherein encoding the classified aligned reads as a plurality of descriptor blocks includes selecting descriptors according to classes of the aligned reads;

структурирования блоков дескрипторов с помощью информации заголовка с созданием тем самым последовательных блоков доступа.structuring descriptor blocks using header information, thereby creating successive access blocks.

В соответствии с еще одним аспектом способ кодирования дополнительно включает в себя дальнейшее классифицирование ридов, которые не удовлетворяют заданным правилам сопоставления, в класс некартированных ридов;In accordance with yet another aspect, the encoding method further includes further classifying reads that do not satisfy the given matching rules into a class of unmapped reads;

построение набора референсных последовательностей с использованием некоторых некартированных ридов;constructing a set of reference sequences using some unmapped reads;

выравнивание класса некартированных ридов на набор построенных референсных последовательностей;alignment of a class of unmapped reads to a set of constructed reference sequences;

кодирование классифицированных выровненных ридов в виде множества блоков дескрипторов;encoding classified aligned reads as multiple descriptor blocks;

кодирование набора построенных референсных последовательностей;encoding a set of constructed reference sequences;

структурирование блоков дескрипторов и кодированных референсных последовательностей с помощью информации заголовка с созданием тем самым последовательных блоков доступа.structuring descriptor blocks and encoded reference sequences using header information, thereby creating successive access blocks.

В соответствии с еще одним аспектов способ кодирования дополнительно включает в себя идентифицирование геномных ридов без несовпадений с референсной последовательностью в качестве первого класса Р.In accordance with yet another aspect, the encoding method further includes identifying genomic reads without mismatches to a reference sequence as a first class P.

В соответствии с еще одним аспектом способ кодирования дополнительно включает в себя идентифицирование геномных ридов в качестве второго класса N, когда несовпадения обнаруживают только в положениях, где секвенатор оказался не в состоянии определить никакого основания, и количество несовпадений в каждом риде не превышает данного порога.In another aspect, the encoding method further includes identifying genomic reads as a second class N when mismatches are found only at positions where the sequencer fails to detect any base and the number of mismatches in each read does not exceed a given threshold.

В соответствии с еще одним аспектом способ кодирования дополнительно включает в себя идентифицирование геномных ридов в качестве третьего класса М, когда несовпадения обнаруживают в положениях, где секвенатор оказался не в состоянии определить никакого основания (называются несовпадениями n-типа) и/или он определил другое основание по сравнению с референсной последовательностью (называются несовпадениями s-типа), и количество несовпадений не превышает данных порогов для количества несовпадений n-типа, s-типа и порога, полученного из данной функции (f(n,s)), вычисленной на количестве несовпадений n-типа и s-типа.In yet another aspect, the encoding method further includes identifying genomic reads as a third class M when mismatches are found at positions where the sequencer failed to detect any base (referred to as n-type mismatches) and/or it identified a different base compared to the reference sequence (called s-type mismatches), and the number of mismatches does not exceed the given thresholds for the number of n-type, s-type, and the threshold derived from a given function (f(n,s)) calculated on the number of mismatches n-type and s-type.

В соответствии с еще одним аспектом способ кодирования дополнительно включает в себя иденти- 4 043338 фицирование геномных ридов в качестве четвертого класса I, когда они могут иметь несовпадения того же типа, что и несовпадения класса М, и, дополнительно, по меньшей мере одно несовпадение следующего типа: инсерция (i-типа), делеция (d-типа), мягкие отсечения (с-типа), и при этом количество несовпадений каждого типа не превышает соответствующего данного порога и порога, обеспечиваемого данной функций (w(n,s,i,d,c)), вычисленной на количестве несовпадений n-типа, s-типа, i-типа, d-типа и с-типа.In accordance with yet another aspect, the encoding method further includes identifying genomic reads as a fourth class I when they may have mismatches of the same type as class M mismatches, and, additionally, at least one mismatch of the following type: insertion (i-type), deletion (d-type), soft cuts (c-type), and the number of mismatches of each type does not exceed the corresponding given threshold and the threshold provided by this function (w(n,s,i ,d,c)), calculated on the number of n-type, s-type, i-type, d-type and c-type mismatches.

В соответствии с еще одним аспектом способ кодирования дополнительно включает в себя идентифицирование геномных ридов в качестве пятого класса U, который содержит все риды, не отнесенные ни к одному из классов Р, N, М, I, определенных ранее.In accordance with yet another aspect, the encoding method further includes identifying genomic reads as a fifth class U, which contains all reads not assigned to any of the classes P, N, M, I defined previously.

В соответствии с еще одним аспектом способ кодирования дополнительное отличается тем, что риды геномной последовательности, подлежащие кодированию, являются парными.According to yet another aspect, the encoding method is further characterized in that the genomic sequence reads to be encoded are paired.

В соответствии с еще одним аспектом способ кодирования дополнительно отличается тем, что классифицирование дополнительно включает в себя идентифицирование геномных последовательностей в качестве шестого класса НМ, как содержащего все пары ридов, где один рид принадлежит классу Р, N, М или I, а другой рид принадлежит классу U.In accordance with yet another aspect, the encoding method is further characterized in that the classification further includes identifying the genomic sequences as a sixth HM class, as containing all pairs of reads where one read belongs to class P, N, M, or I, and the other read belongs to class U.

В соответствии с еще одним аспектом способ кодирования дополнительно включает в себя этапы определения того, классифицируются ли два парных рида в один и тот же класс (каждый из Р, N, M, I, U) с назначением в таком случае пары в этот же идентифицированный класс.In accordance with yet another aspect, the encoding method further includes the steps of determining whether two paired reads are classified into the same class (each of P, N, M, I, U), then assigning the pair to the same identified Class.

Определение того, относятся ли два парных рида к разным классам, и если ни одно из них не принадлежит классу U, то назначение пары ридов классу с самым высоким приоритетом, определяемым в соответствии со следующим приоритетом:Determining whether two paired reads belong to different classes, and if neither of them belongs to class U, then assigning the pair of reads to the class with the highest priority, determined according to the following priority:

P<N<M<I, где класс Р обладает самым низким приоритетом, а класс I - самым высоким приоритетом;P<N<M<I, where class P has the lowest priority, and class I has the highest priority;

определение того, классифицировано ли только одно из парных ридов как принадлежащее классу U, и классифицирование пары ридов как принадлежащей последовательностям класса НМ.determining whether only one of the paired reads is classified as belonging to class U, and classifying the pair of reads as belonging to class HM sequences.

В соответствие с еще одним аспектом способ кодирования дополнительно отличается том, что каждый класс ридов N, М, I дополнительно разделяют на два или более подклассов (296, 297, 298) в соответствии с вектором порогов (292, 293, 294), определенным, соответственно, для каждого класса N, М и I посредством количества несовпадений (292) n-типа, функции f(n,s) (293) и функции w(n,s,i,d,c) (294).In yet another aspect, the encoding method is further characterized in that each read class N, M, I is further divided into two or more subclasses (296, 297, 298) according to a threshold vector (292, 293, 294) defined by respectively, for each class N, M and I by the number of n-type mismatches (292), the function f(n,s) (293) and the function w(n,s,i,d,c) (294).

Определение того, классифицированы ли два парных рида в один и тот же подкласс с назначением в таком случае пары в этот же подкласс;Determining whether two paired reads are classified into the same subclass, then assigning the pair to the same subclass;

определение того, классифицированы ли два парных рида в подклассы разных классов с назначением в таком случае пары в подкласс, принадлежащий классу более высокого приоритета в соответствии со следующим выражением:determining whether two paired reads are classified into subclasses of different classes, then assigning the pair to the subclass belonging to the higher priority class according to the following expression:

N<M<I, где N имеет самый низкий приоритет, а I имеет самый высокий приоритет;N<M<I, where N has the lowest priority and I has the highest priority;

определение того, классифицированы ли два парных рида в один и тот же класс, причем этим классом является N, или М, или I, или в разные подклассы с назначением в таком случае пары в подкласс с самым высоким приоритетом в соответствии о следующими выражениями:determining whether two paired reads are classified into the same class, which class is N, or M, or I, or into different subclasses, in which case assigning the pair to the highest priority subclass according to the following expressions:

Ni<N2<.. .<Nk,Ni<N2<.. .<N k ,

M1<M2<_<Mj, I1<I 2<^<Ih, где самый высокий индекс имеет наивысший приоритет.M 1 <M 2 <_<Mj, I 1< I 2 <^< I h, where the highest index has the highest priority.

В соответствии с еще одним аспектом информацию о положении картирования каждого рида кодируют посредством блока дескрипторов pos.In accordance with yet another aspect, the mapping position information of each read is encoded by a pos descriptor block.

В соответствии с еще одним аспектом информацию о цепочечности (например, из какой цепочки ДНК секвенировали рид) каждого рида кодируют посредством блока дескрипторов rcomp.In yet another aspect, the stranding information (eg, which strand of DNA the read was sequenced from) of each read is encoded by an rcomp descriptor block.

В соответствии с еще одним аспектом информацию о парноконцевых ридах кодируют посредством блока дескрипторов pair.In accordance with yet another aspect, information about paired-end reads is encoded by a pair descriptor block.

В соответствии с еще одним аспектом дополнительную информацию о выравнивании, такую как, картирован ли рид в правильную пару, не прошло ли оно проверки качества платформы/поставщика, является ли оно дубликатом ПЦР или оптическим дубликатом, является ли это вспомогательным выравниванием, кодируют посредством блока дескрипторов flags.In another aspect, additional information about the alignment, such as whether the read is mapped to the correct pair, whether it has passed platform/vendor quality checks, whether it is a PCR duplicate or an optical duplicate, whether it is an auxiliary alignment, is encoded by a descriptor block flags.

В соответствии с еще одним аспектом информацию о неизвестных основаниях кодируют посредством блока дескрипторов nmis.In accordance with yet another aspect, information about unknown bases is encoded by a block of nmis descriptors.

В соответствии с еще одним аспектом информацию о положении замен кодируют посредством блока дескрипторов snpp.In accordance with yet another aspect, information about the position of the substitutions is encoded by a snpp descriptor block.

В соответствии с еще одним аспектом информацию о типе замен кодируют посредством блока специальных дескрипторов snpt.In accordance with yet another aspect, information about the type of replacements is encoded by a block of special descriptors snpt.

В соответствии с еще одним аспектом информацию о положении несовпадений типа замен, инсерций или делеций кодируют посредством блока дескрипторов indp.In accordance with yet another aspect, information about the position of mismatches such as substitutions, insertions or deletions is encoded by an indp descriptor block.

В соответствии с еще одним аспектом информацию о типе несовпадений, таких как замены, инсер- 5 043338 ций или делеций, кодируют посредством блока дескрипторов indt.In accordance with yet another aspect, information about the type of mismatches, such as substitutions, insertions or deletions, is encoded by an indt descriptor block.

В соответствии с еще одним аспектом информацию об отсеченных основаниях картированного рида кодируют посредством блока дескрипторов indc.In accordance with yet another aspect, the cut base information of the mapped read is encoded by an indc descriptor block.

В соответствии с еще одним аспектом информацию о некартированных ридах кодируют посредством блока дескрипторов ureads.In accordance with yet another aspect, information about unmapped reads is encoded by a ureads descriptor block.

В соответствии с еще одним аспектом информацию о типе референсной последовательности, используемой для кодирования, кодируют посредством блока дескрипторов rtype.In accordance with yet another aspect, information about the type of a reference sequence used for encoding is encoded by an rtype descriptor block.

В соответствии с еще одним аспектом информацию о множественных выравниваниях картированных ридов кодируют посредством блока дескрипторов mmap.In accordance with yet another aspect, information about multiple alignments of mapped reads is encoded by an mmap descriptor block.

В соответствии с еще одним аспектом информацию о сплайсированных выравниваниях и множественных выравниваниях одного и того же рида кодируют посредством блока дескрипторов msar и блока дескрипторов mmap.In accordance with yet another aspect, information about spliced alignments and multiple alignments of the same read is encoded by an msar descriptor block and an mmap descriptor block.

В соответствии с еще одним аспектом информацию об оценках выравнивания рида кодируют посредством блока дескрипторов mscore.In accordance with yet another aspect, information about read alignment scores is encoded by an mscore descriptor block.

В соответствии с еще одним аспектом информацию о группах, которым принадлежат риды, кодируют посредством блока специальных дескрипторов rgroup.In accordance with yet another aspect, information about the groups to which the reads belong is encoded by a block of special rgroup descriptors.

В соответствии с еще одним аспектом способ кодирования дополнительно отличается тем, что блоки дескрипторов содержат таблицу главного индекса, содержащую по одному разделу для каждого класса и подкласса выровненных ридов, причем раздел содержит положения картирования на одну или более референсных последовательностей первого рида каждого блока доступа каждого класса или подкласса данных; при этом таблицу главного индекса и данные блока доступа кодируют вместе.In accordance with yet another aspect, the encoding method is further characterized in that the descriptor blocks contain a main index table containing one partition for each class and subclass of aligned reads, wherein the partition contains mapping positions to one or more reference sequences of the first read of each access block of each class or data subclass; wherein the main index table and the access block data are encoded together.

В соответствии с еще одним аспектом способ кодирования дополнительно отличается тем, что блоки дескрипторов также содержат информацию, относящуюся к типу использованного референса (ранее существующий или построенный) и сегментам ридов, которые не совпадают с референсной последовательностью.In accordance with yet another aspect, the encoding method is further characterized in that the descriptor blocks also contain information related to the type of reference used (pre-existing or constructed) and segments of reads that do not match the reference sequence.

В соответствии с еще одним аспектом способ кодирования дополнительно отличается тем, что референсные последовательности сначала преобразуют в другие референсные последовательности путем применения замен, инсерций, делеций и отсечений, а затем кодируют классифицированные выровненные риды в виде множества блоков дескрипторов, относящихся к преобразованным референсным последовательностям.In yet another aspect, the encoding method is further characterized in that reference sequences are first converted into other reference sequences by applying substitutions, insertions, deletions, and truncations, and then the classified aligned reads are encoded as a plurality of descriptor blocks related to the converted reference sequences.

В соответствии с еще одним аспектов способ кодирования дополнительно отличается тем, что к референсным последовательностям для всех классов данных применяют одно и то же преобразование.In accordance with yet another aspect, the encoding method is further characterized in that the same transformation is applied to the reference sequences for all data classes.

В соответствии с еще одним аспектов способ кодирования дополнительно отличается тем, что к референсным последовательностям каждого класса данных применяют разные преобразования.In accordance with yet another aspect, the encoding method is further characterized in that different transformations are applied to the reference sequences of each data class.

В соответствии с еще одним аспектом способ кодирования дополнительно отличается тем, что преобразования референсных последовательностей кодируют в виде блоков дескрипторов и структурируют с помощью информации заголовка с созданием тем самым последовательных блоков доступа.According to yet another aspect, the encoding method is further characterized in that the reference sequence transformations are encoded as descriptor blocks and structured by header information, thereby creating sequential access blocks.

В соответствии с еще одним аспектом способ кодирования дополнительно отличается тем, что кодирование классифицированных выровненных ридов и связанных преобразований референсных последовательностей в виде множества блоков дескрипторов включает в себя этап связывания конкретной модели источника и конкретного энтропийного кодера с каждом блоком дескрипторов.In accordance with yet another aspect, the encoding method is further characterized in that encoding the classified aligned reads and associated reference sequence transformations into a plurality of descriptor blocks includes the step of associating a specific source model and a specific entropy encoder with each descriptor block.

В соответствии с еще одним аспектом способ кодирования дополнительно отличается тем, что энтропийный кодер представляет собой контекстно-адаптивный арифметический кодер, кодер переменной длины или кодер Голомба.According to yet another aspect, the encoding method is further characterized in that the entropy encoder is a context-adaptive arithmetic encoder, a variable length encoder, or a Golomb encoder.

В настоящем изобретении также предложен способ декодирования кодированных геномных данных, включающий в себя следующие этапы:The present invention also provides a method for decoding encoded genomic data, including the following steps:

синтаксический анализ блоков доступа, содержащих кодированные геномные данные, для выделения множества блоков дескрипторов путем использования информации заголовка;parsing access blocks containing encoded genomic data to extract a plurality of descriptor blocks by using header information;

декодирование множества блоков дескрипторов для выделения выровненных ридов в соответствии с заданными правилами сопоставления, определяющими их классификацию относительно одного или более референсных ридов.decoding multiple descriptor blocks to extract aligned reads in accordance with specified matching rules that determine their classification relative to one or more reference reads.

В соответствии с еще одним аспектом способ декодирования дополнительно включает в себя декодирование некартированных геномных ридов.In accordance with yet another aspect, the decoding method further includes decoding unmapped genomic reads.

В соответствии с еще одним аспектом способ декодирования дополнительно включает в себя декодирование классифицированных геномных ридов.In accordance with yet another aspect, the decoding method further includes decoding classified genomic reads.

В соответствии с еще одним аспектом способ декодирования дополнительно включает в себя декодирование таблицы главного индекса, содержащей по одному разделу для каждого класса ридов и связанные соответствующие положения картирования.In accordance with yet another aspect, the decoding method further includes decoding a main index table containing one partition for each class of reads and associated corresponding mapping positions.

В соответствии с еще одним аспектом способ декодирования дополнительно включает в себя декодирование информации, относящейся к типу используемого референса - ранее существующий, преобразованный или построенный.In accordance with yet another aspect, the decoding method further includes decoding information related to the type of reference being used—preexisting, transformed, or constructed.

В соответствии с еще одним аспектом способ декодирования дополнительно включает в себя деко- 6 043338 дирование информации, относящейся к одному или более преобразованиям, которые должны быть применены к ранее существующим референсным последовательностям.In accordance with yet another aspect, the decoding method further includes decoding information related to one or more transformations to be applied to pre-existing reference sequences.

В соответствии с еще одним аспектом способ декодирования отличается тем, что геномные риды являются парными.In another aspect, the decoding method is characterized in that the genomic reads are paired.

В соответствии с еще одним аспектом способ декодирования дополнительно включает в себя случай, когда геномные данные энтропийно декодируют.According to another aspect, the decoding method further includes a case where genomic data is entropy decoded.

В настоящем изобретении также предложен геномный кодер (2010) для сжатия данных (209) геномной последовательности, причем данные (209) геномной последовательности содержат риды последовательностей нуклеотидов, при этом геномный кодер (2010) содержит узел (201) выравнивателя, выполненный с возможностью выравнивания ридов на одну или более референсных последовательностей с созданием тем самым выровненных ридов;The present invention also provides a genomic encoder (2010) for compressing genomic sequence data (209), wherein the genomic sequence data (209) comprises nucleotide sequence reads, wherein the genomic encoder (2010) includes an aligner assembly (201) configured to align the reads to one or more reference sequences, thereby creating aligned reads;

узел (202) генератора конструированной последовательности, выполненный с возможностью создания конструированных референсных последовательностей;a constructed sequence generator unit (202), configured to create constructed reference sequences;

узел (204) классифицирования данных, выполненный с возможностью классифицирования выровненных ридов в соответствии с заданными правилами сопоставления с одной или более ранее существующими референсными последовательностями или построенными референсными последовательностями с созданием тем самым классов выровненных ридов (208);a data classification node (204), configured to classify aligned reads in accordance with specified matching rules with one or more pre-existing reference sequences or constructed reference sequences, thereby creating classes of aligned reads (208);

один или более узлов (205-207) кодирования блоков, выполненных с возможностью кодирования классифицированных выровненных ридов в виде блоков дескрипторов путем выбора дескрипторов в соответствии с классами выровненных ридов;one or more block encoding nodes (205-207) configured to encode the classified aligned reads as descriptor blocks by selecting descriptors according to the classes of the aligned reads;

мультиплексор (2016) для мультиплексирования сжатых геномных данных и метаданных.multiplexer (2016) for multiplexing compressed genomic data and metadata.

В соответствии с еще одним аспектом геномный кодер дополнительно содержит узел (2019) преобразования референсной последовательности, выполненный с возможностью преобразования ранее существующих референсов и классов (208) данных в преобразованные классы (2018) данных.In accordance with yet another aspect, the genomic encoder further comprises a reference sequence transformation unit (2019) configured to transform pre-existing references and data classes (208) into transformed data classes (2018).

В соответствии с еще одним аспектом геномный кодер дополнительно отличается тем, что узел (204) классифицирования данных содержит конфигурируемые с помощью векторов порогов кодеры классов данных N, М и I, формирующие подклассы данных классов N, М и I.In accordance with yet another aspect, the genomic encoder is further characterized in that the data classification node (204) contains N, M, and I data class encoders configurable using threshold vectors, forming subclasses of N, M, and I data classes.

В соответствии с еще одним аспектом геномный кодер дополнительно отличается тем, что узел (2019) преобразования референса применяет одно и то же преобразование (300) референса для всех классов и подклассов данных.In accordance with yet another aspect, the genomic encoder is further characterized in that the reference transform node (2019) applies the same reference transform (300) to all classes and subclasses of the data.

В соответствии с еще одним аспектом геномный кодер дополнительно отличается тем, что декодер (2019) преобразования референса применяет разные преобразования (301, 302, 303) к разным классам и подклассам данных.In yet another aspect, the genomic encoder is further distinguished in that the reference transform decoder (2019) applies different transforms (301, 302, 303) to different classes and subclasses of data.

В соответствии с еще одним аспектом геномный кодер дополнительно содержит функции, пригодные для осуществления всех аспектов ранее упомянутых способов кодирования.In accordance with yet another aspect, the genomic encoder further comprises functions suitable for implementing all aspects of the previously mentioned encoding methods.

В настоящем изобретении также предложен геномный декодер (218) для разуплотнения сжатого геномного потока (211), причем геномный декодер (218) содержит демультиплексор (210) для демультиплексирования сжатых геномных данных и метаданных;The present invention also provides a genomic decoder (218) for decompressing a compressed genomic stream (211), wherein the genomic decoder (218) includes a demultiplexer (210) for demultiplexing the compressed genomic data and metadata;

средства (212-214) синтаксического анализа, выполненные с возможностью синтаксического анализа сжатого геномного потока с получением геномных блоков дескрипторов (215);parsing means (212-214) configured to parse the compressed genomic stream to produce genomic descriptor blocks (215);

один или более декодеров (216-217) блоков, выполненных с возможностью декодирования геномных блоков в классифицированные риды последовательностей нуклеотидов (2111);one or more block decoders (216-217) configured to decode genomic blocks into classified nucleotide sequence reads (2111);

декодеры (219) классов геномных данных, выполненные с возможностью выборочного декодирования классифицированных ридов последовательностей нуклеотидов относительно одной или более референсных последовательностей с получением несжатых ридов последовательностей нуклеотидов.decoders (219) of classes of genomic data configured to selectively decode classified nucleotide sequence reads relative to one or more reference sequences to obtain uncompressed nucleotide sequence reads.

В соответствии с еще одним аспектом геномный декодер дополнительно содержит декодер (2113) преобразования референса, выполненный с возможностью декодирования дескрипторов (2112) преобразования референса и создания преобразованного референса (2114) для использования декодерами (219) классов геномных данных.In accordance with yet another aspect, the genomic decoder further comprises a reference transform decoder (2113) configured to decode reference transform descriptors (2112) and create a transformed reference (2114) for use by genomic data class decoders (219).

В соответствии с еще одним аспектом геномный декодер дополнительно отличается тем, что одну или более референсных последовательностей хранят в сжатом потоке (211) геномных данных.In accordance with yet another aspect, the genomic decoder is further characterized in that one or more reference sequences are stored in a compressed genomic data stream (211).

В соответствии с еще одним аспектом геномный декодер дополнительно отличается тем, что одну или более референсных последовательностей подают в декодер посредством внеполосного механизма.In accordance with yet another aspect, the genomic decoder is further characterized in that one or more reference sequences are provided to the decoder via an out-of-band mechanism.

В соответствии с еще одним аспектом геномный декодер дополнительно отличается тем, что одну или более референсных последовательностей строят в декодере.In accordance with yet another aspect, the genomic decoder is further characterized in that one or more reference sequences are constructed in the decoder.

В соответствии с еще одним аспектом геномный декодер дополнительно отличается тем, что одну или более референсных последовательностей преобразуют в декодере с помощью декодера (2113) преобразования референса.In accordance with yet another aspect, the genomic decoder is further characterized in that one or more reference sequences are transformed at the decoder by a reference transform decoder (2113).

В настоящем изобретении также предложен машиночитаемый носитель информации, содержащий инструкции, исполнение которых вызывает осуществление по меньшей мере одним процессором всех аспектов ранее упомянутых способов кодирования.The present invention also provides a computer-readable storage medium comprising instructions whose execution causes at least one processor to perform all aspects of the previously mentioned encoding methods.

В настоящем изобретении также предложен машиночитаемый носитель информации, содержащийThe present invention also provides a computer-readable storage medium comprising

- 7 043338 инструкции, исполнение которых вызывает осуществление по меньшей мере одним процессором всех аспектов ранее упомянутых способов декодирования.- 7 043338 instructions, the execution of which causes at least one processor to perform all aspects of the previously mentioned decoding methods.

В настоящем изобретении также предложена поддержка хранения геномных данных, кодированных в соответствии с выполнением всех аспектов ранее упомянутых способов кодирования.The present invention also provides support for storing genomic data encoded in accordance with all aspects of the previously mentioned encoding methods.

Подробное описаниеDetailed description

В число геномных или протеомных последовательностей, упоминаемых в данном изобретении, входят, например, помимо прочего, нуклеотидные последовательности, последовательности дезоксирибонуклеиновой кислоты (ДНК), рибонуклеиновой кислоты (РНК) и аминокислотные последовательности. Несмотря на то что в данном документе достаточно подробно описана геномная информация в форме нуклеотидной последовательности, ясно, что способы и системы сжатия могут быть реализованы также для других геномных или протеомных последовательностей, хотя и с некоторыми изменениями, понятными специалисту в данной области.Genomic or proteomic sequences mentioned in this invention include, for example, but are not limited to, nucleotide sequences, deoxyribonucleic acid (DNA), ribonucleic acid (RNA) and amino acid sequences. Although genomic information in the form of a nucleotide sequence is described in some detail herein, it is clear that compression methods and systems can also be implemented for other genomic or proteomic sequences, albeit with some modifications understood by one skilled in the art.

Информация о секвенировании генома формируется приборами высокопроизводительного секвенирования (HTS) в виде последовательностей нуклеотидов (именуемых также основаниями), представленных строками буквенных символов из определенного словаря. Минимальный словарь представлен пятью символами: {А, С, G, T, N}, которые обозначают 4 типа нуклеотидов, присутствующих в ДНК, а именно аденин, цитозин, гуанин и тимин. В рибонуклеиновой кислоте (РНК) тимин заменен урацилом (U). N указывает на то, что секвенатор не смог определить никакого основания, из-за чего реальный характер нуклеотида в этом положении не определен. Если в секвенаторе приняты коды неоднозначности IUPAC, то алфавит, используемый для символов, представляет собой (А, С, G, T, U, W, S, М, K, R, Y, В, D, Н, V, N или -). Последовательности нуклеотидов, создаваемые секвенаторами, называют ридами. Риды последовательности могут быть длиной от нескольких десятков до нескольких тысяч нуклеотидов. Некоторые технологии секвенирования создают риды последовательностей в виде пар, где один из ридов которых происходит из одной цепочки ДНК, а второе - из другой цепочки. В секвенировании генома термин покрытие используют для выражения уровня избыточности данных последовательности относительно референсной последовательности. Например, чтобы достичь покрытия 30х генома человека (длиной 3,2 миллиарда оснований) секвенатор должен создать всего 30x3,2 миллиарда оснований, чтобы в среднем каждое положение в референсе покрывалась 30 раз.Genome sequencing information is generated by high-throughput sequencing (HTS) instruments in the form of sequences of nucleotides (also called bases) represented by strings of alphabetic characters from a defined dictionary. The minimal vocabulary is represented by five characters: {A, C, G, T, N}, which represent the 4 types of nucleotides present in DNA, namely adenine, cytosine, guanine and thymine. In ribonucleic acid (RNA), thymine is replaced by uracil (U). N indicates that the sequencer was unable to detect any base, leaving the actual nature of the nucleotide at that position undetermined. If the sequencer accepts IUPAC ambiguity codes, the alphabet used for the characters is (A, C, G, T, U, W, S, M, K, R, Y, B, D, H, V, N or -). The nucleotide sequences produced by sequencers are called reads. Sequence reads can range in length from several tens to several thousand nucleotides. Some sequencing technologies generate sequence reads in pairs, with one read coming from one strand of DNA and the other from a different strand. In genome sequencing, the term coverage is used to express the level of redundancy of sequence data relative to a reference sequence. For example, to achieve 30x coverage of the human genome (3.2 billion bases long), the sequencer must generate a total of 30x3.2 billion bases so that on average each position in the reference is covered 30 times.

Везде в данном описании референсная последовательность - это любая последовательность, на которую выравнивают/картируют последовательности нуклеотидов, создаваемые секвенаторами. Одним примером последовательности может быть референсный геном - последовательность, собранная учеными в качестве репрезентативного примера наборов генов вида. Например, GRC37, геном человека Консорциума референсного генома (сборка 37), получен из образцов тринадцати анонимных добровольцев из г. Буффало, штат Нью-Йорк. Однако референсная последовательность может также состоять из синтетической последовательности, задуманной и попросту построенной для улучшения сжимаемости ридов с учетом их дальнейшей обработки. Это более подробно описано в разделе Дескрипторы класса U и построение внутренних референсов для некартированных ридов класса U и класса НМ и изображено на фиг. 22 и 23.As used herein, a reference sequence is any sequence to which nucleotide sequences generated by sequencers are aligned/mapped. One example of a sequence would be a reference genome—a sequence collected by scientists as a representative example of a species' gene sets. For example, GRC37, the Human Genome Reference Consortium genome (build 37), was derived from samples from thirteen anonymous volunteers in Buffalo, New York. However, a reference sequence may also consist of a synthetic sequence designed and simply constructed to improve the compressibility of the reads for further processing. This is described in more detail in the section U class descriptors and construction of internal references for unmapped U class and HM class reads and is depicted in Fig. 22 and 23.

Секвенаторы могут вносить в риды последовательности ошибки, такие как следующие.Sequencers can introduce errors into sequence reads, such as the following.

1. Решение о пропуске определения основания ввиду отсутствия уверенности в определении какого-либо конкретного основания. Это называют неизвестным основанием и помечают как N (обозначают как несовпадение n-типа).1. The decision to omit the definition of a basis due to lack of confidence in the definition of any specific basis. This is called an unknown base and is labeled N (denoted as an n-type mismatch).

2. Использование неверного символа (т.е. представление другой нуклеиновой кислоты) для представления нуклеиновой кислоты, на самом деле присутствующей в секвенированном образце; это обычно называют ошибкой замены (обозначают как несовпадение s-типа).2. Using an incorrect symbol (i.e., representing a different nucleic acid) to represent the nucleic acid actually present in the sequenced sample; this is usually called a substitution error (denoted as an s-type mismatch).

3. Вставка в один рид последовательности дополнительных символов, которые не имеют отношения ни к одной действительно присутствующей нуклеиновой кислоте; это обычно называют ошибкой вставки (обозначают как несовпадение i-типа).3. Insertion of additional characters into one sequence read that are not related to any actually present nucleic acid; this is usually called an insertion error (denoted as an i-type mismatch).

4. Удаление из одного рида последовательности символов, которые представляют нуклеиновые кислоты, действительно присутствующие в секвенированном образце; это обычно называют ошибкой удаления (обозначают как несовпадение d-типа).4. Removing from one read a sequence of characters that represent nucleic acids actually present in the sequenced sample; this is usually called a deletion error (denoted as a d-type mismatch).

5. Рекомбинация одного или более фрагментов в один фрагмент, который не отражает подлинную сущность исходной последовательности; этот обычно приводит к решению средства выравнивания отсечь основания (обозначают как несовпадение с-типа).5. Recombination of one or more fragments into one fragment that does not reflect the true essence of the original sequence; this usually results in the aligner deciding to truncate the bases (denoted as a c-type mismatch).

Термин покрытие используют в литературе для количественного определения степени, в которой референсный геном или его часть могут быть охвачены имеющимися ридами последовательности. Покрытие называют ча стичным (менее 1Х), когда на некоторые части референсного генома не картировано ни одного имеющегося рида последовательности;The term coverage is used in the literature to quantify the extent to which a reference genome or part of it can be covered by available sequence reads. Coverage is called partial (less than 1X) when not a single available sequence read is mapped to some parts of the reference genome;

од нократным (1Х), когда на все нуклеотиды референсного генома картирован один и только один символ, представленный в ридах последовательности;single-fold (1X), when one and only one symbol represented in the sequence reads is mapped to all nucleotides of the reference genome;

- 8 043338 многократным (2Х, 3X, NX), когда каждый нуклеотид референсного генома картирован несколько раз.- 8 043338 multiple (2X, 3X, NX), when each nucleotide of the reference genome is mapped several times.

Цель настоящего изобретения состоит в определении формата представления геномной информации, в котором можно эффективно получать доступ к релевантной информации и транспортировать ее и в котором вес избыточной информации снижен. Раскрытое изобретение имеет следующие элементы новизны.The purpose of the present invention is to define a format for representing genomic information in which relevant information can be efficiently accessed and transported and in which the weight of redundant information is reduced. The disclosed invention has the following novel elements.

1. Риды последовательности классифицируют и разделяют на классы данных в соответствии с результатами выравнивания относительно референсных последовательностей. Такие классификация и разделение обеспечивают возможность выборочного доступа к кодированным данным в соответствии с критериями, относящимися к результатам выравнивания и точности совпадения.1. Sequence reads are classified and divided into data classes according to the alignment results relative to reference sequences. Such classification and separation allows selective access to the encoded data according to criteria related to the alignment results and the accuracy of the match.

2. Классифицированные риды последовательности и связанные метаданные представляют в виде однородных блоков дескрипторов для получения четко различимых источников информации, отличающихся низкой информационной энтропией.2. Classified sequence reads and associated metadata are represented as homogeneous descriptor blocks to obtain clearly distinguishable sources of information with low information entropy.

3. Возможность моделирования каждого отдельного источника информации с помощью четко различимой модели источника, адаптированной к статистическим характеристикам каждого класса, и возможность изменения модели источника в пределах каждого класса и в пределах блока дескрипторов для каждого индивидуально доступного блока данных (блока доступа). Внедрение подходящих контекстноадаптивных вероятностных моделей и соответствующих энтропийных кодеров в соответствии со статистическими свойствами каждой модели источника.3. The ability to model each individual source of information using a clearly distinguishable source model adapted to the statistical characteristics of each class, and the ability to change the source model within each class and within a descriptor block for each individually accessible data block (access block). Implementation of suitable context-adaptive probabilistic models and corresponding entropy encoders according to the statistical properties of each source model.

4. Определение соответствий и зависимостей между блоками дескрипторов для обеспечения возможности выборочного доступа к данным секвенирования и связанным метаданным без необходимости декодирования всех блоков дескрипторов, если требуется не вся информация.4. Define correspondences and dependencies between descriptor blocks to allow selective access to sequencing data and associated metadata without having to decode all descriptor blocks if not all information is required.

5. Кодирование каждого блока класса данных последовательности и связанных метаданных относительно ранее существующих (также называемых внешними) референсных последовательностей или относительно преобразованных референсных последовательностей, получаемых путем применения надлежащих преобразований к ранее существующим референсным последовательностям, чтобы снизить энтропию источников информации блоков дескрипторов. Дескрипторы представляют риды, разделенные на различные классы данных. После любого кодирования ридов с использованием соответствующих дескрипторов относительно ранее существующего референса или преобразованной ранее существующей референсной последовательности встречаемость различных несовпадений можно использовать для определения подходящих преобразований в референсные последовательности с целью нахождения конечного кодированного представления с низкой энтропией и достижения более высокой эффективности сжатия.5. Encoding each sequence data class block and associated metadata relative to pre-existing (also called external) reference sequences or relative to transformed reference sequences obtained by applying appropriate transformations to pre-existing reference sequences to reduce the entropy of the descriptor block information sources. Descriptors represent reads divided into different data classes. After any encoding of reads using appropriate descriptors relative to a pre-existing reference or a transformed pre-existing reference sequence, the occurrence of various mismatches can be used to determine suitable transformations into reference sequences in order to find the final low-entropy encoded representation and achieve higher compression efficiency.

6. Построение одной или более референсных последовательностей (также называемых внутренними референсами для отличия их от ранее существующих, также называемых внешними референсными последовательностями), используемых для кодирования класса ридов, которые демонстрируют степень точности совпадения относительно ранее существующих референсных последовательностей, не удовлетворяющую установленным ограничениям. Такие ограничения устанавливают с той целью, чтобы затраты на кодирование представления в сжатой форме класса ридов, выровненных относительно внутренних референсных последовательностей, и затраты на представление самих внутренних референсных последовательностей были ниже, чем при кодировании невыровненного класса представлений буквально или с использованием внешних референсных последовательностей без преобразований или с преобразованиями. Далее каждый из вышеупомянутых аспектов будет дополнительно описан в подробностях.6. Construction of one or more reference sequences (also called internal references to distinguish them from pre-existing reference sequences, also called external reference sequences) used to encode a class of reads that demonstrate a degree of match accuracy relative to pre-existing reference sequences that does not satisfy specified restrictions. Such restrictions are established so that the cost of encoding a representation in compressed form of a class of reads aligned to internal reference sequences, and the cost of representing the internal reference sequences themselves, is lower than when encoding an unaligned class of representations literally or using external reference sequences without transformations or with transformations. In the following, each of the above-mentioned aspects will be further described in detail.

Классификация ридов последовательности в соответствии с правилами сопоставления.Classification of sequence reads according to matching rules.

Риды последовательности, формируемые секвенаторами, в соответствии с настоящим изобретением подразделяют на шесть различных классов в зависимости от результатов сопоставления при выравнивании относительно одной или более ранее существующих референсных последовательностей.Sequence reads generated by sequencers in accordance with the present invention are divided into six different classes depending on the results of the alignment with one or more pre-existing reference sequences.

При выравнивании ДНК-последовательности нуклеотидов относительно референсной последовательности можно выделить следующие случаи.When aligning a DNA nucleotide sequence relative to a reference sequence, the following cases can be distinguished.

1. Область в референсной последовательности совпадает с ридами последовательности без единой ошибки (т.е. идеальное картирование). Такую последовательность нуклеотидов называют идеально совпадающим ридом или обозначают как класс Р.1. The region in the reference sequence matches the sequence reads without a single error (i.e. perfect mapping). This nucleotide sequence is called a perfect match read or designated as class P.

2. Область в референсной последовательности совпадает с ридом последовательности, причем тип и количество несовпадений определяются только количеством положений, в которых секвенатору, формировавшему этот рид, не удалось определить никакого основания (или нуклеотида). Несовпадения такого типа обозначают буквой N, указывающей на неопределенное нуклеотидное основание. В настоящем документе несовпадение этого типа называют несовпадением n-типа. Такие последовательности принадлежат к ридам класса N. После того как рид классифицирован как принадлежащий классу N, полезно ограничить степень неточности совпадения данной верхней границей и разграничить совпадения, считающиеся действительными и не считающиеся действительными. Поэтому риды, назначенные классу N, также ограничивают путем установки порога (MAXN), определяющего максимально допустимое коли-2. The region in the reference sequence coincides with the sequence read, and the type and number of mismatches are determined only by the number of positions in which the sequencer that generated this read was unable to determine any base (or nucleotide). Mismatches of this type are designated by the letter N, indicating the unidentified nucleotide base. This type of mismatch is referred to herein as an n-type mismatch. Such sequences belong to reads of class N. Once a read has been classified as belonging to class N, it is useful to limit the degree of inaccuracy of the match to a given upper bound and to distinguish between matches that are considered valid and those that are not considered valid. Therefore, reads assigned to class N are also limited by setting a threshold (MAXN), which determines the maximum allowed number of reads.

- 9 043338 чество неопределенных оснований (т.е. оснований, определенных как N), которое может содержать рид. Такая классификация неявно определяет требуемую минимальную точность совпадения (или максимальную степень несовпадения), общую для всех ридов, принадлежащих классу N, при сравнении с соответствующей референсной последовательностью, что дает полезный критерий для применения выборочного поиска данных к сжатым данным.- 9 043338 The number of undefined bases (i.e. bases defined as N) that a read may contain. This classification implicitly defines the required minimum match accuracy (or maximum mismatch rate) common to all reads belonging to class N when compared with the corresponding reference sequence, which provides a useful criterion for applying selective data retrieval to compressed data.

3. Область в референсной последовательности совпадает с ридом последовательности, причем типы и количества несовпадений, определяются количеством положений, в которых секвенатору, формирующему рид, не удалось определить никакого нуклеотидного основания, при наличии таковых (т.е. несовпадение n-типа), плюс количеством положений, в которых было определено основание, отличное от присутствующего в референсе. Такой тип несовпадения, обозначаемый как замена, называют также однонуклеотидной вариацией (ОНВ) или однонуклеотидным полиморфизмом (ОНП). В данном документе несовпадение этого типа называют также несовпадением s-типа. В таком случае рид последовательности называют ридами с М-несовпадением и назначают классу М. Как и в случае класса N, для всех ридов, принадлежащих классу М, полезно ограничить степень неточности совпадения данной верхней границей и разграничить совпадения, считающиеся действительными и не считающиеся действительными. Поэтому риды, назначенные классу М, также ограничивают путем установки набора порогов, одного для количества n несовпадений n-типа (MAXN), при наличии таковых, а другого для количества замен s (MAXS). Третье ограничение представляет собой порог, определяемый любой функцией от обоих чисел n и s, f(n,s). Такое третье ограничение позволяет формировать классы с верхней границей неточности совпадения в соответствии с любым значимым критерием выборочного доступа. Например, без ограничений, f(n,s) может быть (n+s)1/2, или (n+s), или линейным или нелинейным выражением, которое устанавливает границу для максимального уровня неточности совпадения, принятого для рида, принадлежащего классу М. Такая граница представляет собой очень полезный критерий для применения требуемого выборочного поиска данных к сжатым данным при анализе ридов последовательности в различных целях, так как она позволяет устанавливать дополнительную границу для любой возможной комбинации количеств несовпадений n-типа и несовпадений (замен) s-типа сверх простого порога, применяемого к одному типу или другому типу.3. The region in the reference sequence matches the sequence read, with the types and numbers of mismatches determined by the number of positions at which the sequencer generating the read was unable to identify any nucleotide base, if any (i.e. n-type mismatch), plus the number of positions in which a base was defined that was different from that present in the reference. This type of mismatch, referred to as a substitution, is also called a single nucleotide variation (SNV) or single nucleotide polymorphism (SNP). This type of mismatch is also referred to herein as an s-type mismatch. In such a case, the sequence read is called an M-mismatch read and is assigned to class M. As with class N, for all reads belonging to class M, it is useful to limit the degree of match uncertainty to a given upper bound and to distinguish between matches that are considered valid and those that are not considered valid. Therefore, reads assigned to class M are also constrained by setting a set of thresholds, one for the number n of n-type mismatches (MAXN), if any, and another for the number of substitutions s (MAXS). The third constraint is a threshold defined by any function of both n and s, f(n,s). This third constraint allows classes to be formed with an upper bound on the inaccuracy of the match in accordance with any significant criterion for selective access. For example, without limitation, f(n,s) may be (n+s)1/2, or (n+s), or a linear or nonlinear expression that sets a bound for the maximum level of match imprecision assumed for a read belonging to the class M. Such a bound is a very useful criterion for applying the required selective data search to compressed data when analyzing sequence reads for various purposes, since it allows an additional bound to be set for any possible combination of numbers of n-type mismatches and s-type mismatches (substitutions). beyond the simple threshold applied to one type or another type.

4. Четвертый класс составляют риды последовательности, представляющие по меньшей мере одно несовпадение любого типа из числа инсерции, делеции (иначе называемых инделами) и отсечения, плюс (при наличии таковых) любые несовпадения типа, принадлежащего классу N или М. Такие последовательности называют ридами с I-несовпадениями и назначают классу I. Инсерции образуются дополнительной последовательностью из одного или более нуклеотидов, отсутствующих в референсе, но присутствующих в последовательности рида. В данном документе несовпадение этого типа называют несовпадением i-типа. В литературе, когда вставленная последовательность, находится на краях последовательности, ее называют также мягко отсеченной (т.е. нуклеотиды не совпадают с референсной последовательностью, но остаются в выровненных ридах, в отличие от жестко отсеченных нуклеотидов, которые отбрасывают). В данном документе несовпадение этого типа называют несовпадением с-типа. Решения оставлять или отбрасывать нуклеотиды принимаются на этапе средства выравнивания, а не раскрытым в данном изобретении средством классифицирования ридов, которое принимает и обрабатывает риды в том виде, в котором они определены секвенатором или на следующей стадии выравнивания. Делеции представляют собой дыры (отсутствующие нуклеотиды) в риде в сравнении с референсной последовательностью. В данном документе несовпадения этого типа называют несовпадениями d-типа. Как и в случае классов N и М можно и нужно определять передел неточности несовпадения. Определение набора ограничений для класса I основывается на тех же принципах, которые используются для класса М и указаны в последних строках табл. 1. Помимо порога для каждого типа несовпадения, допустимого для данных класса I, определяют дополнительное ограничение с помощью порога, определяемого посредством любой функции от количеств несовпадений n, s, d, i и с - w(n,s,d,i,c). Такое дополнительное ограничение позволяет формировать классы с верхней границей неточности совпадения в соответствии с любым значащим критерием выборочного доступа, определяемым пользователем. В качестве примера, но не ограничения w(n,s,d,i,c) может представлять собой (n+s+d+i+c)1/5, или (n+s+d+i+c), или любое линейное или нелинейное выражение, устанавливающее границу для максимального уровня неточности совпадения, который принимают для рида, принадлежащего классу I. Такая граница представляет собой очень полезный критерий для применения требуемого выборочного поиска данных к сжатым данным при анализе ридов последовательности в различных целях, так как она позволяет устанавливать дополнительную границу для любой возможной комбинации количеств несовпадений, допустимых в ридах класса I сверх простого порога, применяемого к каждому типу допустимого несоответствия.4. The fourth class consists of sequence reads that represent at least one mismatch of any type among insertions, deletions (otherwise known as indels), and truncations, plus (if any) any mismatches of a type belonging to class N or M. Such sequences are called reads with I-mismatches and are assigned to class I. Insertions are formed by an additional sequence of one or more nucleotides not present in the reference but present in the read sequence. This type of mismatch is referred to herein as an i-type mismatch. In the literature, when the inserted sequence is at the edges of the sequence, it is also called soft-clipped (i.e., the nucleotides do not match the reference sequence, but remain in the aligned reads, unlike hard-clipped nucleotides, which are discarded). This type of mismatch is referred to herein as a c-type mismatch. Decisions to retain or discard nucleotides are made at the aligner stage rather than the read classifier disclosed herein, which accepts and processes the reads as determined by the sequencer or at the next alignment stage. Deletions are holes (missing nucleotides) in the read compared to the reference sequence. In this document, mismatches of this type are referred to as d-type mismatches. As in the case of classes N and M, it is possible and necessary to determine the limit of mismatch inaccuracy. The definition of a set of restrictions for class I is based on the same principles that are used for class M and are indicated in the last rows of the table. 1. In addition to the threshold for each type of mismatch allowed for class I data, an additional constraint is defined using a threshold defined by any function of the numbers of mismatches n, s, d, i and c - w(n,s,d,i,c ). This additional constraint allows classes to be formed with an upper bound on the imprecision of the match according to any meaningful user-defined selective access criterion. By way of example, and not limitation, w(n,s,d,i,c) may be (n+s+d+i+c)1/5, or (n+s+d+i+c), or any linear or non-linear expression that sets a bound on the maximum level of match uncertainty that is accepted for a class I read. Such a bound provides a very useful criterion for applying the required selective data search to compressed data when analyzing sequence reads for various purposes, since it allows an additional bound to be set for any possible combination of numbers of mismatches allowed in Class I reads, beyond the simple threshold applied to each type of mismatch allowed.

5. Пятый класс включает в себя все риды, для которых не найдено ни одного картирования, считающегося действительным (т.е. не удовлетворяющие набору правил, определяющих верхнюю границу для максимальной неточности совпадения, как указано в табл. 1) для каждого класса данных при сравнении с референсной последовательностью. Такие последовательности называют некартированными относительно референсных последовательностей и классифицирую как принадлежащие классу U.5. The fifth class includes all reads for which no mappings are found that are considered valid (i.e., do not satisfy the set of rules that define the upper bound for the maximum imprecision of the match, as indicated in Table 1) for each data class at comparison with the reference sequence. Such sequences are called unmapped to reference sequences and are classified as belonging to class U.

- 10 043338- 10 043338

Классификация пар ридов в соответствии с правилами сопоставления.Classification of pairs of reads in accordance with matching rules.

Классификация, определенная в предыдущем разделе, относится к одиночным ридами последовательности. В случае технологий секвенирования, формирующих риды парами (т.е. технологий Illumina Inc.), в отношении двух составляющих ридов которых известно, что они разделены неизвестной последовательностью переменной длины, целесообразно рассматривать отнесение всей пары к одному классу данных. Рид, который спарен с другим ридом, называют его парным ридом.The classification defined in the previous section applies to single sequence reads. For sequencing technologies that generate reads in pairs (i.e., Illumina Inc. technologies) where the two component reads are known to be separated by an unknown sequence of variable length, it is appropriate to consider assigning the entire pair to a single data class. A read that is paired with another read is called a paired read.

Если оба спаренных рида принадлежат одному и тому же классу, назначение пары классу очевидно: всею пару назначают тому же классу, что и любую из частей пары (т.е. Р, N, М, I, U). Если два рида принадлежат разным классам, но ни одно из них не принадлежит классу U, то всю пару назначают классу с наивысшим приоритетом, определяемым согласно следующему выражению:If both paired reads belong to the same class, the assignment of the pair to the class is obvious: the entire pair is assigned to the same class as any of the parts of the pair (i.e. P, N, M, I, U). If two reads belong to different classes, but neither belongs to class U, then the entire pair is assigned to the class with the highest priority, determined according to the following expression:

P<N<M<I, где класс Р обладает самым низким приоритетом, а класс I - самым высоким приоритетом.P<N<M<I, where class P has the lowest priority and class I has the highest priority.

В случае когда одно из ридов принадлежит классу U, а его парный рид принадлежит любому из классов Р, N, М, I, определяют шестой класс как класс НМ, что означает наполовину картированный.In the case when one of the reads belongs to class U, and its paired read belongs to any of the classes P, N, M, I, define the sixth class as class HM, which means half mapped.

Определение такого специфического класса ридов мотивировано тем фактом, что его используют в попытке определить гэпы или неизвестные области, существующие в референсных геномах (называемые также малоизвестными или неизвестными областями). Такие области восстанавливают путем картирования пар на краях с использованием парного рида, который может быть картирован на неизвестные области. Затем некартированный рид пары используют для построения так называемых контигов неизвестной области, как показано на фиг. 28. Поэтому обеспечение выборочного доступа только к парам ридов такого типа сильно сокращает соответствующую вычислительную нагрузку, позволяя обрабатывать такие данные, происходящие из больших количеств наборов данных, значительно эффективнее, чем с использованием решений известного уровня техники, потребовавших бы полной проверки.The definition of such a specific class of reads is motivated by the fact that it is used in an attempt to identify gaps or unknown regions that exist in reference genomes (also called obscure or unknown regions). Such regions are recovered by mapping pairs at the edges using pairwise reads, which can be mapped to unknown regions. The unmapped read pairs are then used to construct so-called unknown region contigs, as shown in FIG. 28. Therefore, providing selective access to only pairs of reads of this type greatly reduces the associated computational load, allowing such data, originating from large numbers of data sets, to be processed much more efficiently than using prior art solutions that would require full verification.

В приведенной ниже таблице обобщены правила сопоставления, применяемые к ридам с целью определения класса данных, которому принадлежит каждый рид. Правила определены в первых пяти столбцах таблицы в форме наличия или отсутствия типов несовпадений (несовпадений типов n, s, d, i и с). В шестом столбце приведены правила в виде максимального порога для каждого типа несовпадения и какой-либо функции (при наличии таковой) f(n,s) и w(n,s,d,i,c) от возможных типов несовпадения.The table below summarizes the matching rules applied to reads to determine the data class to which each read belongs. The rules are defined in the first five columns of the table in the form of the presence or absence of mismatch types (mismatch types n, s, d, i, and c). The sixth column provides rules in the form of a maximum threshold for each type of mismatch and any function (if any) f(n,s) and w(n,s,d,i,c) of the possible types of mismatch.

Таблица 1Table 1

Тип несовпадений и набор ограничений, которым должно удовлетворять каждый рид последовательности, относимый к классам данных, определенным в данном описанииThe type of mismatch and set of constraints that must be satisfied by each sequence read assigned to the data classes defined in this description

Количество и типы несовпадений, обнаруживаемых при сопоставлении рида с референсной последовательностью Number and types of mismatches detected when comparing a read to a reference sequence Набор ограничений на точность совпадения A set of restrictions on the accuracy of the match Класс назначения Destination class Кол-во Неизвестных оснований («Ν») Number of Unknown bases (“Ν”) Кол-во замен Number of replacements Кол-во делеций Number of deletions Кол-во инсерций Qty insertions Кол-во отсеченных оснований Number of bases cut 0 0 0 0 0 0 0 0 0 0 0 0 Р R η > 0 η > 0 0 0 0 0 0 0 0 0 η < ΜΑΧΝ η < ΜΑΧΝ N N η > ΜΑΧΝ η > ΜΑΧΝ и And η > 0 η > 0 s>0 s>0 0 0 0 0 0 0 η < ΜΑΧΝ и s < MAXS и f(n,s) < МАХМ η < ΜΑΧΝ and s < MAXS and f(n,s) < МАХМ М M η > ΜΑΧΝ или s > MAXS или f(n,s) > МАХМ η > ΜΑΧΝ or s > MAXS or f(n,s) > МАХМ и And

- 11 043338- 11 043338

η > 0 η > 0 s>0 s>0 d > 0* d > 0* i > 0* i > 0* с> 0* c>0* η < ΜΑΧΝ и s < MAXS и d < MAXD и i < MAXI и с < MAXC w(n,s,d,i,c) < MAXTOT η < ΜΑΧΝ and s < MAXS and d < MAXD and i < MAXI and c < MAXC w(n,s,d,i,c) < MAXTOT 1 1 *Должно быть по меньшей мере одно несовпадение типа d, i, с (т. е. d > 0, или i > 0, или с > 0) *There must be at least one mismatch of type d, i, c (i.e. d > 0, or i > 0, or c > 0) d>0 d>0 i>0 i>0 с > 0 c > 0 η > MAXN или s > MAXS или d > MAXD или i > MAXI или η > MAXN or s > MAXS or d > MAXD or i > MAXI or и And c > MAXC w(n,s,d,i,c) > MAXTOT c > MAXC w(n,s,d,i,c) > MAXTOT

Правила сопоставления для разделения классов данных ридов N, М и I на подклассы с различными степенями точности совпадения.Matching rules for dividing N, M, and I read data classes into subclasses with varying degrees of matching accuracy.

Классы данных типа N, М и I, которые определены в предыдущих разделах, могут быть дополнительно разделены на произвольное количество различных подклассов с разными степенями точности совпадения. Такая возможность является важным техническим преимуществом в обеспечении разделения на более мелкие подмножества и, как следствие, намного более эффективного выборочного доступа к каждому классу данных. В качестве примера, но не ограничения для разбиения класса N на к подклассов (подкласс N1, ..., подкласс Nk) необходимо определить вектор с соответствующими компонентами MAXN1, MAXN2, ..., MAXN(k-1), MAXNW при условии, что MAXN1<MAXN2<...<MAXN(k_D<MAXN, и назначить каждый рид подклассу самого низкого ранга, который удовлетворяет ограничениям, указанным в табл. 1, при выполнении оценки для каждого элемента вектора. Это показано на фиг. 29, где блок (291) классифицирования данных содержит кодер класса Р, N, M, I, U, НМ и кодеры для аннотаций и метаданных. Кодер класса N конфигурируют с помощью вектора 292 порогов MAXN1-MAXNk, который формирует к подклассов данных N (296).The data classes of types N, M and I, which are defined in the previous sections, can be further divided into an arbitrary number of different subclasses with different degrees of matching accuracy. This capability is an important technical advantage in providing partitioning into smaller subsets and, as a result, much more efficient selective access to each class of data. As an example, but not a limitation, to partition a class N into k subclasses (subclass N1, ..., subclass N k ), it is necessary to define a vector with the corresponding components MAXN1, MAXN2, ..., MAXN(k-1), MAXN W at provided that MAXN1<MAXN2<...<MAXN(k_ D <MAXN, and assign each read to the lowest-ranking subclass that satisfies the constraints specified in Table 1 while performing an evaluation for each element of the vector. This is shown in FIG. 29, where the data classification block (291) contains a P, N, M, I, U, HM class encoder and encoders for annotations and metadata.The N class encoder is configured using a threshold vector 292 MAXN1-MAXN k that generates k data subclasses N (296).

В случае классов типа М и I применяют такой же принцип путем определения вектора с теми же свойствами для МАХМ и МАХТОТ, соответственно, и используют компоненты каждого вектора в качестве порога, чтобы проверять, удовлетворяют ли ограничению функции f(n,s) и w(n,s,d,i,c). Как и в случае подклассов типа N, назначают подклассу самого низкого ранга, удовлетворяющему ограничению. Количество подклассов для класса каждого типа является независимой величиной и допускается любая комбинация подразделений. Это показано на фиг. 29, где кодер 293 класса М и кодер 294 класса I конфигурируют, соответственно, с помощью вектора порогов MAXM1-MAXMj и MAXTOT1-MAXTOTh. Эти два кодера формируют, соответственно, j подклассов (297) данных М и h подклассов (298) данных I.In the case of classes of type M and I, apply the same principle by defining a vector with the same properties for MAHM and MAHTOT, respectively, and use the components of each vector as a threshold to check whether the functions f(n,s) and w( n,s,d,i,c). As with subclasses of type N, assign to the lowest-ranking subclass that satisfies the constraint. The number of subclasses for each class type is independent and any combination of subdivisions is permitted. This is shown in Fig. 29, where the M class encoder 293 and the I class encoder 294 are configured, respectively, using the threshold vector MAXM 1 -MAXM j and MAXTOT1 -MAXTOT h . These two encoders respectively generate j subclasses (297) of M data and h subclasses (298) of I data.

Если два рида в паре отнесены к одному и тому же подклассу, то пара принадлежит этому же подклассу.If two reads in a pair are assigned to the same subclass, then the pair belongs to the same subclass.

Если два рида в паре отнесены к подклассам разных классов, то пара принадлежит подклассу класса с более высоким приоритетом в соответствии со следующим выражением:If two reads in a pair are classified as subclasses of different classes, then the pair belongs to the subclass of the class with higher priority according to the following expression:

N<M<I, где N имеет самый низкий приоритет, а I имеет самый высокий приоритет.N<M<I, where N has the lowest priority and I has the highest priority.

Если два рида принадлежат разным подклассам одного из классов N, М или I, то пара принадлежит подклассу с самым высоким приоритетом в соответствии со следующим выражениям:If two reads belong to different subclasses of one of the classes N, M or I, then the pair belongs to the subclass with the highest priority according to the following expressions:

N1<N2<_<Nk,N1<N2<_<Nk,

M1<M2<_<Mj, l|<I2<—lh, где самый высокий индекс имеет наивысший приоритет.M1<M 2 <_<Mj, l|<I2<—lh, where the highest index has the highest priority.

Преобразования внешних референсных последовательностей.Transformations of external reference sequences.

Несовпадения, найденные для ридов, отнесенных к классам N, М и I, могут быть использованы для создания преобразованных референсов, которые будут применены для более эффективного сжатия представления рида.Mismatches found for reads classified as N, M, and I can be used to create transformed references that will be used to more efficiently compress the read representation.

Риды, классифицированные как принадлежащие классам N, М или I (относительно ранее существующей (т.е. внешней) референсной последовательности, обозначенной как RS0), могут быть кодированы относительно преобразованной референсной последовательности RS1 в соответствии с встречаемостью действительных несовпадений относительно преобразованного референса. Например, если ридMin, принадлежащий классу М (обозначен как i-й рид класса М), содержит несовпадения относительно референсной последовательности RSn, то после преобразования ридMin=ридP i(n+1) может быть полученоReads classified as being in classes N, M, or I (relative to a preexisting (i.e., external) reference sequence designated RS0) may be coded relative to the converted reference sequence RS1 according to the occurrence of actual mismatches relative to the converted reference. For example, if a read M in belonging to class M (designated as the i-th read of class M) contains mismatches relative to the reference sequence RSn, then after converting read M in = read P i ( n+1 ) can be obtained

- 12 043338 с помощью A(Refn)=Refn+1, где А является преобразованием из референсной последовательности RSn в референсную последовательность RSn+1. На фиг. 19 показан пример того, как риды, содержащие несовпадения (принадлежащие классу М) относительно референсной последовательности 1 (RS1), могут быть преобразованы в риды, идеально совпадающие с референсной последовательностью 2 (RS2), полученной из RS1 путем изменения оснований, соответствующих положениям несовпадения. Они остаются классифицированными и их кодируют вместе с другими ридами в одном и том же блоке доступа, но кодирование выполняют с использованием только дескрипторов и значений дескрипторов, необходимых для рида класса Р. Это преобразование можно представить в виде следующего выражения:- 12 043338 using A(Ref n )=Ref n+1 , where A is the conversion from reference sequence RS n to reference sequence RS n+1 . In fig. Figure 19 shows an example of how reads containing mismatches (belonging to class M) relative to reference sequence 1 (RS1) can be converted into reads that perfectly match reference sequence 2 ( RS2 ) derived from RS1 by changing the bases corresponding to the positions of the mismatch . They remain classified and are encoded along with other reads in the same access block, but the encoding is done using only the descriptors and descriptor values needed for the class P read. This transformation can be represented as the following expression:

RS2=A(RS1)RS2=A(RS1)

Когда представление преобразования А, которое формирует RS2, будучи примененным к RS1, и представление ридов относительно RS2 соответствуют более низкой энтропии, чем представление ридов класса М относительно RS1, целесообразно передавать представление преобразования А и соответствующее представление рида относительно RS2, поскольку достигается более высокое сжатие представления данных.When the transform representation A that generates RS2, when applied to RS1, and the read representation relative to RS2 correspond to lower entropy than the class M read representation relative to RS1, it is appropriate to transmit the transform representation A and the corresponding read representation relative to RS2, since higher representation compression is achieved data.

Кодирование преобразования А для передачи в сжатом потоке двоичных данных требует определения двух дополнительных синтаксических элементов синтаксиса, как указано в приведенной ниже таблице.Encoding Transform A for transmission in a compressed binary data stream requires defining two additional syntax syntax elements, as specified in the table below.

Дескрипторы Descriptors Семантика Semantics Комментарии Comments rftp rftp Положение преобразования референса Reference conversion position Положения отличия между референсом и контигом, используемым для предсказания Positions of difference between the reference and the contig used for prediction rftt rftt Тип преобразования референса Conversion type reference Тип отличия между референсом и контигом, используемым для предсказания Такой же синтаксис описан для дескриптора snpt, определенного далее в этом документе. Type of difference between reference and contig used for prediction The same syntax is described for the snpt descriptor defined later in this document.

На фиг. 26 приведен пример порядка применения преобразования референса для уменьшения количества несовпадений, подлежащих кодированию, на картированных ридах.In fig. Figure 26 shows an example of how to apply reference transformation to reduce the number of mismatches to be coded on mapped reads.

Необходимо отметить последствия применения преобразования к референсу в некоторых случаях:It is important to note the consequences of applying a transformation to a reference in some cases:

возможно внесение несовпадений в представления ридов, которые отсутствовали бы при сравнении с референсом до применения преобразования;it is possible to introduce inconsistencies into the read representations that would not be present when compared with the reference before applying the transformation;

возможно изменение типов несоответствий; рид может содержать А вместо G, в то время как все остальные риды содержат С вместо G, но несовпадения остаются в том же положении;it is possible to change the types of nonconformities; a read may contain A instead of G while all other reads contain C instead of G, but the mismatches remain in the same position;

различные классы данных и подмножества данных каждого класса данных могут относиться к одним и тем же преобразованным референсным последовательностям или к референсным последовательностям, полученным применением разных преобразований к одной и той же ранее существующей референсной последовательности.different data classes and data subsets of each data class may refer to the same transformed reference sequences or to reference sequences obtained by applying different transformations to the same pre-existing reference sequence.

На фиг. 27 также показан пример того, как риды могут менять тип кодирования с одного класса данных на другой с помощью надлежащего набора дескрипторов (например, с использованием дескрипторов класса Р для кодирования рида из класса М) после применения преобразования и представления рида с помощью преобразованного референса. Это происходит, например, когда преобразование меняет все основания, соответствующие несовпадениям рида, на основания, фактически присутствующие в риде, тем самым фактически преобразуя рид, принадлежащее классу М (если сравнивать с исходной не преобразованной референсной последовательностью), в виртуальный рид класса Р (если сравнивать с преобразованным рефренсом). Определение набора дескрипторов, используемых для каждого класса данных, приведено в следующих разделах.In fig. Figure 27 also shows an example of how reads can change encoding type from one data class to another using the appropriate set of descriptors (for example, using class P descriptors to encode a read from class M) after applying a transformation and representing the read using the transformed reference. This occurs, for example, when a transformation changes all bases corresponding to read mismatches to bases actually present in the read, thereby effectively converting a read belonging to class M (if compared to the original untransformed reference sequence) into a virtual read of class P (if compare with the transformed reference). The definition of the set of descriptors used for each data class is given in the following sections.

На фиг. 30 показано, как разные классы данных могут использовать один и тот же преобразованный референс R1=A0(R0) (300) для повторного кодирования ридов, или к каждому классу данных могут быть по отдельности применены разные преобразования AN (301), AM (302), AI (303).In fig. Figure 30 shows how different data classes can use the same transformed reference R1=A 0 (R0) (300) to re-encode reads, or different transformations A N (301), AM ( can be applied to each data class separately 302), AI (303).

Определение информации, необходимой для представления ридов последовательности в виде блоков дескрипторов.Determine the information needed to represent sequence reads as descriptor blocks.

После того как классифицирование ридов завершено определением классов, дальнейшая обработка состоит из определения набора различных дескрипторов, которые представляют остальную информацию, позволяющую восстанавливать последовательность рида, когда ее представляют как картируемую на данную референсную последовательность. Структура данных этих дескрипторов требует хранения глобальных параметров и метаданных, которые будут использованы механизмом декодирования. Эти данные структурированы в заголовке геномного набора данных, описанном в приведенной ниже таблице. Набор данных определяют как совокупность элементов кодирования, необходимых для восстановления геномной информации, относящейся к одному прогону секвенирования генома и всему последующему анализу. Если один и тот же образец для генома секвенируют дважды за два разных прогона, полученные данные будут кодированы в двух разных наборах данных.Once the classification of reads is completed by defining classes, further processing consists of defining a set of different descriptors that represent the remaining information allowing the sequence of the read to be reconstructed when presented as mapping to a given reference sequence. The data structure of these descriptors requires storing global parameters and metadata that will be used by the decoding engine. This data is structured in a genomic dataset header, described in the table below. A dataset is defined as the collection of coding elements required to recover the genomic information associated with one genome sequencing run and all subsequent analysis. If the same sample for a genome is sequenced twice in two different runs, the resulting data will be encoded in two different data sets.

- 13 043338- 13 043338

Структура заголовка геномного набора данныхGenomic dataset header structure

Таблица 1аTable 1a

Элемент Element Тип Type Описание Description Уникальный ИД Unique ID Массив Array Уникальный идентификатор Unique identificator байтов bytes для кодированного содержимого for coded content Главная торговая марка Main brand Массив Array Основная + Main + байтов bytes дополнительная версии additional version Дополнительная версия Additional version Массив байтов Array bytes алгоритма кодирования coding algorithm Размер заголовка Header size Целое число Integer Размер в байтах всего кодированного содержимого Size in bytes of total encoded content Длина ридов Read length Целое число Integer Размер ридов в случае постоянной длины ридов. Специальное значение (например, 0) зарезервировано для ридов переменной длины Size of reads in case of constant read length. Special meaning (eg 0) reserved for variable-length reads Счетчик реф. Ref. counter Целое число Integer Количество используемых референсных последовательностей Number of reference sequences used Счетчики блоков доступа Access block counters Массив Array Общее количество Total байтов bytes кодированных блоков coded blocks (например, (For example, доступа на референсную access to reference целые числа) whole numbers) последовательность subsequence Идентификаторы референсов Reference IDs Массив Array Уникальные Unique байтов bytes идентификаторы для референсных последовательностей identifiers for reference sequences for (i=0; i<Ref_count; i++) { for (i=0; i<Ref_count; i++) { Reference_genome: RefJ D Reference_genome: RefJD Строк: строка String: string Однозначный ИД в виде строки символов, определяющий референсные последовательности, используемые в данном наборе данных A unique ID as a character string, defining the reference sequences used in a given data set ί for (i=0; i<Ref_count; i++) { ί for (i=0; i<Ref_count; i++) { Блоки реф. Ref blocks Массив Array Количество кодированных Number of coded байтов bytes блоков на каждый референс blocks for each reference } } Размер метки набора данных Data set label size Целое число Integer Размер следующего элемента Next size element

- 14 043338- 14 043338

Метка набора данных Data set label Строка Line Строка символов, используемая для идентификации набора данных String of characters used to identify a data set Тип набора данных Data set type Целое число Integer Тип данных, кодированных в наборе данных (например, выровненные, невыровненные) Type of data encoded in the dataset (e.g., aligned, unaligned) Таблица главного индекса Положения выравнивания первого рида в каждом блоке (блоке доступа). Т. е. младшее положение первого рида на референсном геноме для каждого блока из шести классов. 1 на класс pos (шесть) на референсную последовательность Main index table The alignment positions of the first read in each block (access block). That is, the lowest position of the first read on the reference genome for each block of six classes. 1 per pos class (six) per reference sequence Массив байтов Array bytes Это многомерный массив, поддерживающий произвольный доступ к блокам доступа This is a multi-dimensional array that supports random access to access blocks Список меток Подмножество главного заголовка, указывающее • количество меток; • для каждой метки: о ИД метки; о количество референсных последовательностей, имеющих отношение к метке; о для каждой референсной последовательности: идентификатор референса; количество областей, охватываемых меткой; для каждой области: • ИД класса; • начальное положение в геномном диапазоне; • конечное положение в геномном диапазоне. Label list A subset of the main title, indicating • number of tags; • for each tag: o Tag ID; o number of reference sequences related to the label; o for each reference sequences: reference identifier; number of areas, covered by the label; for each area: • Class ID; • starting position in the genomic range; • terminal position in the genomic range. Массив байтов Array bytes Это список меток, каждая из которых представлена в виде многомерного массива для поддержки выборочно доступа к конкретным геномным областям или подобластям, или объединениям областей или подобластей This is a list of tags, each of which is represented as a multidimensional array to support selective access to specific genomic regions or subregions, or unions of areas or subareas Начальное положение и конечное положение можно заменить «номерами блоков», вместе с ИД референсной последовательности и ИД класса составляющими трехмерный вектор для адресации координат таблицы главного индекса The start position and end position can be replaced by "block numbers", together with the reference sequence ID and class ID, forming a three-dimensional vector to address the coordinates of the main index table Набор параметров Parameter set Массив байтов Array bytes Параметры кодирования, используемые для конфигурирования процесса кодирования и отправляемые в декодер Encoding options used for configuring the encoding process and sent to the decoder

Рид последовательности (т.е. сегмент ДНК), относящееся к данной референсной последовательности, может быть выражено с помощью следующих элементов.A sequence read (i.e., a segment of DNA) related to a given reference sequence can be expressed using the following elements.

Начальное положение на референсной последовательности (pos).Starting position on the reference sequence (pos).

Флаг, сигнализирующий, нужно ли последовательность рассматривать как обратный комплемент относительно референса (rcomp).A flag indicating whether the sequence should be treated as reverse complement to the reference (rcomp).

Расстояние до парного рида в случае парных ридов (pair).Distance to a paired read in the case of paired reads.

- 15 043338- 15 043338

Значение длины рида в случае технологии секвенирования с получением ридов переменной длины (len). В случае постоянной длины ридов длину ридов, связанную с каждым ридом, очевидно можно опустить и сохранить в главном заголовке файла.The read length value in the case of sequencing technology producing reads of variable length (len). In the case of a constant read length, the read length associated with each read can obviously be omitted and stored in the main file header.

Для каждого несовпадения положение (nmis для класса N, snpp для класса М и indp для класса I);For each mismatch, position (nmis for class N, snpp for class M, and indp for class I);

тип несовпадения (отсутствует в классе N, snpt в классе М, indt в классе I).type of mismatch (absent in class N, snpt in class M, indt in class I).

Флаги, указывающие определенные характеристики ридов последовательности, такие как шаблон, имеющий множество сегментов при секвенировании;Flags indicating certain characteristics of sequence reads, such as a pattern having multiple segments when sequenced;

каждый сегмент, надлежащим образом выровненный в соответствии со средством выравнивания; некартированный сегмент;each segment properly aligned according to the alignment means; unmapped segment;

следующий некартированный сегмент в шаблоне;next unmapped segment in template;

сигнализация о первом или последнем сегменте;first or last segment signaling;

непрохождение контроля качества;failure to pass quality control;

дубликат ПЦР или оптический дубликат;PCR duplicate or optical duplicate;

вспомогательное выравнивание;assisted alignment;

дополнительное выравнивание.additional alignment.

Строка мягко отсеченных нуклеотидов, если присутствуют (indc в классе I).A string of soft-clipped nucleotides, if present (indc in class I).

Флаг, указывающий референс, использованный для выравнивания и сжатия (например, внутренний референс для класса U), если применимо (дескриптор rtype).A flag indicating the reference used for alignment and compression (e.g. internal reference for class U), if applicable (rtype descriptor).

Для класса U дескриптор indc указывает те части ридов (как правило, края), которые не соответствуют заданному набору ограничений на точность совпадения с внутренними референсами.For class U, the indc descriptor indicates those parts of the reads (usually edges) that do not meet a given set of restrictions on the accuracy of matches with internal references.

Дескриптор ureads используют для буквального кодирования ридов, которые невозможно картировать ни на один имеющийся референс, будь то ранее существующая (т.е. внешняя, такая как фактический референсный геном) или внутренняя референсная последовательность.The ureads descriptor is used to literally encode reads that cannot be mapped to any available reference, be it a pre-existing (i.e. external, such as the actual reference genome) or internal reference sequence.

Данная классификация создает группы дескрипторов (дескрипторы), которые могут быть использованы для однозначного представления ридов геномной последовательности. В приведенной ниже таблице обобщены дескрипторы, необходимые для каждого класса ридов, выровненных относительно внешних (т.е. ранее существующих) или внутренних (т.е. построенных) референсов.This classification creates groups of descriptors (descriptors) that can be used to unambiguously represent genomic sequence reads. The table below summarizes the descriptors required for each class of reads aligned to external (i.e. pre-existing) or internal (i.e. constructed) references.

Таблица 2table 2

Определенные блоки дескрипторов для каждого класса данныхDefined descriptor blocks for each data class

P P N N M M 1 1 и And HM H.M. pos pos X X X X X X X X X X X X pair pair X X X X X X X X rcomp rcomp X X X X X X X X X X X X flags flags X X X X X X X X X X X X rlen rlen X X X X X X X X X X X X nmis nmis X X snpp snpp X X X X snpt snpt X X X X indp indp X X X X indt indt X X X X indc indc X X X X X X ureads ureads X X X X rtype rtype X X rgroup rgroup X X X X X X X X X X X X mmap mmap X X X X X X X X X X msar msar X X X X X X X X X X mscore mscore X X X X X X X X X X

Риды, принадлежащие классу Р, отличаются тем, что они могут быть идеально восстановлены с помощью лишь положения, информации об обратном комплементе и смещении между парными ридами В случае когда они были получены с помощью технологии секвенирования, обеспечивающей парноконцевые риды с длинной вставкой, некоторых флагов и длины рида.Reads belonging to the P class are distinguished by the fact that they can be perfectly reconstructed using only position, reverse complement information and offset between paired reads in the case when they were obtained using sequencing technology that provides paired-end reads with a long insert, some flags and read length.

В следующем разделе подробно описано определение этих дескрипторов для классов Р, N, М и I, а для класса U они описаны в последующем разделе.The next section details the definition of these descriptors for classes P, N, M and I, and for class U they are described in a subsequent section.

Класс НМ применим только к парам ридов и представляет собой особый случай, в котором один рид принадлежит классу Р, N, М или I, а другое принадлежат классу U.The HM class applies only to pairs of reads and represents a special case in which one read belongs to class P, N, M, or I, and the other belongs to class U.

Дескриптор положения.Position descriptor.

- 16 043338- 16 043338

В блоке положения (pos) хранится только положение картирования первого картированного рида в виде абсолютного значения на референсной последовательности.The position block (pos) stores only the mapping position of the first mapped read as an absolute value on the reference sequence.

Все остальные дескрипторы положения принимают значение, выражающее разницу относительно предыдущего положения. Такое моделирование источника информации, определяемого последовательностью дескрипторов положения рида, как правило, отличается пониженной энтропией, особенно для процессов секвенирования, формирующих результаты с высоким покрытием.All other position descriptors take a value expressing the difference relative to the previous position. This modeling of the source of information, determined by the sequence of read position descriptors, typically has reduced entropy, especially for sequencing processes that generate high-coverage results.

Например, на фиг. 1 показано, как после описания начального положения первого выравнивания как положения 10 000 на референсной последовательности положение второго рида, начинающегося в положении 10 180, описана как 180. При высоких покрытиях (>50х) большинство дескрипторов вектора положения демонстрируют очень высокую встречаемость низких значений, таких как 0 и 1 и другие малые целые числа. На фиг. 1 показано, как положения трех парных ридов описаны в блоке pos.For example, in FIG. Figure 1 shows how, after describing the starting position of the first alignment as position 10,000 on the reference sequence, the position of the second read, starting at position 10,180, is described as 180. At high coverages (>50x), most position vector descriptors show a very high occurrence of low values, such like 0 and 1 and other small integers. In fig. Figure 1 shows how the positions of three paired reads are described in the pos block.

Дескриптор обратного комплемента.Descriptor for reverse complement.

Каждый рид пары ридов, создаваемых с помощью технологий секвенирования, может происходить из любой из двух цепочек генома секвенируемого органического образца.Each read of a pair of reads generated by sequencing technologies can come from either of the two strands of the genome of the organic sample being sequenced.

Однако в качестве референсной последовательности используют только одну из двух цепочек. На фиг. 2 показано, как в паре ридов один рид (рид 1) может происходить из одной цепочки, а другой рид (рид 2) может происходить из другой цепочки.However, only one of the two chains is used as a reference sequence. In fig. Figure 2 shows how in a pair of reads, one read (read 1) can come from one strand, and the other read (read 2) can come from a different strand.

Если цепочку 1 используют в качестве референсной последовательности, то рид 2 может быть кодирован в качестве обратного комплемента соответствующего фрагмента на цепочке 1. Это показано на фиг. 3.If strand 1 is used as a reference sequence, then read 2 can be encoded as the reverse complement of the corresponding fragment on strand 1. This is shown in FIG. 3.

В случае сдвоенных ридов возможны четыре комбинации пар из прямого и обратного парного комплемента пар. Это показано на фиг. 4. Блок rcomp кодирует четыре возможные комбинации.In the case of paired reads, four combinations of pairs are possible from forward and reverse pairwise complement pairs. This is shown in Fig. 4. The rcomp block encodes the four possible combinations.

То же самое кодирование используют для информации об обратном комплементе ридов, принадлежащих классам N, М, Р и I. Чтобы обеспечить выборочный доступ к различным классам данных, информацию об обратных комплементах ридов, принадлежащих четырем классам, кодируют в разных блоках, как показано в табл. 2.The same encoding is used for the reverse complement information of reads belonging to classes N, M, P and I. To provide selective access to different classes of data, the reverse complement information of reads belonging to the four classes is encoded in different blocks, as shown in Table . 2.

Дескриптор информации о спаривании.Mating information descriptor.

Дескриптор спаривания сохраняют в блоке pair. Такой блок хранит дескрипторы, кодирующие информацию, необходимую для восстановления возникающих пар ридов, когда используемая технология секвенирования создает риды парами. Хотя на момент раскрытия изобретения подавляющее большинство данных секвенирования формируют с использованием технологии, создающей парные риды, не все технологии являются таковыми. Именно поэтому наличие данного блока необязательно для восстановления всей информации данных секвенирования, если рассматриваемая технология секвенирования геномных данных не дает информации о парных ридах.The pairing descriptor is stored in a pair block. Such a block stores descriptors that encode the information necessary to reconstruct the resulting pairs of reads when the sequencing technology used creates reads in pairs. Although at the time of disclosure the vast majority of sequencing data are generated using paired-end read technology, not all technologies are. That is why the presence of this block is not necessary to restore all the information from the sequencing data if the genomic data sequencing technology in question does not provide information about paired reads.

Определения.Definitions.

Парный рид: рид, связанный с другим ридом в паре ридов (например, в предыдущем примере рид 2 является парным ридом рида 1);Paired read: a read that is associated with another read in a read pair (for example, in the previous example, read 2 is a paired read of read 1);

расстояние спаривания: количество положений нуклеотидов референсной последовательности, которые разделяют одно положение в первом риде (якорь спаривания, например, последний нуклеотид первого рида) от одного положения второго рида (например, первого нуклеотида второго рида);pairing distance: the number of nucleotide positions of the reference sequence that separate one position in the first read (pairing anchor, e.g., the last nucleotide of the first read) from one position in the second read (e.g., the first nucleotide of the second read);

наиболее вероятное расстояние спаривания (MPPD): это наиболее вероятное расстояние спаривания, выраженное в количестве положений нуклеотидов;most probable pairing distance (MPPD): this is the most probable pairing distance expressed in the number of nucleotide positions;

расстояние спаривания положений (PPD): PPD представляет собой способ выражения расстояния спаривания в количестве ридов, отделяющих один рид от его соответствующего парного рида, присутствующего в определенном блоке дескрипторов положения;position pairing distance (PPD): PPD is a way of expressing the pairing distance in terms of the number of reads separating one read from its corresponding paired read present in a particular position descriptor block;

наиболее вероятное расстояние спаривания положений (MPPPD): это наиболее вероятное количество ридов, отделяющих один рид от его парного рида, присутствующего в определенном блоке дескрипторов положения;Most Probable Position Pairing Distance (MPPPD): This is the most likely number of reads separating one read from its paired read present in a particular position descriptor block;

ошибка спаривания положений (РРЕ): определяется как разница между MPPD или MPPPD и фактическоий положением парного рида;position pairing error (PPE): defined as the difference between MPPD or MPPPD and the actual position of the paired read;

якорь спаривания: положение последнего нуклеотида первого рида в паре, используемая в качестве точки отсчета для вычисления расстояния до парного рида в количестве положений нуклеотидов или количестве положений рида.pairing anchor: The position of the last nucleotide of the first read in a pair, used as a reference point for calculating the distance to the paired read in number of nucleotide positions or number of read positions.

На фиг. 5 показано, как вычисляют расстояние спаривания среди пар ридов.In fig. Figure 5 shows how the pairing distance among pairs of reads is calculated.

Блок дескрипторов pair представляет собой вектор ошибок спаривания, вычисленных как количество ридов, которые нужно пропустить, чтобы достичь парного рида первого рида пары относительно определенного расстояния спаривания декодирования.A block of pair descriptors is a vector of pairing errors, calculated as the number of reads that must be skipped to reach the paired read of the first read of the pair relative to a certain decoding pairing distance.

На фиг. 6 показан пример порядка вычисления ошибок спаривания, как в виде абсолютного значения, так и в виде разностного вектора (отличающегося низкой энтропией при высоких покрытиях).In fig. Figure 6 shows an example of how pairing errors are calculated, both as an absolute value and as a difference vector (characterized by low entropy at high coverages).

Те же самые дескрипторы используют для информации о спаривании ридов, принадлежащих классам N, М, Р и I. Чтобы обеспечить выборочный доступ к разным классам данных, информацию о спаривании ридов, принадлежащих этим четырем классам, кодируют в разных блоках, как изображено на фиг. 8The same descriptors are used for the pairing information of reads belonging to classes N, M, P and I. To provide selective access to different classes of data, the pairing information of reads belonging to these four classes is encoded in different blocks, as depicted in FIG. 8

- 17 043338 (класс N), фиг. 10, 12 и 14 (класс М) и фиг. 15 и 16 (класс I).- 17 043338 (class N), fig. 10, 12 and 14 (class M) and fig. 15 and 16 (Class I).

Информация о спаривании в случае ридов, картированных на разные референсные последовательности.Pairing information for reads mapped to different reference sequences.

В процессе картирования ридов последовательности на референсную последовательность нередко первый риж в паре картируют на одну референсную последовательность (например, хромосому 1), а второй - на другую референсную последовательность (например, хромосому 4). В этом случае описанную выше информацию об образовании пар необходимо объединять с дополнительной информацией, относящейся к референсной последовательности, используемой для картирования одного из ридов. Это достигают путем кодированияIn the process of mapping sequence reads to a reference sequence, often the first read in a pair is mapped to one reference sequence (for example, chromosome 1), and the second is mapped to another reference sequence (for example, chromosome 4). In this case, the pairing information described above must be combined with additional information related to the reference sequence used to map one of the reads. This is achieved by coding

1) зарезервированного значения (флага), указывающего, что пару картируют на две разных последовательности (разные значения указывают, ли рид 1 или рид 2 на последовательность, которая не кодирована в настоящее время);1) a reserved value (flag) indicating that the pair is being mapped to two different sequences (the different values indicate whether read 1 or read 2 is to a sequence that is not currently encoded);

2) уникального идентификатора референса, относящегося к идентификаторам референса, кодированным в главной структуре заголовка, как описано в табл. 1а;2) a unique reference identifier related to the reference identifiers encoded in the main header structure, as described in Table. 1a;

3) третий элемент содержит информацию о картировании на референс, указанный в пункте 2, и выражен в виде смещения относительно последней кодированного положения.3) the third element contains information about mapping to the reference specified in paragraph 2, and is expressed as an offset relative to the last encoded position.

Пример данного сценария приведен на фиг. 7.An example of this scenario is shown in Fig. 7.

Поскольку на фиг. 7 рид 4 не картирован на текущую кодируемую референсную последовательность, геномный кодер сигнализирует об этой информации, создавая дополнительные дескрипторы в блоке pair. В примере, показанном ниже, рид 4 пары 2 картируют на референс № 4, тогда как в данный момент картируют референс № 1. Эту информацию кодируют с помощью 3 компонентов:Since in FIG. 7 read 4 is not mapped to the current encoded reference sequence, the genomic encoder signals this information by creating additional descriptors in the pair block. In the example shown below, read 4 of pair 2 is mapped to reference no. 4, while reference no. 1 is currently being mapped. This information is encoded using 3 components:

1) одно специальное зарезервированное значение кодируют как расстояние спаривания (в данном случае 0xffffff);1) one special reserved value is encoded as the pairing distance (in this case 0xffffff);

2) второй дескриптор обеспечивает ИД референса, который перечислен в главного заголовке (в данном случае 4);2) the second descriptor provides the reference ID, which is listed in the main header (in this case 4);

3) третий элемент содержит информацию о картировании на соответствующий референс (170).3) the third element contains information about mapping to the corresponding reference (170).

Дескрипторы несовпадения для ридов класса N.Mismatch descriptors for class N reads.

Класс N включает в себя все риды, в которых имеются только несовпадения n-типа - вместо основания А, С, G или Т в качестве определенного основания обнаружено N. Все другие основания ридов идеально совпадают с референсной последовательностью.Class N includes all reads in which there are only n-type mismatches - instead of a base A, C, G or T, N was found as the specific base. All other bases of the reads perfectly match the reference sequence.

На фиг. 8 показано, как положение N в риде 1 кодируют в виде абсолютного положения в риде 1, или виде разностного положения относительно предыдущего N в этом же риде;In fig. 8 shows how the position of N in read 1 is encoded as an absolute position in read 1, or as a differential position relative to the previous N in the same read;

положение N в риде 2 кодируют в виде абсолютного положения в риде 2 + длина рида 1, или разностного положения относительно предыдущей N.the position of N in read 2 is encoded as the absolute position in read 2 + the length of read 1, or the difference position relative to the previous N.

В блоке nmis кодирование каждой пары ридов завершают специальным символом разделителя.In the nmis block, the encoding of each pair of reads is terminated with a special delimiter character.

Дескрипторы, кодирующие замены (несовпадения и ОНП), инсерции и делеции.Descriptors coding for substitutions (mismatches and SNPs), insertions and deletions.

Замену определяют как наличие в картированном риде другого основания нуклеотида по сравнению с присутствующим в референсной последовательности в этом же положении. На фиг. 9 показаны примеры замен в картированной паре ридов. Каждую замену кодируют в виде положения (блок snpp) и типа (блок snpt). В зависимости от статистической встречаемости замен, инсерций или делеций можно определять разные модели источника соответствующих дескрипторов и формировать символы, кодируемые в соответствующем блоке.A substitution is defined as the presence of a different nucleotide base in the mapped read compared to that present in the reference sequence at the same position. In fig. Figure 9 shows examples of substitutions in a mapped pair of reads. Each substitution is coded as position (snpp block) and type (snpt block). Depending on the statistical occurrence of substitutions, insertions or deletions, different models of the source of the corresponding descriptors can be determined and the characters encoded in the corresponding block can be generated.

Модель источника 1: замены в виде положений типов.Source model 1: replacements in the form of type provisions.

Дескрипторы положений замен.Substitution position descriptors.

Положение замены вычисляют аналогично значениям блока nmis, а именно следующее.The replacement position is calculated similarly to the values of the nmis block, namely the following.

В риде 1 замены кодируют как абсолютное положение в риде 1, или как разностное положение относительно предыдущей замены в этом же риде.In read 1, replacements are encoded as an absolute position in read 1, or as a differential position relative to the previous replacement in the same read.

В риде 2 замены кодируют как абсолютное положение в риде 2 + длину рида 1, или как разностное положение относительно предыдущей замены.In read 2, replacements are encoded as the absolute position in read 2 + the length of read 1, or as a difference position relative to the previous replacement.

На фиг. 10 показано, как замены (где в данном положении картирования символ в риде отличается от символа в референсной последовательности) кодируют в видеIn fig. 10 shows how substitutions (where at a given mapping position the character in the read differs from the character in the reference sequence) are encoded as

1) положения несовпадения относительно начала рида, или относительно предыдущего несовпадения (дифференциальное кодирование);1) the position of the mismatch relative to the beginning of the read, or relative to the previous mismatch (differential coding);

2) типа несовпадения, представленного в виде кода, вычисленного, как описано на фиг. 10.2) the type of mismatch, represented as a code calculated as described in FIG. 10.

В блоке snpp кодирование каждой пары ридов завершают специальным символом разделителя.In the snpp block, the encoding of each pair of reads is terminated with a special delimiter character.

- 18 043338- 18 043338

Дескрипторы типов замен.Substitution type descriptors.

Для класса М (и для класса I, как описано в следующих разделах) несовпадения кодируют посредством индекса (перемещения справа налево) от фактического символа, присутствующего в референсной последовательности, к соответствующему символу замены, присутствующему в риде (А, С, G, T, N, Z). Например, если в выровненном риде присутствует С вместо Т, которая присутствует в этом же положении в референсной последовательности, индекс несовпадения будет обозначен как 4. Процесс декодирования считывает кодированный дескриптор, нуклеотид в данном положении на референсе и перемещается слева направо для извлечения декодированного символа. Например, 2, принятое для положения, где в референсе присутствует G, будет декодировано как N. На фиг. 11 показаны все возможные ситуации и соответствующие символы кодирования. Чтобы свести к минимуму энтропию дескрипторов, каждому индексу могут быть назначены явно отличающиеся друг от друга и контекстно-адаптивные вероятностные модели в соответствии со статистическими свойствами каждого типа замены для каждого класса данных.For class M (and for class I, as described in the following sections), mismatches are encoded by index (moving from right to left) from the actual character present in the reference sequence to the corresponding replacement character present in the read (A, C, G, T, N, Z). For example, if an aligned read contains a C instead of a T that is present at the same position in the reference sequence, the mismatch index will be designated as 4. The decoding process reads the encoded descriptor, the nucleotide at a given position in the reference, and moves from left to right to extract the decoded character. For example, 2 received for a position where G is present in the reference will be decoded as N. In FIG. 11 shows all possible situations and the corresponding encoding symbols. To minimize the entropy of descriptors, each index can be assigned distinctly distinct and context-adaptive probabilistic models according to the statistical properties of each replacement type for each data class.

В случае принятия кодов неоднозначности IUPAC результаты механизм замены будут теми же, однако вектор замены расширен следующим образом:If IUPAC ambiguity codes are accepted, the results of the replacement mechanism will be the same, however the replacement vector is expanded as follows:

S={A, С, G, T, N, Z, M, R, W, S, Y, K, V, Н, D, В}S={A, C, G, T, N, Z, M, R, W, S, Y, K, V, H, D, B}

На фиг. 12 приведен пример кодирования типов замен в блоке snpt. Некоторые примеры кодирования замен при внедрении кодов неоднозначности IUPAC приведены на фиг. 13. Еще один пример индексов замен приведен на фиг. 14.In fig. Figure 12 shows an example of encoding types of replacements in the snpt block. Some examples of encoding substitutions when implementing IUPAC ambiguity codes are shown in FIG. 13. Another example of substitution indices is shown in FIG. 14.

Кодирование инсерций и делеций.Coding of insertions and deletions.

Для класса I несовпадения и делеций кодируют посредством индексов (перемещения справа налево) от фактического символа, присутствующего в референсной последовательности, к соответствующему символу замены, присутствующему в риде {А, С, G, T, N, Z}. Например, если в выровненном риде присутствует С вместо Т в том же положении в референсе, индексом несовпадения будет 4. В случае когда в риде присутствует делеция в положении, где в референсе присутствует А, кодированным символом будет 5. Процесс декодирования считывает кодированный дескриптор, нуклеотид в данном положении на референсе и переходит слева направо для извлечения декодированного символа. Например, 3, принятое для положения, где в референсе присутствует G, будет декодировано как Z.For class I, mismatches and deletions are encoded by indices (moving from right to left) from the actual character present in the reference sequence to the corresponding substitution character present in the read {A, C, G, T, N, Z}. For example, if an aligned read contains a C instead of a T at the same position in the reference, the mismatch index will be 4. In the case where the read contains a deletion at a position where an A is present in the reference, the encoded symbol will be 5. The decoding process reads the encoded descriptor, nucleotide at a given position on the reference and moves from left to right to extract the decoded symbol. For example, 3 taken for a position where G is present in the reference will be decoded as Z.

Для вставленных А, С, G, Т, N инсерций кодируют как 6, 7, 8, 9, 10, соответственно. На фиг. 15 показан пример, как кодируют замены, инсерции и делеции в парах ридов класса I. Для поддержки полного набора кодов неоднозначности IUPAC вектор заменыFor inserted A, C, G, T, N insertions are coded as 6, 7, 8, 9, 10, respectively. In fig. Figure 15 shows an example of how substitutions, insertions, and deletions are encoded in class I read pairs. To support the full set of IUPAC ambiguity codes, the substitution vector

S={A, С, G, T, N, Z} следует заменить наS={A, C, G, T, N, Z} should be replaced with

S={A, С, G, T, N, Z, M, R, W, S, Y, K, V, Н, D, В}, как описано в предыдущем абзаце для несовпадений. В данном случае, если вектор замены имеет 16 элементов, коды инсерции должны иметь разные значения, а именно 16, 17, 18, 19, 20. Этот механизм проиллюстрирован на фиг. 16.S={A, C, G, T, N, Z, M, R, W, S, Y, K, V, H, D, B}, as described in the previous paragraph for mismatches. In this case, if the replacement vector has 16 elements, the insertion codes should have different values, namely 16, 17, 18, 19, 20. This mechanism is illustrated in FIG. 16.

Модель источника 2: один блок на тип замены и инделы.Source model 2: one block per replacement type and indels.

Для некоторых статистик данных может быть разработана отличающаяся от описанной в предыдущем разделе модель кодирования замен и инделов, которая приводит к источнику с более низкой энтропией. Такая модель кодирования является альтернативой методам, описанным выше только для несовпадений и для несовпадений и инделов. В данном случае определяют один блок данных для каждого возможного символа замены (5 без кодов IUPAC, 16 с кодами IUPAC) плюс один блок для делеций и еще 4 блока для инсерций. Для простоты объяснения, но не в качестве ограничения для применения модели, дальнейшее описание будет сконцентрировано на случае, когда коды IUPAC не поддерживаются.For some data statistics, a different model for encoding substitutions and indels than described in the previous section may be developed, resulting in a source with lower entropy. This coding model is an alternative to the methods described above for mismatches only and for mismatches and indels. In this case, one data block is defined for each possible substitution character (5 without IUPAC codes, 16 with IUPAC codes) plus one block for deletions and another 4 blocks for insertions. For ease of explanation, but not as a limitation on the application of the model, the following description will focus on the case where IUPAC codes are not supported.

На фиг. 17 показано, как каждый блок содержит положение несовпадений или инсерций одного типа. Если в кодируемой паре ридов нет несовпадений или инсерций данного типа, в соответствующем блоке кодируют 0. Чтоб декодер мог начать процесс декодирования для блоков, описанных в данном разделе, заголовок каждого блока доступа содержит флаг, указывающий посредством сигнализации первый блок, подлежащий кодированию. В примере на фиг. 18 первый элемент, подлежащий декодированию, находится в положении 2 в блоке С. Когда в паре ридов нет несовпадений или инделов данного типа, в соответствующие блоки добавляют 0. Когда на стороне декодирования указатель декодирования для каждого блока указывает на значение 0, процесс декодирования переходит к следующей паре ридов.In fig. 17 shows how each block contains the position of mismatches or insertions of the same type. If there are no mismatches or insertions of this type in the read pair being encoded, a 0 is encoded in the corresponding block. To enable the decoder to begin the decoding process for the blocks described in this section, the header of each access block contains a flag indicating by signaling the first block to be encoded. In the example in FIG. 18, the first element to be decoded is at position 2 in block C. When there are no mismatches or indels of this type in a read pair, 0 is added to the corresponding blocks. When on the decode side, the decode pointer for each block points to the value 0, the decoding process proceeds to next pair of reads.

Кодирование дополнительных флагов сигнализации.Coding of additional alarm flags.

Для каждого класса данных, введенного выше (Р, М, N, I), может потребоваться кодирование дополнительной информации о характере кодируемых ридов. Эта информация может относиться, например, к эксперименту секвенирования (например, указание вероятности дублирования рида) или может выражать некоторые характеристики картирования рида (например, первое или второе в паре). В контексте настоящего изобретения эту информацию кодируют в отдельном блоке для каждого класса данных. Основное преимущество такого подхода состоит в возможности выборочного доступа к этой информации только в случае необходимости и только в требуемой области референсной последовательности. Другие примеры использования таких флагов:For each data class introduced above (P, M, N, I), additional information about the nature of the reads being encoded may need to be encoded. This information may relate, for example, to a sequencing experiment (eg, indicating the probability of a duplicate read) or may express some characteristics of the read mapping (eg, first or second in a pair). In the context of the present invention, this information is encoded in a separate block for each data class. The main advantage of this approach is the ability to selectively access this information only when necessary and only in the required region of the reference sequence. Other examples of using such flags:

- 19 043338 парные риды;- 19 043338 paired reads;

рид, картированный в правильной паре;read mapped to the correct pair;

некартированный рид или парный рид;unmapped read or paired read;

рид или парный рид из обратной цепочки;read or paired read from the reverse chain;

первый/второй рид в паре;first/second read in a pair;

не основной рид;not the main read;

рид не проходит проверки качества платформы/поставщика;The read does not pass the platform/vendor quality check;

рид представляет собой дубликат ПЦР или оптический дубликат;the read is a PCR duplicate or an optical duplicate;

дополнительное выравнивание.additional alignment.

Дескрипторы для класса U и построение внутренних референсов для некартированных ридов класса U и класса НМDescriptors for class U and construction of internal references for unmapped reads of class U and class HM

В случае ридов, принадлежащих классу U или некартированной паре класса НМ, поскольку они не могут быть картированы ни на одну внешнюю референсную последовательность, удовлетворяющую заданному набору ограничений на точность совпадения для принадлежности классу Р, N, М или I, для сжатого представления ридов, принадлежащих этим классам данных, строят и используют одну или более внутренних референсных последовательностей.In the case of reads belonging to class U or an unmapped pair of class HM, since they cannot be mapped to any external reference sequence that satisfies a given set of match accuracy constraints for belonging to class P, N, M or I, for a compressed representation of reads belonging to these data classes, construct and use one or more internal reference sequences.

К построению подходящих внутренних референсов возможны несколько подходов, таких как, для примера, но не ограничения следующие.Several approaches are possible to constructing suitable internal references, such as, for example, but not limited to the following.

Разделение некартированных ридов на кластеры, содержащие риды, у которых имеется общая непрерывная геномная последовательность по меньшей мере минимального размера (сигнатура). Каждый кластер может быть единственным образом идентифицирован по его сигнатуре, как показано на фиг. 22.Dividing unmapped reads into clusters containing reads that share a common contiguous genomic sequence of at least a minimum size (signature). Each cluster can be uniquely identified by its signature, as shown in FIG. 22.

Сортировка ридов в любом имеющем смысл порядке (например, в лексикографическом порядке) и использование последних N ридов в качестве внутреннего референса для кодирования (Ν+1)-γο. Этот способ показан на фиг. 23.Sorting the reads in any meaningful order (for example, lexicographic order) and using the last N reads as the internal reference for (Ν+1)-γο encoding. This method is shown in Fig. 23.

Выполнение так называемой сборки заново на подмножестве ридов класса U для получения возможности выравнивания и кодирования всех или соответствующего подмножества ридов, принадлежащих этому классу в соответствии с заданными ограничениями на точность совпадения или новым набором ограничений.Performing a so-called de-assembly on a subset of reads of class U to be able to align and encode all or a corresponding subset of the reads belonging to that class according to specified match accuracy constraints or a new set of constraints.

Если кодируемый рид может быть картирован на внутренний референс, удовлетворяющий заданному набору ограничений на точность совпадения, информацию, необходимую для восстановления рида после сжатия, кодируют с помощью дескрипторов, которые могут быть одного из следующих типов.If the read being encoded can be mapped to an internal reference that satisfies a given set of match accuracy constraints, the information needed to reconstruct the read after compression is encoded using descriptors, which can be one of the following types.

1. Начальное положение совпадающей части на внутреннем референсе в виде номера рида во внутреннем референсе (блок pos). Это положение можно кодировать в виде абсолютного или разностного значения относительно ранее кодированного рида.1. The initial position of the matching part on the internal reference in the form of a read number in the internal reference (pos block). This position can be encoded as an absolute or differential value relative to a previously encoded read.

2. Смещение начального положения от начала соответствующего рида во внутреннем референсе (блок pair). Например, в случае постоянной длины рида фактического положения будет pos *length+pair.2. Offset of the starting position from the beginning of the corresponding read in the internal reference (pair block). For example, in the case of a constant read length, the actual position would be pos *length+pair.

3. Возможно присутствующие несовпадения, кодированные в виде положения (блок snpp) и типа (блок snpt).3. Mismatches may be present, coded as position (snpp block) and type (snpt block).

4. Те части ридов (обычно края, указываемые посредством pair), которые не совпадают с внутренним референсом (или совпадают, но с количеством несовпадений выше заданного порога), кодируют в блоке indc. Для снижения энтропии несовпадений, кодируемых в блоке indc, можно применить операцию заполнения к краям части используемого внутреннего референса, как показано на фиг. 24. Наиболее подходящая стратегия заполнения может быть выбрана кодером в соответствии со статистическими свойствами обрабатываемых геномных данных. Возможные следующие стратегии заполнения:4. Those parts of the reads (usually edges indicated by pair) that do not match the internal reference (or match, but with a number of mismatches above a given threshold) are encoded in the indc block. To reduce the entropy of the mismatches encoded in the indc block, a padding operation can be applied to the edges of the portion of the internal reference being used, as shown in FIG. 24. The most appropriate padding strategy can be selected by the encoder according to the statistical properties of the genomic data being processed. Possible filling strategies are:

a) без заполнения;a) without filling;

b) постоянный шаблон заполнения, выбираемый в соответствии с его частотой в текущих кодируемых данных;b) a constant padding pattern selected according to its frequency in the current data being encoded;

c) переменный шаблон заполнения в соответствии со статистическими свойствами текущего контекста, определенными посредством последних N кодированных ридов.c) a variable padding pattern according to the statistical properties of the current context determined by the last N coded reads.

Конкретный тип стратегии заполнения будет сигнализирован специальными значениями в заголовке блока indc.The specific type of padding strategy will be signaled by special values in the indc block header.

5. Флаг, который указывает, кодирован ли рид с помощью внутреннего самоформируемого референса, внешнего референса или без референса (блок rtype).5. A flag that indicates whether the read is encoded using an internal self-generated reference, an external reference, or without a reference (rtype block).

6. Рид, которые кодируют буквально (ureads). Пример такой процедуры кодирования приведен на фиг. 24.6. Reads, which encode literally (reads). An example of such an encoding procedure is shown in Fig. 24.

На фиг. 25 показано альтернативное кодирование накартированных ридов на внутренний референс, где дескрипторы pos+pair заменены дескриптором pos со знаком. В данном случае pos выражает расстояние, в единицах положений, на референсной последовательности - положения левого крайнего нуклеотида рида n относительно положения крайнего левого нуклеотида рида n-1.In fig. Figure 25 shows an alternative encoding of mapped reads to an internal reference, where the pos+pair descriptors are replaced by a signed pos descriptor. In this case, pos expresses the distance, in units of positions, on the reference sequence - the position of the leftmost nucleotide of read n relative to the position of the leftmost nucleotide of read n-1.

В случае наличия ридов переменной длины класса U для сохранения длины каждого рида используют дополнительный дескриптор rlen.In the case of variable-length reads of class U, an additional rlen descriptor is used to store the length of each read.

Этот подход к кодированию можно расширить для поддержки N начальных положений для каждогоThis coding approach can be extended to support N starting positions for each

- 20 043338 рида, чтобы риды могли быть разбиты на две и более положений референса. Это может быть особенно полезно для кодирования ридов, формируемых с помощью тех технологий секвенирования (например, от Pacific Bioscience), которые создают очень длинные риды (свыше 50К оснований), в которых обычно присутствуют повторяющиеся структуры, образуемые за счет циклов в технологии секвенирования. Такой же подход можно использовать и для кодирования химерных ридов последовательности, определяемых как риды, которые выравнены на две разные положения генома с небольшим перекрытием или без него.- 20 043338 reads, so that reads can be split into two or more reference positions. This can be particularly useful for encoding reads generated by sequencing technologies (such as those from Pacific Bioscience) that produce very long reads (over 50K bases) that typically contain repetitive structures generated by cycling in the sequencing technology. The same approach can also be used to encode chimeric sequence reads, defined as reads that are aligned to two different positions in the genome with little or no overlap.

Ясно, что описанный выше подход может быть применен за рамками простого класса U и мог бы быть применен к любому блоку, содержащему дескрипторы, относящиеся к положениям ридов (блоки pos).It is clear that the approach described above can be applied beyond the simple class U and could be applied to any block containing descriptors related to read positions (pos blocks).

Дескриптор оценки выравнивания.Alignment evaluation descriptor.

Дескриптор mscore обеспечивает оценку для каждого выравнивания. В контексте настоящего изобретения его используют для представления оценки картирования/выравнивания для каждого рида, формируемого средствами выравнивания ридов геномной последовательности.The mscore descriptor provides a score for each alignment. In the context of the present invention, it is used to represent the mapping/alignment score for each read generated by the genomic sequence read alignment tools.

Оценку выражают с помощью степени и мантиссы. Количество битов, используемых для представления степени и мантиссы, передают в качестве параметров конфигурации. В качестве примера, но не ограничения в табл. 2а показано, как это определено в стандарте IEEE RFC 754 для 11-битовой степени и 52-битовой мантиссы.The evaluation is expressed using a power and a mantissa. The number of bits used to represent the exponent and mantissa are passed as configuration parameters. As an example, but not a limitation, the table. Figure 2a shows how it is defined in IEEE RFC 754 for an 11-bit exponent and a 52-bit mantissa.

Оценку каждого выравнивания можно представить с помощью одного бита знака (S);The score of each alignment can be represented using a single sign bit (S);

битов для степени (Е);bits for degree (E);

битов для мантиссы (М).bits for mantissa (M).

Таблица 2аTable 2a

Оценки выравнивания могут быть выражены в виде 64-битовых значений двойной точности с плавающей запятойAlignment estimates can be expressed as 64-bit double precision floating point values

Основание (radix), предназначенное для вычисления оценок, равно 10, поэтому оценка = -1s х 10е х МThe radix used to calculate scores is 10, so score = -1 s x 10 e x M

Группы ридов.Read groups.

Во время процесса секвенирования могут быть получены секвенированные риды разных типов. В качестве примера, но не ограничения типы могут относиться к разным секвенированным образцам, разным экспериментам, разным конфигурациям секвенатора.During the sequencing process, different types of sequenced reads can be obtained. By way of example, and not limitation, types may apply to different sequenced samples, different experiments, or different sequencer configurations.

После секвенирования и выравнивания эту информацию сохраняют в соответствии с настоящим изобретением с помощью специально предназначенного дескриптора под названием rgroup. rgroup - это метка, связанная с каждым кодированным ридом, которая позволяет декодирующему устройству разделять декодированные риды на группы после декодирования.Once sequenced and aligned, this information is stored in accordance with the present invention using a dedicated descriptor called rgroup. rgroup is a label associated with each encoded read that allows the decoder to separate the decoded reads into groups after decoding.

Дескрипторы для множественных выравниванийDescriptors for multiple alignments

Следующие дескрипторы определяют для поддержки множественных выравниваний. Для случая наличия сплайсированных ридов в настоящем изобретении определен глобальный флаг spliced_reads_flag, который должен быть установлен на 1.The following descriptors are defined to support multiple alignments. For the case of spliced reads, the present invention defines a global flag spliced_reads_flag, which should be set to 1.

Дескриптор mmap.mmap handle.

Дескриптор mmap используют для сигнализации о том, сколько положений ридов или крайнего левого рида пары были выровнены. Геномная запись, содержащая множественные выравнивания, связана с одним многобайтовым дескриптором mmap.The mmap descriptor is used to signal how many read positions or the leftmost read of a pair have been aligned. A genomic record containing multiple alignments is associated with a single multi-byte mmap descriptor.

Первые два байта дескриптора mmap представляют целое число без знака N, которое относится к риду как к единому сегменту (если в кодированном наборе данных нет сплайсов) или, напротив, ко всем сегментам, на которые был сплайсирован рид для нескольких возможных выравниваний (если в наборе данных присутствуют сплайсы).The first two bytes of the mmap descriptor represent an unsigned integer N that refers to the read as a single segment (if there are no splices in the encoded dataset) or, alternatively, to all segments into which the read was spliced for multiple possible alignments (if there are no splices in the encoded dataset) data contains splices).

Значение N указывает, сколько значений дескриптора pos кодированы для шаблона в данной записи. После N следуют одно или более целых чисел без знака Mi, как описано ниже.The value N indicates how many pos descriptor values are encoded for the pattern in a given entry. N is followed by one or more unsigned integers Mi, as described below.

Цепочечность множественных выравниваний.Chaining of multiple alignments.

Дескриптор rcomp, описанный в настоящем изобретении, используют для указания цепочечности каждого выравнивания рида с помощью синтаксиса, определенного в настоящем изобретении.The rcomp descriptor described in the present invention is used to indicate the chainness of each read alignment using the syntax defined in the present invention.

Оценки множественных выравниваний.Multiple alignment estimates.

В случае множественных выравниваний каждому выравниванию назначают один дескриптор mscore, определенный в настоящем изобретении.In the case of multiple alignments, each alignment is assigned one mscore descriptor as defined in the present invention.

Множественные выравнивания без сплайсов.Multiple alignments without splicing.

Если в блоке доступа нет сплайсов, spliced_reads_flag не установлен.If there are no splices in the access block, spliced_reads_flag is not set.

При парноконцевом секвенировании дескриптор mmap состоит из 16-битового целого числа безFor paired-end sequencing, the mmap descriptor consists of a 16-bit integer without

- 21 043338 знака N, за которым следуют одно или более 8-битовых целых чисел без знака Mi, причем i принимает значения от 1 до количества полных выравниваний первого (в данном случае крайнего левого) рида. Для каждого выравнивания первого рида, сплайсированного или нет, Mi используют для сигнализации о том, сколько сегментов использованы для выравнивания второго рида (в данном случае без сплайсов оно равно количеству выравниваний) и, кроме того, сколько значений дескриптора pair кодированы для данного выравнивания первого рида.- 21 043338 sign N followed by one or more 8-bit unsigned integers Mi, with i taking values from 1 to the number of complete alignments of the first (in this case leftmost) read. For each alignment of the first read, spliced or not, Mi is used to signal how many segments are used to align the second read (in this case without splicing it is equal to the number of alignments) and, furthermore, how many pair descriptor values are encoded for that alignment of the first read .

Σ™Σ™

Значения Mi используют для вычисления Р - ' 1 , которое указывает количество выравниваний второго рида.The Mi values are used to calculate P - ' 1 , which indicates the number of alignments of the second read.

Специальное значение Mi (Mi=0) указывает, что i-e выравнивание крайнего левого рида спарено с выравниванием крайнего правого рида, которое уже спарено с k-м выравниванием крайнего левого рида, причем k<i (в таком случае новое выравнивание не обнаружено, что согласуется с приведенным выше уравнением). В качестве примера в самых простых случаях, если имеются одно выравнивание для крайнего левого рида и два альтернативных выравнивания для крайнего правого рида, N будет равно 1, a M1 будет равно 2;The special value Mi (Mi=0) indicates that the i-e alignment of the leftmost read is paired with the alignment of the rightmost read, which is already paired with the k-th alignment of the leftmost read, with k<i (in which case no new alignment is found, which is consistent with the above equation). As an example, in the simplest cases, if there is one alignment for the leftmost read and two alternative alignments for the rightmost read, N will be equal to 1 and M1 will be equal to 2;

если обнаружены два альтернативных выравнивания для крайнего левого рида, но лишь одно для крайнего правого рида, N будет равно 2, M1 будет равно 1 и M2 будет равно 0;if two alternative alignments are found for the leftmost read, but only one for the rightmost read, N will be equal to 2, M1 will be equal to 1, and M2 will be equal to 0;

когда Mi равно 0, соответствующе значение pair должно быть привязано к существующему выравниванию второго рида;when Mi is 0, the corresponding pair value should be bound to the existing alignment of the second read;

в противном случае возникнет синтаксическая ошибка, и выравнивание будет считаться нарушенным.otherwise, a syntax error will occur and the alignment will be considered broken.

Пример. Если первый рид имеет два положения картирования, а второй рид только одну, N равно 2, M1 равно 1 и М2 равно 0, как указано выше. Если за этим следует другое альтернативное вспомогательное картирование для всего шаблона, N будет равно 3, а M3 будет равно 1.Example. If the first read has two mapping positions and the second read only one, N is 2, M 1 is 1, and M 2 is 0, as above. If this is followed by another alternative auxiliary mapping for the entire pattern, N will be equal to 3 and M 3 will be equal to 1.

Фиг. 39 иллюстрирует значение N, Р и Mi в случае множественных выравниваний без сплайсов, а на Error! Reference source not found. На фиг. 10 показано, как дескрипторы pos, pair и mmap используют для кодирования информации о множественных выравниваниях.Fig. 39 illustrates the meaning of N, P and Mi in the case of multiple alignments without splices, and in Error! Reference source not found. In fig. Figure 10 shows how the pos, pair, and mmap descriptors are used to encode multiple alignment information.

В отношении фиг. 40 справедливо следующее:Referring to FIG. 40 the following is true:

Крайнее правый рид имеет Р =1 -1 выравниваний.The rightmost read has P = 1 - 1 alignments.

Некоторые значения Mi могут быть =0, когда i-e выравнивание крайнего левого рида спарено с выравниванием крайнего правого рида, которое уже же спарено с k-м выравниванием крайнего левого рида, причем k<i.Some values of Mi can be =0 when the i-e alignment of the leftmost read is paired with the alignment of the rightmost read, which is already paired with the k-th alignment of the leftmost read, and k<i.

Может присутствовать одно зарезервированное значение дескриптора pair для сигнализации о принадлежности выравниваний другим диапазонам блоков доступа. При наличии такового оно всегда является первым дескриптором pair для текущей записи.One reserved pair descriptor value may be present to signal alignments that belong to other access block ranges. If present, it is always the first pair descriptor for the current entry.

Множественные выравнивания со сплайсами.Multiple alignments with splices.

При кодировании набора данных со сплайсированными ридами дескриптор msar позволяет представлять длину и цепочечность сплайсов.When encoding a data set with spliced reads, the msar descriptor allows the length and stringiness of the splices to be represented.

После декодирования дескрипторов mmap и msar декодер знает, сколько ридов или пар ридов было кодировано для представления нескольких картирований, и сколько сегментов составляют каждое картирование каждого рида или пары ридов. Это показано на фиг. 41 и 42.After decoding the mmap and msar descriptors, the decoder knows how many reads or pairs of reads were encoded to represent multiple mappings, and how many segments constitute each mapping of each read or pair of reads. This is shown in Fig. 41 and 42.

В отношении фиг. 41 справедливо следующее.Referring to FIG. 41 the following is true.

Крайний левый рид имеет N1 выравниваний с N сплайсами (N1<N).The leftmost read has N1 alignments with N splices (N1<N).

N представляет количество сплайсов, присутствующих во всех выравниваниях крайнего левого рида, и его кодируют в качестве первого значения дескриптора mmap.N represents the number of splices present in all leftmost read alignments and is encoded as the first value of the mmap descriptor.

,νι,νι

ΣΜί Σ Μί

Крайний правый рид имеет Р =11 сплайсов, где Mi представляет собой количество сплайсов крайнего правого рида, который связан в пару с i-м выравниванием крайнего левого рида (1<i<N1). Другими словами, Р представляет количество сплайсов крайнего правого рида и вычисляется с помощью N значений, следующих за первым значением дескриптора mmap.The rightmost read has P = 11 splices, where Mi is the number of splices of the rightmost read that is paired with the ith alignment of the leftmost read (1<i<N1). In other words, P represents the number of splices of the rightmost read and is calculated using the N values following the first value of the mmap descriptor.

N1 и N2 представляют количество выравниваний первого и второго рида и вычисляются с помощью N + Р значений дескриптора msar.N1 and N2 represent the number of alignments of the first and second read and are calculated using the N + P values of the msar descriptor.

В отношении фиг. 42 справедливо следующее.Referring to FIG. 42 the following is true.

Крайний левый рид имеет N1 выравниваний с N сплайсами (N1<N). Если N1=N и N2=P, сплайсы будут отсутствовать.The leftmost read has N1 alignments with N splices (N1<N). If N 1 =N and N 2 =P, there will be no splices.

JV1JV1

ΣΜί Σ Μί

Крайний правый рид имеет Р - 1 -1 сплайсов (tj 1<]<Р) = и N2 (N2<P) выравниваний.The rightmost read has P - 1 - 1 splices (tj 1<]<P) = and N2 (N 2 <P) alignments.

Количество дескрипторов pair можно вычислить какThe number of pair descriptors can be calculated as

- 22 043338- 22 043338

NP=Max(N1, P)+M0, где М0 - количество Mi со значением 0;NP=Max(N 1 , P)+M 0 , where M 0 is the number of Mi with value 0;

NP должно приращиваться на 1, и в таком случае один специальный дескриптор pair указывает на присутствие выравниваний в других БД.NP must be incremented by 1, in which case one special pair descriptor indicates the presence of alignments in other databases.

Оценка выравнивания.Alignment assessment.

Дескриптор mscore позволяет посредством сигнализации указывать оценку выравнивания. При одноконцевом секвенировании он будет иметь N1 значений на шаблон; при парноконцевом секвенировании он будет иметь значение для каждого выравнивания всего шаблона (количество различных выравнивание первого рида и, возможно, плюс количество дополнительных выравниваний второго рида, т.е. когда Mi-1>0).The mscore descriptor allows the alignment score to be indicated by signaling. With single-end sequencing it will have N1 values per template; with paired-end sequencing it will have a value for each alignment of the entire template (the number of different alignments of the first read and possibly plus the number of additional alignments of the second read, i.e. when Mi-1>0).

Количество оценок= MAX(N1, N2)+Mo, где М0 представляет общее количество Mi=0.Number of evaluations= MAX(N1, N 2 )+M o , where M 0 represents the total number Mi=0.

В настоящем изобретении с каждым выравниванием могут быть связаны более одного значения оценки. Количество выравниваний сигнализирует параметр конфигурации as_depth.In the present invention, more than one score value may be associated with each alignment. The number of alignments is signaled by the as_depth configuration parameter.

Дескрипторы для множественных выравниваний без сплайсов.Descriptors for multiple alignments without splicing.

Таблица 3Table 3

Определение количества дескрипторов, необходимых для представления множественных выравниваний в одной геномной записи в случае множественных выравниваний без сплайсовDetermining the number of descriptors required to represent multiple alignments in a single genomic record in the case of multiple alignments without splices

Семантика Semantics mmap mmap mscore mscore Результат Result Рид (или парноконцевой рид) с несколькими картированиями, Reed (or paired-terminal read) with several mappings, Одиночный рид: N Пара ридов: N, Mi где Single read: N Pair of reads: N, Mi where Одиночный рид: N значений Пара ридов: ΜΑΧ(Ν, Σ(Μ,)) значений + Σ(Μ, = 0) Введение разделителя позволяет иметь произвольное Single read: N values Pair of reads: ΜΑΧ(Ν, Σ(Μ,)) values + Σ(Μ, = 0) Introducing a separator allows you to have any Одиночный рид: рид имеет несколько картирований, и его кодируют в виде последовательности из N Single read: a read has multiple mappings and its encoded as sequences of N не сплайсированное Not spliced 1 <i<N 1 <i<N количество оценок. В противном случае, если он не присутствует, следует использовать 0. Это значения с плавающей запятой, как определено в настоящем изобретении. number of ratings. IN otherwise, if it is not present, you should use 0. These are floating point values as defined in the present invention. последовательных сегментов, принадлежащих классу с самым высоким идентификатором. Используют N дескрипторов pos. Пара ридов: пара ридов имеет несколько картирований, и ее кодируют в виде последовательности из: N сегментов для первого рида; Ρ =Σ(Μι) спариваний для выравниваний второго рида. Используют Ν дескрипторов pos. Используют N х Р дескрипторов pair, причем N Ум/ NP = ί = ι + (к-во Mi = 0) + (необязательно)1 Необязательный дескриптор спаривания используют, когда выравнивания присутствуют на других референсных последовательностях, а не на кодируемой в данный момент. N + 1 дескрипторов mmap consecutive segments belonging to the class with the highest ID. N pos descriptors are used. Read Pair: A read pair has multiple mappings and is encoded as a sequence of: N segments for the first read; Ρ =Σ(Μι) pairings for second-read alignments. N pos descriptors are used. N x P pair descriptors are used, and N Mind/ NP = ί = ι + (number Mi = 0) + (optional)1 An optional pairing descriptor is used, when leveling are present on other reference sequences than the one currently being encoded. N+1 mmap descriptors

- 23 043338- 23 043338

Рид (пара), картированный единственным образом Reed (couple), uniquely mapped 0 0 0 0

Дескрипторы для множественных выравниваний со сплайсами.Descriptors for multiple splice alignments.

В табл. 4 показано, как определять количество дескрипторов, необходимых для представления множественных выравниваний в одной геномной записи в случае множественных выравниваний без сплайсов.In table Figure 4 shows how to determine the number of descriptors needed to represent multiple alignments in a single genomic record in the case of multiple alignments without splices.

Таблица 4Table 4

Дескрипторы, используемые для представления множественных выравниваний и соответствующих оценокDescriptors used to represent multiple alignments and associated scores

Семантика Semantics mmap mmap mscore mscore Результат Result Рид (или парноконцевой рид) с несколькими картированиями, со сплайсами Reed (or paired-terminal read) with several mappings, with splices Одиночный рид: N Пара ридов: Ν, Μι где 1 <i < N Single read: N Pair of reads: Ν, Μι where 1 <i < N Одиночный рид: Ni значений Пара ридов: Max(Ni, N2) + Σ(Μι== 0) значений Ni и Ν2 с помощью Ν + Р дескрипторов msar W1 Ρ=Σ- Это значения с плавающей запятой, как определено в настоящем изобретении.Single read: Ni values Pair of reads: Max(Ni, N 2 ) + Σ(Μι== 0) values Ni and Ν 2 using Ν + P descriptors msar W1 Ρ= Σ- These are floating point values as defined herein invention. Одиночный рид: рид имеет несколько картирований, и его кодируют в виде последовательности из Ν последовательных сегментов, принадлежащих классу с самым высоким идентификатором. Используют Ν дескрипторов pos. Пара ридов: пара ридов имеет несколько картирований, и ее кодируют в виде последовательности из: N сегментов для первого рида; Р =Σ(Μι) спариваний для выравниваний второго рида. Используют Ν дескрипторов pos. Single read: a read has multiple mappings and its encoded as sequences of N consecutive segments belonging to the class with the highest identifier. N pos descriptors are used. Read Pair: A read pair has multiple mappings and is encoded as a sequence of: N segments for the first read; P =Σ(Μι) pairings for second-read alignments. N pos descriptors are used. Рид (пара), картированный единственным образом Reed (couple), uniquely mapped 0 0 0 0

Множественные выравнивания на разных последовательностях.Multiple alignments on different sequences.

Может получиться так, что в процессе выравнивания обнаружатся альтернативные картирования на другую референсную последовательность, а не на ту, на которой расположено основное картирование.It may happen that the alignment process reveals alternative mappings to a different reference sequence than the one on which the main mapping is located.

Для пар ридов, которые выровнены единственным образом, дескриптор pair следует использовать для представления абсолютных положений рида, когда имеется, например, химерическое выравнивание с парным ридом на другой хромосоме. Дескриптор pair следует использовать для указания посредством сигнализации референса и положения следующей записи, содержащей дополнительные выравнивания для того же самого шаблона. Последняя запись (например, третья, если альтернативные картирования кодируют в 3 разных БД) должна содержать референс и положение первой записи. В случае когда одно или более выравниваний для крайнего левого рида в паре присутствуют не на той референсной последовательности, которая относится к текущему кодируемому БД, для дескриптора pair использую зарезервированное значение. После зарезервированного значения следуют идентификатор референсной последовательности и положение крайнего левого выравнивания среди всех содержащихся в следующем БД (т.е. первое декодированное значение дескриптора pos для этой записи).For pairs of reads that are uniquely aligned, the pair descriptor should be used to represent the absolute positions of the read when there is, for example, a chimeric alignment with a paired read on another chromosome. The pair descriptor should be used to indicate, by signaling, the reference and position of the next entry containing additional alignments for the same pattern. The last record (for example, the third, if alternative mappings are encoded in 3 different databases) must contain the reference and position of the first record. In the case where one or more alignments for the leftmost read in a pair are not on the reference sequence that belongs to the current database being encoded, I use a reserved value for the pair descriptor. The reserved value is followed by the reference sequence identifier and the leftmost alignment position among all those contained in the next database (i.e., the first decoded pos descriptor value for that entry).

Множественные выравнивания с инсерциями, делециями, некартированными частями.Multiple alignments with insertions, deletions, unmapped parts.

Когда альтернативное вспомогательное картирование не сохраняет непрерывность референсной области, где выравнивают последовательность, восстановление точного картирования, сформированного средством выравнивания, может оказаться невозможным, так как фактическая последовательность (а значит, дескрипторы, связанные с несовпадениями, такими как замены или инделы) кодирована толькоWhen alternative auxiliary mapping does not preserve the continuity of the reference region where the sequence is being aligned, reconstruction of the accurate mapping generated by the aligner may not be possible because the actual sequence (and thus descriptors associated with mismatches such as substitutions or indels) is encoded only

- 24 043338 для основного выравнивания. Для представления того, как вспомогательные выравнивания картированы на референсную последовательность В случае когда они содержит инделы и/или мягкие отсечения, следует использовать дескриптор msar. Если msar представлен специальным символом * для вспомогательного выравнивания, декодер восстановит вспомогательное выравнивание из основного выравнивания и положения картирования вспомогательного выравнивания.- 24 043338 for basic alignment. To represent how auxiliary alignments are mapped to a reference sequence, the msar descriptor should be used when they contain indels and/or soft cuts. If msar is represented by the special character * for auxiliary alignment, the decoder will reconstruct the auxiliary alignment from the main alignment and the auxiliary alignment mapping position.

Дескриптор msar.msar handle.

Дескриптор msar (Multiple Segments Alignment Record) поддерживает сплайсированные риды и альтернативные вспомогательные выравнивания, которые содержат инделы или мягкие отсечения.The msar (Multiple Segments Alignment Record) descriptor supports spliced reads and alternative auxiliary alignments that contain indels or soft cuts.

msar предназначен для передачи информации о длине картированного сегмента;msar is intended to convey information about the length of the mapped segment;

другой непрерывности картирования (т.е. наличии инсерций, делеций или отсеченных оснований) для вспомогательного выравнивания и/или сплайсированного рида.other mapping continuity (i.e. presence of insertions, deletions or cut bases) for assisted alignment and/or spliced read.

В msar используют синтаксис расширенной записи CIGAR, описанный ниже, плюс дополнительный символ, описанный в табл. 5.msar uses the CIGAR extended notation syntax described below, plus the additional character described in Table. 5.

Таблица 5Table 5

Специальный символ, используемый для дескриптора msar в дополнение к синтаксису, описанному в табл. 6A special character used for the msar descriptor in addition to the syntax described in Table. 6

Символ Symbol Семантика Semantics Описание Description * * Вспомогательное выравнивание не содержит инделов или мягких отсечений Auxiliary alignment is not contains indels or soft cuts Это используют, когда восстановление вспомогательного выравнивания не требует никакой дополнительной информации, кроме положения выравнивания и основного выравнивания This is used when reconstructing the auxiliary alignment does not require any additional information other than the alignment position and the primary alignment

Расширенный синтаксис cigar.Extended cigar syntax.

В данном разделе определен расширенный синтаксис CIGAR (E-CIGAR) для строк, которые должны быть связаны с последовательностями и соответствующими несовпадениями, инделами, отсеченными основаниями и информацией о множественных выравниваниях и сплайсированных ридах.This section defines the extended CIGAR (E-CIGAR) syntax for strings that must be associated with sequences and corresponding mismatches, indels, trim bases, and information about multiple alignments and spliced reads.

Операции редактирования, описанные в настоящем изобретении, перечислены в табл. 6.The editing operations described in the present invention are listed in table. 6.

Таблица 6Table 6

Синтаксис строки E-CIGAR в формате MPEG-GE-CIGAR string syntax in MPEG-G format

Операция Operation Семантика Semantics Представление E-CIGAR E-CIGAR introduction Эквивалент представления CIGAR для SAM CIGAR representation equivalent to SAM Приращение указателя на референс R и указателя на рид г на п положений (совпадение) Increment of the pointer to reference R and the pointer to read g by n positions (match) η совпадающих оснований η matching reasons п= n= пМ в более старых версиях (не эквивалентно), = в недавних версиях PM in more old versions (not equivalent), = in recent versions Замена нуклеотида в риде основанием С из референса, приращение Replacement of a nucleotide in a read with base C from reference, increment Замена символа С (С присутствует в риде и отсутствует в референсе) Replacement of the symbol C (C is present in the read and absent in reference) С WITH М в более старых версиях, M in older versions,

- 25 043338- 25 043338

указателя на референс R и указателя на рид г на 1 pointer to reference R and pointer to read g by 1 X в недавних версиях (не эквивалентно) X in recent versions (not equivalent) Приращение указателя на риде г на п положений (вставка из рида) Increment of the pointer on the read by n positions (insertion from the read) η оснований вставляют в риде (не присутствуют в референсе) η bases inserted in read (not present in reference) п+ n+ ηΙ ηΙ Приращение указателя на референс Я на л положений (удаление последовательности S в риде) Increment of the pointer to the reference I by l positions (deleting sequences S in the read) η оснований удаляют из рида (но присутствуют в референсе) η bases are removed from the read (but present in reference) п- P- nD nD Приращение указателя на референс Я на л положений (инсерция в рид). Может иметь место только в начале или конце рида Increment of the pointer to the reference I by l positions (insertion into the read). Can only take place at the beginning or end of a read η мягких отсечений η soft cutoffs (п) (P) nS nS Жесткое обрезание. Может иметь место только в начале или конце рида Hard cutting. Can only take place at the beginning or end of the read η жестких отсечений η hard cutoffs [п] [P] nH nH Приращение указателя на референс R на л положений с соблюдением консенсуса сплайса (сплайс в риде) Increment of the pointer to the reference R by l positions in compliance with the splice consensus (splice in read) Ненаправленный сплайс из η оснований Non-directional splice from η reasons п* P* nN nN Приращение указателя на референс R на л положений, соблюдение консенсуса сплайса на прямой цепочке (прямой сплайс в риде) Increment of the pointer to the reference R by l positions, compliance with the splice consensus on the direct chain (direct splice in the read) Прямой сплайс из η оснований Direct splicing of η bases п/ P/ Не существует Does not exist Приращение указателя на референс R на л положений, соблюдение консенсуса сплайса на обратной цепочке (обратный сплайс в риде) Increment of the pointer to the reference R by l positions, compliance with the splice consensus on the reverse chain (reverse splice in read) Обратный сплайс из η оснований Reverse splicing from η bases п% P% Не существует Does not exist

Модели источника, энтропийные кодеры и режимы кодирования.Source models, entropy encoders and encoding modes.

Для каждого класса данных, подкласса и соответствующего блока дескрипторов структуры геномных данных в настоящем изобретении могут быть внедрены различные алгоритмы кодирования в соответствии с конкретными особенностями данных или метаданных, содержащихся в каждом блоке, и их статистическими свойствами. Алгоритм кодирования следует понимать как взаимосвязь конкретной модели источника блока дескрипторов с конкретным энтропийным кодером. Конкретная модель источника может быть определена и выбрана для получения наиболее эффективного кодирования данных в смысле минимизации энтропии источника. При выборе энтропийного кодера можно руководствоваться соображениями эффективности кодирования и/или характеристиками вероятностного распределения и соответствующими проблемами реализации. Каждый выбор специфического алгоритма кодирования, также называемого режимом кодирования может применяться к всему блоку дескрипторов, связанному с классом или подклассом данных для всего набора данных, или может быть применен свой режим кодирования к каждой части дескрипторов, разделенных на блоки доступа. Каждую модель источника, связанную с режимом кодирования, характеризуют посредством определения дескрипторов, выдаваемых каждым источником (т.е. набора дескрипторов, используемых для представления класса данных, таких как положение ридов, информация о спаривании ридов,For each data class, subclass, and corresponding genomic data structure descriptor block in the present invention, different encoding algorithms may be implemented in accordance with the specific features of the data or metadata contained in each block and their statistical properties. The encoding algorithm should be understood as the relationship of a specific descriptor block source model with a specific entropy encoder. A specific source model can be defined and selected to obtain the most efficient data encoding in terms of minimizing source entropy. The selection of an entropy encoder may be guided by considerations of coding efficiency and/or probability distribution characteristics and associated implementation issues. Each choice of a specific encoding algorithm, also called an encoding mode, can be applied to the entire block of descriptors associated with a class or subclass of data for the entire data set, or a different encoding mode can be applied to each portion of the descriptors divided into access blocks. Each source model associated with an encoding mode is characterized by defining the descriptors produced by each source (i.e., the set of descriptors used to represent a class of data, such as read positions, read pairing information,

- 26 043338 несовпадения с референсной последовательностью, как определено в табл. 2);- 26 043338 mismatch with the reference sequence, as defined in table. 2);

определения связанной вероятностной модели;defining a coupled probabilistic model;

определения связанного энтропийного кодера.Definition of the associated entropy encoder.

Дальнейшие преимущества.Further benefits.

Классифицирование данных последовательности на определенные классы и подклассы данных позволяет реализовывать эффективные режимы кодирования, использующие более низкую энтропию источника информации, отличающиеся моделированием последовательностей дескрипторов одиночными отдельными источниками данных (например, расстояние, положение и т.д.).Classifying sequence data into specific classes and subclasses of data allows for the implementation of efficient encoding modes that take advantage of the lower entropy of the information source, characterized by modeling descriptor sequences as single individual data sources (e.g., distance, position, etc.).

Другим преимуществом изобретения является возможность доступа только к подмножеству данных интересующего типа. Например, одной из наиболее важных областей применения в геномике является поиск отличий геномного образца по сравнению с референсом (ОНВ) или популяцией (ОНП). Сегодня анализ такого рода требует обработки полных ридов последовательности, тогда как при внедрении представления данных, раскрытого в настоящем изобретении, несовпадения уже изолированы всего лишь в три класса данных (если представляют интерес, рассматриваются также несовпадения n-типа и i-типа).Another advantage of the invention is the ability to access only a subset of data of the type of interest. For example, one of the most important applications in genomics is the search for differences in a genomic sample compared to a reference (NRV) or population (RNP). Today, this type of analysis requires the processing of full sequence reads, whereas when implementing the data representation disclosed in the present invention, mismatches are already isolated into just three classes of data (n-type and i-type mismatches are also considered if of interest).

Еще одно преимущество состоит в возможности выполнения эффективного транскодирования данных и метаданных, сжатых относительно определенной внешней референсной последовательности, в сжатые относительно другой внешней референсной последовательности при опубликовании новых референсных последовательностей или при выполнении повторного картирования на уже картированные данные (например, с помощью другого алгоритма картирования) с получением новых выравниваний.Another advantage is the ability to perform efficient transcoding of data and metadata compressed against a particular external reference sequence into compressed relative to another external reference sequence when publishing new reference sequences or when performing remapping on already mapped data (for example, using a different mapping algorithm). with obtaining new alignments.

На фиг. 20 показано кодирующее устройство 207 в соответствии с принципами настоящего изобретения. Кодирующее устройство 207 принимает в качестве входа необработанные данные 209 последовательности, например, созданные устройством 200 секвенирования генома. В данной области известны устройства для секвенирования генома, такие как приборы Illumina HiSeq 2500, Thermo-Fisher Ion Torrent. Необработанные данные 209 последовательности подают в узел 201 выравнивателя, который подготавливает последовательности для кодирования путем выравнивания ридов на референсную последовательность 2020. В альтернативном варианте осуществления может быть использован специально предназначенный модуль 202 для формирования референсной последовательности из имеющихся ридов с использованием различных стратегий, как описано в настоящем документе в разделе Построение внутренних референсов для некартированных ридов класса U и класса НМ. После обработки генератором 202 референса риды могут быть картированы на полученную более длинную последовательность. Затем выровненные последовательности классифицируют с помощью модуля 204 классифицирования. После этого к референсу применяют этап преобразования референса, чтобы снизить энтропию данных, сформированных узлом 204 классифицирования данных. Он включает в себя обработку внешнего референса 2020 в узле 2019 преобразования референса, который создает преобразованные классы 2018 данных и дескрипторы 2021 преобразования референса. Затем преобразованные классы 2018 данных подают в кодеры 205-207 блоков вместе с дескрипторами 2021 преобразования референса. После этого геномные блоки 2011 подают в арифметические кодеры 2012-2014, которые кодируют блоки в соответствии со статистическими свойствами данных или метаданных, содержащихся в блоке. В результате получается геномный поток 2015.In fig. 20 shows an encoder 207 in accordance with the principles of the present invention. Encoder 207 receives as input raw sequence data 209, such as generated by genome sequencing device 200. Devices for genome sequencing are known in the field, such as Illumina HiSeq 2500, Thermo-Fisher Ion Torrent devices. The raw sequence data 209 is provided to an aligner node 201, which prepares sequences for coding by aligning the reads to a reference sequence 2020. In an alternative embodiment, a dedicated module 202 may be used to generate a reference sequence from available reads using various strategies as described herein document in the section Construction of internal references for unmapped reads of class U and class HM. After processing by the reference generator 202, the reads can be mapped to the resulting longer sequence. The aligned sequences are then classified using a classification module 204. Thereafter, a reference transformation step is applied to the reference to reduce the entropy of the data generated by the data classification node 204. It involves processing the external reference 2020 in a reference transformation node 2019, which creates transformed data classes 2018 and reference transformation descriptors 2021. The transformed data classes 2018 are then supplied to block encoders 205-207 along with reference transform descriptors 2021. The genomic blocks 2011 are then provided to arithmetic encoders 2012-2014, which encode the blocks according to statistical properties of the data or metadata contained in the block. The result is Genome Stream 2015.

На фиг. 21 показано декодирующее устройство 218 в соответствии с принципами настоящего изобретения. Декодирующее устройство 218 принимает мультиплексированный геномный поток 2110 двоичных данных из сети или элемента запоминающего устройства. Мультиплексированный геномный поток 2110 двоичных данных подают в демультиплексор 210 для создания отдельных потоков 211, которые затем подают в энтропийный декодеры 212-214 для получения геномных блоков 215 и дескрипторов 2112 преобразования референса. Выделенные геномные блоки подают в декодеры 216-217 блоков для дальнейшего декодирования в классы данных, а дескрипторы преобразования референса подают в узел 2113 преобразования референса. Декодеры 219 классов выполняют дальнейшую обработку геномных дескрипторов 2111 и преобразованного референса 2114 и объединяют результаты для получения несжатых ридов последовательностей, которые затем также сохраняют в форматах, известных в данной области техники, например, в текстовом файле или сжатом файле формата zip, или в файлах FASTQ или SAM/BAM.In fig. 21 shows a decoder 218 in accordance with the principles of the present invention. The decoder 218 receives the multiplexed genomic binary data stream 2110 from the network or storage element. The multiplexed genomic binary data stream 2110 is fed to a demultiplexer 210 to create individual streams 211, which are then fed to entropy decoders 212-214 to produce genomic blocks 215 and reference transform descriptors 2112. The extracted genomic blocks are supplied to block decoders 216-217 for further decoding into data classes, and the reference transformation descriptors are supplied to the reference transformation node 2113. Class decoders 219 further process the genomic descriptors 2111 and the transformed reference 2114 and combine the results to produce uncompressed sequence reads, which are then also stored in formats known in the art, such as a text file or a compressed zip file, or FASTQ files. or SAM/BAM.

Декодеры 219 классов могут восстанавливать исходные геномные последовательности за счет использования информации об исходных референсных последовательностях, содержащейся в одном или более геномным потоках, и дескрипторов 2112 преобразования референса в кодированном потоке двоичных данных. Если референсные последовательности не транспортируют посредством геномных потоков, они должны быть в наличии на стороне декодирования и доступны для декодеров классов. Обладающие признаками изобретения методы, описанные в настоящем документе, могут быть реализованы в оборудовании, программном обеспечении, встроенном программном обеспечении или любой их комбинации. При реализации в программном обеспечении они могут храниться на машиночитаемом носителе информации и исполняться аппаратным процессорным устройством. Аппаратное процессорное устройство может содержать один или более процессоров, цифровых сигнальных процессоров, микропроцессоров общего назначения, специализированных интегральных схем или других дискретных логических схем.Class decoders 219 can recover the original genomic sequences by using the original reference sequence information contained in one or more genomic streams and the reference transform descriptors 2112 in the encoded binary data stream. If reference sequences are not transported via genomic streams, they must be present on the decoding side and accessible to class decoders. The inventive methods described herein may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, they can be stored on a computer-readable storage medium and executed by a hardware processing device. A hardware processing device may include one or more processors, digital signal processors, general purpose microprocessors, application specific integrated circuits, or other discrete logic circuits.

- 27 043338- 27 043338

Методы данного описания могут быть реализованы в самых разных устройствах и приборах, включая мобильные телефоны, настольные компьютеры, серверы, планшеты и подобные устройства.The methods of this description can be implemented in a wide variety of devices and instruments, including mobile phones, desktop computers, servers, tablets and similar devices.

Формат файла: выборочный доступ к областям геномных данных с помощью таблицы главного индекса.File format: Selective access to genomic data regions using a master index table.

Для поддержки выборочного доступа к определенным областям выровненных данных структура данных, описанная в настоящем документе, реализует средство индексации, называемое таблицей главного индекса (MIT). Это многомерный массив, содержащий местоположения картирования конкретных ридов на связанные референсные последовательности. Значения, содержащиеся в MIT, представляют собой положения картирования первого рида в каждом блоке pos в целях поддержки непоследовательного доступа к каждому блоку доступа. MIT содержит один раздел на каждый класс данных (Р, N, M, I, U и НМ) и каждую референсную последовательность. MIT содержится в заголовке геномного набора данных кодированных данных. На фиг. 31 показана структура заголовка геномного набора данных, на фиг. 32 показано общее визуальное представление MIT, а на фиг. 33 показан пример MIT для кодированных ридов класса Р.To support selective access to specific areas of aligned data, the data structure described in this document implements an indexing facility called a master index table (MIT). This is a multidimensional array containing the mapping locations of specific reads to associated reference sequences. The values contained in MIT represent the mapping positions of the first read in each pos block in order to support non-sequential access to each access block. MIT contains one section for each data class (P, N, M, I, U, and HM) and each reference sequence. MIT is contained in the header of the genomic dataset of encoded data. In fig. 31 shows the header structure of a genomic dataset, FIG. 32 shows an overall visual representation of MIT, and FIG. Figure 33 shows an MIT example for class P encoded reads.

Изображенные на фиг. 33 значения, содержащиеся в MIT, используют для прямого доступа к интересующей области (и соответствующему БД) в сжатой области. Например, как показано на фиг. 33, если требуется получить доступ к области, содержащейся между положениями 150000 и 250000 на референсе 2, декодирующее приложение должно перейти сразу ко второму референсу в MIT и найти два значения k1 и k2 так, чтобы k1<150000 и k2>250000. Где k1 и k2 являются двумя индексами, считанными из MIT. В примере на фиг. 33 в результате будут получены 3-е и 4-е положения второго вектора MIT. Эти возвращенные значения будут затем использованы декодирующим приложением для извлечения положений соответствующих данных из таблицы локального индекса блока pos, как описано в следующем разделе. Вместе с указателями на блок, содержащий данные, принадлежащие четырем классам геномных данных, описанным выше, MIT можно использовать в качестве индекса дополнительных метаданных и/или аннотаций, добавленных к геномным данным в течение их срока службы.Depicted in FIGS. The 33 values contained in MIT are used to directly access the region of interest (and the corresponding database) in the compressed region. For example, as shown in FIG. 33, if it is necessary to access the region contained between positions 150000 and 250000 in reference 2, the decoding application must go directly to the second reference in MIT and find two values of k1 and k2 such that k1<150000 and k2>250000. Where k1 and k2 are two indices read from MIT. In the example in FIG. 33 will result in the 3rd and 4th positions of the second MIT vector. These returned values will then be used by the decoding application to retrieve the corresponding data positions from the pos block's local index table, as described in the next section. Together with pointers to a block containing data belonging to the four classes of genomic data described above, MIT can be used as an index of additional metadata and/or annotations added to genomic data during its lifetime.

Таблица локального указателя.Local pointer table.

В начале каждого блока геномных данных имеется структура данных, называемая локальным заголовком. Локальный заголовок содержит уникальный идентификатор блока, вектор счетчиков блоков доступа для каждой референсной последовательности, таблицу локального индекса (LIT) и, необязательно, некоторые метаданные, специфичные для блока. LIT представляет собой вектор указателей на физическое положение данных, принадлежащих каждому блоку доступа, в полезной нагрузке блока. На фиг. 34 изображены общий заголовок блока и полезная нагрузка, где LIT используют для доступа к определенным областям кодированных данных непоследовательным образом. В предыдущем примере для доступа к области в диапазоне от 150000 до 250000 ридов, выровненных на референсную последовательность № 2, декодирующее приложение извлекло положения 3 и 4 из MIT. Эти значения должны использоваться процессом декодирования для доступа к 3-му и 4-му элементам соответствующего раздела LIT. В примере, показанном на фиг. 35, счетчики общего количества блоков доступа, содержащиеся в заголовке блока, используют для перехода сразу к индексам LIT, связанным с БД, относящимся к референсу 1 (5 в примере). Поэтому индексы, содержащие физические положения запрашиваемых БД в кодированном потоке, вычисляют следующим образом:At the beginning of each genomic data block there is a data structure called a local header. The local header contains a unique block identifier, a vector of access block counters for each reference sequence, a local index table (LIT), and optionally some block-specific metadata. The LIT is a vector of pointers to the physical location of the data belonging to each access block in the block's payload. In fig. 34 depicts a common block header and payload where LIT is used to access specific areas of encoded data in a non-sequential manner. In the previous example, to access a region between 150,000 and 250,000 reads aligned to reference sequence #2, the decoding application retrieved positions 3 and 4 from MIT. These values must be used by the decoding process to access the 3rd and 4th elements of the corresponding LIT section. In the example shown in FIG. 35, the access block total counters contained in the block header are used to jump directly to the LIT indices associated with the DB related to reference 1 (5 in the example). Therefore, indices containing the physical positions of the requested DBs in the codestream are calculated as follows:

положение блоков данных, принадлежащих запрашиваемым БД = блокам данных, принадлежащим БД референса 1, которые нужно пропустить, + положение, извлеченное с помощью MIT, т.е.position of data blocks belonging to the requested DBs = data blocks belonging to reference DB 1 to be skipped + position retrieved using MIT, i.e.

положение первого блока: 5+3=8;first block position: 5+3=8;

положение последнего блока: 5+4=9.position of the last block: 5+4=9.

Блоки данных, извлеченные с помощью механизма индексации, называемого таблицей локального индекса, являются частью запрашиваемых блоков доступа.Data blocks retrieved by an indexing mechanism called a local index table are part of the requested access blocks.

На фиг. 36 показано, как блоки, содержащиеся в MIT, соответствуют блокам LIT для каждого класса или подкласса данных.In fig. Figure 36 shows how the blocks contained in the MIT correspond to the LIT blocks for each data class or subclass.

На фиг. 37 показано, как блоки данных, извлеченные с помощью MIT и LIT, образуют один или более блоков доступа, как определено в следующем разделе.In fig. 37 shows how data blocks retrieved by MIT and LIT form one or more access blocks as defined in the next section.

В варианте осуществления настоящего изобретения LIT может быть встроена в качестве подструктуры MIT. Преимуществом такого подхода является скорость доступа к индексированным данным в случае последовательного синтаксического анализа сжатого файла. Если LIT встроена в MIT в заголовке файла, то в случае выборочного доступа декодирующему устройству нужно будет синтаксически анализировать только малую часть данных, чтобы извлекать запрашиваемую сжатую информацию. Другое преимущество, очевидное для специалиста в данной области, состоит в том, что в случае передачи в потоковом режиме по сети индексированная информация, содержащаяся в MIT и LIT, будет доставляться среди первых блоков данных, позволяя тем самым приемному устройству выполнять операции, такие как сортировка и выборочный доступ, до завершения передачи всех данных.In an embodiment of the present invention, the LIT may be embedded as a substructure of the MIT. The advantage of this approach is the speed of access to indexed data in the case of sequential parsing of a compressed file. If LIT is embedded in MIT in the file header, then in the case of selective access, the decoder will only need to parse a small portion of the data to extract the requested compressed information. Another advantage that will be apparent to one skilled in the art is that, if streamed over a network, the indexed information contained in the MIT and LIT will be delivered among the first blocks of data, thereby allowing the receiving device to perform operations such as sorting and selective access until all data has been transferred.

Блок доступа.Access block.

Геномные данные, классифицированные в классы данных и структурированные в сжатые и несжатые блоки, организуют в разные блоки доступа.Genomic data, classified into data classes and structured into compressed and uncompressed blocks, is organized into different access blocks.

- 28 043338- 28 043338

Геномные блоки доступа (БД) определяют как разделы геномных данных (в сжатом и несжатом виде), которые восстанавливают нуклеотидные последовательности, и/или соответствующие метаданные, и/или последовательности ДНК/РНК (например, виртуальный референс), и/или данные аннотаций, формируемые секвенатором генома и/или устройством геномной обработки или приложением анализа. Пример блока доступа приведен на фиг. 37.Genomic access blocks (DBs) are defined as sections of genomic data (compressed and uncompressed) that recover nucleotide sequences, and/or corresponding metadata, and/or DNA/RNA sequences (for example, virtual reference), and/or annotation data, generated by a genome sequencer and/or genomic processing device or analysis application. An example of an access block is shown in Fig. 37.

Блок доступа представляет собой блок данных, который может быть декодирован либо независимо от других блоков доступа с использованием только глобально доступных данных (например, конфигурации декодера), либо с использованием информации, содержащейся в других блоках доступа. Блоки доступа различают по типу, характеризующему природу геномных данных и наборы данных, которые содержат эти блоки доступа, и возможный способ доступа к ним;An access block is a block of data that can be decoded either independently of other access blocks using only globally available data (eg, decoder configuration) or using information contained in other access blocks. Access blocks are distinguished by type, which characterizes the nature of the genomic data and data sets that contain these access blocks, and the possible way to access them;

порядку, обеспечивающему уникальный порядок блокам доступа, принадлежащим одному и тому же типу.an order that provides a unique order to access blocks belonging to the same type.

Блоки доступа любого типа можно дополнительно классифицировать на различные категории.Access units of any type can be further classified into different categories.

Далее следует неисчерпывающий список определений геномных блоков доступа различных типов.The following is a non-exhaustive list of definitions of various types of genomic access blocks.

1) Для получения доступа или декодирования и получения доступа к блокам доступа типа 0 не требуется ссылка ни на какую информацию, поступающую из других блоков доступа. Вся информация в содержащихся в них данных или наборах данных, может быть независимо считана и обработана декодирующим устройством или приложением обработки.1) Accessing or decoding and accessing Type 0 access blocks does not require reference to any information coming from other access blocks. All information in the data or data sets they contain can be independently read and processed by a decoder or processing application.

2) Блоки доступа типа 1 содержат данные, которые ссылаются на данные, содержащиеся в блоках доступа типа 0. Для считывания или декодирования и обработки данных, содержащихся в блоках доступа типа 1, требуется наличие доступа к одному или более блокам доступа типа 0. Блок доступа типа 1 кодирует геномные данные, относящиеся к ридам последовательности класса Р.2) Type 1 access blocks contain data that references data contained in type 0 access blocks. To read or decode and process data contained in type 1 access blocks, access to one or more type 0 access blocks is required. Access block type 1 encodes genomic data related to class P sequence reads.

3) Блоки доступа типа 2 содержат данные, которые ссылаются на данные, содержащиеся в блоках доступа типа 0. Для считывания или декодирования и обработки данных, содержащихся в блоках доступа типа 2, требуется наличие доступа к одному или более блокам доступа типа 0. Блок доступа типа 2 кодирует геномные данные, относящиеся к ридам последовательности класса N.3) Type 2 access blocks contain data that references data contained in type 0 access blocks. Reading or decoding and processing data contained in type 2 access blocks requires access to one or more type 0 access blocks. Access block type 2 encodes genomic data related to class N sequence reads.

4) Блоки доступа типа 3 содержат данные, которые ссылаются на данные, содержащиеся в блоках доступа типа 0. Для считывания или декодирования и обработки данных, содержащихся в блоках доступа типа 3, требуется наличие доступа к одному или более блокам доступа типа 0. Блоки доступа типа 3 кодируют геномные данные, относящиеся к ридам последовательности класса М.4) Type 3 access blocks contain data that references data contained in type 0 access blocks. Reading or decoding and processing data contained in type 3 access blocks requires access to one or more type 0 access blocks. Access blocks type 3 encode genomic data related to class M sequence reads.

5) Блоки доступа типа 4 содержат данные, которые ссылаются на данные, содержащиеся в блоках доступа типа 0. Для считывания или декодирования и обработки данных, содержащихся в блоках доступа типа 4, требуется наличие доступа к одному или более блокам доступа типа 0. Блок доступа типа 4 кодирует геномные данные, относящиеся к ридам последовательности класса I.5) Type 4 access blocks contain data that references data contained in type 0 access blocks. Reading or decoding and processing data contained in type 4 access blocks requires access to one or more type 0 access blocks. Access block type 4 encodes genomic data related to class I sequence reads.

6) Блоки доступа типа 5 содержат риды, которые не могут быть картированы ни на одну из доступных референсных последовательностей (класс U), и их кодируют с использованием внутренне построенной референсной последовательности. Блоки доступа типа 5 содержат данные, которые ссылаются на данные, содержащиеся в блоках доступа типа 0. Для считывания или декодирования и обработки данных, содержащихся в блоках доступа типа 5, требуется наличие доступа к одному или более блокам доступа типа 0.6) Type 5 access blocks contain reads that cannot be mapped to any of the available reference sequences (class U) and are encoded using an internally constructed reference sequence. Type 5 access blocks contain data that references data contained in type 0 access blocks. Reading or decoding and processing data contained in type 5 access blocks requires access to one or more type 0 access blocks.

7) Блоки доступа типа 6 содержат пары ридов, где один рид может принадлежать любому из четырех классов Р, N, М, I, а другое не может быть картировано ни на одну из доступных референсных последовательностей (класс НМ). Блоки доступа типа 6 содержат данные, которые ссылаются на данные, содержащиеся в блоках доступа типа 0. Для считывания или декодирования и обработки данных, содержащихся в блоках доступа типа 6, требуется наличие доступа к одному или более блокам доступа типа 0.7) Access blocks of type 6 contain pairs of reads, where one read can belong to any of the four classes P, N, M, I, and the other cannot be mapped to any of the available reference sequences (class HM). Type 6 access blocks contain data that references data contained in type 0 access blocks. Reading or decoding and processing data contained in type 6 access blocks requires access to one or more type 0 access blocks.

8) Блоки доступа типа 7 содержат метаданные (например, оценки качества) и/или данные аннотаций, связанные с данными или наборами данных, содержащимися в блоке доступа типа 1. Блоки доступа типа 7 могут быть классифицированы и маркированы в различных блоках.8) Type 7 access blocks contain metadata (eg, quality ratings) and/or annotation data associated with the data or data sets contained in a type 1 access block. Type 7 access blocks can be classified and labeled in different blocks.

9) Блоки доступа типа 8 содержат данные или наборы данных, классифицированные как данные аннотаций. Блоки доступа типа 8 могут быть классифицированы и маркированы в блоках.9) Type 8 access blocks contain data or data sets classified as annotation data. Type 8 access blocks can be classified and labeled in blocks.

10) Блоки доступа дополнительных типов могут расширять описанные здесь структуры и механизмы. В качестве примера, но не ограничения результаты определения геномных вариантов, структурного и функционального анализа могут быть кодированы в блоках доступа новых типов. Описанная в настоящем документе организация данных в виде блоков доступа не препятствует инкапсуляции данных любого типа в блоки доступа, что является механизмом, полностью прозрачным в отношении природы закодированных данных.10) Access blocks of additional types can extend the structures and mechanisms described here. By way of example, and not limitation, the results of genomic variant determination, structural and functional analysis may be encoded in new types of access units. The organization of data into access blocks described herein does not prevent any type of data from being encapsulated into access blocks, which is a mechanism that is completely transparent about the nature of the encoded data.

Блоки доступа типа 0 упорядочены (например, пронумерованы), но их не нужно хранить и/или передавать упорядоченным образом (техническое преимущество: параллельная обработка/параллельная потоковая передача, мультиплексирование).Type 0 access blocks are ordered (eg, numbered), but do not need to be stored and/or transmitted in an orderly manner (technical advantage: parallel processing/parallel streaming, multiplexing).

Блоки доступа типа 1, 2, 3, 4, 5 и 6 не нужно упорядочивать и не нужно хранить и/или передавать упорядоченным образом (техническое преимущество: параллельная обработка/параллельная потоковаяAccess blocks of type 1, 2, 3, 4, 5 and 6 do not need to be ordered and do not need to be stored and/or transmitted in an orderly manner (technical advantage: parallel processing/parallel streaming

--

Claims (19)

передача). На фиг. 37 показано, как составляют блоки доступа с помощью заголовка и одного или более блоков однородных данных. Каждый блок может составлен из одного или более блоков. Каждый блок содержит несколько пакетов, а пакеты представляют собой структурированную последовательность дескрипторов, введенных выше для представления, например, положений ридов, информации о спаривании, информации об обратном комплементе, положений и типов несовпадений и т.д. У каждого блока доступа может быть разное количество пакетов в каждом блоке, но в пределах блока доступа у всех блоков одно и то же количество пакетов. Каждый пакет данных может быть идентифицирован посредством комбинации из 3 идентификаторов X, Y и Z, где X указывает блок доступа, которому он принадлежит; Y указывает блок, которому он принадлежит (т.е. тип данных, которые он инкапсулирует); Z представляет собой идентификатор, выражающий порядок пакета относительно других пакетов того же блока. На фиг. 38 показан пример маркировки блоков доступа и пакетов, где AU_T_N - блок доступа типа Т с идентификатором N, который может подразумевать или не подразумевать наличие порядка в соответствии с типом блока доступа. Идентификаторы используют для связывания единственным образом блоков доступа одного типа с блоками доступа других типов, требуемыми для полного декодирования содержащихся геномных данных. Блоки доступа любого типа могут быть дополнительно классифицированы и маркированы в различных категориях в соответствии с различными процессами секвенирования. В качестве примера, но не ограничения классификация и маркировка могут иметь место приbroadcast). In fig. 37 shows how access blocks are composed using a header and one or more homogeneous data blocks. Each block can be composed of one or more blocks. Each block contains several packages, and the packages are a structured sequence of descriptors introduced above to represent, for example, positions of reads, pairing information, reverse complement information, positions and types of mismatches, etc. Each access block may have a different number of packets in each block, but within an access block, all blocks have the same number of packets. Each data packet can be identified by a combination of 3 identifiers X, Y and Z, where X indicates the access block to which it belongs; Y indicates the block it belongs to (i.e. the type of data it encapsulates); Z is an identifier expressing the order of a packet relative to other packets in the same block. In fig. 38 shows an example of marking access units and packets, where AU_T_N is an access unit of type T with an identifier N, which may or may not imply ordering according to the access unit type. Identifiers are used to uniquely associate access units of one type with access units of other types required to fully decode the contained genomic data. Access blocks of any type can be further classified and labeled into different categories according to different sequencing processes. By way of example, and not limitation, classification and labeling may occur when 1. Реализуемый на компьютере способ кодирования данных геномной последовательности, где данные геномной последовательности содержат риды последовательностей нуклеотидов, причем способ включает в себя этапы выравнивания указанных ридов на одну или более первых референсных последовательностей с созданием тем самым выровненных ридов, классифицирования выровненных ридов согласно заданным правилам сопоставления с указанными одной или более первыми референсными последовательностями на различные классы с созданием тем самым классов выровненных ридов, причем классифицирование включает идентифицирование в качестве первого класса (класса Р) геномных ридов без всяких несовпадений с референсной последовательностью, где в картированном риде нет несовпадений с референсной последовательностью, использованной для картирования;1. A computer-implemented method for encoding genomic sequence data, where the genomic sequence data contains reads of nucleotide sequences, the method including the steps of aligning said reads to one or more first reference sequences, thereby creating aligned reads, classifying aligned reads according to specified matching rules with the specified one or more first reference sequences into different classes, thereby creating classes of aligned reads, wherein the classification includes identifying as the first class (class P) genomic reads without any mismatches with the reference sequence, where in the mapped read there are no mismatches with the reference sequence, used for mapping; идентифицирование в качестве второго класса (класса N) геномных ридов, где несовпадения обнаруживают только в положениях, в которых секвенатор оказался не в состоянии определить никакого основания и количество несовпадений в каждом прочтении не превышает данного порога;identifying as a second class (class N) genomic reads where mismatches are found only at positions where the sequencer was unable to detect any base and the number of mismatches in each read does not exceed a given threshold; идентифицирование в качестве третьего класса (класса М) геномных ридов, где несовпадения обнаруживают в положениях, в которых секвенатор оказался не в состоянии определить никакого основания n-типа и/или он определил другое основание по сравнению с референсной последовательностью s-типа и количество несовпадений не превышает данных порогов для количества несовпадений n-типа, s-типа и порога, полученного из заданной функции (f(n,s));identification as a third class (class M) of genomic reads where mismatches are found at positions in which the sequencer failed to identify any n-type base and/or it identified a different base compared to the s-type reference sequence and the number of mismatches is not exceeds the given thresholds for the number of n-type, s-type mismatches and the threshold obtained from a given function (f(n,s)); идентифицирование в качестве четвертого класса (класса I) геномных ридов, которые могут иметь несовпадения того же типа, что и несовпадения третьего класса (класса М), и дополнительно по меньшей мере одно несовпадение следующего типа: инсерция (i-тип), делеция (d-тип), мягкие или жесткие отсечения (с-тип), и при этом количество несовпадений для каждого типа не превышает соответствующего заданного порога и порога, обеспечиваемого заданной функцией (w(n,s,i,d,c)), кодирования классифицированных выровненных ридов в виде множества блоков дескрипторов, причем кодирование указанных классифицированных выровненных ридов в виде множества блоков дескрипторов включает в себя выбор дескрипторов в соответствии с классами выровненных ридов, структурирования указанных блоков дескрипторов с помощью информации заголовка с созданием тем самым последовательных блоков доступа, причем блоки доступа первого класса (класса Р) строят с использованием блоков дескрипторов для информации о положении картирования, блоков дескрипторов для информации о том, из какой цепи ДНК секвенировали рид (цепочечность), и флагов для информации об определенных характеристиках рида последовательности, при этом в указанных блоках доступа класса Р информацию о спариванииidentification as a fourth class (class I) of genomic reads that may have mismatches of the same type as mismatches of the third class (class M), and additionally at least one mismatch of the following type: insertion (i-type), deletion (d) -type), soft or hard cutoffs (c-type), and the number of mismatches for each type does not exceed the corresponding specified threshold and the threshold provided by the specified function (w(n,s,i,d,c)), coding classified aligned reads as a plurality of descriptor blocks, wherein encoding said classified aligned reads into a plurality of descriptor blocks includes selecting descriptors according to classes of the aligned reads, structuring said descriptor blocks using header information thereby creating successive access blocks, wherein the access blocks of the first class (class P) are built using descriptor blocks for information about the mapping position, descriptor blocks for information about which strand of DNA the read was sequenced from (chainness), and flags for information about certain characteristics of the sequence read, while in the specified access blocks class P mating information - 30 043338 парноконцевых ридов кодируют с использованием соответствующего блока дескрипторов, при этом блоки доступа второго класса (класса N) строят с использованием тех же блоков дескрипторов, что для блоков доступа первого класса (класса Р), плюс блок дескрипторов для информации о положении неизвестных оснований, при этом блоки доступа третьего класса (класса М) строят с использованием тех же блоков дескрипторов, что для блоков доступа первого класса (класса Р), плюс блоки дескрипторов для информации о положении и типах замен, при этом блоки доступа четвертого класса (класса I) строят с использованием тех же блоков дескрипторов, что для блоков доступа первого класса (класса Р), плюс блоки дескрипторов для информации о положении и типе замен, вставок, делеций и отсеченных оснований, где способ дополнительно включает в себя идентифицирование геномных ридов, которые не отнесены ни к одному из классов с первого по четвертый (классов Р, N, М, I) в качестве пятого класса (класса U), построение набора вторых референсных последовательностей с использованием по меньшей мере некоторых из ридов пятого класса, выравнивание указанных ридов пятого класса на наборе вторых референсных последовательностей, кодирование ридов пятого класса в виде соответствующих дескрипторов на основании определенных ограничений на точность совпадения в отношении вторых референсных последовательностей, структурирование указанных соответствующих дескрипторов с помощью информации заголовка с созданием тем самым блоков доступа пятого блока.- 30 043338 paired-end reads are encoded using the appropriate descriptor block, with second-class (N-class) access blocks constructed using the same descriptor blocks as for first-class (P-class) access blocks, plus a descriptor block for information about the position of unknown bases , while access blocks of the third class (class M) are built using the same descriptor blocks as for access blocks of the first class (class P), plus descriptor blocks for information about the position and types of replacements, while access blocks of the fourth class (class I ) are constructed using the same descriptor blocks as for first class (P class) access blocks, plus descriptor blocks for information about the position and type of substitutions, insertions, deletions and base truncations, where the method further includes identifying genomic reads that are not assigned to none of the first to fourth classes (classes P, N, M, I) as a fifth class (class U), constructing a set of second reference sequences using at least some of the fifth class reads, aligning said fifth class reads on a set of second reference sequences, encoding the fifth class reads into corresponding descriptors based on certain constraints on the accuracy of the match with respect to the second reference sequences, structuring said corresponding descriptors using header information thereby creating access blocks of the fifth block. 1) секвенировании одного и того же организма в разное время (блоки доступа содержат геномную информацию по геному с временной подоплекой);1) sequencing the same organism at different times (access blocks contain genomic information on the genome with a temporal background); 2. Способ по п.1, в котором блоки доступа пятого класса строят с использованием одного или более из блоков дескрипторов для информации о положениях картирования;2. The method according to claim 1, wherein the fifth class access blocks are constructed using one or more of the descriptor blocks for information about mapping positions; блоков дескрипторов для информации о том, из какой цепи ДНК секвенировали рид (цепочечность), и флагов для информации об определенных характеристиках рида последовательности, при этом информацию о спаривании парноконцевых ридов кодируют с использованием соответствующего блока дескрипторов;descriptor blocks for information about which DNA strand the read was sequenced from (chainness), and flags for information about certain characteristics of the sequence read, wherein information about the pairing of paired-end reads is encoded using the corresponding descriptor block; блоков дескрипторов для информации о положении и типе замен;descriptor blocks for information about the position and type of substitutions; блоков дескрипторов для информации о частях ридов, которые не совпадают со вторыми референсными последовательностями;descriptor blocks for information about parts of reads that do not match the second reference sequences; блоков дескрипторов для буквального кодирования ридов, которые не могут быть картированы ни на одну референсную последовательность.descriptor blocks to literally encode reads that cannot be mapped to any reference sequence. 2) секвенировании органических образцов различной природы некоторых организмов (например, кожи, крови, волос для человеческих образцов).2) sequencing organic samples of various natures of some organisms (for example, skin, blood, hair for human samples). Эти блоки доступа с биологической подоплекой.These access blocks are biologically inspired. ФОРМУЛА ИЗОБРЕТЕНИЯCLAIM 3. Способ кодирования по п.1 или 2, в котором риды геномной последовательности, подлежащие кодированию, являются парными; и классифицирование дополнительно включает в себя идентифицирование геномных ридов в качестве шестого класса (класса НМ), содержащего все пары ридов, где один рид принадлежит классу Р, N, М или I, а другой рид принадлежит классу U.3. The encoding method according to claim 1 or 2, in which the genomic sequence reads to be encoded are paired; and the classification further includes identifying the genomic reads as a sixth class (HM class) containing all pairs of reads where one read belongs to class P, N, M or I and the other read belongs to class U. 4. Способ кодирования по п.3, дополнительно включающий в себя следующие этапы:4. The encoding method according to claim 3, further including the following steps: определение того, классифицированы ли два парных рида в один и тот же класс (каждый из классов Р, N, M, I, U) с последующим назначением пары в этот же идентифицированный класс;determining whether two paired reads are classified into the same class (each of classes P, N, M, I, U) and then assigning the pair to the same identified class; определение того, относятся ли два парных рида к разным классам, и если ни один из них не принадлежит классу U, то назначение пары ридов классу с самым высоким приоритетом, определяемым в соответствии со следующим приоритетом:determining whether two paired reads belong to different classes, and if neither of them belongs to class U, then assigning the pair of reads to the class with the highest priority, determined according to the following priority: p<n<m<i, где класс Р обладает самым низким приоритетом, а класс I - самым высоким приоритетом;p<n<m<i, where class P has the lowest priority, and class I has the highest priority; определение того, классифицирован ли только один из парных ридов как принадлежащий классу U, и классифицирование пары ридов как принадлежащей последовательностям класса НМ.determining whether only one of the paired reads is classified as belonging to class U, and classifying the pair of reads as belonging to class HM sequences. 5. Способ по п.4, в котором каждый класс ридов N, М, I дополнительно разделяют на два или более подклассов (296, 297, 298) в соответствии с вектором порогов (292, 293, 294), определенным соответственно для каждого класса N, М и I посредством количества несовпадений (292) n-типа, функции f(n,s) (293) и функции w(n,s,i,d,c) (294), дополнительно включающий в себя следующие этапы:5. The method according to claim 4, wherein each read class N, M, I is further divided into two or more subclasses (296, 297, 298) in accordance with a threshold vector (292, 293, 294) defined respectively for each class N, M and I through the number of n-type mismatches (292), the function f(n,s) (293) and the function w(n,s,i,d,c) (294), further including the following steps: определение того, классифицированы ли два парных рида в один и тот же подкласс с назначением в таком случае пары в этот же подкласс;determining whether two paired reads are classified into the same subclass, then assigning the pair to the same subclass; определение того, классифицированы ли два парных рида в подклассы разных классов с назначением в таком случае пары в подкласс, принадлежащий классу более высокого приоритета в соответствии со следующим выражением:determining whether two paired reads are classified into subclasses of different classes, then assigning the pair to the subclass belonging to the higher priority class according to the following expression: n<m<i, где N имеет самый низкий приоритет, а I имеет самый высокий приоритет;n<m<i, where N has the lowest priority and I has the highest priority; определение того, классифицированы ли два парных рида в один и тот же класс, причем этим классом является N, или М, или I, или в разные подклассы с назначением в таком случае пары в подкласс с самым высоким приоритетом в соответствии о следующими выражениями:determining whether two paired reads are classified into the same class, which class is N, or M, or I, or into different subclasses, in which case assigning the pair to the highest priority subclass according to the following expressions: Ni<N2<^<Nk,Ni<N 2 <^<N k , - 31 043338- 31 043338 M1<M2< ,.<Mj, 11<12< — <1Н, где самый высокий индекс имеет наивысший приоритет.M1<M2<,.<Mj, 1 1< 1 2< - < 1 Н, where the highest index has the highest priority. 6. Способ по п.5, в котором информацию о положении картирования каждого рида кодируют посредством блока дескрипторов pos;6. The method according to claim 5, wherein information about the mapping position of each read is encoded by a pos descriptor block; информацию о том, из какой цепочки ДНК секвенировали рид (цепочечности), каждого рида кодируют посредством блока дескрипторов rcomp; и информацию о парноконцевых ридах кодируют посредством блока дескрипторов pair.information about which DNA chain the read (chain) was sequenced from is encoded for each read using the rcomp descriptor block; and information about paired-end reads is encoded by a pair descriptor block. 7. Способ по п.6, в котором дополнительную информацию о выравнивании, такую как картирован ли рид в правильную пару, верно ли, что он не прошел проверку качества платформы/поставщика, является ли он дубликатом ПЦР или оптическим дубликатом, является ли это вспомогательным выравниванием, кодируют посредством блока дескрипторов flags.7. The method of claim 6, wherein additional information about the alignment, such as whether the read is mapped to the correct pair, whether it has failed platform/vendor quality control, whether it is a PCR duplicate or an optical duplicate, whether it is ancillary alignment, encoded using a flags descriptor block. 8. Способ по п.7, в котором информацию о неизвестных основаниях кодируют посредством блока дескрипторов nmis.8. The method according to claim 7, wherein information about unknown bases is encoded using a block of descriptors nmis. 9. Способ по п.8, в котором информацию о положении замен кодируют посредством блока дескрипторов snpp;9. The method of claim 8, wherein information about the position of the substitutions is encoded by a snpp descriptor block; информацию о типе замен кодируют посредством блока дескрипторов snpt.information about the type of substitutions is encoded using a snpt descriptor block. 10. Способ по п.9, в котором информацию о положении несовпадений типа замен, инсерций или делеций кодируют посредством блока дескрипторов indp;10. The method of claim 9, wherein information about the position of mismatches such as substitutions, insertions or deletions is encoded by an indp descriptor block; информацию о типе несовпадений, таких как замены, инсерции или делеции, кодируют посредством блока дескрипторов indt;information about the type of mismatches, such as substitutions, insertions or deletions, is encoded by the indt descriptor block; информацию об отсеченных основаниях картированного рида кодируют посредством блока дескрипторов indc.The cut base information of the mapped read is encoded using the indc descriptor block. 11. Способ по п.10, в котором информацию о некартированных ридах кодируют посредством блока дескрипторов ureads;11. The method according to claim 10, wherein information about unmapped reads is encoded using a ureads descriptor block; информацию о типе референсной последовательности, используемой для кодирования, кодируют посредством блока дескрипторов rtype;information about the type of the reference sequence used for encoding is encoded by an rtype descriptor block; информацию о множественных выравниваниях картированных ридов кодируют посредством блока дескрипторов mmap;information about multiple alignments of mapped reads is encoded using an mmap descriptor block; информацию о сплайсированных выравниваниях и множественных выравниваниях одного и того же рида кодируют посредством блока дескрипторов msar и блока дескрипторов mmap;information about spliced alignments and multiple alignments of the same read is encoded by an msar descriptor block and an mmap descriptor block; информацию об оценках выравнивания рида кодируют посредством блока дескрипторов mscore;information about read alignment scores is encoded using the mscore descriptor block; информацию о группах, которым принадлежат риды, кодируют посредством блока дескрипторов rgroup.information about the groups to which the reads belong is encoded using the rgroup descriptor block. 12. Способ по п.11, в котором блоки доступа класса НМ строят с помощью тех же самых блоков дескрипторов, что и блоки доступа класса I для картированных ридов, и с помощью блоков дескриптора ureads для некартированных ридов.12. The method of claim 11, wherein class HM access blocks are constructed using the same descriptor blocks as class I access blocks for mapped reads, and using ureads descriptor blocks for unmapped reads. 13. Способ по п.12, в котором блоки доступа класса I строят с помощью тех же самых блоков дескрипторов, что и для блоков доступа класса Р, плюс блоки дескрипторов indp, indt и indc для информации о положении и типе замен, инсерций, делеций и отсеченных оснований, причем информацию о множественных выравниваниях передают с помощью блоков дескрипторов mmap и msar.13. The method of claim 12, wherein class I access blocks are constructed using the same descriptor blocks as for class P access blocks, plus indp, indt and indc descriptor blocks for information about the position and type of substitutions, insertions, deletions and base trims, with information about multiple alignments being conveyed using mmap and msar descriptor blocks. 14. Способ по п.13, в котором информацию о сплайсированных выравниваниях передают с помощью расширенной строки cigar, содержащей символ = для указания совпадающих оснований, символ + для указания инсерций, символ - для указания делеций, символ / для указания сплайса на прямой цепочке, символ % для указания сплайса на обратной цепочке, символ * для указания ненаправленного сплайса, текстовый символ из кодов IUPAC для ДНК для указания замены, символ (n) для указания n мягко отсеченных оснований, где n является целым числом, символ [n] для указания n жестко отсеченных оснований, где n является целым числом.14. The method of claim 13, wherein information about the spliced alignments is conveyed using an extended cigar string containing the symbol = to indicate matching bases, the symbol + to indicate insertions, the symbol - to indicate deletions, the symbol / to indicate splicing on the straight strand, % symbol to indicate reverse strand splice, * symbol to indicate non-directional splice, text symbol from IUPAC codes for DNA to indicate substitution, (n) symbol to indicate n soft truncated bases where n is an integer, [n] symbol to indicate n hard-cut bases, where n is an integer. 15. Способ по п.14, в котором блоки дескрипторов содержат таблицу главного индекса, содержащую по одному разделу для каждого класса и подкласса выровненных ридов, причем раздел содержит положения картирования на одну или более референсных последовательностей первого рида каждого блока доступа каждого класса или подкласса данных;15. The method of claim 14, wherein the descriptor blocks comprise a master index table containing one partition for each class and subclass of aligned reads, wherein the partition contains mapping positions to one or more reference sequences of the first read of each access block of each class or subclass of data ; указанную таблицу главного индекса и данные блока доступа кодируют вместе.said main index table and access block data are encoded together. 16. Способ по п.15, в котором блоки дескрипторов также содержат информацию о типе использованного референса, выбранного16. The method according to claim 15, in which the descriptor blocks also contain information about the type of reference used, selected - 32 043338 из ранее существующего или построенного, и сегментах рида, которые не картированы на эту референсную последовательность, при этом предпочтительно референсные последовательности сначала преобразуют в другие референсные последовательности путем применения замен, инсерций, делеций и отсечений, а затем кодируют классифицированные выровненные риды в виде множества блоков дескрипторов, относящихся к преобразованным референсным последовательностям.- 32 043338 from a pre-existing or constructed one, and read segments that are not mapped to this reference sequence, wherein preferably the reference sequences are first converted to other reference sequences by applying substitutions, insertions, deletions and truncations, and then encoding the classified aligned reads as a set of descriptor blocks related to the transformed reference sequences. 17. Способ по п.16, в котором к референсным последовательностям, используемым для всех классов данных, применяют одно и то же преобразование; или к референсным последовательностям, используемым для каждого класса данных, применяют разные преобразования, причем преобразования референсных последовательностей кодируют в виде блоков дескрипторов и структурируют с помощью информации заголовка с созданием тем самым последовательных блоков доступа.17. The method of claim 16, wherein the same transformation is applied to the reference sequences used for all data classes; or different transformations are applied to the reference sequences used for each data class, the transformations of the reference sequences being encoded as descriptor blocks and structured using header information thereby creating successive access blocks. 18. Способ по п.14, в котором разные преобразования применяют к референсным последовательностями, используемым для каждого класса данных, причем преобразования референсных последовательностей кодируют в виде блоков дескрипторов и структурируют с помощью информации заголовка с созданием тем самым последовательных блоков доступа, при этом кодирование классифицированных выровненных ридов и связанных преобразований референсных последовательностей в виде множества блоков дескрипторов включает в себя этап связывания конкретной модели источника и конкретного энтропийного кодера с каждом блоком дескрипторов, при этом энтропийный кодер представляет собой контекстно-адаптивный арифметический кодер, кодер переменной длины или кодер Голомба.18. The method of claim 14, wherein different transformations are applied to the reference sequences used for each data class, wherein the transformations of the reference sequences are encoded as descriptor blocks and structured using header information thereby creating successive access blocks, wherein the encoding of the classified aligned reads and associated transformations of reference sequences in the form of a plurality of descriptor blocks includes the step of associating a specific source model and a specific entropy encoder with each descriptor block, wherein the entropy encoder is a context-adaptive arithmetic encoder, a variable length encoder, or a Golomb encoder. 19. Реализуемый на компьютере способ декодирования кодированных геномных данных, включающий в себя следующие этапы:19. A computer-implemented method for decoding encoded genomic data, which includes the following steps: синтаксический анализ блоков доступа, содержащих кодированные геномные данные, для выделения множества блоков дескрипторов путем использования информации заголовка; и декодирование множества блоков дескрипторов для выделения ридов в соответствии с заданными правилами сопоставления, определяющими их классификацию относительно одной или более референсных последовательностей, причем для блока доступа, принадлежащего первому, второму, третьему или четвертому классу, блоки дескрипторов описывают совпадение указанных ридов с первыми референсными последовательностями в соответствии с заданными правилами сопоставления, где блок доступа принадлежит первому классу (классу Р), если он представляет геномные риды без несовпадений с референсной последовательностью, использованной для картирования;parsing access blocks containing encoded genomic data to extract a plurality of descriptor blocks by using header information; and decoding a plurality of descriptor blocks to select reads in accordance with specified matching rules that determine their classification relative to one or more reference sequences, wherein for an access block belonging to the first, second, third or fourth class, the descriptor blocks describe the match of said reads with the first reference sequences according to specified matching rules, where an access block belongs to the first class (class P) if it represents genomic reads without mismatches with the reference sequence used for mapping; где блок доступа принадлежит второму классу (классу N), если он представляет геномные риды, для которых несовпадения обнаруживают только в положениях, где секвенатор оказался не в состоянии определить никакого основания, и количество несовпадений в каждом риде не превышает данного порога;where an access block belongs to the second class (class N) if it represents genomic reads for which mismatches are found only at positions where the sequencer failed to detect any base, and the number of mismatches in each read does not exceed a given threshold; где блок доступа принадлежит третьему классу (классу М), если он представляет геномные риды, для которых несовпадения обнаруживают в положениях, где секвенатор оказался не в состоянии определить никакого основания n-типа и/или он определил другое основание по сравнению с референсной последовательностью s-типа, и количество несовпадений не превышает заданных порогов для количества несовпадений n-типа, s-типа и порога, полученного из заданной функции (f(n,s));where an access block belongs to the third class (class M) if it represents genomic reads for which mismatches are found at positions where the sequencer failed to identify any n-type base and/or it identified a different base compared to the s-type reference sequence type, and the number of mismatches does not exceed the specified thresholds for the number of mismatches of n-type, s-type and the threshold obtained from the given function (f(n,s)); где блок доступа принадлежит четвертому классу (классу I), если он представляет геномные риды, которые могут иметь несовпадения того же типа, что и несовпадения третьего класса (класса М), и дополнительно по меньшей мере одно несовпадение следующего типа: инсерция (i-тип), делеция (d-тип), мягкие или жесткие отсечения (с-тип), и при этом количество несовпадений для каждого типа не превышает соответствующего заданного порога и порога, обеспечиваемого заданной функцией (w(n,s,i,d,c));where an access block belongs to the fourth class (class I) if it represents genomic reads that may have mismatches of the same type as mismatches of the third class (class M), and additionally at least one mismatch of the following type: insertion (i-type ), deletion (d-type), soft or hard cuts (c-type), and the number of mismatches for each type does not exceed the corresponding specified threshold and the threshold provided by the specified function (w(n,s,i,d,c )); где блоки доступа первого класса (класса Р) строят с использованием блоков дескрипторов для информации о положении картирования, блоков дескрипторов для информации о том, из какой цепи ДНК секвенировали рид (цепочечности), и флагов для информации об определенных характеристиках рида последовательности, при этом в указанных блоках доступа класса Р информацию о спаривании парноконцевых ридов кодируют с использованием соответствующего блока дескрипторов;where first class (P class) access blocks are constructed using descriptor blocks for information about the mapping position, descriptor blocks for information about which DNA strand the read was sequenced from, and flags for information about certain characteristics of the sequence read, wherein in the specified class P access blocks, information about the pairing of paired-end reads is encoded using the corresponding descriptor block; где блоки доступа второго класса (класса N) строят с использованием тех же блоков дескрипторов, что и для блоков доступа первого класса (класса Р), плюс блок дескрипторов для информации о положениях неизвестных оснований;where the access blocks of the second class (class N) are constructed using the same blocks of descriptors as for the access blocks of the first class (class P), plus a block of descriptors for information about the positions of unknown bases; где блоки доступа третьего класса (класса М) строят с использованием тех же блоков дескрипторов, что и для блоков доступа первого класса (класса Р), плюс блоки дескрипторов для информации о положении и типах замен;where third class (M class) access blocks are constructed using the same descriptor blocks as for first class (P class) access blocks, plus descriptor blocks for information about the position and types of replacements; где блоки доступа четвертого класса (класса I) строят с использованием тех же блоков дескрипторов, что и для блоков доступа первого класса (класса Р), плюс блоки дескрипторов для информации оwhere fourth class (Class I) access blocks are constructed using the same descriptor blocks as for first class (P Class) access blocks, plus descriptor blocks for information about --
EA201991908 2017-02-14 2018-02-14 METHOD AND DEVICE FOR COMPACT REPRESENTATION OF BIOINFORMATION DATA USING SEVERAL GENOMIC DESCRIPTORS EA043338B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
USPCT/US2017/017842 2017-02-14
USPCT/US2017/041591 2017-07-11

Publications (1)

Publication Number Publication Date
EA043338B1 true EA043338B1 (en) 2023-05-15

Family

ID=

Similar Documents

Publication Publication Date Title
CN110678929B (en) Methods and systems for efficient compression of genomic sequence reads
CN110088839B (en) Efficient data structures for bioinformatic information representation
KR102421458B1 (en) Method and apparatus for accessing structured bioinformatics data with an access unit
AU2018221458B2 (en) Method and apparatus for the compact representation of bioinformatics data using multiple genomic descriptors
JP7362481B2 (en) A method for encoding genome sequence data, a method for decoding encoded genome data, a genome encoder for encoding genome sequence data, a genome decoder for decoding genome data, and a computer-readable recording medium
KR20190071741A (en) Method and Apparatus for Simplifying Expression of Bioinformatics Data
JP7324145B2 (en) Methods and systems for efficient compaction of genomic sequence reads
EA043338B1 (en) METHOD AND DEVICE FOR COMPACT REPRESENTATION OF BIOINFORMATION DATA USING SEVERAL GENOMIC DESCRIPTORS
CN110663022B (en) Method and apparatus for compact representation of bioinformatic data using genomic descriptors
NZ757185B2 (en) Method and apparatus for the compact representation of bioinformatics data using multiple genomic descriptors
EA040022B1 (en) METHOD AND DEVICE FOR COMPACT REPRESENTATION OF BIOINFORMATICS DATA
NZ753247B2 (en) Efficient data structures for bioinformatics information representation