RU2807474C1 - Method for compressing genome sequence data - Google Patents
Method for compressing genome sequence data Download PDFInfo
- Publication number
- RU2807474C1 RU2807474C1 RU2022101852A RU2022101852A RU2807474C1 RU 2807474 C1 RU2807474 C1 RU 2807474C1 RU 2022101852 A RU2022101852 A RU 2022101852A RU 2022101852 A RU2022101852 A RU 2022101852A RU 2807474 C1 RU2807474 C1 RU 2807474C1
- Authority
- RU
- Russia
- Prior art keywords
- read
- computers
- reference sequence
- mismatches
- encoding
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 149
- 238000013144 data compression Methods 0.000 claims abstract 3
- 230000008569 process Effects 0.000 claims description 79
- 239000002773 nucleotide Substances 0.000 claims description 65
- 125000003729 nucleotide group Chemical group 0.000 claims description 64
- 238000012545 processing Methods 0.000 claims description 43
- 238000003780 insertion Methods 0.000 claims description 8
- 230000037431 insertion Effects 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 8
- 230000009467 reduction Effects 0.000 claims description 6
- 238000003491 array Methods 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 4
- 239000000126 substance Substances 0.000 abstract 1
- 230000006835 compression Effects 0.000 description 48
- 238000007906 compression Methods 0.000 description 46
- 230000006837 decompression Effects 0.000 description 8
- 108091028043 Nucleic acid sequence Proteins 0.000 description 5
- 108020004707 nucleic acids Proteins 0.000 description 5
- 102000039446 nucleic acids Human genes 0.000 description 5
- 150000007523 nucleic acids Chemical class 0.000 description 5
- 108020004414 DNA Proteins 0.000 description 4
- 102000053602 DNA Human genes 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- RWQNBRDOKXIBIV-UHFFFAOYSA-N thymine Chemical compound CC1=CNC(=O)NC1=O RWQNBRDOKXIBIV-UHFFFAOYSA-N 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 238000012268 genome sequencing Methods 0.000 description 3
- 229920002477 rna polymer Polymers 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- ISAKRJDGNUQOIC-UHFFFAOYSA-N Uracil Chemical compound O=C1C=CNC(=O)N1 ISAKRJDGNUQOIC-UHFFFAOYSA-N 0.000 description 2
- OPTASPLRGRRNAP-UHFFFAOYSA-N cytosine Chemical compound NC=1C=CNC(=O)N=1 OPTASPLRGRRNAP-UHFFFAOYSA-N 0.000 description 2
- UYTPUPDQBNUYGX-UHFFFAOYSA-N guanine Chemical compound O=C1NC(N)=NC2=C1N=CN2 UYTPUPDQBNUYGX-UHFFFAOYSA-N 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 229940113082 thymine Drugs 0.000 description 2
- GFFGJBXGBJISGV-UHFFFAOYSA-N Adenine Chemical compound NC1=NC=NC2=C1N=CN2 GFFGJBXGBJISGV-UHFFFAOYSA-N 0.000 description 1
- 229930024421 Adenine Natural products 0.000 description 1
- 208000026350 Inborn Genetic disease Diseases 0.000 description 1
- 229960000643 adenine Drugs 0.000 description 1
- 125000003275 alpha amino acid group Chemical group 0.000 description 1
- 229940104302 cytosine Drugs 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000003745 diagnosis Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 239000003814 drug Substances 0.000 description 1
- 208000016361 genetic disease Diseases 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 108090000623 proteins and genes Proteins 0.000 description 1
- 238000002864 sequence alignment Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 229940035893 uracil Drugs 0.000 description 1
Images
Abstract
Description
Область техникиField of technology
Область техники относится в целом к способам представления данных секвенирования генома, полученных секвенатором, а в частности к реализуемым на компьютере способам сжатия таких данных секвенирования генома. В описании предложен способ сжатия на основе референсной последовательности, который обеспечивает быстрое сжатие и распаковку, в то же время исключая потерю информации, и который имеет высокий коэффициент сжатия.The technical field generally relates to methods for presenting genome sequencing data obtained by a sequencer, and in particular to computer-implemented methods for compressing such genome sequencing data. The description proposes a reference sequence-based compression method that provides fast compression and decompression while eliminating information loss, and which has a high compression ratio.
Уровень техникиState of the art
В настоящее время секвенаторы следующего поколения генерируют большие объемы данных секвенирования по доступной цене. Современные системы за один цикл продолжительностью 36 ч генерируют более 6 миллиардов последовательностей длиной 150 нуклеотидов, что достаточно для секвенирования 20 полных геномов человека. В результате этого открывается множество новых перспектив для диагностики генетических заболеваний или разработки персонализированной медицины, целью которой является адаптация лечения с учетом специфики генома человека.Next-generation sequencers are now generating large volumes of sequencing data at an affordable price. Modern systems generate more than 6 billion 150-nucleotide sequences in a single 36-hour cycle, which is enough to sequence 20 complete human genomes. As a result, many new prospects are opening up for the diagnosis of genetic diseases or the development of personalized medicine, the goal of which is to tailor treatment taking into account the specifics of the human genome.
Однако также возникают новые проблемы, в частности, связанные со стоимостью хранения больших объемов данных. Самым распространенным форматом файла для исходных (без выравнивания) данных последовательности является формат FASTQ, в котором хранятся данные последовательности (строка нуклеотидов А, С, Т, G, также называемая прочтением), значения качества (вероятности ошибки платформы секвенирования в последовательности для каждого нуклеотида) и названия последовательностей. Это обычный текстовой файл ASCII, который часто сжимают с помощью стандартного алгоритма сжатия LZ (алгоритм Lempel-Ziv, реализуемый в программном обеспечении gzip). Тем не менее использование таких способов сжатия сопряжено с рядом проблем:However, new challenges also arise, particularly related to the cost of storing large volumes of data. The most common file format for raw (unaligned) sequence data is the FASTQ format, which stores sequence data (a string of nucleotides A, C, T, G, also called a read), quality values (the sequencing platform's error probabilities in the sequence for each nucleotide) and sequence names. It is a plain ASCII text file that is often compressed using the standard LZ compression algorithm (the Lempel-Ziv algorithm implemented in gzip software). However, the use of such compression methods is associated with a number of problems:
- низкий коэффициент сжатия, поскольку не в полной мере используется повторяемость данных;- low compression ratio, since data repeatability is not fully used;
- медленное сжатие и распаковка.- slow compression and decompression.
Также существуют способы сжатия, специально разработанные для кодирования FASTQ, которые подразделяются на использующие референсную последовательность и не использующие ее. Тем не менее ни один из них в полной мере не удовлетворяет требованиям, поскольку а) способы на основе референсных последовательностей обеспечивают оптимальные коэффициенты сжатия, но они медленные, b) способы без референсных последовательностей быстрее, но имеют меньшие коэффициенты сжатия. Примером такого способа без референсных последовательностей является программное обеспечение SPRING, которое представляет собой программу сжатия без референсных последовательностей для файлов FASTQ (адрес в Интернете: github.com/shubhamchandak94/SPRING). Однако способ сжатия, предлагаемый программным обеспечением SPRING, имеет низкий коэффициент сжатия.There are also compression methods specifically designed for FASTQ encoding, which are divided into those that use a reference sequence and those that do not. However, none of them fully satisfies the requirements, since a) methods based on reference sequences provide optimal compression ratios, but they are slow, b) methods without reference sequences are faster, but have lower compression ratios. An example of such a reference-free method is the SPRING software, which is a reference-free compression program for FASTQ files (web address: github.com/shubhamchandak94/SPRING). However, the compression method offered by SPRING software has a low compression ratio.
Предложен ряд способов, относящихся к способам сжатия с референсными последовательностями, где применяются выравнивания последовательностей и которые должны работать быстрее с хорошими коэффициентами сжатия. Однако такие способы имеют ряд проблем, причем особенно серьезной проблемой является то, что они не позволяют полностью исключить потери. Такой известный способ сжатия на основе референсной последовательности, например, описан в патентном документе WO 2018/068829 А1. В описанном способе после выравнивания с одной или более референсными последовательностями последовательности нуклеотидов классифицируются в соответствии со степенями точности соответствия (создавая таким образом классы выровненных прочтений), а затем кодируются в виде множества слоев элементов синтаксиса с использованием разных исходных моделей и энтропийных кодеров для каждого слоя, в которые осуществляется разделение данных. Таким образом, классы данных кодируются раздельно и структурируются в разные слои элементов синтаксиса, при этом каждый слой включает дескрипторы, которые уникальным образом отражают классифицированные и выровненные прочтения указанного слоя. Способ предназначен для того, чтобы получать источники четкой информации с пониженной энтропией информации, таким образом обеспечивая увеличение показателей сжатия, а также выборочный доступ к конкретным классам сжатых данных. Однако такой способ сжатия приводит к переупорядочению прочтений в таком порядке, который отличается от получаемого в конце стадии выравнивания прочтений (т.е. изменяется порядок прочтений в соответствии с их классами). Поэтому в процессе сжатия теряется определенная информация, в особенности порядок исходной последовательности. Таким образом, это может влиять на воспроизводимость некоторых результатов анализа, поскольку некоторые программы последующего анализа могут зависеть от порядка прочтений. Кроме того, распаковка данных в порядке, который отличается от исходного порядка прочтений, в значительной степени усложняет проверку идентичности распакованного файла с исходным файлом. Более того, такой способ сжатия является сравнительно медленным, в особенности в сравнении с существующими в данной области техники способами сжатия без референсной последовательности.A number of methods have been proposed, related to reference sequence compression methods, which use sequence alignments and should work faster with good compression ratios. However, such methods have a number of problems, with a particularly serious problem being that they do not completely eliminate losses. Such a known compression method based on a reference sequence is, for example, described in patent document WO 2018/068829 A1. In the described method, after alignment to one or more reference sequences, nucleotide sequences are classified according to degrees of match accuracy (thus creating classes of aligned reads), and then encoded into multiple layers of syntax elements using different source models and entropy encoders for each layer. into which data is divided. Thus, data classes are encoded separately and structured into different layers of syntax elements, with each layer including descriptors that uniquely reflect the classified and aligned reads of that layer. The method is designed to obtain clear information sources with reduced information entropy, thereby providing increased compression rates as well as selective access to specific classes of compressed data. However, this compression method results in the reordering of reads in an order that differs from that obtained at the end of the read alignment stage (i.e., the order of reads is changed in accordance with their classes). Therefore, during the compression process, certain information is lost, especially the order of the original sequence. Thus, this may affect the reproducibility of some analysis results, since some downstream analysis programs may be dependent on the order of the reads. In addition, unpacking data in an order that differs from the original reading order makes it very difficult to verify that the unpacked file is identical to the original file. Moreover, this compression method is comparatively slow, especially compared to existing compression methods in the art without a reference sequence.
Краткое описание изобретенияBrief description of the invention
Приведенные ниже признаки независимых пунктов формулы изобретения позволяют решить проблему существующих решений предшествующего уровня техники, предлагая способ сжатия данных последовательности генома. В одном аспекте реализуемый на компьютере способ сжатия данных последовательности генома, полученных с помощью секвенатора, причем указанные данные последовательности генома включают прочтения последовательностей нуклеотидов или оснований, которые были выровнены с референсной последовательностью, с формированием таким образом выровненных прочтений, при этом указанные выровненные прочтения хранятся в виде списка прочтений в исходном файле, и включает стадии, на которых:The following features of the independent claims solve the problem of existing prior art solutions by providing a method for compressing genome sequence data. In one aspect, a computer-implemented method for compressing genome sequence data obtained by a sequencer, wherein said genome sequence data includes nucleotide or base sequence reads that have been aligned to a reference sequence, thereby generating aligned reads, wherein said aligned reads are stored in form of a list of reads in the source file, and includes the stages at which:
- определяют для каждого выровненного прочтения, насколько точно или неточно указанное прочтение сопоставляется с указанной референсной последовательностью, или же указанное прочтение не сопоставляется с указанной референсной последовательностью,- determine for each aligned read how accurately or inaccurately the specified read maps to the specified reference sequence, or whether the specified read does not map to the specified reference sequence,
- кодируют прочтения в соответствии с указанным определением, причем прочтения, которые определены как точно сопоставленные, кодируются в соответствии с первым процессом кодирования, а прочтения, которые определены как несопоставленные, кодируются в соответствии со вторым процессом кодирования,- encoding the reads in accordance with the specified definition, wherein reads that are determined to be exactly matched are coded in accordance with the first coding process, and reads that are determined to be unmatched are coded in accordance with the second coding process,
- при этом стадия определения для каждого неточно сопоставленного прочтения включает сравнение количества несоответствий между указанным прочтением и указанной референсной последовательностью с учетом порогового значения,- wherein the determination stage for each inaccurately mapped read includes a comparison of the number of mismatches between the specified read and the specified reference sequence, taking into account a threshold value,
- при этом на стадии кодирования прочтения, которые определены как неточно сопоставленные, кодируются в соответствии со вторым процессом кодирования или с третьим процессом кодирования, при этом неточно сопоставленные прочтения кодируются в соответствии со вторым процессом кодирования, если указанное количество несоответствий превышает пороговое значение, а если указанное количество несоответствий меньше порогового значения, то такие неточно сопоставленные прочтения кодируются в соответствии с третьим процессом кодирования,- wherein at the coding stage, reads that are determined to be mismatched are coded in accordance with a second coding process or a third coding process, wherein mismatched reads are coded in accordance with the second coding process if the specified number of mismatches exceeds a threshold, and if the specified number of mismatches is less than the threshold value, then such inaccurately matched reads are encoded according to the third encoding process,
- при этом в указанном втором процессе кодирования каждый нуклеотид или основание прочтения кодируются по отдельности,- wherein in said second encoding process, each nucleotide or reading base is encoded separately,
- при этом указанные первый и третий процессы кодирования включают четко заданные наборы дескрипторов, и каждый набор дескрипторов уникальным образом представляет прочтения, связанные с соответствующим процессом кодирования, и каждый из указанных первого и третьего процессов кодирования представляет собой процесс кодирования с понижением энтропии источника информации.- wherein said first and third encoding processes include well-defined sets of descriptors, and each set of descriptors uniquely represents readings associated with the corresponding encoding process, and each of said first and third encoding processes represents an entropy-reducing encoding process of the information source.
Изобретение позволяет преодолеть недостатки способов сжатия предшествующего уровня техники, позволяя выполнять быстрое сжатие и распаковку и одновременно исключая потерю информации и обеспечивая высокий коэффициент сжатия. Более конкретно, в изобретении основное внимание уделяется кодированию наиболее часто встречающихся случаев наиболее компактным образом, даже если это означает применение режимов кодирования со сниженными характеристиками для редких наименее часто встречающихся случаев. Это обеспечивает значительное улучшение показателей сжатия. Более того, благодаря формату представления геномной информации, который используется в изобретении, сжатие, выполняемое по способу в соответствии с изобретением, является более быстрым. Не в последнюю очередь способ в соответствии с изобретением позволяет сохранить исходный порядок прочтений как таковой и не приводит к переупорядочению прочтений в соответствии с их классами. Следовательно, в ходе процесса не происходит потери информации, что упрощает последующий анализ, а также эффективные проверки конформации после стадии распаковки.The invention overcomes the disadvantages of prior art compression methods by allowing fast compression and decompression while eliminating information loss and providing a high compression ratio. More specifically, the invention focuses on encoding the most frequently occurring cases in the most compact manner, even if this means using reduced-performance coding modes for the rare, least frequently occurring cases. This provides significant improvement in compression performance. Moreover, due to the genomic information representation format used in the invention, the compression performed by the method according to the invention is faster. Last but not least, the method according to the invention allows the original order of the reads to be preserved as such and does not lead to a reordering of the reads according to their classes. Consequently, there is no loss of information during the process, facilitating subsequent analysis as well as efficient conformation checks after the decompression step.
Эти и другие признаки и преимущества настоящего изобретения будут более очевидны из прилагаемых графических материалов и последующего подробного описания. Кроме того, несмотря на то что в настоящем документе могут упоминаться превышенные или не превышенные пороговые значения, следует понимать, что такие пороговые значения могут концептуально использоваться так, чтобы определить, удовлетворяется ли, соблюдается ли или регистрируется ли иным образом такое пороговое значение, независимо от того, описываются ли величины или значения, используемые для оценки таких пороговых значений, с использованием положительных или отрицательных значений.These and other features and advantages of the present invention will become more apparent from the accompanying drawings and the following detailed description. In addition, while reference may be made herein to thresholds exceeded or not exceeded, it should be understood that such thresholds may be conceptually used to determine whether such threshold is satisfied, complied with, or otherwise recorded, regardless of whether the quantities or values used to evaluate such thresholds are described using positive or negative values.
В соответствии с одним инновационным аспектом настоящего описания раскрыт способ сжатия данных геномной последовательности. В одном аспекте способ может включать выполнение одной или более операций посредством исполнения инструкций программного обеспечения одним или более компьютерами, при этом операции включают получение одним или более компьютерами записи прочтения; определение одним или более компьютерами соответствия записи прочтения такому прочтению, которое точно сопоставляется с референсной последовательностью или неточно сопоставляется с референсной последовательностью; на основании определения одним или более компьютерами соответствия записи прочтения такому прочтению, которое неточно сопоставляется с референсной последовательностью, определение одним или более компьютерами того, насколько количество несоответствий неточно сопоставленного прочтения удовлетворяет заданному пороговому количеству несоответствий; и на основании определения того, что количество несоответствий удовлетворяет заданному пороговому количеству несоответствий, кодирование одним или более компьютерами каждого несоответствия неточно сопоставленного прочтения в запись размером 1 байт.In accordance with one innovative aspect of the present disclosure, a method for compressing genomic sequence data is disclosed. In one aspect, a method may include performing one or more operations by executing software instructions by one or more computers, the operations including obtaining a read record by one or more computers; determining by one or more computers that a read record matches a read that exactly maps to the reference sequence or does not exactly map to the reference sequence; based on the determination by one or more computers that a read entry matches such a read that does not accurately map to the reference sequence, determining by one or more computers how much the number of mismatches of the imprecisely matched read satisfies a predetermined threshold number of mismatches; and based on the determination that the number of mismatches satisfies a predetermined threshold number of mismatches, encoding by one or more computers each mismatch of the imprecisely mapped read into a 1-byte record.
Другие аспекты включают соответствующие системы, аппарат и компьютерные программы для выполнения операций из способов, описанных в настоящем документе, согласно определению в инструкциях, закодированных на машиночитаемых устройствах хранения.Other aspects include appropriate systems, apparatus, and computer programs for performing the operations of the methods described herein, as defined in instructions encoded on computer-readable storage devices.
Эти и другие версии могут необязательно включать один или более из приведенных ниже признаков. Например, в некоторых вариантах реализации определение одним или более компьютерами того, насколько количество несоответствий неточно сопоставленного прочтения удовлетворяет заданному пороговому количеству несоответствий, может включать определение одним или более компьютерами того, превышает ли количество несоответствий неточно сопоставленных прочтений заданное пороговое количество несоответствий.These and other versions may optionally include one or more of the following features. For example, in some embodiments, determining by one or more computers whether the number of mismatches of the loosely mapped read satisfies a predetermined threshold number of mismatches may include determining by one or more computers whether the number of mismatches of the loosely mapped reads exceeds the predetermined threshold number of mismatches.
В некоторых вариантах реализации каждая запись прочтения может включать данные, указывающие на абсолютное положение начала выровненного прочтения по отношению к референсной последовательности, данные, указывающие на точное или неточное сопоставление прочтения, данные, указывающие на длину прочтения, данные, указывающие на точное или неточное сопоставление прочтения, данные, указывающие на количество несоответствий, выявленных в прочтении, и данные, указывающие на относительное положение каждого из указанных возможных несоответствий в прочтении.In some embodiments, each read record may include data indicating the absolute position of the start of the aligned read relative to a reference sequence, data indicating an accurate or inaccurate read mapping, data indicating the length of the read, data indicating an accurate or inaccurate read mapping , data indicating the number of inconsistencies identified in the reading, and data indicating the relative position of each of the identified possible inconsistencies in the reading.
В некоторых вариантах реализации кодирование каждого несоответствия неточно сопоставленного прочтения в запись размером 1 байт для каждого конкретного несоответствия включает: кодирование одним или более компьютерами первых двух битов байта, чтобы включить данные, представляющие альтернативный нуклеотид или основание, присутствующие в прочтении вместо соответствующего референсного нуклеотида или основания в референсной последовательности; и кодирование одним или более компьютерами шести остальных битов байта, чтобы включить данные, представляющие положение несоответствия в референсной последовательности, при этом указанное положение вычисляется в виде смещения относительно предыдущего несоответствия прочтения.In some embodiments, encoding each mismatch of an imprecisely mapped read into a 1-byte record for each particular mismatch includes: encoding by one or more computers the first two bits of the byte to include data representing an alternative nucleotide or base present in the read in place of the corresponding reference nucleotide or base in the reference sequence; and encoding by one or more computers the remaining six bits of the byte to include data representing the position of the mismatch in the reference sequence, said position being calculated as an offset relative to the previous mismatch read.
В некоторых вариантах реализации способ может дополнительно включать определение одним или более компьютерами того, превышает ли смещение максимальное кодируемое значение, и на основании определения того, что смещение превышает максимальное кодированное значение, вставку одним или более компьютерами по меньшей мере одного фиктивного несоответствия между конкретным несоответствием и предыдущим несоответствием.In some embodiments, the method may further include determining by one or more computers whether the offset exceeds a maximum encoded value, and based on the determination that the offset exceeds the maximum encoded value, inserting by one or more computers at least one dummy discrepancy between the particular discrepancy and previous discrepancy.
В некоторых вариантах реализации на основании определения того, что количество несоответствий не удовлетворяет заданному пороговому количеству несоответствий, кодирование одним или более компьютерами списка положений референсной последовательности, соответствующих положению каждого из несоответствий относительно референсной последовательности, с использованием процесса кодирования с понижением энтропии информации.In some embodiments, based on a determination that the number of mismatches does not satisfy a predetermined threshold number of mismatches, one or more computers encode a list of reference sequence positions corresponding to the position of each of the mismatches relative to the reference sequence using an information entropy reduction encoding process.
В некоторых вариантах реализации на основании определения того, что запись прочтения соответствует прочтению, которое точно сопоставляется с референсной последовательностью, способ может дополнительно включать кодирование одним или более компьютерами по меньшей мере участка записи прочтения с использованием кодирования с понижением энтропии информации.In some embodiments, based on determining that the read record corresponds to a read that exactly maps to the reference sequence, the method may further include encoding by one or more computers at least a portion of the read record using information-reducing entropy coding.
В некоторых вариантах реализации один или более компьютеров могут включать один или более аппаратных процессоров.In some embodiments, one or more computers may include one or more hardware processors.
В некоторых вариантах реализации один или более аппаратных процессоров могут включать одну или более программируемых пользователем вентильных матриц (FPGA).In some embodiments, one or more hardware processors may include one or more field programmable gate arrays (FPGAs).
В некоторых вариантах реализации способ сжатия данных геномной последовательности может быть реализован с помощью одного или более аппаратных процессоров. В таких вариантах реализации аппаратные процессоры могут включать аппаратную систему обработки, которая выполнена с возможностью выполнения одной или более операций. В одном аспекте операции могут включают получение аппаратной системой обработки записи прочтения; определение аппаратной системой обработки соответствия записи прочтения такому прочтению, которое точно сопоставляется с референсной последовательностью или неточно сопоставляется с референсной последовательностью; на основании определения аппаратной системой обработки соответствия записи прочтения такому прочтению, которое неточно сопоставляется с референсной последовательностью, определение аппаратной системой обработки того, насколько количество несоответствий неточно сопоставленного прочтения удовлетворяет заданному пороговому количеству несоответствий; и на основании определения того, что количество несоответствий удовлетворяет заданному пороговому количеству несоответствий, кодирование аппаратной системой обработки каждого несоответствия неточно сопоставленного прочтения в запись размером 1 байт.In some embodiments, a method for compressing genomic sequence data may be implemented using one or more hardware processors. In such embodiments, hardware processors may include a hardware processing system that is configured to perform one or more operations. In one aspect, the operations may include receiving a read record by the hardware processing system; determining by the hardware processing system whether the read record corresponds to a read that exactly maps to the reference sequence or does not exactly map to the reference sequence; based on the hardware processing system's determination of whether a read record corresponds to a read that does not accurately map to the reference sequence, determining by the hardware processing system how much the number of mismatches of the inaccurately matched read satisfies a predetermined threshold number of mismatches; and, based on the determination that the number of mismatches satisfies a predetermined threshold number of mismatches, encoding the hardware processing system of each mismatch of the imprecisely mapped read into a 1-byte record.
Эти и другие признаки и преимущества настоящего изобретения будут более очевидны из прилагаемых графических материалов и последующего подробного описания.These and other features and advantages of the present invention will become more apparent from the accompanying drawings and the following detailed description.
В некоторых вариантах реализации каждая запись прочтения может содержать данные, указывающие на абсолютное положение начала выровненного прочтения по отношению к референсной последовательности, данные, указывающие на точное или неточное сопоставление прочтения, данные, указывающие на длину прочтения, данные, указывающие на точное или неточное сопоставление прочтения, данные, указывающие на количество несоответствий, выявленных в прочтении, и данные, указывающие на относительное положение указанных возможных несоответствий в прочтении.In some embodiments, each read record may contain data indicating the absolute position of the start of the aligned read relative to a reference sequence, data indicating an accurate or imprecise read mapping, data indicating the length of the read, data indicating an accurate or inaccurate read mapping , data indicating the number of inconsistencies identified in the reading, and data indicating the relative position of these possible inconsistencies in the reading.
В некоторых вариантах реализации определение аппаратной системой обработки того, насколько количество несоответствий неточно сопоставленного прочтения удовлетворяет заданному пороговому количеству несоответствий, может включать определение аппаратной системой обработки того, превышает ли количество несоответствий неточно сопоставленных прочтений заданное пороговое количество несоответствий.In some embodiments, determining by the hardware processing system whether the number of mismatches of the imprecisely mapped read satisfies a predetermined threshold number of mismatches may include determining by the hardware processing system whether the number of mismatches of the imprecisely mapped reads exceeds the predetermined threshold number of mismatches.
В некоторых вариантах реализации кодирование каждого несоответствия неточно сопоставленного прочтения в запись размером 1 байт для каждого конкретного несоответствия может включать кодирование аппаратной системой обработки первых двух битов байта, чтобы включить данные об альтернативном нуклеотиде или основании, присутствующем в прочтении вместо соответствующего референсного нуклеотида или основания референсной последовательности; и кодирование аппаратной системой обработки шести остальных битов байта, чтобы включить данные о положении несоответствия в референсной последовательности, при этом указанное положение вычисляется как смещение относительно предыдущего несоответствия прочтения.In some embodiments, encoding each mismatch of an imprecisely mapped read into a 1-byte record for each particular mismatch may include the hardware processing system encoding the first two bits of the byte to include data about an alternative nucleotide or base present in the read in place of the corresponding reference nucleotide or base of the reference sequence ; and encoding the processing hardware of the six remaining bits of the byte to include information about the position of the mismatch in the reference sequence, wherein said position is calculated as an offset relative to the previous mismatch read.
В некоторых вариантах реализации аппаратная система обработки дополнительно выполнена с возможностью выполнения операций, которые включают определение аппаратной системой обработки, превышает ли смещение максимальное кодируемое значение, и на основании определения того, что смещение превышает максимальное кодированное значение, вставку аппаратной системой обработки по меньшей мере одного фиктивного несоответствия между конкретным несоответствием и предыдущим несоответствием.In some embodiments, the hardware processing system is further configured to perform operations that include the hardware processing system determining whether the offset exceeds a maximum encoded value, and based on the determination that the offset exceeds the maximum encoded value, inserting at least one dummy discrepancies between a specific nonconformity and a previous nonconformity.
В некоторых вариантах реализации на основании определения того, что количество несоответствий не удовлетворяет заданному пороговому количеству несоответствий, аппаратная система обработки дополнительно выполнена с возможностью выполнять операции, которые включают кодирование аппаратной системой обработки списка положений референсной последовательности, соответствующих положению каждого из несоответствий относительно референсной последовательности, с использованием процесса кодирования с понижением энтропии информации.In some embodiments, based on a determination that the number of mismatches does not satisfy a predetermined threshold number of mismatches, the hardware processing system is further configured to perform operations that include encoding the hardware processing system of a list of reference sequence positions corresponding to the position of each of the mismatches relative to the reference sequence, with using a coding process that reduces the entropy of information.
В некоторых вариантах реализации на основании определения того, что запись прочтения соответствует прочтению, которое точно сопоставляется с референсной последовательностью, аппаратная система обработки дополнительно выполнена с возможностью выполнять операции, которые включают кодирование аппаратной системой обработки по меньшей мере участка записи прочтения с использованием кодирования с понижением энтропии информации.In some embodiments, based on determining that the read record corresponds to a read that exactly maps to the reference sequence, the hardware processing system is further configured to perform operations that include the hardware processing system encoding at least a portion of the read record using reduced entropy coding information.
В некоторых вариантах реализации аппаратная система обработки включает одну или более программируемых пользователем вентильных матриц (FPGA).In some embodiments, the hardware processing system includes one or more field programmable gate arrays (FPGAs).
В соответствии с другим инновационным аспектом настоящего описания реализуемый на компьютере способ сжатия данных последовательности генома, полученных с помощью секвенатора, причем указанные данные последовательности генома включают прочтения последовательностей нуклеотидов или оснований, которые были выровнены с референсной последовательностью, с формированием таким образом выровненных прочтений, при этом указанные выровненные прочтения хранятся в виде списка прочтений в исходном файле. В одном аспекте способ может включать действия для каждого выровненного прочтения, определение того, насколько точно или неточно указанное прочтение сопоставляется с указанной референсной последовательностью, или же установление того, что указанное прочтение не сопоставляется с указанной референсной последовательностью; кодирование прочтения в соответствии с указанным определением, при этом те прочтения, которые отнесены к точно сопоставленным, кодируются в соответствии с первым процессом кодирования, а те прочтения, которые отнесены к неточно сопоставленным, кодируется в соответствии со вторым процессом кодирования, при этом стадия определения для каждого неточно сопоставленного прочтения включает сравнение количества несоответствий между указанным прочтением и указанной референсной последовательностью с учетом порогового значения, при этом на стадии кодирования те прочтения, которые определены как неточно сопоставленные, кодируются в соответствии со вторым процессом кодирования или с третьим процессом кодирования, при этом неточно сопоставленные прочтения кодируются в соответствии со вторым процессом кодирования, если указанное количество несоответствий превышает пороговое значение, а если указанное количество несоответствий меньше порогового значения, то такие неточно сопоставленные прочтения кодируются в соответствии с третьим процессом кодирования, при этом в указанном втором процессе кодирования каждый нуклеотид или основание прочтения кодируются по отдельности, при этом указанные первый и третий процессы кодирования включают четко заданные наборы дескрипторов, и каждый набор дескрипторов уникальным образом представляет прочтения, связанные с соответствующим процессом кодирования, и каждый из указанных первого и третьего процессов кодирования представляет собой процесс кодирования с понижением энтропии источника информации.According to another innovative aspect of the present disclosure, a computer-implemented method of compressing genome sequence data obtained by a sequencer, said genome sequence data comprising nucleotide or base sequence reads that have been aligned to a reference sequence, thereby generating aligned reads, wherein the specified aligned reads are stored as a list of reads in the source file. In one aspect, the method may include acting on each aligned read, determining whether said read maps accurately or poorly to said reference sequence, or determining that said read does not map to said reference sequence; coding a read in accordance with said definition, wherein those reads that are classified as accurately mapped are coded in accordance with a first coding process, and those reads that are classified as inaccurately mapped are coded in accordance with a second coding process, wherein the determination step for of each inaccurately mapped read includes comparing the number of mismatches between said read and a specified reference sequence based on a threshold value, wherein at the encoding stage, those reads that are determined to be inaccurately mapped are encoded in accordance with a second encoding process or with a third encoding process, wherein inaccurately mapped reads are encoded according to a second encoding process if said number of mismatches is greater than a threshold, and if said number of mismatches is less than a threshold, then such loosely mapped reads are encoded according to a third encoding process, wherein in said second encoding process each nucleotide or the basis of the readings are encoded separately, wherein said first and third encoding processes include distinct sets of descriptors, and each set of descriptors uniquely represents the readings associated with the corresponding encoding process, and each of the first and third encoding processes is a down-coding process entropy of the information source.
Другие аспекты включают соответствующие системы, аппарат и компьютерные программы для выполнения операций из способов, описанных в настоящем документе, согласно определению в инструкциях, закодированных на машиночитаемых устройствах хранения.Other aspects include appropriate systems, apparatus, and computer programs for performing the operations of the methods described herein, as defined in instructions encoded on computer-readable storage devices.
Эти и другие версии могут необязательно включать один или более из приведенных ниже признаков. Например, в некоторых вариантах реализации, если прочтение отнесено к неточно сопоставленным с референсной последовательностью и его количество несоответствий меньше порогового значения, то стадия определения может включать определение того, насколько глобально или локально прочтение сопоставляется с указанной референсной последовательностью, и при этом третий процесс кодирования включает первый дополнительный процесс кодирования и второй дополнительный процесс кодирования, при этом те прочтения, которые определены как глобально сопоставленные, кодируются в соответствии с первым дополнительным процессом кодирования, а те прочтения, которые определены как локально сопоставленные, кодируются в соответствии со вторым дополнительным процессом, при этом указанные первый и второй дополнительные процессы кодирования включают четко заданные наборы дескрипторов, при этом каждый набор дескрипторов уникальным образом представляет прочтения, связанные с соответствующим дополнительным процессом кодирования.These and other versions may optionally include one or more of the following features. For example, in some embodiments, if a read is classified as inaccurately mapped to a reference sequence and its number of mismatches is less than a threshold, then the determination step may include determining how globally or locally the read maps to the specified reference sequence, and wherein the third encoding process includes a first additional encoding process and a second additional encoding process, wherein those reads that are determined to be globally mapped are encoded in accordance with the first additional encoding process, and those reads that are determined to be locally mapped are encoded in accordance with the second additional process, wherein said first and second additional encoding processes include well-defined sets of descriptors, with each set of descriptors uniquely representing the reads associated with the corresponding additional encoding process.
В некоторых вариантах реализации указанные дескрипторы указанного первого дополнительного процесса кодирования могут включать стартовое положение выравнивания в референсной последовательности, длину прочтения и список несоответствий в виде замен символов, и при этом указанные дескрипторы указанного второго дополнительного процесса кодирования включают стартовое положение локального выравнивания в референсной последовательности, длину прочтения, список несоответствий в виде замен символов, а также длину отсеченных участков, которые не являются частью выравнивания.In some embodiments, said descriptors of said first additional encoding process may include an alignment start position in a reference sequence, a read length, and a list of character substitution mismatches, and wherein said descriptors of said second additional encoding process include a local alignment start position in a reference sequence, length readings, a list of inconsistencies in the form of character replacements, as well as the length of clipped sections that are not part of the alignment.
В некоторых вариантах реализации на стадии кодирования отсеченные участки прочтения, которые должны кодироваться в соответствии со вторым дополнительным процессом кодирования, конкатенируются, при этом каждый нуклеотид или основание указанных отсеченных участков кодируются по отдельности.In some embodiments, at the encoding stage, the read cuts to be encoded in accordance with the second additional encoding process are concatenated, with each nucleotide or base of the read cuts being individually encoded.
В некоторых вариантах реализации на стадии кодирования каждое несоответствие неточно сопоставленного прочтения кодируется 1 байтом.In some implementations, during the encoding stage, each mismatch of an imprecisely mapped read is encoded as 1 byte.
В некоторых вариантах реализации на стадии кодирования каждое несоответствие неточно сопоставленного прочтения кодирование выполняется следующим образом: два первых бита байта используются для кодирования альтернативного нуклеотида или основания, присутствующих в прочтении вместо соответствующего референсного нуклеотида или основания референсной последовательности; а шесть последних битов байта используются для кодирования положения несоответствия в референсной последовательности, при этом положение вычисляется как смещение относительно предыдущего несоответствия прочтения.In some embodiments, at the encoding stage, each mismatch of an imprecisely mapped read is encoded as follows: the first two bits of the byte are used to encode an alternative nucleotide or base present in the read in place of the corresponding reference nucleotide or base of the reference sequence; and the last six bits of the byte are used to encode the position of the mismatch in the reference sequence, with the position calculated as an offset relative to the previous mismatch read.
В некоторых вариантах реализации на стадии кодирования, если смещение, вычисляемое между определенным несоответствием и предшествующим несоответствием больше максимального кодируемого значения, то на стадии кодирования по меньшей мере одно фиктивное несоответствие вставляется между указанными двумя несоответствиями, до тех пор, пока каждое смещение между каждым из указанных несоответствий и указанным по меньшей мере одним фиктивным несоответствием не будет меньше указанного максимального кодируемого значения, при этом фиктивное несоответствие определяется как несоответствие, для которого биты байта используются для кодирования несоответствия или для кодирования нуклеотида или основания, которые идентичны соответствующему референсному нуклеотиду или основанию в референсной последовательности.In some embodiments, at the encoding stage, if the offset calculated between a particular disparity and a previous disparity is greater than the maximum encoded value, then at the encoding stage at least one dummy disparity is inserted between the two disparities until each offset between each of the specified mismatches and said at least one dummy mismatch will not be less than the specified maximum encodable value, wherein a dummy mismatch is defined as a mismatch for which the byte bits are used to encode the mismatch or to encode a nucleotide or base that is identical to the corresponding reference nucleotide or base in the reference sequence .
В некоторых вариантах осуществления начальная стадия разделения списка прочтений на блоки прочтений, при этом каждый блок начинается с заголовка, содержащего информацию, необходимую для декодирования блока, причем указанный способ сжатия реализуется поблочно.In some embodiments, the initial step of dividing the list of reads into blocks of reads, each block starting with a header containing information necessary to decode the block, the compression method being implemented on a block-by-block basis.
В некоторых вариантах реализации блоки прочтений характеризуются одинаковым размером блока.In some embodiments, read blocks are characterized by the same block size.
В некоторых вариантах реализации конечной стадией является формирование сжатого файла, содержащего список кодированных прочтений, при этом указанные кодированные прочтения хранятся в сжатом файле в том же порядке, что и прочтения, хранившиеся в исходном файле.In some embodiments, the final step is to generate a compressed file containing a list of encoded reads, wherein said encoded reads are stored in the compressed file in the same order as the reads stored in the original file.
В некоторых вариантах реализации указанное пороговое значение составляет 31.In some embodiments, this threshold value is 31.
В некоторых вариантах реализации для каждого выровненного прочтения выполняется стадия определения того, включает ли указанное прочтение по меньшей мере одно несоответствие, соответствующее случаю, когда секвенатор не мог распознать какое-либо основание или нуклеотид.In some embodiments, for each aligned read, the step of determining whether the read includes at least one mismatch corresponding to the case where the sequencer could not recognize any base or nucleotide is performed.
В некоторых вариантах реализации для каждого прочтения, содержащего по меньшей мере одно несоответствие, соответствующее случаю, когда секвенатор не мог распознать какое-либо основание или нуклеотид, выполняется стадия определения количества таких несоответствий и стадия сопоставления указанного количества с референсным пороговым значением.In some embodiments, for each read containing at least one mismatch corresponding to a case where the sequencer could not recognize any base or nucleotide, the step of determining the number of such mismatches and the step of comparing said number to a reference threshold is performed.
В некоторых вариантах реализации на стадии кодирования, если количество таких несоответствий больше референсного порогового значения, каждый нуклеотид или основание прочтения, которые должны кодироваться в соответствии со вторым процессом кодирования, индивидуальным образом кодируется в 4 битах, и если количество таких несоответствий меньше референсного порогового значения, каждый нуклеотид или основание прочтения, которые должны кодироваться в соответствии со вторым процессом кодирования, индивидуальным образом кодируется в 2 битах, а стадия кодирования дополнительно включает кодирование списка положений вдоль референсной последовательности, причем указанные положения соответствуют положениям таких несоответствий в референсной последовательности.In some embodiments, at the encoding stage, if the number of such mismatches is greater than a reference threshold, each nucleotide or read base to be encoded according to the second encoding process is individually encoded into 4 bits, and if the number of such mismatches is less than the reference threshold, each nucleotide or base read to be encoded according to the second encoding process is individually encoded in 2 bits, and the encoding step further includes encoding a list of positions along the reference sequence, said positions corresponding to the positions of such mismatches in the reference sequence.
Краткое описание чертежейBrief description of drawings
На Фиг. 1 представлена блок-схема, демонстрирующая стадии способа сжатия в соответствии с изобретением.In FIG. 1 is a flowchart illustrating the steps of a compression method in accordance with the invention.
На Фиг. 2 представлена схема, демонстрирующая аппарат для реализации стадий способа сжатия в соответствии с изобретением.In FIG. 2 is a diagram showing apparatus for implementing the steps of the compression method in accordance with the invention.
На Фиг. 3 представлен первый пример прочтения, которое глобально сопоставляется с референсной последовательностью.In FIG. Figure 3 shows the first example of a read that is globally mapped to a reference sequence.
На Фиг. 4 представлен второй пример прочтения, которое глобально сопоставляется с референсной последовательностью, в том случае, когда требуется вставка фиктивного несоответствия.In FIG. Figure 4 shows a second example of a read that is globally mapped to a reference sequence in a case where dummy mismatch insertion is required.
Подробное описание изобретенияDetailed Description of the Invention
К геномным последовательностям, указанным в настоящем изобретении, относятся, для примера и без ограничений, нуклеотидные последовательности, последовательности дезоксирибонуклеиновой кислоты (ДНК), рибонуклеиновой кислоты (РНК) и аминокислотные последовательности. Несмотря на приведенное в настоящем документе достаточно подробное описание геномной информации в форме нуклеотидной последовательности, следует понимать, что способ сжатия в соответствии с изобретением может быть реализован также и для других геномных последовательностей, хотя и с рядом изменений, которые будут очевидны специалисту в данной области.Genomic sequences provided herein include, by way of example and without limitation, nucleotide sequences, deoxyribonucleic acid (DNA) sequences, ribonucleic acid (RNA) sequences, and amino acid sequences. Although genomic information in the form of a nucleotide sequence has been described in some detail herein, it should be understood that the compression method of the invention can also be implemented for other genomic sequences, albeit with a number of modifications that will be apparent to one skilled in the art.
Информацию о секвенировании генома получают с помощью секвенаторов в форме последовательностей нуклеотидов (или, в более общем случае, оснований), представленной в виде строки букв из определенного набора терминов. Наименьший набор терминов представлен пятью символами: {А, С, G, Т, N}, которые представляют собой 4 типа нуклеотидов, присутствующих в ДНК, а именно аденин, цитозин, гуанин и тимин. В РНК тимин заменен на урацил (U). N указывает на то, что секвенатор не мог распознать какое-либо основание, поэтому истинная природа положения остается неопределенной.Genome sequencing information is obtained by sequencers in the form of nucleotide sequences (or, more generally, bases) represented as a string of letters from a defined set of terms. The smallest set of terms 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 RNA, thymine is replaced by uracil (U). N indicates that the sequencer could not recognize any base, so the true nature of the position remains uncertain.
Нуклеотидные последовательности, получаемые секвенаторами, называются «прочтениями». Прочтения последовательностей могут иметь длину от нескольких десятков до нескольких тысяч нуклеотидов. Некоторые технологии позволяют получать прочтения последовательностей в парах, при этом одно прочтение относится к одной цепочке ДНК, а второе прочтение относится к другой цепочке. Во всем тексте настоящего описания термин «референсная последовательность» означает любую последовательность, относительно которой выполняется выравнивание/сопоставление последовательностей нуклеотидов или оснований, полученных секвенатором. Одним из примеров такой референсной последовательности фактически может быть референсный геном, т.е. последовательность, построенная учеными в качестве репрезентативного примера набора генов того или иного вида. Однако референсная последовательность может также состоять из синтетической последовательности, сконструированной лишь для того, чтобы улучшить степень сжатия прочтений в связи с их последующей обработкой. Секвенаторы могут вносить ошибки в прочтения последовательностей, и в частности использовать неверный символ (т.е. представляющий другую нуклеиновую кислоту) для обозначения нуклеиновой кислоты или основания, в действительности присутствующего в секвенируемом образце; это обычно называют ошибкой замены, или «несоответствием».The nucleotide sequences produced by sequencers are called “reads.” Sequence reads can range in length from a few tens to several thousand nucleotides. Some technologies allow sequence reads to be obtained in pairs, with one read from one DNA strand and a second read from a different strand. Throughout this specification, the term “reference sequence” means any sequence against which the nucleotide or base sequences produced by the sequencer are aligned. One example of such a reference sequence could actually be a reference genome, i.e. a sequence constructed by scientists as a representative example of the set of genes of a particular species. However, the reference sequence may also consist of a synthetic sequence designed only to improve the compression ratio of the reads due to their subsequent processing. Sequencers may introduce errors in sequence reads, and in particular use the wrong symbol (ie, representing a different nucleic acid) to represent the nucleic acid or base actually present in the sample being sequenced; this is usually called a substitution error, or "mismatch."
Предметом изобретения является способ сжатия на основе референсной последовательности, входные данные которого представляют собой прочтения нуклеотидов или оснований, и такие прочтения предварительно выравнивались относительно референсной последовательности, формируя таким образом выровненные прочтения. Затем выровненные прочтения хранятся в виде списка прочтений в исходном файле. Способ выравнивания прочтений и их хранения в исходном файле после выравнивания не имеет критического значения для изобретения и не входит в цель настоящего описания. После этого каждое прочтение кодируется в виде положения на референсной последовательности и в виде списка различий с указанной референсной последовательностью. Затем каждое прочтение может реконструироваться на основе кодированной информации выравнивания и референсной последовательности с использованием надлежащего программного обеспечения для распаковки, выполненного в соответствии с настоящим изобретением.The subject of the invention is a reference sequence-based compression method, the input data of which are nucleotide or base reads, and such reads have been previously aligned with respect to the reference sequence, thereby forming aligned reads. The aligned reads are then stored as a read list in the source file. The method of aligning reads and storing them in the source file after alignment is not critical to the invention and is not the purpose of this description. Each read is then encoded as a position on the reference sequence and as a list of differences with the specified reference sequence. Each read can then be reconstructed based on the encoded alignment information and the reference sequence using appropriate decompression software made in accordance with the present invention.
Предпочтительно, чтобы программное обеспечение для выравнивания, которое обрабатывает прочтения и выравнивает их относительно референсной последовательности до их передачи в качестве входных данных в программное обеспечение для сжатия и аппарат, не учитывало определенные виды ошибок, вносимых в прочтения последовательностей, такие как, например, ошибки вставок или ошибки делеций. Ошибка вставки проявляется в виде вставки в одно прочтение последовательности одного или более дополнительных символов, которые не относятся к какой-либо фактически присутствующей нуклеиновой кислоте. Ошибка делеции проявляется в виде удаления из одного прочтения последовательности одного или более символов, относящихся к нуклеиновым кислотам, которые фактически присутствуют в секвенированном образце. Точнее, в случае ошибки вставки или ошибки делеции в заданном прочтении последовательности программное обеспечение для выравнивания будет рассматривать полученные ошибочные нуклеиновые кислоты как ошибки замены, также называемые «несоответствиями». Такой предпочтительный выбор для конфигурации программного обеспечения для выравнивания позволяет выполнять более быстрое последующее кодирование, обеспечивая существенно более взвешенный компромисс между скоростью и коэффициентом сжатия.It is preferable that the alignment software that processes the reads and aligns them to a reference sequence before passing them as input to the compression software and apparatus does not take into account certain types of errors introduced into sequence reads, such as, for example, insertion errors or deletion errors. An insertion error occurs when one or more additional characters are inserted into a single sequence read that do not refer to any nucleic acid actually present. A deletion error occurs when one or more characters belonging to nucleic acids that are actually present in the sequenced sample are removed from a single sequence read. More precisely, in the case of an insertion error or deletion error in a given sequence read, the alignment software will treat the resulting erroneous nucleic acids as substitution errors, also called “mismatches.” This preferred choice for alignment software configuration allows for faster subsequent encoding, providing a significantly better trade-off between speed and compression ratio.
Для каждого прочтения программное обеспечение для выравнивания передает соответствующую запись прочтения в программное обеспечение для сжатия и аппарат. Каждая запись прочтения содержит по меньшей мере следующую информацию: абсолютное положение начала выровненного прочтения относительно референсной последовательности, длина прочтения, тип выравнивания прочтения, количество несоответствий, выявленных в прочтении, и относительное положение указанных возможных несоответствий в прочтении (в соответствующих случаях).For each read, the alignment software transmits the corresponding read record to the compression software and machine. Each read record contains at least the following information: the absolute position of the start of the aligned read relative to the reference sequence, the length of the read, the type of read alignment, the number of mismatches identified in the read, and the relative position of these possible mismatches in the read (as applicable).
Способ сжатия в соответствии с настоящим изобретением будет описан со ссылкой на Фиг. 1. Например, способ может выполняться аппаратом 20, приведенным на Фиг. 2. Аппарат содержит по меньшей мере один процессор 22 и одно запоминающее устройство 24, функционально связанное с процессором 22, чтобы образовать вычислительное устройство. В запоминающем устройстве 24 может храниться код компьютерной программы или программное обеспечение 26, содержащее исполняемые на компьютере инструкции, которые при их исполнении процессором 22 приводят к тому, что процессор 22 выполняет операции, включающие стадии способа сжатия в соответствии с изобретением.The compression method according to the present invention will be described with reference to FIG. 1. For example, the method may be performed by the
Исходный файл, в котором находятся выровненные прочтения в виде списка прочтений, например, хранится в аппарате 20. Как показано на Фиг. 1, способ предпочтительно включает начальную стадию 2, причем исходный список выровненных прочтений подразделяется на блоки прочтений. Как правило, список выровненных прочтений подразделяется на блоки по 50000 прочтений, при этом это конкретное значение не следует толковать как ограничивающее объем настоящего изобретение, которое может применяться таким же образом и к другим значениям. Предпочтительно блоки прочтений характеризуются одинаковым размером блока. Каждый блок прочтений начинается с заголовка, содержащего информацию, необходимую для декодирования блока, такую как, например, размер содержания блока в байтах, и/или идентификатор блока или его содержания, и/или количество прочтений, содержащихся в блоке. Таким образом обеспечивается поддержка конкатенации сжатого файла, а также возможностей передачи (каждый блок прочтений содержит всю информацию, необходимую для декодирования прочтений блока). Кроме того, поскольку способ сжатия может осуществляться поблочно, это также позволяет выполнять многопоточную обработку блоков прочтений, таким образом обеспечивая распараллеливание и в результате этого определенный выигрыш по времени обработки. При одинаковой длине всех прочтений заданного блока длина прочтения также сохраняется в заголовке, в противном случае при выполнении способа сжатия в явной форме сохраняется список значений длины каждого прочтения.A source file containing aligned reads in the form of a read list, for example, is stored in the
Каждая запись прочтения содержит информацию о типе выравнивания прочтения. Как правило, можно выделить два основных типа выравнивания: точное выравнивание и неточное выравнивание, а также дополнительный тип, соответствующий «несопоставленному» выравниванию. «Неточное выравнивание» означает, что выравнивание содержит по меньшей мере одно несоответствие, отличное от N, тогда как по меньшей мере участок прочтения соответствует участку референсной последовательности (согласно этому определению, неточно сопоставленное прочтение может содержать одно или более N, при условии, что оно также содержит одно или более других несоответствий). В одном примере осуществления каждая запись прочтения начинается со следующих битовых флагов, при этом каждый битовый флаг принимает одно значение из двух возможных значений:Each read record contains information about the read alignment type. In general, there are two main types of alignment: precise alignment and imprecise alignment, with an additional type corresponding to "unmatched" alignment. "Imprecise alignment" means that the alignment contains at least one mismatch other than N, while at least a region of the read matches a region of the reference sequence (according to this definition, an imprecisely mapped read may contain one or more Ns, provided that it also contains one or more other inconsistencies). In one embodiment, each read record begins with the following bit flags, with each bit flag taking one of two possible values:
- первый битовый флаг указывает на прямую или обратную ориентацию относительно референсной последовательности,- the first bit flag indicates forward or reverse orientation relative to the reference sequence,
- второй битовый флаг указывает на то, является ли выравнивание точным,- the second bit flag indicates whether the alignment is accurate,
- третий битовый флаг указывает на то, содержит ли прочтение по меньшей мере одно N,- the third bit flag indicates whether the read contains at least one N,
- четвертый битовый флаг указывает на разрядность кодирования данных о положении - 16 битов или 32 бита.- the fourth bit flag indicates the bit depth of position data encoding - 16 bits or 32 bits.
На приведенных ниже стадиях 4-12 выполняется поочередная обработка блоков прочтений и поочередная обработка прочтений внутри блоков.Steps 4-12 below perform sequential processing of blocks of reads and sequential processing of reads within blocks.
Способ включает следующую стадию 4 определения для каждого выровненного прочтения того, насколько точно или неточно указанное прочтение сопоставляется с референсной последовательностью, или же того, что указанное прочтение не сопоставляется с референсной последовательностью. Такая стадия 4 определения для каждого неточно сопоставленного прочтения включает сравнение 4А количества несоответствий между указанным прочтением и референсной последовательностью с учетом порогового значения. В предпочтительном варианте осуществления, который не следует толковать как ограничивающий объем настоящего изобретения, указанное пороговое значение составляет 31. Это конкретное значение было выбрано специально, чтобы обеспечить наилучший возможный компромисс для хранения количества несоответствий в достаточно компактной форме, что станет более понятно ниже в отношении стадии 12. Действительно, статистика наблюдений показывает, что в подавляющем большинстве случаев неточно сопоставленные прочтения включают менее 31 несоответствия. Принцип, лежащий в основе такого выбора, заключается в кодировании в наиболее компактной форме наиболее часто встречающихся случаев, оставляя пространство для ряда очень незначительного количества случаев с низким качеством. Если было установлено, что прочтение неточно сопоставлено с количеством несоответствий меньше порогового значения, стадия 4 определения включает дополнительное определение того, насколько глобально или локально прочтение сопоставляется с референсной последовательностью. «Глобально сопоставленное прочтение» представляет собой неточно сопоставленное прочтение, полная последовательность которого, включая начало и конец прочтения, неточно сопоставляется с референсной последовательностью. «Локально сопоставленное прочтение» представляет собой неточно сопоставленное прочтение, содержащее сегмент нуклеотидов или оснований, которые неточно сопоставлены с референсной последовательностью. Таким образом, указанный сегмент нуклеотидов или оснований соответствует участку исходного прочтения.The method includes the following step 4 of determining, for each aligned read, how closely or inaccurately the specified read maps to the reference sequence, or whether the specified read does not map to the reference sequence. Such determination step 4 for each mismatched read involves comparing 4A the number of mismatches between the specified read and the reference sequence based on a threshold value. In a preferred embodiment, which should not be construed as limiting the scope of the present invention, the specified threshold value is 31. This particular value was chosen specifically to provide the best possible compromise for storing the number of nonconformities in a fairly compact form, which will become more clear below in relation to the
Предпочтительно для каждого выровненного прочтения способ дополнительно включает стадию 6 определения того, включает ли указанное прочтение по меньшей мере одно N, т.е. включает ли указанное прочтение по меньшей мере одно несоответствие, соответствующее случаю, когда секвенатор не мог распознать какое-либо основание или нуклеотид. Затем для каждого прочтения, содержащего по меньшей мере один N, способ включает стадию 8 определения количества таких N несоответствий и стадию 10 сравнения указанного количества N несоответствий с референсным пороговым значением. В предпочтительном варианте осуществления, который не следует толковать как ограничивающий объем настоящего изобретения, указанное референсное пороговое значение составляет 31.Preferably, for each aligned read, the method further includes the step 6 of determining whether said read includes at least one N, i.e. whether the specified read includes at least one mismatch corresponding to a case where the sequencer could not recognize any base or nucleotide. Then, for each read containing at least one N, the method includes the
Независимо от результатов стадии 4 определения способ включает следующую стадию 12 кодирования прочтений по меньшей мере в соответствии с указанным определением. Точнее, прочтения, которые отнесены к точно сопоставленным с референсной последовательностью, независимо от того, нет ли в них ни одного N или количество N в них меньше референсного порогового значения, кодируются в соответствии с первым процессом кодирования. Прочтения, которые отнесены к несопоставленным, или прочтения, которые отнесены к точно сопоставленным, но в которых количество N больше референсного порогового значения, кодируются в соответствии со вторым процессом кодирования, где каждый нуклеотид или основание кодируются отдельно, независимо от того, были ли выровнены указанный нуклеотид или основание или нет. Прочтения, которые отнесены к неточно сопоставленным, кодируются в соответствии со вторым процессом кодирования или третьим процессом кодирования. Точнее, прочтения, которые отнесены к неточно сопоставленным с количеством несоответствий больше порогового значения, кодируются в соответствии со вторым процессом кодирования. Если установлено, что прочтение неточно сопоставлено с количеством несоответствий меньше порогового значения, и если указанное прочтение не содержит ни одного N или количество N в таком прочтении меньше референсного порогового значения, то указанное прочтение кодируется в соответствии с третьим процессом кодирования. В противном случае, т.е. если количество N в таком прочтении больше референсного порогового значения, то указанное прочтение кодируется в соответствии со вторым процессом кодирования.Regardless of the results of the definition step 4, the method includes the following
Независимо от того, отнесено ли конкретное прочтение к точно сопоставленным, неточно сопоставленным или несопоставленным, если указанное прочтение содержит по меньшей мере одно N, но количество N меньше референсного порогового значения, то стадия 12 кодирования включает кодирование списка положений вдоль референсной последовательности, при этом указанные положения соответствуют положениям N в референсной последовательности. Затем список положений сохраняется в запоминающем устройстве вычислительного устройства, при этом указанное устройство осуществляет способ сжатия. Если прочтение содержит по меньшей мере одно значение N, но количество N меньше референсного порогового значения, и оно должно кодироваться по второму процессу кодирования, то каждый нуклеотид или основание прочтения отдельно кодируется 2 битами.Regardless of whether a particular read is classified as accurately mapped, inaccurately mapped, or unmapped, if the specified read contains at least one N but the number of Ns is less than the reference threshold, then encoding
Если прочтение содержит по меньшей мере одно значение N, но количество N больше референсного порогового значения, то указанное прочтение во всех случаях кодируется по второму процессу кодирования, а каждый нуклеотид или основание прочтения отдельно кодируется 4 битами. В этом случае стадия 12 кодирования не включает кодирования и хранения списка положений N в референсной последовательности. Действительно, после этого каждое несоответствие N напрямую кодируется в соответствии со вторым процессом кодирования точно таким же образом, как и другие нуклеотиды или основания прочтения.If a read contains at least one N value, but the number of N is greater than the reference threshold, then the said read is in all cases encoded by the second encoding process, and each nucleotide or base of the read is individually encoded with 4 bits. In this case, the encoding
Первый и третий процессы кодирования включают четко заданные наборы дескрипторов. Каждый набор дескрипторов уникальным образом представляет прочтения, связанные с соответствующим процессом кодирования, и каждый из первого и третьего процессов кодирования представляет собой процесс кодирования с понижением энтропии информации. Точнее, третий процесс кодирования включает первый дополнительный процесс кодирования и второй дополнительный процесс кодирования. Неточно сопоставленные прочтения, которые на стадии 4 отнесены к глобально сопоставленным, кодируются в соответствии с первым дополнительным процессом кодирования. Неточно сопоставленные прочтения, которые на стадии 4 отнесены к локально сопоставленным, кодируются в соответствии со вторым дополнительным процессом кодирования. Первый и второй дополнительные процессы кодирования включают четко заданные наборы дескрипторов, уникальным образом представляющие прочтения, связанные с соответствующим дополнительным процессом кодирования.The first and third encoding processes involve clearly defined sets of descriptors. Each set of descriptors uniquely represents the readings associated with the corresponding encoding process, and each of the first and third encoding processes represents an information entropy decreasing encoding process. More precisely, the third encoding process includes a first additional encoding process and a second additional encoding process. Inaccurately mapped reads, which are classified as globally mapped in step 4, are encoded according to the first additional encoding process. Inaccurately mapped reads that are classified as locally mapped in step 4 are encoded according to a second additional encoding process. The first and second additional encoding processes include well-defined sets of descriptors that uniquely represent the reads associated with the corresponding additional encoding process.
Таким образом, информация выравнивания, которая кодируется для каждого прочтения и которая позволяет восстанавливать полную последовательность прочтения в ходе распаковки данных, зависит от соответствующего процесса или дополнительного процесса кодирования, который использовался для указанного прочтения. Например, дескрипторами, используемыми в первом процессе кодирования, могут быть:Thus, the alignment information that is encoded for each read and which allows the complete sequence of the read to be recovered during data decompression depends on the corresponding process or additional encoding process that was used for said read. For example, descriptors used in the first encoding process could be:
абсолютное положение начала точно сопоставленного прочтения относительно референсной последовательности (в 16- или 32-битовой кодировке) и the absolute position of the start of the exactly mapped read relative to the reference sequence (in 16- or 32-bit encoding), and
длина прочтения (кодируемая посредством дифференциального кодирования относительно длины предыдущего прочтения с кодом переменной длины от 2 битов до 34 битов). read length (coded using differential encoding relative to the length of the previous read, with a variable length code ranging from 2 bits to 34 bits).
Дескрипторами, используемыми в первом дополнительном процессе кодирования, могут быть:The descriptors used in the first additional encoding process may be:
абсолютное положение начала неточно сопоставленного прочтения относительно референсной последовательности (в 16- или 32-битовой кодировке), absolute position of the start of the loosely mapped read relative to the reference sequence (in 16- or 32-bit encoding),
длина прочтения (кодируемая посредством дифференциального кодирования относительно длины предыдущего прочтения с кодом переменной длины от 2 битов до 34 битов) и read length (coded using differential encoding relative to the length of the previous read with a variable length code ranging from 2 bits to 34 bits) and
список несоответствий прочтения. list of reading inconsistencies.
Дескрипторами, используемыми во втором дополнительном процессе кодирования, могут быть:Descriptors used in the second additional encoding process may be:
абсолютное положение начала неточно сопоставленного участка прочтения относительно референсной последовательности, также называемое положением начала локального выравнивания (в 16- или 32-битовой кодировке), the absolute position of the start of the loosely mapped read region relative to the reference sequence, also called the start position of the local alignment (in 16- or 32-bit encoding),
длина прочтения (кодируемая посредством дифференциального кодирования относительно длины предыдущего прочтения с кодом переменной длины от 2 битов до 34 битов), read length (encoded using differential encoding relative to the length of the previous read with a variable length code ranging from 2 bits to 34 bits),
список несоответствий прочтения и list of reading inconsistencies and
длина отсеченных участков прочтения, которые не являются частью выравнивания (8-битовое кодирование для каждого отсеченного участка). length of read trims that are not part of the alignment (8-bit encoding for each trim).
Предпочтительно список несоответствий, который кодируется в первом и втором дополнительных процессах, включает заголовок (битовый флаг, кодируемый 1 байтом). Первые пять битов байта используются для кодирования количества несоответствий, содержащихся в прочтении (в предпочтительном варианте осуществления, где пороговое значение составляет 31, указанное количество находится в диапазоне [0-31]). Затем один бит используется для кодирования информации о том, является ли неточно сопоставленное прочтение глобально или локально сопоставленным. Другой бит используется для кодирования информации о том, активирован ли 2-битовый режим для второго процесса кодирования. Последний бит используется для кодирования информации о том, активирован ли 4-битовый режим для второго процесса кодирования. Предпочтительно для каждого прочтения, кодируемого в соответствии со вторым дополнительным процессом кодирования на стадии 12 кодирования, выполняется конкатенация отсеченных участков указанного прочтения (т.е. тех участков, которые не являются частью локального выравнивания), и каждый нуклеотид или основание указанных отсеченных участков кодируется отдельно. В предпочтительном варианте осуществления каждый нуклеотид или основание таких отсеченных участков прочтения кодируется отдельно 2 битами.Preferably, the mismatch list that is encoded in the first and second additional processes includes a header (a bit flag encoded by 1 byte). The first five bits of the byte are used to encode the number of mismatches contained in the read (in the preferred embodiment where the threshold is 31, the number is in the range [0-31]). One bit is then used to encode information about whether the loosely mapped read is globally or locally mapped. Another bit is used to encode information about whether the 2-bit mode is enabled for the second encoding process. The last bit is used to encode information about whether 4-bit mode is enabled for the second encoding process. Preferably, for each read encoded in accordance with the second additional encoding process in encoding
В предпочтительном варианте осуществления каждое несоответствие, кодированное в списке несоответствий неточно сопоставленного прочтения (т.е. кодированное в соответствии с первым или вторым дополнительным процессом кодирования), кодируется 1 байтом. Более конкретно, каждое несоответствие неточно сопоставленного прочтения, которое должно кодироваться в соответствии с первым или вторым дополнительным процессом кодирования, может кодироваться следующим образом:In a preferred embodiment, each mismatch encoded in the mismatch list of the imprecisely mapped read (ie, encoded according to the first or second additional encoding process) is encoded as 1 byte. More specifically, each inaccurately mapped read mismatch that is to be coded according to the first or second additional coding process may be coded as follows:
первые два бита байта используются для кодирования альтернативного нуклеотида или основания, присутствующего в прочтении вместо соответствующего референсного нуклеотида или основания референсной последовательности, the first two bits of the byte are used to encode an alternative nucleotide or base present in the read instead of the corresponding reference nucleotide or base of the reference sequence,
шесть последних битов используются для кодирования положения несоответствия в референсной последовательности, причем указанное положение вычисляется как смещение относительно предыдущего несоответствия прочтения (относительное положение несоответствия, исключая первое несоответствие прочтения, для которого кодируется абсолютное положение). Таким образом, диапазон такого смещения, которое кодируется 6 битами, составляет [0-63]. the last six bits are used to encode the position of the mismatch in the reference sequence, with the specified position being calculated as an offset relative to the previous read mismatch (the relative position of the mismatch, excluding the first read mismatch for which the absolute position is encoded). Thus, the range of such an offset, which is encoded by 6 bits, is [0-63].
На Фиг. 3 представлен пример кодирования несоответствий прочтения с использованием первого дополнительного процесса кодирования. Прочтение представляет собой неточно сопоставленное прочтение, которое глобально сопоставляется с референсной последовательностью. Прочтение содержит два несоответствия:In FIG. 3 shows an example of coding read discrepancies using the first additional coding process. A read is a loosely mapped read that is globally mapped to a reference sequence. The reading contains two inconsistencies:
первое несоответствие, находящееся в 12-м положении прочтения, которое представляет собой замену нуклеотида А в референсной последовательности на нуклеотид Т в прочтении, и the first mismatch, located at
второе несоответствие, находящееся в 21-м положении прочтения, которое представляет собой замену нуклеотида С в референсной последовательности на нуклеотид G в прочтении. the second mismatch, located at position 21 of the read, which is a replacement of nucleotide C in the reference sequence with nucleotide G in the read.
Затем список несоответствий кодируется следующим образом:The list of nonconformities is then encoded as follows:
<12, Т>, значение «12», соответствующее абсолютному положению первого несоответствия в прочтении, и <12, T>, the value "12" corresponding to the absolute position of the first mismatch in the reading, and
<9, G>, значение «9», соответствующее относительному положению второго несоответствия в прочтении, т.е. смещению между вторым несоответствием и первым несоответствием. <9, G>, the value "9" corresponding to the relative position of the second mismatch in the reading, i.e. the offset between the second discrepancy and the first discrepancy.
<12, Т>может быть, например, преобразовано в значение «51» (кодируемое 1 байтом), а <9, G>может быть преобразовано в значение «38» (кодируемое 1 байтом). Такое байтовое кодирование получают следующим образом:<12, T>can, for example, be converted to the value "51" (encoded by 1 byte), and <9, G>can be converted to the value "38" (encoded by 1 byte). This byte encoding is obtained as follows:
положение смещения х 4+ код нуклеотида (при А=0, С=1, G=2, Т=3)offset position x 4+ nucleotide code (at A=0, C=1, G=2, T=3)
Предпочтительно для каждого неточно сопоставленного прочтения, которое должно кодироваться в соответствии с первым или вторым дополнительным процессом кодирования, если смещение, вычисленное между заданным несоответствием прочтения и предшествующим несоответствием прочтения, больше максимального кодируемого значения, то по меньшей мере одно «фиктивное» несоответствие вставляется между указанными двумя несоответствиями, до тех пор, пока каждое смещение между каждым из указанных несоответствий и по меньшей мере одно «фиктивное» несоответствие не окажутся меньше указанного максимального кодируемого значения. «Фиктивное» несоответствие определяется как несоответствие, для которого биты байта, используемые для кодирования несоответствия, кодируют нуклеотид или основание, которые эквивалентны соответствующим референсным нуклеотиду или основанию в референсной последовательности. В предпочтительном варианте осуществления, который не следует толковать как ограничивающий объем настоящего изобретения, максимальное кодируемое значение составляет 63, что соответствует максимальному значению, которое может кодироваться 6 битами.Preferably, for each loosely mapped read that is to be encoded in accordance with the first or second additional encoding process, if the offset calculated between a given read mismatch and a previous read mismatch is greater than the maximum encoded value, then at least one “dummy” mismatch is inserted between those two discrepancies until each offset between each of the specified discrepancies and at least one “dummy” discrepancy is less than the specified maximum encoded value. A “dummy” mismatch is defined as a mismatch for which the byte bits used to encode the mismatch encode a nucleotide or base that is equivalent to the corresponding reference nucleotide or base in the reference sequence. In a preferred embodiment, which should not be construed as limiting the scope of the present invention, the maximum encoded value is 63, which corresponds to the maximum value that can be encoded in 6 bits.
На Фиг. 4 представлен пример кодирования несоответствий прочтения с использованием первого дополнительного процесса кодирования в случае, когда требуется вставка «фиктивного» несоответствия. Прочтение представляет собой неточно сопоставленное прочтение, которое глобально сопоставляется с референсной последовательностью. Прочтение содержит два несоответствия:In FIG. 4 shows an example of encoding read mismatches using a first additional encoding process in the case where insertion of a “dummy” mismatch is required. A read is a loosely mapped read that is globally mapped to a reference sequence. The reading contains two inconsistencies:
первое несоответствие, находящееся в 22-м положении прочтения, которое представляет собой замену нуклеотида А в референсной последовательности на нуклеотид Т в прочтении, и the first mismatch, located at
второе несоответствие, находящееся в 134-м положении прочтения, которое представляет собой замену нуклеотида С в референсной последовательности на нуклеотид G в прочтении. the second mismatch, located at position 134 of the read, which is a replacement of nucleotide C in the reference sequence with nucleotide G in the read.
Положение смещения между вторым и первым несоответствием составляет 112, что превышает максимальное кодируемое значение, равное 63. Таким образом, между двумя несоответствиями необходимо вставить «фиктивное» несоответствие, так чтобы каждое смещение между каждым из несоответствий и «фиктивным» несоответствием было меньше, чем указанное максимальное кодируемое значение. «Фиктивное» несоответствие с нуклеотидом Т (соответствующее «настоящему» нуклеотиду Т в референсной последовательности), например, вводится в 85-е положение прочтения. Положение смещения, вычисляемое между «фиктивным» несоответствием и первым несоответствием, составляет 63, что совпадает с максимальным кодируемым значением. Положение смещения, вычисляемое между вторым несоответствием и «фиктивным» несоответствием, составляет 49, что меньше 63.The offset position between the second and first mismatch is 112, which is greater than the maximum coded value of 63. Thus, a "dummy" mismatch must be inserted between the two mismatches such that each offset between each of the mismatches and the "dummy" mismatch is less than that specified maximum encoded value. A “fictitious” T nucleotide mismatch (corresponding to a “real” T nucleotide in the reference sequence), for example, is introduced at read position 85. The offset position calculated between the "dummy" disparity and the first disparity is 63, which is the same as the maximum encoded value. The offset position calculated between the second disparity and the "dummy" disparity is 49, which is less than 63.
Затем список несоответствий кодируется следующим образом:The list of nonconformities is then encoded as follows:
<22, Т>, значение «22», соответствующее абсолютному положению первого несоответствия в прочтении, <22, T>, the value "22" corresponding to the absolute position of the first mismatch in the reading,
<63, Т>, значение «63», соответствующее относительному положению «фиктивного» несоответствия в прочтении, т.е. смещению между «фиктивным» несоответствием и первым несоответствием, и <63, T>, the value “63”, corresponding to the relative position of the “fictitious” discrepancy in the reading, i.e. the offset between the "dummy" mismatch and the first mismatch, and
<49, Т>, значение «49», соответствующее относительному положению второго несоответствия в считывании, т.е. смещению между вторым несоответствием и «фиктивным» несоответствием. <49, T>, the value "49" corresponding to the relative position of the second mismatch in the reading, i.e. offset between the second discrepancy and the “dummy” discrepancy.
Например, <22, Т> может быть преобразовано в значение «91» (кодируется 1 байтом), <63, Т> может быть преобразовано в значение «255» (кодируется 1 байтом), а <49, G> может быть преобразовано в значение «198» (кодируется 1 байтом). Такое байтовое кодирование получают следующим образом:For example, <22, T> can be converted to the value "91" (encoded by 1 byte), <63, T> can be converted to the value "255" (encoded by 1 byte), and <49, G> can be converted to value "198" (encoded by 1 byte). This byte encoding is obtained as follows:
положение смещения х 4+ код нуклеотида (при А=0, С=1, G=2, Т=3)offset position x 4+ nucleotide code (at A=0, C=1, G=2, T=3)
Способ включает конечную стадию 14 формирования сжатого файла, содержащего список кодированных прочтений. Кодированные прочтения хранятся в сжатом файле в том же порядке, что и прочтения, хранившиеся в исходном файле без сжатия. Затем каждое прочтение может реконструироваться на основе кодированной информации выравнивания и референсной последовательности с использованием надлежащего программного обеспечения для распаковки и/или способа, выполненного в соответствии с настоящим изобретением.The method includes a final step 14 of generating a compressed file containing a list of encoded reads. The encoded reads are stored in the compressed file in the same order as the reads stored in the uncompressed original file. Each read can then be reconstructed based on the encoded alignment information and the reference sequence using appropriate decompression software and/or a method implemented in accordance with the present invention.
Несмотря на то что обладающие признаками изобретения методики, раскрываемые в настоящем документе, описаны со ссылкой на пример архитектуры вычислительного устройства 20 (показано на Фиг. 2 для целей иллюстрации), они могут быть реализованы в аппаратном обеспечении, программном обеспечении, микропрограммном обеспечении или в любой их комбинации. При реализации в программном обеспечении код компьютерной программы может храниться на машиночитаемом носителе или исполняться аппаратным блоком обработки, включающим один или более процессоров, как в случае с устройством 20 на Фиг. 2. Следует понимать, что термин «процессор» при использовании в настоящем документе включает одно или более устройств обработки, включая сигнальный процессор, микропроцессор, микроконтроллер, специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA) или систему обработки другого типа, а также участки или комбинации таких элементов системы. Также термин «запоминающее устройство» при использовании в настоящем документе включает электронное запоминающее устройство, связанное с процессором, такое как оперативное запоминающее устройство (ОЗУ), постоянное запоминающее устройство (ПЗУ) или запоминающие устройства другого типа, в любой комбинации.Although the inventive techniques disclosed herein are described with reference to an example architecture of computing device 20 (shown in FIG. 2 for illustrative purposes), they may be implemented in hardware, software, firmware, or any their combinations. When implemented in software, the computer program code may be stored on a computer-readable medium or executed by a hardware processing unit including one or more processors, as is the case with
Соответственно, инструкции программного обеспечения или код для реализации методологий и протоколов, описанных в настоящем документе, могут храниться в одном или более из связанных запоминающих устройств, например ОЗУ, встроенное или съемное запоминающее устройство, а затем, при готовности к использованию, загружаться в ОЗУ и исполняться процессором.Accordingly, software instructions or code for implementing the methodologies and protocols described herein may be stored in one or more associated storage devices, such as RAM, embedded or removable storage, and then, when ready for use, loaded into RAM and executed by the processor.
Методики настоящего описания могут быть реализованы в широком разнообразии устройств или аппаратов, включая, например, мобильные телефоны, компьютеры, сервера, планшетные компьютеры и аналогичные устройства.The techniques of the present disclosure may be implemented in a wide variety of devices or apparatus, including, for example, mobile phones, computers, servers, tablet computers, and similar devices.
Несмотря на то что представленные для иллюстрации варианты осуществления настоящего изобретения были описаны в настоящем документе со ссылкой на приложенные графические материалы, следует понимать, что изобретение не ограничено этими вариантами осуществления и что различные другие изменения и модификации могут быть реализованы специалистом в данной области, не выходя за рамки объема или сущности изобретения.Although illustrative embodiments of the present invention have been described herein with reference to the accompanying drawings, it should be understood that the invention is not limited to these embodiments and that various other changes and modifications can be made by one skilled in the art without departing beyond the scope or spirit of the invention.
Статистические и численные примеры способа сжатия в соответствии с изобретениемStatistical and numerical examples of the compression method according to the invention
Приведенный ниже сравнительный пример был реализован для файла данных без сжатия, который содержал 48 миллионов прочтений или последовательностей нуклеотидов:The comparison example below was implemented for an uncompressed data file that contained 48 million reads or nucleotide sequences:
размер файла данных без сжатия: 35 770 Мб (мегабайт) uncompressed data file size: 35,770 MB (megabytes)
размер файла, сжатого с использованием программного обеспечения gzip: 6649 Мб file size compressed using gzip software: 6649 MB
размер файла, сжатого с использованием программного обеспечения без референсной последовательности SPRING: 1402 Мб file size compressed using software without SPRING reference sequence: 1402 MB
размер файла, сжатого использованием способа сжатия на основе референсной последовательности в соответствии с настоящим изобретением: 1179 Мб file size compressed using the reference sequence-based compression method according to the present invention: 1179 MB
время сжатия с использованием программного обеспечение без референсной последовательности SPRING: 1722 с compression time using software without SPRING reference sequence: 1722 s
время сжатия с использованием способа сжатия на основе референсной последовательности в соответствии с настоящим изобретением: 181 с compression time using the reference sequence-based compression method according to the present invention: 181 s
средний размер битов/нуклеотидов в файле данных без сжатия (кодирование ASCII): 8 битов/нуклеотид о средний размер битов/нуклеотидов в файле, который был сжат с кодированием, адаптированным для 4 возможных символов А, Т, С, G: 2 бита/нуклеотид average size of bits/nucleotides in a data file without compression (ASCII encoding): 8 bits/nucleotide; average size of bits/nucleotides in a file that has been compressed with an encoding adapted for the 4 possible characters A, T, C, G: 2 bits/ nucleotide
средний размер битов/нуклеотидов в файле, который был сжат с использованием способа сжатия на основе референсной последовательности в соответствии с настоящим изобретением: 0,33 бита/нуклеотид average bits/nucleotide size in a file that has been compressed using the reference sequence compression method of the present invention: 0.33 bits/nucleotide
Приведенные выше численные примеры показывают, что настоящее изобретение обеспечивает быстрое сжатие и распаковку, обеспечивая высокий коэффициент сжатия.The above numerical examples show that the present invention achieves fast compression and decompression, providing a high compression ratio.
Claims (94)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US16/567,211 | 2019-09-11 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| RU2807474C1 true RU2807474C1 (en) | 2023-11-15 |
Family
ID=
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150227686A1 (en) * | 2014-02-12 | 2015-08-13 | International Business Machines Corporation | Lossless compression of dna sequences |
| US20170237445A1 (en) * | 2014-08-05 | 2017-08-17 | Illumina Cambridge Limited | Methods and systems for data analysis and compression |
| US20180121601A1 (en) * | 2016-10-28 | 2018-05-03 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing |
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20150227686A1 (en) * | 2014-02-12 | 2015-08-13 | International Business Machines Corporation | Lossless compression of dna sequences |
| US20170237445A1 (en) * | 2014-08-05 | 2017-08-17 | Illumina Cambridge Limited | Methods and systems for data analysis and compression |
| US20180121601A1 (en) * | 2016-10-28 | 2018-05-03 | Edico Genome, Corp. | Bioinformatics systems, apparatuses, and methods for performing secondary and/or tertiary processing |
Non-Patent Citations (1)
| Title |
|---|
| ЗЮЗИН Н.А. и др "ПОДХОД К СЖАТИЮ ПОСЛЕДОВАТЕЛЬНОСТЕЙ ДНК С ПОМОЩЬЮ АЛГОРИТМА "БИНАРНЫЙ АРХИВАТОР"" материалы научно-практической internet-конференции. Ответственный редактор Ю.C. Нагорнов; редакционная коллегия сборника: Мельников Б.Ф., Крашенинников В.Р. 2014 Издательство: SIMJET (Ульяновск) получено в сети Интернет: <https://www.elibrary.ru/item.asp?id=22894793>. * |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN110678929B (en) | Methods and systems for efficient compression of genomic sequence reads | |
| US20240194296A1 (en) | Method for the Compression of Genome Sequence Data | |
| KR101969848B1 (en) | Method and apparatus for compressing genetic data | |
| KR102729412B1 (en) | Efficient compression method and system for genome sequence reads | |
| KR20190113971A (en) | Compression representation method and apparatus of bioinformatics data using multiple genome descriptors | |
| JP2020509473A (en) | Compact representation method and apparatus for biological information data using a plurality of genome descriptors | |
| RU2807474C1 (en) | Method for compressing genome sequence data | |
| WO2018039983A1 (en) | Biological sequence data processing method and device | |
| RU2815860C1 (en) | Method of compressing genome sequence data | |
| HK40107590A (en) | Method for the compression of genome sequence data | |
| HK40077555B (en) | Method for the compression of genome sequence data | |
| HK40077555A (en) | Method for the compression of genome sequence data | |
| JP7324145B2 (en) | Methods and systems for efficient compaction of genomic sequence reads | |
| EP4599452A1 (en) | System and method for storing and sharing genomic data using blockchain | |
| EA043338B1 (en) | METHOD AND DEVICE FOR COMPACT REPRESENTATION OF BIOINFORMATION DATA USING SEVERAL GENOMIC DESCRIPTORS |