Биоинформационные системы,устройства и способы выполнения вторичной и/или третичной обработки
Владельцы патента RU 2750706:
ИЛЛЮМИНА, ИНК. (US)
Изобретение относится к области биотехнологии. Предложен реализуемый компьютером способ совместного определения вариантов в гомологичных областях. Способ включает идентификацию одной или более подлежащих совместной обработке гомологичных областей, загрузку совместного скопления для подлежащих совместной обработке областей, создание списка вариантов-кандидатов из совместного скопления и создание определяющей порядок обработки позиций вариантов-кандидатов матрицы связности, определение позиции варианта-кандидата из окончательной матрицы генотипа и вывод файла определения вариантов. Изобретение обеспечивает улучшенную точность полученных из последовательности данных. 8 з.п. ф-лы, 80 ил.
Перекрестная ссылка на родственную заявку
[001] Настоящая заявка испрашивает приоритет в соответствии с §119(е) раздела 35 Свода законов США по предварительной заявке на патент США №62/347,080, поданной 7 июня 2016 г., озаглавленной «Bioinformatics Systems, Apparatuses, and Methods Executed on an Integrated Circuit Processing Platform»; по предварительной заявке на патент США №62/399,582, поданной 26 сентября 2016 г., озаглавленной «Bioinformatics Systems, Apparatuses, and Methods Executed on an Integrated Circuit Processing Platform»; предварительной заявке на патент США №62/414,637, поданной 28 октября 2016 г., озаглавленной «Bioinformatics Systems, Apparatuses, and Methods Executed on an Integrated Circuit Processing Platform»; по предварительной заявке на патент США №62/462,869, поданной 23 февраля 2017 г., озаглавленной «Bioinformatics Systems, Apparatuses, and Methods Executed on a Quantum Processing Platform»; по предварительной заявке на патент США №62/469,442, поданной 9 марта 2017 г., озаглавленной «Bioinformatics Systems, Apparatuses, and Methods Executed on an Integrated Circuit Processing Platform», ссылки на которые сделаны в соответствии сданным параграфом и которые полностью включены в настоящий документ посредством ссылки. Настоящая заявка является также частично продолжающейся заявкой и испрашивает приоритет в соответствии с §120 раздела 35 Свода законов США по заявке на патент США №15/404,146, поданной 11 января 2017 г., озаглавленной «Genomic Infrastructure for On-Site or Cloud-Based DNA and RNA Processing and Analysis»; и по заявке на патент США №15/497,149, поданной 25 апреля 2017 г., озаглавленной «Bioinformatics Systems, Apparatuses, and Methods Executed on a Quantum Processing Platform».
Область техники
[002] Объект изобретения, описанный в настоящем документе, относится к биоинформатике и, в частности, к системам, устройствам и способам реализации биоинформационных протоколов, таких как выполнение одной или более функций для анализа геномных данных на интегральной схеме, такой как платформа аппаратной обработки.
Уровень техники
[003] Как подробно описано в настоящем документе, некоторые основные вычислительные проблемы анализа секвенирования ДНК с высокой пропускной способностью заключаются в необходимости справляться со взрывным ростом доступных геномных данных, потребности в повышенной точности и чувствительности при сборе этих данных и потребности в быстрых, эффективных и точных вычислительных средствах при выполнении анализа на широком диапазоне наборов данных секвенирования, полученных из таких геномных данных.
[004] Для того чтобы идти в ногу с такой повышенной пропускной способностью секвенирования, обеспечиваемой секвенаторами нового поколения, обычно применяли многопоточные программные средства, которые исполнялись на все большем и большем количестве более быстрых процессоров в вычислительных кластерах с дорогостоящей высокодоступной памятью, которая требуют существенной энергии и значительных расходов на информационно-техническое обеспечение. Важно отметить, что будущие повышения пропускной способности секвенирования приведут к ускорению роста затрат в реальном денежном выражении на эти решения по вторичной обработке.
[005] Для решения по меньшей мере частично этих и других подобных проблем предложены устройства, системы и способы их использования, описанные в настоящем документе.
Раскрытие сущности изобретения
[006] Настоящее изобретение относится к устройствам, системам и способам их использования при выполнении одного или более протоколов геномики и/или биоинформатики на данных, формируемых посредством процедуры первичной обработки, например на данных генетической последовательности. Например, согласно различным аспектам в настоящем документе предложены устройства, системы и способы, выполненные с возможностью осуществления протоколов вторичного и/или третичного анализа генетических данных, таких как данные, сформированные путем секвенирования РНК и/или ДНК, например, с помощью секвенатора нового поколения (СНП). В конкретных примерах реализации предусмотрены один или более конвейеров вторичной обработки для обработки данных генетической последовательности. В других вариантах реализации предусмотрены один или более конвейеров третичной обработки для обработки данных генетической последовательности, например, где конвейеры и/или их отдельные элементы обеспечивают превосходную чувствительность и улучшенную точность в более широком диапазоне полученных из последовательности данных по сравнению с доступным в настоящее время в данной области техники.
[007] Например, в настоящем документе предложена система, такая как для осуществления одного или более конвейеров анализа последовательности и/или генома на данных генетической последовательности и/или других полученных из нее данных. В различных вариантах реализации система может включать в себя один или более электронных источников данных, которые обеспечивают цифровые сигналы, представляющие множество ридов генетических и/или геномных данных, например, где каждое из множества ридов геномных данных включает в себя последовательность нуклеотидов. Система может также включать в себя память, например, DRAM или кэш, такую как для хранения одного или более из последовательных ридов, одной или множества генетических референсных последовательностей и одного или более индексов одной или более генетических референсных последовательностей. Система может дополнительно включать в себя одну или более интегральных схем, таких как FPGA, ASIC или sASIC, и/или ЦПУ и/или ГПУ, причем интегральная схема, например, применительно к FPGA, ASIC или sASIC, может быть образована из набора жестко смонтированных цифровых логических схем, которые взаимосвязаны множеством физических электрических межсоединений. Система может дополнительно включать в себя квантовый вычислительный процессор для использования при реализации одного или более способов, описанных в настоящем документе.
[008] В различных вариантах реализации одно или более из множества электрических межсоединений может представлять собой вход в одну или более интегральных схем, которые могут быть соединены или выполнены с возможностью соединения, например, напрямую, через подходящее монтажное соединение или опосредованно, например, посредством беспроводного сетевого соединения (например, облака или гибридного облака), с электронным источником данных. Независимо от соединения с секвенатором интегральная схема по настоящему изобретению может быть выполнена с возможностью приема множества ридов геномных данных, например непосредственно из секвенатора или из связанной памяти. Риды могут быть представлены в цифровом закодированном виде в стандартном файловом формате FASTQ или BCL. Соответственно, система может включать в себя интегральную схему, имеющую одно или более электрических межсоединений, которые могут представлять собой физическое межсоединение, включающее в себя интерфейс памяти, чтобы обеспечивать интегральной схеме возможность доступа к памяти.
[009] В частности, жестко смонтированная цифровая логическая схема интегральной схемы может быть выполнена в виде набора движков обработки, такого где каждый движок обработки может быть сформирован из подмножества жестко смонтированных цифровых логических схем для выполнения одного или более этапов в конвейере анализа последовательности, генома и/или третичного анализа, как описано ниже в настоящем документе, на множестве ридов генетических данных, а также на других данных, полученных из генетических данных. Например, каждое подмножество жестко смонтированных цифровых логических схем может быть в монтажной конфигурации для выполнения одного или более этапов в конвейере анализа. Кроме того, в том случае, когда интегральная схема представляет собой матрицу FPGA, такие этапы в процессе анализа последовательности или дальнейшего анализа могут включать в себя частичное изменение конфигурации матрицы FPGA во время процесса анализа.
[0010] В частности, набор движков обработки может включать в себя модуль картирования, например в монтажной конфигурации, чтобы в соответствии по меньшей мере с некоторыми из последовательности нуклеотидов в риде из множества ридов осуществлять доступ к индексу одной или более генетических референсных последовательностей из памяти через интерфейс памяти для картирования рида на один или более сегментов указанных одной или более генетических референсных последовательностей на основе индекса. Кроме того, набор движков обработки может включать в себя модуль выравнивания в монтажной конфигурации, чтобы получать доступ к одной или более генетическим референсным последовательностям из памяти через интерфейс памяти для выравнивания рида, например, картированного рида, на одну или более позиций в одном или более сегментах указанных одной или более генетических референсных последовательностей, например, полученных из модуля картирования и/или хранящихся в памяти.
[0011] Набор движков обработки также может включать в себя модуль сортировки, чтобы сортировать каждый выровненный рид в соответствии с одной или более позициями в одной или более генетических референсных последовательностей. Кроме того, набор движков обработки может включать в себя модуль определения вариантов, такой как для обработки картированных, выровненных и/или сортированных ридов, например, относительно референсного генома, для создания тем самым файла записи НММ, и/или определения вариантов для работы с ними, и/или детализации вариаций между секвенированными генетическими данными и данными референсного генома. В различных случаях одно или более из множества физических электрических соединений может включать в себя выход из интегральной схемы для обмена результирующими данными из модуля картирования и/или модулей выравнивания, и/или сортировки, и/или определения вариантов.
[0012] В частности, что касается модуля картирования, то в различных вариантах реализации предложена система для осуществления конвейера анализа картирования на множестве ридов генетических данных с помощью индекса генетических референсных данных. В различных случаях генетическая последовательность, например, рид и/или генетические референсные данные, могут быть представлены последовательностью нуклеотидов, которая может храниться в памяти системы. Модуль картирования может быть включен в интегральную схему и может быть сформирован из множества предварительно сконфигурированных и/или жестко смонтированных цифровых логических схем, которые соединены между собой множеством физических электрических межсоединений, причем физические электрические межсоединения могут включать в себя интерфейс памяти для обеспечения интегральной схемы возможностью доступа к памяти. В более конкретных вариантах реализации жестко смонтированные цифровые логические схемы могут быть выполнены в виде набора движков обработки, такого где каждый движок обработки может быть сформирован подмножеством жестко смонтированных цифровых логических схем для выполнения одного или более этапов в конвейере анализа последовательностей на множестве ридов геномных данных.
[0013] Например, в одном варианте реализации набор движков обработки может включать в себя модуль картирования в жестко смонтированной конфигурации, где модуль картирования и/или один или более из его движков обработки выполнены с возможностью приема рида геномных данных, например посредством одного или более из множества физических электрических межсоединений, и выделения части рида таким образом, чтобы формировать из него затравку. В таком случае рид может быть представлен последовательностью нуклеотидом, а затравка может представлять подмножество последовательности нуклеотидов, представленной ридом. Модуль картирования может включать в себя память или быть выполнен с возможностью подключения к памяти, которая содержит одно или более ридов, одну или более затравок ридов, по меньшей мере часть одного или более референсных геномов и/или один или более индексов, причем такой индекс построен из одного или более референсных геномов. В определенных случаях движок обработки модуля картирования может использовать затравку и индекс для расчета адреса в индексе на основе затравки.
[0014] После того, как адрес расчитан или получен и/или сохранен иным образом, например, во встроенной или внешней памяти, к этому адресу можно получать доступ в индексе в памяти, чтобы принимать запись из адреса, например, запись, представляющую информацию о позиции в генетической референсной последовательности. Затем эта информация о позиции может быть использована для определения одной или более совпадающих позиций из рида в генетической референсной последовательности на основе записи. Потом по меньшей мере одна из совпадающих позиций может быть выведена в память через интерфейс памяти.
[0015] В другом варианте реализации набор движков обработки может включать в себя модуль выравнивания, например в предварительно сконфигурированной и/или жестко смонтированной конфигурации. В этом случае один или более из движков обработки могут быть выполнены с возможностью приема одной или более картированных позиций для данных рида посредством одного или более из множества физических электрических межсоединений. После этого можно получать доступ к каждой картированной позиции в памяти (внутренней или внешней) для извлечения сегмента референсной последовательности/генома, соответствующего картированной позиции. На каждом извлеченном референсном сегменте можно рассчитать выравнивание рида вместе с оценкой выравнивания. По завершении расчета можно выбрать и вывести по меньшей мере одно выравнивание рида с лучшей оценкой выравнивания. В различных случаях модуль выравнивания также реализует динамический алгоритм программирования при расчете выравнивания, например, один или более алгоритмов Смита-Ватермана, с линейной или аффинной оценкой гэпов, алгоритм выравнивания с гэпами и/или алгоритм выравнивания без гэпов. В конкретных случаях расчет выравнивания может включать в себя сначала выполнение выравнивания без гэпов с каждым референсным сегментом и на основе результатов выравнивания без гэпов выбор референсных сегментов для дальнейшего выполнения с ними выравниваний с гэпами.
[0016] В различных вариантах реализации может быть предусмотрен модуль определения вариантов для выполнения улучшенных функций определения вариантов, которые, когда они реализованы в одной или обоих программной и/или аппаратной конфигурациях, обеспечивают превосходную скорость обработки, более хорошую точность результата обработки и улучшенную общую эффективность, чем способы, устройства и системы, известные в настоящее время в данной области техники. А именно, в соответствии с одним аспектом предложены улучшенные способы выполнения операций определения вариантов в программном обеспечении и/или аппаратном обеспечении, например для выполнения одной или более операций НММ на данных генетической последовательности. Согласно другому аспекту предложены новые устройства, включающие в себя интегральную схему для выполнения таких улучшенных операций определения вариантов, причем по меньшей мере часть операции определения вариантов реализована в аппаратном обеспечении.
[0017] Соответственно, в различных случаях способы, описанные в настоящем документе, могут включать в себя картирование, с помощью первого подмножества жестко смонтированных и/или квантовых цифровых логических схем, множества ридов на один или более сегментов указанных одной или более генетических референсных последовательностей. Кроме того, способы могут включать в себя получение доступа интегральными и/или квантовыми схемами, например, посредством одного или более из множества физических электрических межсоединений, к одному или более картированным ридам и/или одной или более генетическим референсным последовательностям из связанной с ними памяти или кэша; и выравнивание с помощью второго подмножества жестко смонтированных и/или квантовых цифровых логических схем множества картированных ридов на одном или более сегментах указанных одной или более генетических референсных последовательностей.
[0018] В различных вариантах реализации способ может дополнительно включать в себя получение доступа интегральной /или квантовой схемой, например, с помощью одного или более из множества физических электрических межсоединений, к выровненному множеству ридов из связанной с ними памяти или кэша. В таком случае способ может включать в себя сортировку с помощью третьего подмножества жестко смонтированных и/или квантовых цифровых логических схем выровненного множества ридов в соответствии с их позициями в одной или более генетических референсных последовательностей. В определенных случаях способ может также включать в себя вывод, например, с помощью одного или более из множества физических электрических межсоединений интегральной и/или квантовой схемы, результирующих данных картирования, и/или выравнивания, и/или сортировки, например, где результирующие данные содержат позиции картированного, и/или выровненного, и/или сортированного множества ридов.
[0019] В некоторых случаях способ может дополнительно включать в себя использование полученных результирующих данных, например, с помощью еще одного подмножества жестко смонтированных и/или квантовых цифровых логических схем, в целях определения того, как картированные, выровненные и/или сортированные данные, полученные из секвенированного генетического образца субъекта, отличается от референсной последовательности, чтобы создать файл определения вариантов, описывающий генетические различия между двумя образцами. Соответственно, в различных вариантах реализации способ может также включать в себя получение доступа интегральной /или квантовой схемой, например, с помощью одного или более из множества физических электрических межсоединений, к картированному, и/или выровненному, и/или сортированному множеству ридов из связанной с ними памяти или кэша. В таком случае способ может включать в себя выполнение функции определения вариантов, например, операции НММ или операции парной НММ, на ридах, к которым получен доступ, с помощью третьего или четвертого подмножества жестко смонтированных и/или квантовых цифровых логических цепей для создания файла определения вариантов, подробно описывающего, как картированные, выровненные и/или сортированные риды отличаются от одной или более референсных последовательностей, например гаплотипа.
[0020] Соответственно, согласно определенным аспектам изобретения в настоящем документе предложено компактное аппаратное обеспечение, например, на основе микросхемы, или квантовая ускоренная платформа для выполнения вторичного и/или третичного анализа на генетических данных и/или данных геномного секвенирования. В частности, предложены платформа или конвейер из жестко смонтированных и/или квантовых цифровых логических схем, которые специально выполнены с возможностью выполнения вторичного и/или третичного генетического анализа, например на секвенированных генетических данных или полученных из них геномных данных. В частности, может быть предусмотрен набор жестко смонтированных и/или квантовых логических схем, которые могут быть выполнены в виде набора движков обработки, такого где движки обработки могут присутствовать в предварительно сконфигурированной, и/или жестко смонтированной, и/или квантовой конфигурации на платформе обработки по настоящему изобретению, и могут быть специально выполнены с возможностью осуществления вторичных операций картирования, и/или выравнивания, и/или определения вариантов, относящихся к генетическому анализу на данных ДНК и/или РНК, и/или могут быть специально выполнены с возможностью осуществления другой третичной обработки на данных результатов.
[0021] В конкретных случаях настоящие устройства, системы и способы их использования оптимизированы таким образом, чтобы при выполнении одного или более протоколов геномики и/или биоинформатики вторичной и/или третичной обработки обеспечивать улучшение скорости обработки, которая на порядки величины быстрее стандартных конвейеров вторичной обработки, реализованных в программном обеспечении. Кроме того, конвейеры и/или их компоненты, которые приведены в настоящем документе, обеспечивают повышенную чувствительность и точность на широком диапазоне наборов данных, полученных из последовательности данных, в целях геномной и биоинформационной обработки. В различных вариантах реализации одна или более из этих операций могут быть выполнены интегральной схемой, которая является частью или выполнена в виде центрального процессорного устройства общего назначения, и/или графического процессорного устройства, и/или квантового процессорного устройства.
[0022] Например, геномика и биоинформатика являются областями, связанными с применением информационной технологии и компьютерной науки к сфере генетики и/или молекулярной биологии. В частности, методы биоинформатики могут быть применены к обработке и анализу различных генетических и/или геномных данных, например, от индивида, для определения качественной и количественной информации об этих данных, которая может быть использована различными практикующими медицинскими специалистами при разработке профилактических, терапевтических и/или диагностических способов предотвращения, лечения, уменьшения интенсивности и/или по меньшей мере выявления болезненных состояний и/или их возможности и, таким образом, улучшения безопасности, качества и эффективности здравоохранения на индивидуальном уровне. Следовательно, поскольку области геномики и биоинформатики сконцентрированы на развитии персонализированного здравоохранения, они стимулируют индивидуализированное здравоохранение, которое является упреждающим, а не реагирующим, и это дает нуждающемуся в лечении индивиду возможность большего вовлечения в поддержание собственного здоровья. Преимущество использования технологий генетики, геномики и/или биотехнологии, описанных в настоящем документе, состоит в том, что качественный и/или количественный анализ молекулярно-биологических (например, генетических) данных может быть выполнен на широком диапазоне наборов образцов при значительно более высоком показателе скорости и зачастую более точно, ускоряя тем самым появление системы персонализированного здравоохранения. В частности, в различных вариантах реализации относящиеся к геномике и/или биоинформатике задачи могут формировать геномный конвейер, который включает в себя один или более из конвейера микроматричного анализа, конвейера анализа генома, например, полногеномного анализа, конвейера анализа генотипирования, конвейера анализа экзома, конвейера анализа микробиома, конвейера анализа генотипирования, включая совместное генотипирование, конвейеров анализа вариантов, включая структурные варианты, соматические варианты, и GATK, а также конвейер анализа секвенирования РНК и конвейеры других генетических анализов.
[0023] Соответственно, для использования этих преимуществ существуют улучшенные и более точные программные реализации для осуществления одного или ряда таких основанных на биоинформатике аналитических методов, например для развертывания с помощью ЦПУ общего назначения и/или ГПУ, и/или они могут быть реализованы в одной или более квантовых схем квантовой платформы обработки. Однако, для способов и систем на основе программного обеспечения традиционной конфигурации, как правило, характерно, что они трудоемкие, требуют много времени для выполнения на таких процессорах общего назначения и подвержены ошибкам. Поэтому реализуемые в данном документе системы биоинформатики, которые могут выполнять эти алгоритмы, например, реализованные в программном обеспечении, с помощью ЦПУ и/или ГПУ квантового процессорного устройства с меньшими затратами труда и/или интенсивностью обработки при более высоком проценте точности, будут полезны.
[0024] Такие реализации разработаны и представлены в настоящем документе, например, где геномные и/или биоинформационные анализы осуществляются оптимизированным программным обеспечением, исполняемым на ЦПУ, и/или ГПУ, и/или квантовом компьютере в системе, которая использует данные генетической последовательности, полученные с помощью процессоров и/или интегральных схем по данному изобретению. Кроме того, необходимо отметить, что стоимость анализа, хранения и совместного использования этих необработанных цифровых данных намного превышает стоимость их создания. Соответственно, в настоящем документе предложены также способы хранения и/или извлечения «точно в срок», которые оптимизируют хранение подобных данных таким образом, что вместо того, чтобы тратиться на коллективное хранение таких данных, применяют быстрое повторное формирование данных. Следовательно, способы формирования, анализа и хранения данных «точно в срок» или «ЛТ», представленные в настоящем документе, устраняют основное узкое место, которое является давно назревшим, но не устраненным препятствием между постоянно растущим формированием и хранением данных и реальной возможностью проникновения в суть медицинских проблем на их основе.
[0025] Поэтому в настоящем документе представлены системы, устройства и способы для реализации протоколов геномики и/или биоинформатики или их части, таких как для выполнения одной или более функций анализа геномных данных, например, в одном или обоих из интегральной схемы, такой как аппаратная платформа обработки, и процессора общего назначения, такого как для выполнения одной или более биоаналитических операций в программном обеспечении и/или прошивке. Например, как указано далее в настоящем документе, в различных реализациях предложена интегральная схема и/или квантовая схема для ускорения одного или более процессов на платформе первичной, вторичной и/или третичной обработки. В различных случаях интегральная схема может быть использована при выполнении относящихся к генетической аналитике задач, таких как картирование, определение вариантов, сжатие, распаковка и т.п., ускоренным образом, и поэтому интегральная схема может включать в себя аппаратно ускоренную конфигурацию. Кроме того, в различных случаях может быть предусмотрена интегральная и/или квантовая схема, такая как схема, являющаяся частью процессора, который выполнен с возможностью осуществления одного или более протоколов геномики и/или биоинформатики на сформированных картированных и/или выровненных данных и/или данных с определенными вариантами.
[0026] В частности, в первом варианте реализации первая интегральная схема может быть образована из FPGA, ASIC и/или sASIC, которые соединены с материнской платой или иным образом прикреплены к ней и сконфигурированы или, в случае FPGA, могут быть запрограммированы с помощью прошивки, которую нужно сконфигурировать как набор жестко смонтированных цифровых логических схем, которые выполнены с возможностью осуществления по меньшей мере первого набора функций анализа последовательности в конвейере геномного анализа, например, где интегральная схема выполнена, как описано в настоящем документе выше, с возможностью включения в себя одной или более цифровых логических схем, которые устроены в виде набора движков обработки, выполненных с возможностью осуществления одного или более этапов в операции картирования, выравнивания и/или определения вариантов на генетических данных для создания данных результатов анализа последовательности. Первая интегральная схема может также включать в себя выход, например, сформированный из множества физических электрических межсоединений, такой как для передачи результирующих данных из процедур картирования, и/или выравнивания, и/или других процедур в память.
[0027] Кроме того, может быть включена вторая интегральная и/или квантовая схема, соединенная с материнской платой или иным образом прикрепленная к ней и обменивающаяся данными с памятью посредством интерфейса связи. Вторая интегральная и/или квантовая схема может быть образована как центральное процессорное устройство (ЦПУ) или графическое процессорное устройство (ГПУ), или квантовое процессорное устройство (КПУ), которое выполнено с возможностью приема результирующих данных картированной, и/или выровненной, и/или подвергнутой определению вариантов последовательности, и может быть выполнена с возможностью реагирования на один или более программных алгоритмов, которые выполнены с возможностью выдачи ЦПУ или ГПУ инструкции на выполнение одной или более геномных и/или биоинформационных функций конвейера геномного анализа на результирующих данных анализа картированной, выровненной или подвергнутой определению вариантов последовательности. А именно, относящиеся к геномике и/или биоинформатике задачи могут формировать конвейер геномного анализа, который включает в себя один или более из конвейера микроматричного анализа, конвейера анализа генома, например, полногеномного анализа, конвейера анализа генотипирования, конвейера анализа экзома, конвейера анализа микробиома, конвейеров анализов генотипирования, включая совместное генотипирование, конвейеров анализа вариантов, включая структурные варианты, соматические варианты, и GATK, а также конвейер анализа секвенирования РНК и конвейеры других генетических анализов.
[0028] Например, в одном варианте реализации ЦПУ, и/или ГПУ, и/или КПУ второй интегральной схемы может содержать программное обеспечение, которое выполнено с возможностью организации конвейера анализа генома для осуществления конвейера полногеномного анализа, такого как конвейер полногеномного анализа, который включает в себя один или более из анализа вариации по всему геному, анализа ДНК по всему экзому, анализа РНК по всему транскриптому, функционального анализа генов, функционального анализа белков, анализа связывания белков, количественного генного анализа и/или анализа сборки белков. В определенных случаях конвейер полногеномного анализа может быть выполнен в целях одного или более из анализа родства, анализа личного анамнеза, диагностики заболеваний, поиска новых лекарственных средств и/или профилирования белков. В конкретном случае конвейер полногеномного анализа осуществляют в целях анализа онкологии. В различных случаях результаты этих данных могут быть сделаны доступными, например, глобально, по всей системе.
[0029] В различных случаях ЦПУ, и/или ГПУ, и/или квантовое процессорное устройство (КПУ) второй интегральной и/или квантовой схемы может содержать программное обеспечение, которое выполнено с возможностью организации конвейера анализа генома для осуществления анализа генотипирования, такого как анализ генотипирования, включающий в себя совместное генотипирование. Например, анализ совместного генотипирования может быть выполнен с помощью расчета баесовской вероятности, например, расчет байесовской вероятности, которое дает в результате абсолютную вероятность того, что данный определенный генотип является истинным генотипом. В других случаях программное обеспечение может быть выполнено с возможностью осуществления анализа метагенома для создания результирующих данных метагенома, которые могут быть, в свою очередь, использованы при выполнении анализа микробиома.
[0030] В определенных случаях первая и/или вторая интегральные схемы и/или память могут быть заключены в плату расширения, такую как плата межсоединения периферийных компонентов (PCI). Например, в различных вариантах реализации одна или более из интегральных схем могут быть одной или более микросхемами, соединенными с платой PCIe или иным образом связанными с материнской платой. В различных случаях интегральные и/или квантовые схемы и/или микросхемы могут быть компонентом в секвенаторе, или компьютере, или сервере, таком как часть фермы серверов. В конкретных вариантах реализации интегральные и/или квантовые схемы, и/или платы расширения, и/или компьютеры, и/или серверы могут быть выполнены с возможностью доступа через Интернет, например облако.
[0031] Кроме того, в некоторых случаях память может быть энергозависимой оперативной памятью (ОЗУ), например памятью с прямым доступом (DRAM). В частности, в различных вариантах реализации память может включать в себя по меньшей мере две памяти, такие как первая память, которая представляет собой НМЕМ, например для хранения данных референсной последовательности гаплотипа, и вторая память, которая представляет собой RMEM, например для хранения рида данных геномной последовательности. В конкретных случаях каждая из двух памятей может содержать порт записи и/или порт считывания, например, где каждый из порта записи и порта считывания имеет доступ к отдельному тактовому генератору. Кроме того, каждая из двух памятей может содержать триггерную конфигурацию для хранения множества данных генетической последовательности и/или результатов обработки.
[0032] Соответственно, согласно другому аспекту система может быть выполнена с возможностью совместного использования ресурсов памяти среди ее составных частей, например, при выполнении некоторых вычислительных задач посредством программного обеспечения, такого как выполняемое с помощью ЦПУ, и/или ГПУ, и/или квантовой платформы обработки, и/или выполнения других вычислительных задач посредством прошивки, например посредством аппаратного обеспечения связанной интегральной схемы, такой как FPGA, ASIC и/или sASIC. Этого можно достичь различными путями, такими как прямое слабое или жесткое связывание между ЦПУ/ГПУ/КПУ и матрицей FPGA, например микросхемой или платой PCIe. Такие конфигурации могут быть особенно полезны при распределении операций, относящихся к обработке больших структур данных, связанных с геномными и/или биоинформационными анализами и предназначенных для использования и доступа, как ЦПУ/ГПУ/КПУ, так и связанной интегральной схемой. В частности, в различных вариантах реализации при обработке данных посредством геномного конвейера, как описано в настоящем документе, например, для ускорения общей функции обработки, синхронизации и эффективности, на данных могут выполняться ряд различных операций, причем эти операции могут вовлекать как программные, так и аппаратные компоненты обработки.
[0033] Следовательно, может потребоваться совместное использование данных или иной обмен ими между программными компонентами, выполняющимися на ЦПУ, и/или ГПУ, и/или КПУ, и/или аппаратным компонентом, встроенным в микросхему, например матрицу FPGA. Соответственно, один или более из различных этапов в конвейере геномной и/или биоинформационной обработки или его части, могут быть выполнены одним устройством, например ЦПУ/ГПУ/КПУ, а один или более из различных этапов может быть выполнен жестко смонтированным устройством, например матрицей FPGA. В таком случае ЦПУ/ГПУ/КПУ и/или матрица FPGA могут быть связаны с возможностью обмена данными таким образом, чтобы обеспечивать возможность эффективной передачи таких данных, причем связывание может включать совместное использование ресурсов памяти. Чтобы достичь такого распределения задач и совместного использования информации для выполнения подобных задач различные ЦПУ/ГПУ/КПУ могут быть слабо или жестко связаны друг с другом и/или аппаратными устройствами, например FPGA или другим набором микросхем, например посредством межсоединения быстрого доступа.
[0034] В частности, в различных вариантах реализации предложена платформа геномного анализа. Например, платформа может включать в себя материнскую плату, память, множество интегральных и/или квантовых схем, таких как формирующие один или более из ЦПУ/ГПУ/КПУ, модуль картирования, модуль выравнивания, модуль сортировки и/или модуль определения вариантов. А именно, в конкретных вариантах реализации платформа может включать в себя первую интегральную и/или квантовую схему, такую как интегральная схема, формирующая центральное процессорное устройство (ЦПУ) или графическое процессорное устройство (ГПУ), или квантовая схема, формирующая квантовый процессор, которая реагирует на одну или более программ или другие алгоритмы, которые выполнены с возможностью выдачи ЦПУ/ГПУ/КПУ инструкции на выполнение одного или более наборов функций геномного анализа, как описано в настоящем документе, например, где ЦПУ/ГПУ/КПУ включает в себя первый набор физических электронных межсоединений для соединения с материнской платой. В различных случаях память может быть тоже присоединена к материнской плате и может быть также электронно соединена с ЦПУ/ГПУ/КПУ, например, посредством по меньшей мере части первого набора физических электронных межсоединений. В таких случаях память может быть выполнена с возможностью хранения множества ридов геномных данных, и/или по меньшей мере одной или более генетических референсных последовательностей, и/или индекса одной или более генетических референсных последовательностей.
[0035] Кроме того, платформа может включать в себя одну или более других интегральных схем, например, где каждая из других интегральных схем формирует программируемую пользователем вентильную матрицу (FPGA), имеющую второй набор физических электронных межсоединений для соединения с ЦПУ/ГПУ/КПУ и памятью, например посредством протокола двухточечного соединения. В таком случае, например, когда интегральная схема представляет собой матрицу FPGA, матрица FPGA может быть выполнена с возможностью программирования с помощью прошивки для конфигурирования набора жестко смонтированных цифровых логических схем, которые взаимно соединены множеством физических межсоединений, для выполнения второго набора функций геномного анализа, например, картирования, выравнивания, определения вариантов и т.д. В частности, жестко смонтированные цифровые логические схемы матрицы FPGA могут быть выполнены в виде набора движков обработки для осуществления одного или более предварительно сконфигурированных этапов в конвейере анализа последовательностей геномного анализа, например, где наборы движков обработки включают в себя один или более из модулей картирования, и/или выравнивания, и/или определения вариантов, причем модули могут быть сформированы из отдельных или одних и тех же подмножеств движков обработки.
[0036] Как было указано, система может быть выполнена с возможностью включения в себя одного или более движков обработки, и в различных вариантах реализации включенный движок обработки может сам может быть выполнен с возможностью определения одной или более вероятностей перехода для последовательности нуклеотидов рида геномной последовательности, переходящей из одного состояния в другое, например, из состояния совпадения в состояние индел, или из состояния совпадения в состояние делеции и/или обратно, например из состояния инсерции или делеции обратно в состояние совпадения. Кроме того, в различных случаях интегральная схема может иметь конвейерную конфигурацию и/или может включать в себя второе, и/или третье, и/или четвертое подмножество жестко смонтированных цифровых логических схем, например включающих второй набор движков обработки, где второй набор движков обработки содержит модуль картирования, выполненный с возможностью картирования рида геномной последовательности на референсную последовательность гаплотипа для создания картированного рида. Также может быть включено третье подмножество жестко смонтированных цифровых логических схем, например, где третий набор движков обработки содержит модуль выравнивания, выполненный с возможностью выравнивания картированного рида на одну или более позиций в референсной последовательности гаплотипа. Также может быть дополнительно включено четвертое подмножество жестко смонтированных цифровых логических схем, например где четвертый набор движков обработки содержит модуль сортировки, выполненный с возможностью сортировки картированного и/или выровненного рида по его относительным положениям в хромосоме. Как и выше, в различных подобных случаях модуль картирования, и/или модуль выравнивания, и/или модуль сортировки, например, вместе с модулем определения вариантов, может быть физически встроен в плату расширения. И в определенных вариантах реализации плата расширения может быть физически объединена с генетическим секвенатором, таким как секвенатор нового поколения и т.п.
[0037] Соответственно, согласно одному аспекту предложено устройство для выполнения одного или более этапов конвейера анализа последовательности, например на генетических данных, где генетические данные содержат одну или более генетических референсных последовательностей, таких как последовательность гаплотипа или гипотетического гаплотипа, индекс одной или более генетических референсных последовательностей и/или множество ридов, например генетических и/или геномных данных, причем данные могут храниться в одном или более совместно используемых запоминающих устройств, и/или могут быть обработанными с помощью ресурса распределенной обработки, такого как ЦПУ/ГПУ/КПУ и/или FGPA, которые связаны, например, жестко или слабо, вместе. Таким образом, в различных случаях устройство может содержать интегральную схему, где интегральная схема может содержать одну или более (например, набор) жестко смонтированных цифровых логических схем, причем набор жестко смонтированных цифровых логических схем может быть взаимно соединен, например посредством одного или множества физических электрических межсоединений.
[0038] Соответственно, система может быть выполнена с возможностью включения в себя интегральной схемы, сформированной из одной или более цифровых логических схем, которые взаимно соединены множеством физических электрических межсоединений, причем одно или более из множества физических электрических межсоединений имеет один или более интерфейсов памяти и/или кэша для доступа интегральной схемы к памяти и/или хранящимся в ней данным и для извлечения их, например, с обеспечением когерентности кэша между ЦПУ/ГПУ/КПУ и связанной микросхемой, например матрицей FPGA. В различных случаях цифровые логические схемы могут включать в себя первое подмножество цифровых логических схема, например, где первое подмножество цифровых логических схем может быть выполнено в виде первого набора движков обработки, причем движок обработки может быть выполнен с возможностью доступа к данным, хранящимся в кэше и/или непосредственно или опосредованно соединенной памяти. Например, первый набор движков обработки может быть выполнен с возможностью осуществления одного или более этапов анализа картирования, и/или выравнивания, и/или сортировки, как описано выше, и/или анализа НММ на риде данных геномной последовательности и данных последовательности гаплотипа.
[0039] Более конкретно, первый набор движков обработки может содержать модуль НММ, например, в первой конфигурации подмножества цифровых логических схем, который выполнен с возможностью доступа в памяти, например, через интерфейс памяти, по меньшей мере к некоторым из последовательности нуклеотидов в риде данных геномной последовательности и данных последовательности гаплотипа, и может быть также выполнен с возможностью выполнения анализа НММ на по меньшей мере некоторых из последовательности нуклеотидов в данных последовательности гаплотипа для создания результирующих данных НММ. Кроме того, одно или более из множества физических электрических межсоединений может включать в себя выход из интегральной цепи, например для передачи результирующих данных НММ из модуля НММ, например, в ЦПУ/ГПУ/КПУ или на сервер или кластер серверов.
[0040] Соответственно, согласно одному аспекту предложен способ осуществления конвейера анализа последовательностей, например на данных генетической последовательности. Генетические данные могут содержать одну или более генетических референсных последовательностей или последовательностей гаплотипа, один или более индексов одной или более генетических последовательностей и/или последовательностей гаплотипа, и/или множество ридов геномных данных. Способ может включать в себя одно или более из приема, получения доступа, картирования, выравнивания, сортировки различных итераций данных генетической последовательности и/или использования их результатов в способе создания одного или более файлов определения вариантов. Например, в определенных вариантах реализации способ может включать в себя прием на вход в интегральную схему из электронного источника данных одного или более из множества ридов геномных данных, где каждый рид геномных данных может содержать последовательность нуклеотидов.
[0041] В различных случаях интегральная схема может быть образована из множества жестко смонтированных цифровых логических схем, которые могут быть выполнены в виде одного или более движков обработки. В таком случае движок обработки может быть сформирован из подмножества жестко смонтированных цифровых логических схем, которые могут быть в монтажной конфигурации. В таком случае движок обработки может быть выполнен с возможностью осуществления одного или более предварительно сконфигурированных этапов, например для реализации одного или более из приема, получения доступа, картирования, выравнивания, сортировки различных итераций данных генетической последовательности и/или использования их результатов в способе создания одного или более файлов определения вариантов. В некоторых вариантах реализации предложенные цифровые логические схемы могут быть взаимно связаны, например с помощью множества физических электрических межсоединений, которые могут включат в себя вход.
[0042] Способ может также включать в себя получение доступа интегральной схемой по одному или более из множества физических электрических соединений из памяти к данным для выполнения одной из операций, подробно описанных в настоящем документе. В различных случаях интегральная схема может быть частью набора микросхем, например, встроенной или иным образом входящей как часть в матрицу FPGA, ASIC или структурированную ASIC, а память может быть напрямую или опосредованно соединена с одной или обеими микросхемами и/или связанными с ними ЦПУ/ГПУ/КПУ. Например, память может быть множеством памятей, одна из которых соединена с микросхемой и ЦПУ/ГПУ/КПУ, который сам связан с микросхемой, например слабо.
[0043] В других случаях память может быть одинарной памятью, которая может быть соединена с ЦПУ/ГПУ/КПУ, который сам жестко связан с матрицей FPGA посредством сильного межсоединения обработки или межсоединения быстрого доступа, например, QPI, и тем самым доступна для матрицы FPGA, например, с обеспечением когерентности кэша. Соответственно, интегральная схема может быть напрямую или опосредованно соединена с памятью, чтобы получать доступ к данным, имеющим отношение к выполнению функций, представленных в настоящем документе, например для получения доступа к одному или более из множества ридов, одной или более генетических референсных или теоретических референсных последовательностей и/или индексу одной или более генетических референсных последовательностей, например при выполнении операции картирования.
[0044] Поэтому в различных случаях реализации различных аспектов изобретения могут включать в себя, без ограничений: устройства, системы и способы, включающие один или более признаков, которые подробно описаны в настоящем документе, а также изделия, которые содержат материально воплощенный машиночитаемый носитель информации, выполненный с возможностью инициирования осуществления одной или более машинами (например, компьютерами и т.д.) операций, описанных в настоящем документе. Аналогичным образом также описаны компьютерные системы, которые могут содержать один или более процессоров и/или одну или более памятей, соединенных с одним или более процессорами. Соответственно, компьютеризованные способы, соответствующие одной или более реализациям текущего объекта изобретения, могут быть осуществлены одним или более процессорами данных, находящимися в одной вычислительной системе или множестве вычислительных системах, содержащих множество компьютеров, например в вычислительном или супервычислительном банке.
[0045] Такие множественные вычислительные системы могут быть соединены и могут обмениваться данными и/или командами либо другими инструкциями и т.п.посредством одного или более соединений, включая, без ограничений, соединение по сети (например, Интернет, беспроводная глобальная сеть, локальная сеть, глобальная сеть, проводная сеть, физическое электрическое межсоединение и т.п.), через прямое соединение между одной или более множественными вычислительными сетями и т.д. Память, которая может быть машиночитаемым носителем информации, может содержать, кодировать, хранить и т.п.одну или более программ, которые вызывают выполнение одним или более процессорами одной или более операций, связанных с одним или более алгоритмами, описанными в настоящем документе.
[0046] Подробные сведения об одном или более вариантах объекта изобретения, описанного в настоящем документе, изложены на прилагаемых чертежах и в описании, приведенном ниже. Другие признаки и преимущества объекта изобретения, описанного в настоящем документе, будут очевидны из описания и чертежей и формулы изобретения. Хотя определенные признаки раскрытого в настоящее время объекта изобретения описаны в целях иллюстрации в связи с программной системой ресурсов предприятия или иным коммерческим программным решением или архитектурой, совершенно ясно, что такие признаки не предназначены для ограничения. Формула изобретения, которая следует за данным описанием, предназначена для определения объема защищенного объекта изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0047] Прилагаемые чертежи, которые включены в данное описание изобретения и являются его частью, показывают определенные аспекты объекта изобретения, раскрытого в настоящем документе, и, вместе с описанием, помогают объяснять некоторые из принципов, связанных с описанными реализациями.
[0048] На ФИГ. 1А изображена платформа секвенирования с множеством генетических образцов на ней, а также изображено множество примеров плиток, как и трехмерное представление секвенированных ридов.
[0049] На ФИГ. 1В изображено представление проточной кюветы с представленными различными полосами.
[0050] На ФИГ. 1С изображен нижний угол платформы проточной кюветы, приведенной на ФИГ. 1 В, показывающий группу секвенированных ридов.
[0051] На ФИГ. 1D изображен виртуальный массив результатов секвенирования, выполненного на ридах, приведенных на ФИГ. 1 и 2, где риды указаны в выходном столбце в порядке столбцов.
[0052] На ФИГ. 1Е изображен способ, с помощью которого можно осуществлять транспозицию итоговых ридов из столбцов в порядке столбцов в ряды в порядке рядов.
[0053] На ФИГ. 1F изображена транспозиция итоговых ридов из столбцов в порядке столбцов в ряд в порядке рядов.
[0054] На ФИГ. 1G изображены компоненты системы для выполнения транспозиции.
[0055] На ФИГ. 1Н изображен порядок транспозиции.
[0056] На ФИГ. 1I изображена архитектура для электронной транспозиции секвенированных данных.
[0057] На ФИГ. 2 изображена основанная на 3 состояниях модель НММ, иллюстрирующая вероятности транспозиции перехода из одного состояния в другое.
[0058] На ФИГ. 3А изображено высокоуровневое представление интегральной схемы по изобретению, включающей в себя структуру интерфейса НММ.
[0059] На ФИГ. 3В изображена интегральная схема, приведенная на ФИГ. 3А, более подробно показывающая особенности кластера НММ.
[0060] На ФИГ. 4 изображен обзор потока относящихся к НММ данных через систему, включая программные и аппаратные соединения.
[0061] На ФИГ. 5 изображен пример соединений манжеты кластера НММ.
[0062] На ФИГ. 6 изображено высокоуровневое представление основных функциональных блоков в пределах примера аппаратного ускорителя НММ.
[0063] На ФИГ. 7 изображен пример структуры матрицы НММ и потока аппаратной обработки.
[0064] На ФИГ. 8 изображен увеличенный вид части ФИГ. 2, показывающий поток данных и зависимости между соседними ячейками при вычислениях состояния М, I и D НММ в пределах матрицы.
[0065] На ФИГ. 9 изображены примеры вычислений, полезных для обновлений состояний М, I, D.
[0066] На ФИГ. 10 изображены схемы обновления состояний М, I и D, в том числе влияние упрощенных допущений, показанных на ФИГ. 9, которые относятся к вероятностям перехода, и влияние совместного использования некоторых ресурсов сумматора М, I, D с заключительными операциями суммирования.
[0067] На ФИГ. 11 изображены подробности расчета состояний М, I, D логарифмической области.
[0068] На ФИГ. 12 изображена диаграмма переходов состояний НММ, показывающая взаимосвязь между GOP, GCP и вероятностями перехода.
[0069] На ФИГ. 13 изображена схема формирования вероятностей перехода НММ и значений Prior для поддержки общей диаграммы переходов состояний, приведенной на ФИГ. 12.
[0070] На ФИГ. 14 изображена упрощенная диаграмма переходов состояний НММ, показывающая взаимосвязь между GOP, GCP и вероятностями перехода.
[0071] На ФИГ. 15 изображена схема формирования вероятностей перехода НММ и значений Prior для поддержки упрощенной диаграммы перехода состояний.
[0072] На ФИГ. 16 изображен пример теоретической матрицы НММ и показано, как можно пройти такую матриц НММ.
[0073] На ФИГ. 17А представлен способ выполнения процедуры предварительной обработки совместного обнаружения в множестве областей.
[0074] На ФИГ. 17В представлен пример способа вычисления матрицы связности, такой как в процедуре предварительной обработки, показанной на ФИГ. 17А.
[0075] На ФИГ. 18А изображен пример события между двумя гомологичными секвенированными областями в скоплении ридов.
[0076] На ФИГ. 18В изображены построенные риды, приведенные на ФИГ. 18А, обозначающие разницу между двумя последовательностями.
[0077] На ФИГ. 18С изображены различные пузыри графа де Брейна, которые могут быть использованы при выполнении ускоренной операции определения вариантов.
[0078] На ФИГ. 18D изображено представление функции обрезания дерева, как описано в настоящем документе.
[0079] На ФИГ. 18Е изображен один из пузырей, приведенных на ФИГ. 18С.
[0080] На ФИГ. 19 приведено графическое представление примера скопления, относящегося к матрице, показанной на ФИГ. 17.
[0081] На ФИГ. 20 приведена матрица обработки для выполнения процедуры предварительной обработки, представленной на ФИГ. 17А и В.
[0082] На ФИГ. 21 приведен пример образования пузыря в графе де Брейна в соответствии со способами, показанными на ФИГ. 20.
[0083] На ФИГ. 22 приведен пример пути варианта через иллюстративный графа де Брейна.
[0084] На ФИГ. 23 приведено графическое представление примера функции сортировки.
[0085] На ФИГ. 24 приведен другой пример матрицы обработки для обрезанной процедуры совместного обнаружения в множестве областей.
[0086] На ФИГ. 25 показано совместное скопление парных ридов для двух областей.
[0087] На ФИГ. 26 приведена таблица вероятности в соответствии с описанием в настоящем документе.
[0088] На ФИГ. 27 приведен другой пример матрицы обработки для процедуры совместного обнаружения в множестве областей.
[0089] На ФИГ. 28 представлен выбор решений-кандидатов для совместного скопления, показанной на ФИГ. 25.
[0090] На ФИГ. 29 представлен другой выбор решений-кандидатов для скопления, показанного на ФИГ. 28, после того, как выполнена функция обрезания.
[0091] На ФИГ. 30 представленные окончательные решения-кандидаты, показаны на ФИГ. 28, и их соответствующие вероятности после выполнения функции MRJD.
[0092] На ФИГ. 31 показаны кривые РХП для MRJD и обычного детектора.
[0093] На ФИГ. 32 показаны те же самые результаты, что и на ФИГ. 3, отображаемые в виде функции от подобия последовательности референсов.
[0094] На ФИГ. 33А изображен пример архитектуры, иллюстрирующий слабое связывание между ЦПУ и матрицей FPGA по данному изобретению.
[0095] На ФИГ. 33А изображен пример архитектуры, иллюстрирующий жесткое связывание между ЦПУ и матрицей FPGA по данному изобретению.
[0096] На ФИГ. 34А изображено слабое связывание между ЦПУ и FPGA по данному изобретению.
[0097] На ФИГ. 34В изображен альтернативный вариант реализации прямого связывания между ЦПУ и матрицей FPGA, приведенного на ФИГ. 34А.
[0098] На ФИГ. 35 изображен альтернативный вариант реализации корпуса объединенных ЦПУ и матрицы FPFA, где эти два устройства совместно используют общую память и/или кэш.
[0099] На ФИГ. 36 показано ядро ЦПУ, совместно использующих одну или более памятей и/или кэшей, причем ЦПУ выполнены с возможностью обмена данными с одной или более матрицами FPGA, которые могут также включать в себя совместно используемую или общую память или кэши.
[00100] На ФИГ. 37 показан пример способа передачи данных по всей системе.
[00101] На ФИГ. 38 более подробно изображен вариант реализации, приведенный на ФИГ. 36.
[00102] На ФИГ. 39 изображен пример способа обработки одного или более заданий системы по настоящему изобретению.
[00103] На ФИГ. 40А изображена блок-схема для геномной инфраструктуры местной или облачной геномной обработки и анализа.
[00104] На ФИГ. 40В изображена блок-схема облачной платформы геномной обработки для выполнения BioIT-анализа, описанного в настоящем документе.
[00105] На ФИГ. 40С изображена блок-схема примера конвейера геномной обработки и анализа.
[00106] На ФИГ. 40D изображена блок-схема примера конвейера геномной обработки и анализа.
[00107] На ФИГ. 41А изображена блок-схема местной и/или облачной вычислительной функции, приведенной на ФИГ. 40А, для геномной инфраструктуры локальной или облачной геномной обработки и анализа.
[00108] На ФИГ. 41В более подробно изображена блок-схема, приведенная на ФИГ. 41А, в части, касающейся вычислительной функции для геномной инфраструктуры локальной или облачной геномной обработки и анализа.
[00109] На ФИГ. 41С более подробно изображена блок-схема, приведенная на ФИГ. 40, в части, касающейся сторонней функции аналитики для геномной инфраструктуры локальной или облачной геномной обработки и анализа.
[00110] На ФИГ. 42А изображена блок-схема, иллюстрирующая конфигурацию гибридного облака.
[00111] На ФИГ. 42В более подробно изображена блок-схема, приведенная на ФИГ. 42А, которая иллюстрирует конфигурацию гибридного облака.
[00112] На ФИГ. 42С более подробно изображена блок-схема, приведенная на ФИГ. 42А, которая иллюстрирует конфигурацию гибридного облака.
[00113] На ФИГ. 43А изображена блок-схема, иллюстрирующая конвейер первичной, вторичной и/или третичной обработки, который представлен в настоящем документе.
[00114] На ФИГ. 43В приведен пример анализа эпигенетики третичной обработки для выполнения с помощью способов и устройств системы, описанной в настоящем документе.
[00115] На ФИГ. 43С приведен пример анализа метилирования третичной обработки для выполнения с помощью способов и устройств системы, описанной в настоящем документе.
[00116] На ФИГ. 43D приведен пример анализа структурных вариантов третичной обработки для выполнения с помощью способов и устройств системы, описанной в настоящем документе.
[00117] На ФИГ. 43Е приведен пример анализа третичной когортной обработки для выполнения с помощью способов и устройств системы, описанной в настоящем документе.
[00118] На ФИГ. 43F приведен пример анализа третичной обработки совместного генотипирования для выполнения с помощью способов и устройств системы, описанной в настоящем документе.
[00119] На ФИГ. 44 изображена блок-схема конвейера анализа по изобретению.
[00120] На ФИГ. 45 приведена блок-схема аппаратной архитектуры процессора в соответствии с реализацией изобретения.
[00121] На ФИГ. 46 приведена блок-схема аппаратной архитектуры процессора в соответствии с другой реализацией.
[00122] На ФИГ. 47 приведена блок-схема аппаратной архитектуры процессора в соответствии с еще одной реализацией.
[00123] На ФИГ. 48 показан конвейер анализа генетических последовательностей.
[00124] На ФИГ. 49 показаны этапы обработки с использованием аппаратной платформы анализа генетической последовательности.
[00125] На ФИГ. 50А показано устройство в соответствии с реализацией изобретения.
[00126] На ФИГ. 50В показано другое устройство в соответствии с реализацией изобретения.
[00127] На ФИГ. 51 показана система геномной обработки в соответствии с реализацией.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
[00128] Как в краткой форме изложено выше, настоящее изобретение относится к устройствам, системам и способам их использования при выполнении одного или более протоколов геномики и/или биоинформатики, таких как протокол картирования, выравнивания, сортировки и/или определения вариантов, на данных, формируемых посредством процедуры первичной обработки, например на данных генетической последовательности. Например, согласно различным аспектам устройства, системы и способы, предложенные в настоящем документе, выполнены с возможностью осуществления протоколов вторичного анализа генетических данных, таких как данные, сформированные секвенированием РНК и/или ДНК, например, с помощью секвенатора нового поколения (СНП). В конкретных вариантах реализации предусмотрены один или более конвейеров вторичной обработки для обработки данных генетической последовательности, например, где конвейеры и/или их отдельные элементы могут быть реализованы в программном обеспечении, аппаратном обеспечении или их сочетании с распределением и/или оптимизацией, чтобы обеспечивать превосходную чувствительность и улучшенную точность в более широком диапазоне данных, полученных из последовательности, по сравнению с доступным в настоящее время в данной области техники. Кроме того, как кратко изложено выше, настоящее изобретение относится к устройствам, системам и способам их использования при выполнении одного или более третичных протоколов геномики и/или биоинформатики, таких как протокол микроматричного анализа, протокол анализа генома, например, полногеномного анализа, протокол анализа генотипирования, протокол анализа экзома, протокол анализа эпигенома, протокол анализа метагенома, протокол анализа микробиома, протокол анализа генотипирования, включая совместное генотипирование, протоколы анализа вариантов, включая структурные варианты, соматические варианты, и GATK, а также протоколы секвенирования РНК и другие протоколы генетических анализов, например, на картированных, выровненных и/или других данных генетической последовательности, например использование одного или более файлов определения вариантов.
[00129] Соответственно, в настоящем документе предложены технологии анализа с использованием программно и/или аппаратно, например, на основе микросхемы, ускоренной платформы для выполнения вторичного и/или третичного анализа данных секвенирования ДНК/РНК. Более конкретно, платформа, или конвейер, движков обработки, например в программно реализованной и/или жестко смонтированной конфигурации, которая специально выполнена с возможностью осуществления вторичного генетического анализа, например, картирования, выравнивания, сортировки и/или определения вариантов; и/или может быть специально выполнена с возможностью осуществления третичного генетического анализа, такого как микроматричный анализ, анализ генома, например, полногеномный анализ, анализ генотипирования, анализ экзома, анализ эпигенома, анализ метагенома, анализ микробиома, анализ генотипирования, включая анализ совместного генотипирования, анализ вариантов, включая анализ структурных вариантов и анализ GATK, а также анализ секвенирования РНК и другие генетические анализы, например, применительно к данным генетического секвенирования, которые могли быть сформированы в оптимизированном формате, обеспечивающем улучшение скорости обработки, которая на порядки величины быстрее стандартных конвейеров, реализованных исключительно в известном программном обеспечении. Кроме того, представленные в настоящем документе конвейеры обеспечивают более хорошую чувствительность и точность на широком диапазоне наборов данных, полученных из последовательности, такой как последовательности, полученные из нуклеиновых кислот или белков.
[00130] Как указано выше, в различных случаях цель обработки в биоинформатике состоит в определении отдельных геномов и/или белковых последовательностей людей, причем эти определения могут быть использованы в протоколах исследования генов, а также для профилактических и/или терапевтических режимов для улучшения жизнедеятельности каждого отдельного человека и человечества в целом. Кроме того, знание генома и/или комбинации белков индивида может быть использовано, например, в поиске новых лекарственных средств и/или испытаниях FDA для лучшего прогнозирования с учетом специфики, какие лекарственные средства, если они существуют, вероятно, будут воздействовать на индивида, и/или какие лекарственные средствам, вероятно, будут иметь вредные побочные эффекты, например путем анализа генома и/или полученного из него белкового профиля индивида и сравнения их с прогнозируемой биологической реакцией на введение такого лекарственного средства.
[00131] Такая обработка в биоинформатике обычно предполагает три четко определенные, но, как правило, отдельные фазы обработки информации. Первая фаза, называемая первичной обработкой, включает в себя секвенирование ДНК/РНК, где получают ДНК и/или РНК субъекта и подвергают различным обработкам, с помощью которых генетический код субъекта преобразуют в машиночитаемый цифровой код, например в файл FASTQ. Вторая фаза, называемая вторичной обработкой, включает в себя использование сформированного цифрового генетического кода субъекта для определения генетического строения субъекта, например определения геномной нуклеотидной последовательности субъекта. И третья фаза, называемая третичной обработкой, включает в себя выполнение одного или более анализов генетического строения субъекта для определения из него информации, полезной в терапевтических целях.
[00132] Соответственно, после того, как генетический код субъекта секвенирован, например, с помощью секвенатора нового поколения, чтобы получить машиночитаемое цифровое представление генетического кода субъекта, например, в формате файла FASTQ и/или BCL, возможно, будет полезна дальнейшая обработка кодированных в цифровом виде данных генетической последовательности, полученной из секвенатора и/или протокола секвенирования, например, путем применения вторичной обработки к представленным в цифровом виде данным. Эта вторичная обработка, например, может быть использована для картирования, и/или выравнивания, и/или сборки иным образом полногеномного и/или белкового профиля индивида, например, когда определяют полное генетическое строение, где последовательно определяют все до единого нуклеотиды всех без исключения хромосом так, чтобы идентифицировать состав всего генома индивида. При такой обработке геном индивида может быть собран, например, путем сравнения с референсным геномом, таким как референсный стандарт, например, с одним или более геномами, полученными из проекта генома человека и т.п., для определения того, как генетическое строение индивида отличается от генетического состава контрольных индивидов. Этот процесс обычно называют определением вариантов. Поскольку отличия между ДНК одного человека с другим встречаются 1 раз на 1000 пар оснований, такой процесс определения вариантов может быть весьма трудоемким и времязатратным, требующим множества этапов, которые, возможно, потребуется выполнять один за другим и/или одновременно, например, в конвейерном режиме, чтобы проанализировать геномные данные субъекта и определить, как эта генетическая последовательность отличается отданного референса.
[00133] При выполнении конвейера вторичного анализа, такого как для формирования файла определения вариантов для данной исследуемой последовательности отдельного субъекта, от субъекта может быть получен генетический образец, например образец ДНК, РНК, белка. Затем ДНК/РНК субъекта может быть секвенрирована, например, с помощью секвенатора нового поколения (СНП) и/или технологии «секвенатор на микросхеме», например, на этапе первичной обработки, чтобы получить множество сегментов последовательности считывания («ридов»), охватывающее полностью или частично геном индивида, например с избыточностью. Конечный продукт, сформированный с помощью устройства для секвенирования, может представлять собой коллекцию коротких последовательностей, например ридов, которые представляют небольшие сегменты генома субъекта, например, короткие генетические последовательности, представляющие полный геном индивида. Как было указано, информация, представленная этими ридами, может быть файлом изображения или файлом в цифровом формате, таком как FASTQ, BCL или другой аналогичный файловый формат.
[00134] В частности, в типичном протоколе вторичной обработки генетическое строение субъекта собирают путем сравнения с референсным геномом. Это сравнение включает в себя реконструкцию генома индивида из миллионов и миллионов коротких последовательностей рида и/или сравнение всего ДНК индивида с примером модели последовательности ДНК, В типичном протоколе вторичной обработки из секвенатора принимают изображение, файл FASTQ и/или BCL, содержащие необработанные секвенированные данные рида. Чтобы сравнить геном субъекта со стандартным референсным геномом, необходимо определить, где каждое из этих ридов картируется на референсный геном, например, как каждый из них выравнивается относительно другого, и/или как каждый рид может быть также отсортирован по порядку хромосом, чтобы определить, в какой позиции находится каждый рид, и какой хромосоме он принадлежит. Одна или более из этих функций могут предшествовать выполнению функция определения вариантов на полноразмерной последовательности, например после сборки. А именно, после того, как определено, какой части генома принадлежит каждый рид, можно определить генетическую полноразмерную последовательность, а затем можно оценить различия между генетическим кодом субъекта и генетическим референсным кодом.
[00135] Например, основанная на референсе сборка в типичном протоколе сборки вторичной обработки включает в себя сравнение секвенированной геномной ДНК/РНК субъекта с секвенированной геномной ДНК/РНК одного или более стандартов, например, известных референсных последовательностей. В качестве помощи для ускорения этих процессов разработаны различные алгоритмы картирования, выравнивания, сортировки и/или определения вариантов. Поэтому данные алгоритмы могут включать в себя некоторый вариант одного или более из: картирования, выравнивания и/или сортировки миллионов ридов, полученных из изображения (файла FASTQ и/или BCL), которые переданы секвенатором, для определения местоположения каждого конкретного рида на каждой хромосоме. Следует отметить, что эти процессы могут быть реализованы в программном обеспечении или аппаратном обеспечении, например, с помощью способов и/или устройств, описанных в патентах США №№9,014,989 и 9,235,680, права на которые принадлежат компании Edico Genome Corporation, и которые полностью включены в настоящий документ путем ссылки. Часто общей особенностью функционирования этих различных алгоритмов и/или аппаратных реализаций является использование ими индекса и/или массива для ускорения их функции обработки.
[00136] Например, что касается картирования, большое количество секвенированных ридов (например, все) могут быть обработаны для определения возможных местоположений в референсном геноме, на который могли бы быть выровнены эти риды. Один из методов, который может быть использован в этих целях, заключается в прямом сравнении рида с референсным геномом, чтобы найти все позиции совпадения. Другой метод состоит в использовании массива префиксов или суффиксов или построении дерева префиксов или суффиксов с целью картирования ридов на различные позиции в референсном геноме. Типичным алгоритмом, полезным при выполнении такой функции, является преобразование Барроуза-Уилера, которое используют для картирования ридов на референс с помощью формулы сжатия, которая сжимает повторяющиеся последовательности данных.
[00137] Еще один метод заключается в использовании хэш-таблицы, например, когда выбранное подмножество ридов, k-мер выбранной длины «к», например, затравку, помещают в хэш-таблицу в качестве ключей, а референсную последовательность разбивают на части, равные по длине k-меру, и эти части и их местоположения вставляют с помощью алгоритма в хэш-таблицу в те места таблицы, на которые они отображаются в соответствии с функцией хэширования. Типичным алгоритмом для выполнения этой функции является «BLAST», Basic Local Alignment Search Tool. Такие программы на основе хэш-таблицы сравнивают исследуемые нуклеотидные или белковые последовательности с одной или более баз данных стандартных референсных последовательностей и рассчитывают статистическую значимость совпадений. Подобным образом можно определить вероятное местоположение любого данного рида относительно референсного генома. Эти алгоритмы полезны, поскольку они требуют меньше памяти, преобразований, таблиц перекодировки (LUT) и, следовательно, требуют меньше вычислительных ресурсов и времени при выполнении своих функций, чем было бы в ином случае, например, если бы геном субъекта собирали путем прямого сравнения, например без использования этих алгоритмов.
[00138] Кроме того, может быть выполнена функция выравнивания для определения всех возможных местоположений картирования данного рида на геном, например в тех случаях, когда рид можно картировать на множество позиций в геноме, которые в действительности являются местоположением, из которого он был фактически получен, например путем секвенирования с этого места с помощью исходного протокола секвенирования. Эту функцию можно выполнить на ряде ридов (например, картированных ридов) генома и можно получить строку упорядоченных нуклеотидных оснований, представляющую частично или полностью геномную последовательность ДНК/РНК субъекта. Наряду с упорядоченной генетической последовательностью каждому нуклеотиду в данной позиции можно присвоить оценку, представляющую для любой данной нуклеотидной позиции вероятность того, что нуклеотид, например, «А», «С», «G», «Т» (или «U»), предполагаемый в этой позиции, действительно является нуклеотидом, который принадлежит этой назначенной позиции. В число типичных алгоритмов для выполнения функция выравнивания входят алгоритмы Нидлмана-Вунша и Смита-Ватермана. В любом случае эти алгоритмы выполняют выравнивания последовательностей между строкой исследуемой геномной последовательности субъекта и строкой референсной геномной последовательности, тем самым вместо сравнения полногеномных последовательностей друг с другом сравнивают выбранные сегменты возможных длин.
[00139] После того, как ридам назначены позиции, например, относительно референсного генома, что может включать в себя определение принадлежности рида конкретной хромосоме и/или его смещения от начала этой хромосомы, риды можно отсортировать по позиции. Это может позволить в последующих анализах использовать преимущества процедур с избыточной выборкой, описанных в настоящем документе. Все риды, которые перекрывают данную позицию в геноме, будут рядом друг с другом после сортировки и могут быть организованы в скопление (pileup) и без труда исследованы, чтобы определить, согласуются ли большинство из них с референсным значением или нет. Если нет, вариант можно отметить флагом.
[00140] Например, в различных вариантах реализации способы по настоящему изобретению могут включать в себя формирование файла определения вариантов (VCF), идентифицирующего один или более (например, все) генетические варианты у индивида, ДНК/РНК которого секвенировали, например, в соответствии с одним или более референсных геномов. Например, после того, как фактический геном образца известен и сравнен с референсным геномом, между этим двумя геномами можно определить вариации и составить список всех вариаций/отклонений между референсными геномами и геномом образца, например можно создать файл определения вариантов. В частности, согласно одному аспекту можно сформировать файл определения вариантов, содержащий все вариации генетической последовательности субъекта относительно референсных последовательностей.
[00141] Как указано выше, такие вариации между двумя генетическими последовательностями могут быть обусловлены рядом причин. Следовательно, чтобы сформировать такой файл, геном субъекта необходимо секвенировать и снова построить, прежде чем определять его варианты. Однако существуют несколько проблем, которые могут возникнуть при попытке формирования такой сборки. Например, возможны проблемы с химией, секвенатором и/или человеческими ошибками, которые происходят в процессе секвенирования. Кроме того, возможны генетические артефакты, которые делают такую реконструкцию проблематичной. Например, типичной проблемой при выполнении таких сборок является то, что иногда имеются огромные части генома, которые повторяют сами себя, такие как длинные секции генома, которые включают в себя одни и те же строки нуклеотидов. Следовательно, так как любая генетическая последовательность уникальна не везде, возможны трудности с определением того, где в геноме картируется и выравнивается идентифицированный рид. Кроме того, возможен однонуклеотидный полиморфизм (ОНП), например там, где одно основание в генетической последовательности субъекта было заменено на другое; возможны более обширные замены множества нуклеотидов; возможны инсерция или делеция, например когда одно или множество оснований добавлены в генетическую последовательность субъекта или удалены из нее; и/или возможен структурный вариант, например такой, который вызван скрещиванием двух ножек хромосом, и/или возможно просто смещение, приводящее к сдвигу в последовательности.
[00142] Соответственно, для вариации существую две возможности. Во-первых, существует действительная вариация в данном конкретном месте, например, когда геном человека в конкретном месте действительно отличается от референса, например, имеется естественная вариация, обусловленная ОНП (заменой одного основания), инсерция или делеция (длиной в один или более нуклеотидов), и/или имеется структурный вариант, например, когда материал ДНК из одной хромосомы перекрещивает другую хромосому или ножку, или когда определенная область дважды встречается в ДНК. Или же вариация может быть вызвана наличием проблемы в данных рида, из-за химии или машины, секвенатора или выравнивателя, или иной человеческой ошибки. Способы, описанные в настоящем документе, могут быть использованы таким образом, чтобы компенсировать эти типы ошибок и, в частности, чтобы отличать ошибки в вариации, обусловленные химией, машинной или человеком, от реальных вариаций в секвенированном геноме. Точнее говоря, системы, устройства и способы их использования, описанные в настоящем документе, разработаны таким образом, чтобы четко различать эти два различных типа вариаций и, следовательно, лучше обеспечивать точность любых сформированных файлов вариантов, чтобы правильно выявлять истинные варианты.
[00143] Поэтому в конкретных вариантах реализации предложена платформа технологий для выполнения генетических анализов, где платформа может включать в себя выполнение одной или более из функций: картирования, выравнивания, сортировки, локального повторного выравнивания, маркировки дубликатов, перекалибровки оценки качества основания, определения вариантов, сжатия и/или распаковки. Например, в соответствии с различными аспектами может быть предусмотрен конвейер, который включает в себя выполнение одной или более аналитических функций, как описано в настоящем документе, на геномной последовательности одного или более индивидов, например, на данных, полученных в файле изображения и/или в цифровом файле формата FASTQ или BCL из автоматизированного секвенатора. Типичный конвейер, подлежащий выполнению, может включать в себя один или более секвернирований генетического материала, например, часть или весь геном, одного или более субъектов, причем генетический материал может содержать ДНК, оцДНК, РНК, рРНК, тРНК и т.п.и/или, в некоторых случаях, генетический материал может представлять кодируемые или некодируемые области, такие как экзомы и/или эписомы ДНК. Конвейер может включать в себя одно или более из выполнения процедуры обработки изображения, операции определения оснований и/или исправления ошибки, например, в оцифрованных генетических данных, и/или может включать в себя одно или более из выполнения функции картирования, выравнивания и/или сортировки на генетических данных. В определенных случаях конвейер может включать в себя выполнение одного или более из повторного выравнивания, удаления дубликатов, перекалибровки оценки качества основания, редукции и/или сжатия и/или распаковки на оцифрованных генетических данных. В определенных случаях конвейер может включать в себя выполнение операции определения вариантов, такой как скрытая марковская модель, на генетических данных.
[00144] Соответственно, в определенных случаях реализация одной или более из этих функций платформы предназначена для выполнения одного или более из определения и/или реконструкции консенсусной геномной последовательности субъекта, сравнения геномной последовательности субъекта с референсной последовательностью, например, референсной или модельной генетической последовательностью, определения того, каким образом геномная ДНК или РНК субъекта отличается от референсной, например, определения вариантов, и/или для выполнения третичного анализа на геномной последовательности субъекта, например, для анализа вариации по всему геному, функционального анализа генов, функционального анализа белков, например, анализа связывания белков, а также для различных анализов диагностической, и/или профилактической, и/или терапевтической оценки.
[00145] Как указано выше, в соответствии с одним аспектом одна или более из этих функций платформы, например, функций картирования, выравнивания, сортировки, повторного выравнивания, маркировки дубликатов, перекалибровки оценки качества основания, определения вариантов, сжатия и/или распаковки, выполнены с возможностью реализации в программном обеспечении. В соответствии с некоторыми аспектами одна или более из этих функций платформы, например, функций картирования, выравнивания, сортировки, локального повторного выравнивания, маркировки дубликатов, перекалибровки оценки качества основания, распаковки, определения вариантов, сжатия и/или распаковки, выполнены с возможностью реализации в аппаратном обеспечении, например прошивке. В соответствии с определенными аспектами эти технологии генетического анализа могут использовать улучшенные алгоритмы, которые могут быть реализованы программным обеспечением, которое выполняется с менее интенсивной обработкой, и/или с меньшими временными затратами, и/или более высоким процентом точности, например, аппаратно реализованные функциональные возможности более быстрые, требуют менее интенсивной обработки и более точные.
[00146] Например, в определенных вариантах реализации предусмотрены улучшенные алгоритмы для выполнения такой первичной, вторичной и/или третичной обработки, как описано в настоящем документе. Улучшенные алгоритмы направлены на более эффективное и/или более точное выполнение одной или более из функций картирования, выравнивания, сортировки и/или определения вариантов, например, на файле изображения и/или цифровом представлении данных последовательности ДНК/РНК, полученном с платформы секвенирования, например, в формате файла FASTQ или BCL, полученном из автоматизированного секвенатора, такого как один из описанных выше. В конкретных вариантах реализации улучшенные алгоритмы могут быть направлены на более эффективное и/или более точное выполнение одной или более из функций локального повторного выравнивания, маркировки дубликатов, перекалибровки оценки качества оснований, определения вариантов, сжатия и/или распаковки. Кроме того, как более подробно описано ниже в настоящем документе, в определенных вариантах реализации эти технологии генетического анализа могут использовать один или более алгоритмов, таких как улучшенные алгоритмы, которые могут быть реализованы с помощью одного или более из программного обеспечения и/или аппаратного обеспечения, которые выполняются с менее интенсивной обработкой, и/или с меньшими временными затратами, и/или более высоким процентом точности, чем различные традиционные программные реализации для выполнения того же самого. В различных случаях предусмотрены улучшенные алгоритмы для реализации на квантовой платформе обработки.
[00147] Поэтому в соответствии с различными аспектами в настоящем документе предложены системы, устройства и способы для реализации протоколов биоинформатики, таких как для выполнения одной или более функций анализа генетических данных, таких как геномные данные, например, посредством одного или более оптимизированных алгоритмов и/или одной или более интегральных и/или квантовых схем, например на одной или более аппаратных платформах обработки. В одном случае предложены системы и способы для реализации одного или более алгоритмов, например, в программном обеспечении, и/или прошивке, и/или с помощью квантовой схемы обработки, для выполнения одного или более этапов анализа геномных данных в протоколах биоинформатики, например, когда этапы могут включать в себя выполнение одного или более из: картирования, выравнивания, сортировки, локального повторного выравнивания, маркировки дубликатов, перекалибровки оценки качества основания, определения вариантов, сжатия и/или распаковки; и могут также включать в себя один или более этапов на платформе третичной обработки. Соответственно, в определенных случаях в настоящем документе предложены способы, включающие в себя алгоритмы программной, программно-аппаратной, аппаратной и/или квантовой обработки для выполнения способов, где способы включают в себя выполнение алгоритма, такого как алгоритм для реализации одной или более функций генетического анализа, таких как картирование, выравнивание, сортировка, повторное выравнивание, маркировка дубликатов, перекалибровка оценки качества основания, определение вариантов, сжатие, распаковка, и/или одного или более протоколов третичной обработки, где алгоритм, например, включающий в себя прошивку, оптимизирован в соответствии со способом, которым он должен быть реализован.
[00148] В частности, когда алгоритм должен быть реализован в программном решении, алгоритм и/или обслуживающие его процессы, оптимизированы таким образом, чтобы они работали быстрее и/или с более высокой точностью при выполнении этой средой. Аналогичным образом, когда функции алгоритма должны быть реализованы в аппаратном решении, например прошивке, аппаратное обеспечение разработано для выполнения этих функций и/или обслуживающих их процессов оптимальным образом, чтобы работать быстрее и/или с более высокой точностью при выполнении этой средой. Кроме того, когда алгоритм должен быть реализован в решении квантовой обработки, алгоритм и/или обслуживающие его процессы, оптимизированы таким образом, чтобы они работали быстрее и/или с более высокой точностью при выполнении этой средой. Эти способы, например, могут быть использованы, например, в итеративных картировании, выравнивании, сортировке, определении вариантов и/или процедуре третичной обработки. В другом случае предложены системы и способы для реализации функций одного или более алгоритмов для выполнения одного или более этапов анализа геномных данных в протоколе биоинформатики, как указано в настоящем документе, причем функции реализуются на аппаратном и/или квантовом ускорителе, который может быть связна или не соединен с одним или более процессорами общего назначения, и/или суперкомпьютерами, и/или квантовыми компьютерами.
[00149] Точнее говоря, в некоторых случаях предложены способы и/или оборудование для реализации этих способов с целью выполнения вторичной аналитики на данных, имеющих отношение к генетическому составу субъекта. В одном случае аналитика, подлежащая выполнению, может включать в себя основанную на референсе реконструкцию генома субъекта. Например, основанное на референсе картирование включает в себя использование референсного генома, которым может быть сформирован в результате секвенирования генома одного или множества индивидов, или он может быть объединением принадлежащих различным людям ДНК/РНК, которые объединены таким образом, чтобы создать прототипный стандартный референсный геном, с которым можно сравнить генетический материал, например ДНК/РНК, любого индивида, например, для определения и реконструкции генетической последовательности индивида и/или для определения разницы между их генетическим строением и этим стандартным референсом, например, для определения вариантов.
[00150] В частности, причина выполнения вторичного анализа на секвенированной ДНК/РНК субъекта состоит в том, чтобы определить, как ДНК/РНК субъекта отличается от ДНК/РНК эталона, чтобы определить одно, множество или все отличия нуклеотидной последовательности субъекта от нуклеотидной последовательности референса. Например, отличия между генетическими последовательностями любых двух случайно выбранных людей встречаются 1 раз на примерно 1000 пар оснований, что с учетом свыше 3 миллиардов пар оснований в полном геноме составляет вариацию из до 3000000 отличающихся пар оснований на человека. Определение этих отличий может быть полезным, например, в протоколе третичного анализа, например, для прогнозирования возможности возникновения болезненного состояния, например, вследствие генетического нарушения, и/или вероятности успеха профилактического или терапевтического воздействия, например, на основе того, каким ожидается взаимодействие профилактики или терапии с ДНК субъекта или формируемыми при этом белками. В различных случаях может оказаться полезным выполнение реконструкции генома субъекта как de novo, так и на основе референса, чтобы подкрепить результаты одной результатами другой, и чтобы улучшить точность протокола определения вариантов, если требуется.
[00151] Соответственно, согласно одному аспекту в различных вариантах реализации после того, как реконструирован геном субъекта и/или сформирован файл VCF, такие данные могут быть затем подвергнуты третичной обработке с целью их интерпретации, например, для определения того, что эти данные означают с точки зрения выявления болезней, которым может подвергнуться или не подвергнуться этот человек, и/или для определения терапий или изменений стиля жизни, которыми, возможно, пожелает воспользоваться данный субъект, чтобы устранить и/или предотвратить болезненное состояние. Например, генетическая последовательность субъекта и/или его файл определения вариантов могут быть проанализированы для определения клинически уместных генетических маркеров, которые указывают на наличие или возможность болезненного состояния и/или эффективность, с которой может воздействовать на субъекта рекомендуемый терапевтический или профилактически режим. Затем эти данные могут быть использованы для обеспечения субъекту одного или более терапевтических или профилактических режимов с тем, чтобы улучшить качество жизни субъекта, например, вылечить и/или предотвратить болезненное состояние.
[00152] В частности, после того, как определены одна или более генетических вариаций индивида, такая информация файла определения вариантов может быть использована для подготовки полезной с медицинской точки зрения информации, которая, в свою очередь, может быть использована для определения, например, с помощью известных моделей статистического анализа, относящихся к здоровью данных и/или полезной с медицинской точки зрения информации, например, в диагностических целях, например, для диагностирования болезни или ее возможности, клинической интерпретации (например, поиска маркеров, которые представляют вариант болезни), определения того, следует ли включить субъекта в различные клинических испытания или исключить из них, и других таких целей. Более конкретно, в различных случаях сформированные данные результатов обработки методами геномики и/или биоинформатики могут быть использованы при выполнении одного или более третичных протоколов геномики и/или биоинформатики, таких как протокол микроматричного анализа, протокол анализа генома, например, полногеномного анализа, протокол анализа генотипирования, протокол анализа экзома, протокол анализа эпигенома, протокол анализа метагенома, протокол анализа микробиома, протокол анализа генотипирования, включая совместное генотипирование, протоколы анализов вариантов, включая структурные варианты, соматические варианты, и GATK, а также протоколы секвенирования РНК и другие протоколы генетических анализов.
[00153] Поскольку существует конечное число болезненных состояний, которые вызываются генетическими нарушениями, при третичной обработке варианты определенного типа, например, известные тем, что они связаны с возникновением болезненных состояний, могут быть уточнены, например, путем определения того, включены ли один или более генетических маркеров болезни в файл определения вариантов субъекта. Поэтому в различных случаях способы, описанные в настоящем документе, могут включать в себя анализ, например, сканирование, VCF и/или сформированной последовательности на предмет известных связанных с болезнями вариантов последовательности, например, присутствующих по этой причине в базе данных геномных маркеров, чтобы выявить наличие генетического маркера в VCF и/или сформированной последовательности, и при наличии такового проверять присутствие или возможность генетически обусловленного болезненного состояния. Так как существуют огромное количество известных генетических вариаций и огромное количество индивидов, страдающих от болезней, вызываемых такими вариациями, в некоторых вариантах реализации способы, описанные в настоящем документе, могут охватывать формирование одной или более баз данных, связывающих секвенированные данные полного генома и/или связанного с ними файла определения вариантов, например, от одного или множества индивидов, с болезненным состоянием, и/или поиск в сформированных базах данных с целью определения того, имеет ли конкретный субъект генетический состав, который предрасполагает его к наличию такого болезненного состояния. Такой поиск может включать в себя сравнение одного полного генома с одним или более другими, или фрагмента генома, такого как фрагмент, содержащий только вариации, с одним или более фрагментами одного или более других геномов, например, в базе данных референсных геномов или их фрагментов.
[00154] Поэтому в различных случаях конвейер по данному изобретению может содержать один или более модулей, где модули выполнены с возможностью осуществления одной или более функций, таких как обработка изображения или определение оснований, и/или операция исправления ошибок, и/или картирование, и/или выравнивание, например, выравнивание с гэпами и без гэпов, и/или функция сортировки генетических данных, например, секвенированных генетических данных. И в различных случаях конвейер может содержать один или более модулей, где модули выполнены с возможностью осуществления одного или более из локального повторного выравнивания, удаления дубликатов, перекалибровки оценки качества основания, определения вариантов, например, НММ, редукции и/или распаковки на генетических данных. Кроме того, конвейер может содержать один или более модулей, где модули выполнены с возможностью осуществления протокола третичного анализа, такого как протоколы микроматричного анализа, протоколы анализа генома, например, полногеномного анализа, протоколы анализа генотипирования, протоколы анализ экзома, протоколы анализа эпигенома, протоколы анализа метагенома, протоколы анализа микробиома, протоколы анализа генотипирования, включая протоколы анализа совместного генотипирования, протоколы анализа вариантов, включая совместное генотипирование, протоколы анализов вариантов, включая структурные варианты, соматические варианты, и протоколы GATK, а также протоколы секвенирования РНК и другие протоколы генетических анализов.
[00155] Многие из этих модулей могут выполняться либо программным обеспечением, либо аппаратным обеспечением, локально или удаленно, например, посредством программного обеспечения или аппаратного обеспечения, скажем, на облаке, например, на удаленном сервере и/или банке серверов, таком как квантовый вычислительный кластер. Кроме того, многие из этих модулей и/или этапов конвейера являются необязательными и/или могут быть расположены в любом логическом порядке и/или полностью опущены. Например, программное обеспечение и/или аппаратное обеспечение, описанные в настоящем документе, могут включать в себя или не включать обработку изображения и/или определение оснований, или алгоритм исправления последовательности, например, когда могут быть опасения, что такие функции могут привести к статистической систематической ошибке. Следовательно, система может включать себя или не включать функцию определения оснований и/или исправления последовательности, соответственно, в зависимости от требуемого уровня точности и/или эффективности. И, как указано выше, одна или более функций конвейера могут быть использованы при формировании геномной последовательности субъекта, например, посредством реконструкции генома на основе референса. Кроме того, в определенных случаях выходными данными из конвейера вторичной обработки может быть файл определения вариантов (VCF, gVCF), указывающий частично или полностью варианты в геноме или его части.
[00156] В частности, после того как ридам назначены позиции относительно референсного генома, что может включать в себя определение того, какой хромосоме принадлежит рид, и/или его смещения от начала этой хромосомы, из них можно удалить дубликаты и/или отсортировать их, например по позиции. Это позволяет в последующих анализах использовать преимущества различных протоколов с избыточной выборкой, описанных в настоящем документе. Все риды, которые перекрывают данную позицию в геноме, могут быть расположены рядом друг с другом после сортировки, и они могут быть накоплены, например чтобы образовать скопление, и без труда исследованы, чтобы определить, согласуются ли большинство из них с референсным значением или нет. Если нет, как указано выше, вариант можно пометить.
[00157] Соответственно, как указано выше в отношении картирования, файл изображения, файл BCL и/или файл FASTQ, полученные из секвенатора, состоят из множества, например, от миллионов до миллиардов или более, ридов, состоящих из коротких строк данных последовательности нуклеотидов, представляющих часть и или весь геном индивида. Например, первый этап в конвейерах вторичного анализа, описанных в настоящем документе, представляет собой прием геномных и/или биоинформационных данных, например, из устройства формирования геномных данных, такого как секвенатор. Как правило, данные, создаваемые секвенатором, например, секвенатором нового поколения, могут быть в формате файла BCL, который в некоторых случаях может быть преобразован в формат файла FASTQ, до или после передачи, например, на платформу вторичной обработки, описанную в настоящем документе. В частности, при секвенировании человеческого генома необходимо идентифицировать ДНК и/или РНК субъекта, основание за основанием, причем результатом такого секвенирования является файл BCL. Файл BCL - это двоичный файл, который содержит определения оснований и оценки качества, сделанные для каждого основания каждой последовательности коллекции последовательностей, которая составляет по меньшей мере часть или полный геном субъекта.
[00158] По традиции сформированный секвенатором файл BCL преобразуют в файл FASTQ, который затем может быть передан на платформу вторичной обработки, такую как описанная в настоящем документе, для дальнейшей обработки, например, для определения из него геномной вариации. Файл FASTQ - это файл в текстовом формате для передачи и хранения как биологической последовательности (например, последовательности нуклеотидов), так и ее соответствующих оценок качества, где каждая буква последовательности, например А, С, G, Т и/или U, и оценка качества может быть закодирована одним символов ASCII для краткости. Соответственно, в данной и других системах в целях дальнейшей обработки используют именно файл FASTQ. Хотя использование файла FASTQ для геномной обработки полезно, преобразование сформированного файла BCL в файл FASTQ, которое реализовано в секвенаторе, занимает много времени и неэффективно. Поэтому, в соответствии с одним аспектом предложены устройства и способы для прямого преобразования файла BCL в файл FASTQ и/или непосредственного ввода таких данных в конвейеры представленной платформы, как описано в настоящем документе.
[00159] Например, в различных вариантах реализации секвенатор нового поколения или изготовленный по технологии «секвенатор на микросхеме» может быть выполнен с возможностью осуществления операции секвенирования на принимаемых генетических данных. Например, как показано на ФИГ. 1А, генетические данные ба могут быть связаны с платформой 6, предназначенной для вставки в секвенатор нового поколения для итеративного секвенирования, таким образом, что каждая последовательность будет наращиваться путем пошагового добавления одного нуклеотида за другим. А именно, платформа 6 секвенирования может содержать ряд шаблонных последовательностей 6а нуклеотидов субъекта, которые расположены в виде сетки с образованием плиток 6b на платформе 6, шаблонные последовательности ба которой подлежат секвенированию. Платформа 6 может быть добавлена к проточной кювете 6с секвенатора, который выполнен с возможностью выполнения реакций секвенирования.
[00160] По мере того, как происходят реакции секвенирования, на каждом этапе к платформе 6 проточной кюветы 6с добавляется нуклеотид, имеющий флуоресцентную метку 6d. Если происходит реакция гибридизации, наблюдается флуоресценция и делается снимок, затем изображение обрабатывается, и выполняется соответствующее определение основания. Это повторяется для одного основания за другим до тех пор, пока все шаблонные последовательности, например, полный геном, не будут секвенированы и преобразованы в риды с созданием тем самым данных рида системы. Таким образом, по завершении секвенирования сформированные данные, например риды, необходимо передать с платформы секвенирования в систему вторичной обработки. Например, эти данные изображения, как правило, преобразуют в файл BCL и/или FASTQ, который затем может быть перенесен в систему.
[00161] Однако в различных случаях этот процесс преобразования и/или переноса может быть сделан более эффективным. А именно, в настоящем документе представлены способы и архитектуры для ускоренного преобразования файла BCL в файлы, которые могут быть быстро обработаны в системе вторичной обработки. Точнее говоря, в конкретных случаях вместо передачи необработанных файлов BCL или FASTQ созданные изображения, представляющие каждую плитку операции секвенирования, могут быть перенесены непосредственно в систему и подготовлены для картирования, выравнивания и т.д. Например, плитки могут передаваться в потоковом режиме через соответствующим образом сконфигурированную карту PCIe в ASIC, FPGA или КПУ, где из них могут быть непосредственно выделены данные рида, а риды продвинуты в движки картирования и выравнивания и/или другие движки обработки.
[00162] В частности, что касается переноса данных с плиток, полученных секвенатором, в FPGA/ЦПУ/ГПУ/КПУ, как показано на ФИГ. 1А, платформа 6 секвенирования может быть изображена в виде 3-мерного куба 6с, внутри которого могут быть сформированы растущие последовательности 6а. По существу, как показано на ФИГ. 1В, платформа 6 секвенирования может состоять из 16 полос, 8 в передней части и 8 в задней части, которые могут быть выполнены с возможностью формирования около 96 плиток 6b. Внутри каждой плитки 6b находятся множество шаблонных последовательностей 6а, подлежащих секвенированию с формированием тем самым ридов, каждый из которых представляет последовательность нуклеотидов для данной области генома субъекта, каждый столбец представляет один файл, а в цифровой кодировке представляет 1 байт для каждого файла, по 8 битов на файл, например, где 2 бита представляют найденное основание, а оставшиеся 6 битов представляют оценку качества.
[00163] Более конкретно, что касается секвенирования нового поколения, его обычно выполняют на стеклянных пластинах 6, формирующие проточные кюветы 6с, которые вводят в автоматизированный секвенатор для секвенирования. Как показано на ФИГ. 1В, проточная кювета 6с представляет собой платформу 6, состоящую из 8 вертикальных столбцов и 8 горизонтальных рядов (передних и задних), вместе образующих 16 полос, где каждой полосы достаточно для секвенирования полного генома. ДНК и/или РНК 6а субъекта, подлежащую секвенированию, связывают в отведенных позициях между непроницаемыми для текучей среды пересечениями столбцов и рядов платформы 6 с образованием плиток 6b, где каждая плитка содержит шаблонный генетический материал ба, подлежащий секвенированию. Следовательно, платформа 6 секвенирования содержит множество шаблонных нуклеотидных последовательностей субъекта, причем последовательности расположены в виде сетки плиток на платформе (см. ФИГ. 1В). Затем генетические данные 6 секвенируют итеративным образом, и при этом каждую последовательность наращивают пошаговым введением одного нуклеотида за другим в проточную кювету, причем каждый этап итеративного наращивания представляет цикл секвенирования.
[00164] Как было указано, после каждого этапа получают изображение, а растущая последовательность, например, изображений, образует основу, с помощью которой формируют файл BCL. Как показано на ФИГ. 1С, риды из процедуры секвенирования могут образовывать кластеры, и именно эти кластеры образуют теоретический 3-мерный куб 6с. Соответственно, внутри этого теоретического 3-мерного куба каждое основание каждой растущей нуклеотидной нити, которую секвенируют, будет иметь измерение х и измерение у. Данные изображения, или плитки 6b, из этого 3-мерного куба 6 с могут быть выделены и собраны в двумерную карту, из которой можно сформировать матрицу, как показано на ФИГ. 1D. Эту матрицу формируют из циклов секвенирования, которые представляют горизонтальную ось, и идентификаторов ридов, которые представляют вертикальную ось. Соответственно, как показано на ФИГ. 1С, секвенированные риды образуют кластеры в проточной кювете 6с, причем кластеры могут быть определены с помощью вертикальной и горизонтальной оси, цикл за циклом и основание за основанием, и данные из каждого цикла для каждого рида могут быть вставлены в матрицу, приведенную на ФИГ. 1D, например, в потоковом и/или конвейерном режиме.
[00165] А именно, каждый цикл представляет потенциальный прирост каждого рида в проточной кювете путем добавления одного нуклеотида, который при секвенировании одного или нескольких человеческих геномов может представлять прирост около 1 миллиарда или более ридов на полосу. Прирост каждого рида, например, за счет добавления нуклеотидного основания, идентифицируют путем итеративного получения изображение плиток 6b проточной кюветы 6с между этапами приращения. С помощью этих изображений выполняют определение оснований, определяют оценки качества и формируют виртуальную матрицу, приведенную на ФИГ. 1D. Соответственно, в матрицу будут введены как определение основания, так и оценка качества, причем каждая плитка из каждого цикла представляет отдельный файл. Необходимо отметить, что при выполнении секвенирования на интегральной схеме считываемые электронные данные могут заменить данные изображения.
[00166] Например, как показано на ФИГ. 1D, сама матрица будет итеративно прирастать по мере получения и обработки изображений, определения оснований и определения оценок для каждого рида, цикл за циклом. Это повторяют для каждого основания в риде для каждой плитки проточной кюветы. Например, кластеры ридов, показанные на ФИГ. 1С, могут быть пронумерованы и введены в матрицу как вертикальная ось. Аналогичным образом номер цикла может быть введен как горизонтальная ось, а затем можно ввести определение основания и оценку качества, чтобы заполнить матрицу по столбцу, ряд за рядом. Соответственно, каждый рид будет представлен некоторым количеством оснований, например, примерно от 100 или 150 до 1000 или более оснований на рид в зависимости от секвенатора, и на каждую плитку может приходиться до 10 миллионов или более ридов. Поэтому, если имеется около 100 плиток, в каждой из которых 10 миллионов ридов, матрица будет содержать около 1 миллиарда ридов, которые нужно организовывать и передавать в потоковом режиме в устройство вторичной обработки.
[00167] Соответственно, такая организация имеет основополагающее значение для быстрой и эффективной обработки данных. Поэтому, в соответствии с одним аспектом в настоящем документе предложены способы для транспортировки данных, представленных виртуальной матрицей секвенирования, таким образом, чтобы данные могли эффективно передаваться в потоковом режиме в конвейеры системы, описанной в настоящем документы. Например, формирование данных секвенирования, которые представлены звездообразным кластером, изображенным на ФИГ. 1С, в значительной степени неорганизованные, что создает трудности с точки зрения обработки данных. В частности, по мере формирования данных с помощью операции секвенирования они организуются в виде одного файла на цикл, а это означает, что по завершении операции секвенирования формируются миллионы и миллионы файлов, которые представлены на ФИГ. 1Е данными в столбцах, разграниченными сплошными линиями. Однако в целях вторичной и/или третичной обработки, как описано в настоящем документе, данные файла должны быть реорганизованы в данные рида, разграниченные пунктирными линиями на ФИГ. 1Е.
[00168] Более конкретно, чтобы эффективнее передавать в потоковом режиме формируемые секвенатором данные на вторичную обработку данных, следует переставлять представленные виртуальной матрицей данные, например, путем реорганизации данных файла из построения столбец за столбцом плиток в каждом цикле в построение ряд за рядом, идентифицируя основания каждого рида. А именно, структура данных формируемых файлов, образующих матрицу, по мере их создания секвенатором, организуется цикл за циклом, столбец за столбцом. С помощью процессов, описанных в настоящем документе, эти данные могут быть переставлены, например, по существу одновременно, чтобы они были представлены, как показано в виртуальной матрице, рид за ридом, ряд за рядом, где каждый ряд представляет отдельный рид, а каждый рид представлен порядковым номером определений оснований и оценками качества, идентифицирующими таким образом как последовательность для каждого рида, так и его достоверность. Таким образом, при операции перестановки, как описано в настоящем документе, данные в памяти могут быть реорганизованы, например, в виртуальной матрице, из построения столбец за столбцом, представляющего порядок ввода данных, в построение ряд за рядом, представляющее порядок вывода данных, меняя тем самым порядок данных из вертикальной организации на горизонтальную организацию. Кроме того, хотя этот процесс может быть эффективно реализован в программном обеспечении, он может быть выполнен даже еще эффективнее и быстрее путем реализации в аппаратном обеспечении и/или с помощью квантового процессора.
[00169] Например, в различных случаях этот процесс перестановки может быть ускорен за счет реализации в аппаратном обеспечении. Например, в одной реализации на первом этапе программное обеспечение главного устройства, например, секвенатора, может записывать входные данные в память, связанную с матрицей FPGA, столбец за столбцом, например в порядке ввода. А именно, по мере формирования данных и сохранения их в связанной памяти эти данные могут быть организованы в файлы, цикл за циклом, где данные сохраняются как самостоятельные отдельные файлы. Эти данные могут быть представлены 3-кубом, изображенным на ФИГ. 1А. Эти формируемые данные, которые организованы в столбцы, могут быть затем построены в очередь и/или переданы в потоковом режиме, например, в режиме реального времени, в аппаратное обеспечение, где специализированные движки обработки выстроят в очередь организованные в столбцы данные и переставят эти данные из конфигурации столбец за столбцом в порядке циклов в конфигурацию ряд за рядом в порядке ридов таким образом, как описано выше в настоящем документе, например, путем преобразования 3-мерных данных плиток в 2-мерную матрицу, тем самым данные столбцов могут быть реорганизованы в данные рядов, например рид за ридом. Эти переставленные данные могут быть затем сохранены в памяти в более стратегически важном порядке.
[00170] Например, программное обеспечение главного устройства может быть выполнено с возможностью записи входных данных в память, связанную с микросхемой, например матрицей FPGA, например, по столбцам в порядке ввода, и подобно аппаратному обеспечению может быть выполнено с возможностью построения в очередь данных таким образом, чтобы они считывались в память стратегически важным образом, например, как показано на ФИГ. 1F. А именно, аппаратное обеспечение может включать в себя массив регистров 8а, в которые могут быть распределены файлы циклов и реорганизованы в данные отдельных ридов, например, путем записи одного основания из столбца в регистры, которые организованы в ряды. Точнее говоря, как показано на ФИГ. 1G, аппаратное устройство 1, содержащее движок 8 обработки перестановки, может включать в себя порт 8а DRAM, который может выстраивать в очередь данные, подлежащие перестановке, причем порт выполнен с возможностью функционального соединения с интерфейсом 8b памяти, который связан с множеством регистров и/или внешней памятью 8с, и выполнен с возможностью обработки повышенного количества транзакций за цикл, где выстроенные в очередь данные передаются пакетами.
[00171] В частности, эта перестановка может происходить по одному сегменту данных за раз, например, когда очередь для доступа к памяти организована таким образом, чтобы максимально использовать преимущество скорости передачи DDR. Например, применительно к DRAM это означает, что минимальная длина пакета DDR может, например, составлять 64 байта. Соответственно, доступ к упорядоченным в столбцы данным, хранящимся в главной памяти, может выполняться таким образом, чтобы при каждом обращении к памяти получать столбец общим размером, соответствующим, например, 64 байтам данных. Следовательно, за одно обращение к памяти можно получить доступ к части плитки, например, представляющей соответствующие «64» цикла или файлов, столбец за столбцом.
[00172] Однако, как показано на ФИГ. 1F, хотя данные в главной памяти доступны в виде данных столбцов, при передаче в аппаратное обеспечение они могут быть загружены в связанные памяти меньшего объема, например, регистры, в другом порядке, и тем самым данные могут быть преобразованы в байты, например, 64 байта, данных рида ряд за рядом, например, в соответствии с минимальной скоростью передачи пакета DDR, чтобы формировать соответствующие «64» единиц или блоков памяти за каждое обращение к памяти. Это показано на примере виртуальной матрицы, изображенной на ФИГ. 1D, где доступ к множеству ридов, например 64, получают поблочно и считывают их в память в виде сегментов, как представлено на ФИГ. 1Е, например, когда на каждый регистр или триггер приходится конкретный рид, например, 64 цикла × 64 рида × 8 бит на рид = 32K триггеров. А именно, этого можно достичь всевозможными разными способами в аппаратном обеспечении, например, когда запись входных данных организована в порядке столбцов, а запись выходных данных организована в порядке рядов. Следовательно, в этой конфигурации аппаратное обеспечение может быть выполнено таким образом, чтобы считывать из и/или записывать в «64» различных адреса за цикл.
[00173] Более конкретно, аппаратное обеспечение может быть связано с массивом регистров так, что каждое основание рида направляется и записывается в один регистр (или множество регистров, расположенных в ряд), например, когда каждый блок завершен, заново упорядоченные данные ряда могут быть переданы в память в качестве выходных данных, например, данных FASTQ, строка за строкой. После этого к данным FASTQ могут обращаться один или более дальнейших движков обработки системы вторичной обработки для дальнейшей обработки, например, с помощью движка картирования, выравнивания и/или определения вариантов, как описано в настоящем документе. Необходимо отметить, что, как описано в настоящем документе, перестановку выполняют в небольших блоках, однако, в зависимости от обстоятельств, система может быть также выполнена с возможностью обработки более крупных блоков.
[00174] Как было указано, после того, как файл BCL преобразован в файл FASTQ, как было описано выше, и/или файл BCL или FASTQ иным образом принят платформой вторичной обработки, на принятых данных может быть выполнена операция картирования. Картирование, как правило, включает в себя нанесение ридов на все местоположения в референсном геноме, где имеется совпадение. Например, в зависимости от размера рида, могут быть одно или множество местоположений, где этот рид по существу совпадает с соответствующей последовательностью в референсном геноме. Следовательно, картирование и/или другие функции, описанные в настоящем документе, могут быть выполнены с возможностью определения того, какое из всех возможных местоположений, где одно или более ридов могут совпадать с референсным геномом, действительно является истинным местом, на которые они картируются.
[00175] Например, в различных случаях можно сформировать или иным образом обеспечить индекс референсного генома, чтобы можно было искать риды или части ридов, например, в таблице подстановки (LUT), по ссылке на индекс, тем самым извлекая указатели местоположений в референсе для картирования ридов на референс. Такой индекс референса можно построить в различных формах и обращаться к нему различным образом. В некоторых способах индекс может содержат дерево префиксов и/или суффиксов. В конкретных способах индекс может быть получен из референса с помощью преобразования Барроуза-Уилера. Таким образом, в качестве альтернативы или в дополнение к использованию дерева префиксов или суффиксов на данных можно выполнить преобразование Барроуза-Уилера. Например, преобразование Барроуза-Уилера можно использовать для сохранения древовидной структуры данных, абстрактно эквивалентной дереву префиксов и/или суффиксов, в компактном формате, например, в пространстве, выделенном для хранения референсного генома. В различных случаях данные хранятся не в древовидной структуре, а, скорее, данные референсной последовательности представлены в линейном списке, который можно скремблировать в другой порядок, чтобы преобразовать его совершенно особенным образом так, чтобы сопутствующий алгоритм позволял осуществлять поиск референса по ссылке на риды образца, чтобы по существу перемещаться по «дереву».
[00176] Кроме того, в различных случаях индекс может содержать одну или более хэш-таблиц, а способы, описанные в настоящем документе, могут включать в себя хэш-функцию, которую можно выполнять на одной или более частях ридов с целью картирования ридов на референс, например, на индекс референса. Например, в качестве альтернативы или в дополнение к использованию одного или обоих из дерева префиксов/суффиксов и/или преобразования Барроуза-Уилера на референсном геноме и данных последовательности субъекта с целью поиска мест, где они картируются друг на друга, другой такой способ включает в себя создание индекса хэш-таблицы и/или выполнение хэш-функции. Индекс хэш-таблицы может быть крупной ссылочной структурой, которую строят из последовательностей референсного генома, и которую потом можно сравнивать с одной или более частями рида для определения того, где они могут совпасть друг с другом. Аналогичным образом индекс хэш-таблицы может быть построен из частей ридов, который можно затем сравнивать с одной или более последовательностями референсного геном и использования тем самым для определения того, где они могут совпасть друг с другом.
[00177] Реализация хэш-таблицы - это быстрый способ выполнения сопоставления с шаблоном. Выполнение каждого поиска занимает почти постоянное количество времени. Такой метод можно противопоставить методу Барруоза-Уилера, который может потребовать множество проб (количество может меняться в зависимости от того, сколько битов требуется для нахождения уникального образца) на исследуемую последовательность, чтобы найти совпадение, или методу двоичного поиска, который требует log2(N) проб, где N - количество затравочных образцов в таблице. Кроме того, даже если хэш-функция может разбить референсный геном на сегменты затравок любой данной длины, например, 28 пар оснований, и может затем преобразовать затравки в цифровое, например, двоичное, представление из 56 битов, доступ ко всем 56 битам одновременно или одинаковым образом не требуется. Например, хэш-функция может быть реализована таким образом, чтобы адрес для каждой затравки обозначался числом менее 56 битов, например, от около 18 до около 44 или 46 битов, например, от около 20 до около 40 битов, например, от около 24 до около 36 битов, в том числе от около 28 до около 32 или 30 битов могут быть использованы в качестве начального ключа или адреса для получения доступа к хэш-таблице. Например, в определенных случаях от около 26 до около 29 битов могут использоваться в качестве первичного ключа доступа для хэш-таблицы, и остаются от около 27 до около 30, которые могут использоваться в качестве средства для двойной проверки первого ключа, например, если первый и второй ключи поступают одновременно в одну и ту же ячейку в хэш-таблице, после чего вполне очевидно, что указанное местоположение является тем местом, которому они принадлежат.
[00178] Например, первая часть представленной в цифровом виде затравки, например, от около 26 до около 32, скажем, около 29 битов, может образовывать первичный ключ доступа и быть хэширована, и ее поиск может быть выполнен на первом этапе. А на втором этапе оставшиеся от около 27 до около 30 битов, например, вторичный ключ доступа, могут быть вставлены в хэш-таблицу, например, в цепочку хэширования, в качестве средства для подтверждения первого прохода. Соответственно, для любой затравки ее первоначальные биты адреса могут быть хэшированы на первом этапе, а биты вторичного адреса могут быть использованы на втором этапе, этапе подтверждения. В таком случае первая часть затравок может быть вставлена в первичное местоположение записи, а вторая часть может быть вставлена в таблицу в местоположении второй цепочки записи. И, как указано выше, в различных случаях эти два разных местоположения записи могут быть позиционно разделены, например записью формата цепочки.
[00179] В конкретных случаях для сравнения референса с ридом или его частями может быть использовано линейное сканирование методом перебора. Однако использование линейного поиска методом перебора для сканирования референсного генома на предмет местоположений, где затравка совпадает, возможно, придется проверить свыше 3 миллиардов местоположений. Такой поиск может быть выполнен в соответствии со способами, описанными в настоящем документе, в программном или аппаратном обеспечении. Тем не менее, при использовании подхода на основе хэширования, который изложен в настоящем документе, каждый поиск затравки может занимать приблизительно постоянное количество времени. Часто местоположение может быть выявлено за несколько, например, одно, обращений к памяти. Однако в случаях, где множество затравок картируют на одно и то же местоположение в таблице, например, они не вполне уникальны, для нахождения текущей искомой затравки могут быть выполнены несколько дополнительных обращений к памяти. Следовательно, даже если может оказаться 30М или более возможных местоположений, в которых рид длиной в 100 нуклеотидов соответствует референсному геному, хэш-таблица и хэш-функция могут быстро определить, где в референсном геноме может появиться этот рид. Поэтому при использовании индекса хэш-таблицы для определения мест, где рид картируется и выравнивается, выполнять поиск полного референсного генома, например, перебором, не требуется.
[00180] Ввиду вышеизложенного, в этих целях можно использовать любую подходящую хэш-функцию, однако в различных случаях хэш-функция, используемая для определения адреса таблицы для каждой затравки, может быть проверкой с использованием циклического избыточного кода (CRC), которая может быть основана на примитивном многочлене 2k-бит, как указано выше. В альтернативном варианте реализации может быть использован сопоставитель тривиальной хэш-функции, например, путем простого отбрасывания некоторых из 2к битов. Однако в различных случаях CRC может быть более сильной хэш-функцией, которая может лучше отделять похожие затравки, избегая при этом переполнения таблицы. Это может оказаться особенно полезным в отсутствии штрафов на скорость при расчете CRC, как в случае со специализированным программным обеспечением, описанным в настоящем документе. В таких случаях хэшированная запись, заполненная для каждой затравки, может включать в себя позицию референса, где встречается эта затравка, и флаг, указывающий, была ли она обратно комплементирована перед хэшированием.
[00181] Результат, возвращаемый после выполнения функции картирования, может представлять собой список возможных вариантов мест, где одно или более, например, каждый рид картируется на один или более референсных геномов. Например, выходными данными каждого картированного рида может быть список возможных местоположений, где рид может быть картирован на совпадающую последовательность в референсном геноме. В различных вариантах реализации может выполняться поиск точного совпадения с референсом для по меньшей мере фрагмента, например затравки рида, если не всего рида. Соответственно, в различных случаях не требуется точного совпадения всех частей всех ридов со всеми частями референсного генома.
[00182] Как описано в настоящем документе, все эти операции могут быть выполнены с помощью программного обеспечения или могут быть реализованы аппаратно, например, в интегральной схеме, такой как микросхема, например, как часть печатной платы. Например, функции одного или более алгоритмов могут быть встроены в микросхему, такую как матрица FPGA (программируемая пользователем вентильная матрица) или схема ASIC (специализированная интегральная схема), и могут быть оптимизированы для более эффективной работы за счет реализации их в таком аппаратном обеспечении. Кроме того, одна или более, например, две или все три, из этих функций картирования, могут образовывать модуль, такой как модуль картирования, который может формировать часть системы (например, конвейер), используемую в процессе определения фактической полной геномной последовательности индивида или ее части.
[00183] Преимущество реализации хэш-модуля в аппаратном обеспечении состоит в том, что процессы могут быть ускорены и, следовательно, выполняться значительно быстрее. Например, когда программное обеспечение может включать в себя различные инструкции для выполнения одной или более из этих различных функций, реализация таких инструкций часто требует сохранения, и/или вызова, и/или считывания, и/или интерпретации данных и инструкций, например перед исполнением. Однако, как указано выше и подробно описано в настоящем документе, можно жестко смонтировать микросхему для выполнения этих функций без необходимости вызова, интерпретации и/или выполнения одной или более из последовательностей инструкций. Скорее, микросхему можно подключить для непосредственного выполнения таких функций. Соответственно, согласно различным аспектам изобретение относится к изготовляемой на заказ жестко смонтированной машине, которая может быть сконфигурирована таким образом, чтобы описанный выше модуль картирования, например, хэширования, частично или полностью был реализован с помощью одной или более сетевых схем, жестко смонтированных на микросхеме, такой как матрица FPGA или схема ASIC.
[00184] Например, в различных случаях построение индекса хэш-таблицы и выполнение хэш-функции могут осуществляться на микросхеме, а в других случаях индекс хэш-таблицы может формироваться вне микросхемы, например, с помощью программного обеспечения, выполняемого главным ЦПУ, но после формирования индекс загружается в аппаратное обеспечение или иным образом становится доступны для него и используется микросхемой, например, во время работы хэш-модуля. В частности, в различных случаях микросхема, такая как матрица FPGA, может быть выполнена с возможностью жесткого связывания с главным ЦПУ, например, посредством межсоединения с низкой задержкой, такого как межсоединение QPI. Более конкретно, микросхема и ЦПУ могут быть выполнены с возможностью жесткого связывания соединения вместе таким образом, чтобы совместно использовать один или более ресурсов памяти, например DRAM, в конфигурации с обеспечением когерентности кэша. В таком случае главная память может строить и/или включать в себя индекс референса, например, хэш-таблицу, которая может храниться в главной памяти, но быть легко доступной для матрицы FPGA, например, для использования ее при выполнении хэширования или другой функции картирования. В конкретных вариантах реализации одно или более из ЦПУ и матрицы FPGA могут содержать один или более кэшей или регистров, которые могут быть соединены вместе для образования когерентной конфигурации, такой что данные, хранящиеся в одном кэше, могли быть по существу дублированы другим кэшем.
[00185] Соответственно, ввиду вышеизложенного, во время выполнения одна или более предварительно построенных хэш-таблиц, например, содержащих индекс референсного генома, или создаваемая или подлежащая созданию хэш-таблица, могут быть загружены во встроенную память или могут по меньшей мере быть сделаны доступными для главного приложения, как более подробно описано ниже в настоящем документе. В таком случае риды, например, хранящиеся в формате файла FASTQ, могут быть отправлены главным приложением во встроенные движки обработки, например, память или кэш или другой регистр, связанный с ними, например, для использования движков картирования, и/или выравнивания, и/или сортировки, например, когда их результаты могут быть отправлены в функцию определения вариантов и использоваться ею. В этой связи, как указано выше, в различных случаях может быть сформировано скопление перекрывающихся затравок, например, с помощью функции формирования затравок, и выделена из секвенированных ридов, или пары ридов, и после того как затравки сформированы, их можно хэшировать, например, относительно индекса, и искать в хэш-таблице, чтобы определять позиции-кандидаты картирования ридов в референсе.
[00186] Более конкретно, в различных случаях может быть предусмотрен модуль картирования, например, когда модуль картирования выполнен с возможностью осуществления одной или более функций картирования, например, в жестко смонтированной конфигурации. А именно, жестко смонтированный модуль картирования может быть выполнен с возможностью осуществления одной или более функций, обычно совершаемых одним или более алгоритмами, выполняемыми на ЦПУ, например, функций, которые, как правило, реализуют в основанном на программном обеспечении алгоритме, который создает дерево префиксов и/или суффиксов, выполняет преобразование Барроуза-Уилера и/или выполняет хэш-функцию, например, хэш-функцию, которая использует или иным образом опирается на индексирование хэш-таблицы, скажем, референса, например референсной геномной последовательности. В таких случаях хэш-функция может быть структурирована таким образом, чтобы реализовывать стратегию, такую как оптимизированная стратегия картирования, которая может быть осуществлена с возможностью сведения к минимуму количества выполняемых обращений к памяти, например, прямых доступов к памяти большого объема, чтобы таким образом максимально повысить использование пропускной способности встроенной или иным образом связанной памяти, которая может быть существенно ограничена, например пространством внутри архитектуры микросхемы.
[00187] Кроме того, в определенных случаях, чтобы сделать систему более эффективной, главное ЦПУ/ГПУ/КПУ может быть жестко связано со связанным аппаратным обеспечением, например матрицей FPGA, например, посредством интерфейса с низкой задержкой, такого как Quick Path Interconnect («QPI»), чтобы обеспечивать движкам обработки интегральной схемы возможность беспрепятственного доступа к главной памяти. В конкретных случаях межсоединение между главным ЦПУ и соединенной микросхемой и ее соответствующими связанными памятями, например одним или более устройствами DRAM, может быть выполнено с возможностью поддержания когерентности кэша. Таким образом, в различных вариантах реализации может быть предусмотрена интегральная схема, которая предварительно сконфигурирована, например, предварительно смонтирована, таким образом, чтобы включать в себя одну или более цифровых логических схем, которые могут быть в монтажной конфигурации и могут быть взаимно соединены, например, с помощью множества физических электрических межсоединений, и в различных вариантах реализации жестко смонтированные цифровые логические схемы могут организованы в один или более движков обработки с образованием одного или более модулей, таких как модуль картирования.
[00188] Соответственно, в различных случаях может быть предусмотрен модуль картирования, например, в первой предварительно сконфигурированной монтажной, например, жестко смонтированной, конфигурации, где модуль картирования выполнен с возможностью осуществления различных функций картирования. Например, модуль картирования может быть выполнен с возможностью доступа по меньшей мере к некоторым из последовательности нуклеотидов в риде из множества ридов, полученных из секвенированного генетического образца субъекта, и/или генетической референсной последовательности, и/или индекса одной или более генетических референсных последовательностей в памяти или связанном с ней кэше, например, посредством интерфейса памяти, такого как межсоединение процесса, например Quick Path Interconnect и т.д. Модуль картирования может также быть выполнен с возможностью картирования рида на один или более сегментов указанных одной или более генетических референсных последовательностей, например на основе индекса. Например, в различных конкретных вариантах реализации алгоритм и/или модуль картирования, представленные в настоящем документе, могут быть использованы для построения или создания иным образом хэш-таблицы, с помощью которой можно сравнивать рид, или его часть, секвенированного генетического материала субъекта с одним или более сегментов референсного генома для получения картированных ридов. В таком случае по завершении выполнения картирования может быть выполнено выравнивание.
[00189] Например, после того, как определено, где находятся все возможные совпадения затравок с референсным геномом, необходимо определить, какое из всех этих возможных местоположений, где возможно совпадение данного рида, действительно является правильной позицией, с которой он выровнен. Таким образом, после картирования может быть множество позиций, где одно или более ридов, по-видимому, совпадают с референсным геномом. Следовательно, могут существовать множество затравок, которые, как представляется, указывают в точности одно и то же, например, они могут совпадать в точности с одной и той же позицией на референсе, если учитывать позицию затравки в риде. Поэтому для каждого данного рида необходимо определить подлинное выравнивание. Это определение можно осуществить несколькими различными способами.
[00190] В одном случае можно оценить все риды, чтобы определить их правильное выравнивание относительно референсного генома на основе позиций, указанных каждой затравкой из рида, которое вернуло информацию о позиции во время процесса картирования, например, хэшированного поиска. Однако в различных случаях перед выполнением выравнивания можно выполнить функцию фильтрации затравочной цепочки на одной или более затравок. Например, в определенных случаях затравки, связанные с данным ридом, которые, по-видимому, картируются на одно и то же общее место в референсном геноме, могут быть агрегированы в одну цепочку, которая ссылается на ту же общую область. Все затравки, связанные с одним ридом, могут быть сгруппированы в одну или более затравочных цепочек, чтобы каждая затравка входила только в одну цепочку. Именно такие цепочки затем приводят к выравниваю рида с каждой указанной позицией в референсном геноме.
[00191] В частности, в различных случаях все затравки, которые имеют одни и те же подтверждающие данные, указывающие на то, что они принадлежат одним и тем же общим местоположениям в референсе, могут быть собраны вместе для формирования одной или более цепочек. Поэтому затравки, которые группируются вместе или по меньшей создают впечатление, что они окажутся рядом друг с другом в референсном геноме, например, в пределах определенной полосы, будут сгруппированы в цепочку затравок, а те, что находятся за пределами этой полосы, будут превращены в другую цепочку затравок. После того, как эти различные затравки агрегированы в одну или более различных затравочных цепочек, можно определить, какая из цепочек действительно представляет правильную цепочку, подлежащую выравниванию. Этом можно сделать, по меньшей мере частично, с помощью алгоритма фильтрации, который представляет собой эвристический алгоритм, выполненный с возможностью устранения слабых затравочных цепочек, с большой вероятностью не являющихся верными.
[00192] Результатом выполнения одной из этих функций картирования, фильтрации и/или редактирования является список ридов, который для каждого рида содержит список всех возможных местоположений, в которых рид может совпасть с референсным геномом. Следовательно, функцию картирования можно выполнить так, чтобы быстро определить, где риды из файла изображения, файла BCL и/или файла FASTQ, полученного из секвенатора, картируются на референсный геном, например, куда в полном геноме картируются различные риды. Однако при наличии ошибки в любом из ридов или генетической вариации можно не получить точного совпадения с референсом и/или могут быть несколько мест, с которыми, по-видимому, совпадают одно или более ридов. Поэтому необходимо определить, где различные риды действительно выровнены относительно генома в целом.
[00193] Соответственно, после картирования, и/или фильтрации, и/или редактирования определены позиции местоположений для большого количества ридов, причем для некоторых из отдельных ридов определены множество позиций местоположений, и теперь нужно установить, какие из всех возможных местоположений в действительности являются истинными или наиболее вероятными местоположениями, с которым выравниваются различные риды. Такое выравнивание может быть выполнено с помощью одного или более алгоритмов, таких как алгоритм динамического программирования, который сопоставляет картированные риды с референсным геномом и выполняет функцию выравнивания на нем. В качестве примера функция выравнивания сравнивает одно или более, например все риды с референсом, скажем, путем наложения одного на другое в графическом режиме, например, в таблице, такой как виртуальный массив или матрица, где последовательность одного из референсных геномов или картированных ридов помещают на одно измерение или ось, например, горизонтальную ось, а другую помещают на противоположные измерения или ось, такую как вертикальная ось. Затем поверх массива пропускают воображаемый фронт волны оценки, чтобы определить выравнивание ридов относительно референсного генома, например, путем вычисления оценок выравнивания для каждой ячейки в матрице.
[00194] Фронт волны оценки представляет одну или более, например, все, ячейки матрицы или части тех ячеек, которые могут быть оценены независимо друг от друга и/или одновременно в соответствии с правилами динамического программирования, применимыми в алгоритме выравнивания, например Смита-Ватермана или Нидлмана-Вунша, или родственных алгоритмах. Оценки выравнивания можно сравнить последовательно или в других порядках, например, путем вычисления всех оценок в верхнем ряду слева направо, затем всех оценок в следующем ряду слева направо и т.д. При таком подходе развертывающийся по диагонали диагональный фронт волны представляет оптимальную последовательность пакетов оценок, вычисляемых одновременно или параллельно в серии этапов фронта волны.
[00195] Например, в одном варианте реализации окно референсного генома, содержащее сегмент, на который был картирован рид, может быть помещено на горизонтальную ось, а рид может быть расположен на вертикальной оси. Подобным образом формируют массив или матрицу, например, виртуальную матрицу, в результате чего нуклеотид в каждой позиции в риде можно сравнить с нуклеотидом в каждой позиции в окне референса. По мере прохождения фронта волны по массиву рассматриваются все потенциальные пути выравнивания рида с окном референса, в том числе нужно ли внести какие-либо изменения в одну последовательностью, чтобы рид совпал с референсной последовательностью, например, путем замены одного или более нуклеотидов рида на другие нуклеотиды, или вставки одного или более нуклеотидов в одну последовательность, или удаления одного или более нуклеотидов из одной последовательности.
[00196] Формируют оценку выравнивания, представляющую степень изменений, которые потребовалось бы внести для достижения точного выравнивания, причем эта оценка и/или другие связанные данные могут быть сохранены в данных ячейках массива. Каждая ячейка массива соответствует вероятности того, что нуклеотид в ее позиции на оси ридов выровнен с нуклеотидом в ее позиции на оси референса, а оценка, сформированная для каждой ячейки, представляет частичное выравнивание, заканчивающееся позициями ячейки в риде и окне референса. Наивысшая оценка, сформированная в любой ячейке, представляет лучшее общее выравнивание рида относительно окна референса. В различных случаях выравнивание может быть глобальным, где весь рид должен быть выровнен относительно некоторой части окна референса, например, с помощью алгоритма Нидлмана-Вунша или подобного алгоритма; или в других случаях выравнивание может быть локальным, где только часть рида может быть выровнено относительно части окна референса, например, с помощью алгоритма Смита-Ватермана или подобного алгоритма.
[00197] Соответственно, в различных случаях функция выравнивания может быть выполнена, например, на данных, полученных из модуля картирования. Таким образом, в различных случаях функция выравнивания может образовывать модуль, такой как модуль выравнивания, который может формировать часть системы (например, конвейер), которую используют, например, в дополнение к модулю картирования, в процессе определения фактической полной геномной последовательности индивида или ее части. Например, результат, возвращаемый после выполнения функции картирования, например, из модуля картирования, такой как список возможных вариантов мест, где одно или более или все риды картируются на одну или более позиций в одном или более референсных геномов, может быть использован функций выравнивания для определения фактического выравнивания последовательности секвенированной ДНК субъекта.
[00198] Такая функция выравнивания всегда может пригодиться, поскольку, как описано выше, часто по ряду различных причин секвенированные риды не всегда совпадают в точности с референсным геномом. Например, в одном или более ридов может быть ОНП (однонуклеотидный полиморфизм), например, замена одного нуклеотида другим в одной позиции; может быть «индел» (indel), инсерция или делеция одного или более оснований в одной или более последовательностях рида, причем эта инсерция или делеция не присутствует в референсном геноме; и/или может быть ошибка секвенирования (например, ошибки в приготовлении образца, и/или риде секвенатора, и/или выходных данных секвенатора и т.д.), вызывающая одну или более из этих очевидных вариаций. Соответственно, когда рид отличается от референса, например вследствие ОНП или индела, причина может быть в том, что референс отличается от истинной последовательности ДНК, взятой в качестве образца, или в том, что рид отличается от истинной последовательности ДНК, взятой в качестве образца. Проблема состоит в том, чтобы выяснить, как правильно выровнять риды на референсный геномом с учетом того факта, что, по всей вероятности, между этими двумя последовательностями будет множество различных отличий.
[00199] В различных случаях входными данными функции выравнивания, например, из функции картирования, такой как дерево префиксов/суффиксов, или преобразование Барроуза-Уилера, или хэш-таблица и/или хэш-функция, может быть список возможных вариантов мест, где одно или более ридов могут быть картированы на одну или более позиций одного или более референсных последовательностей. Например, любой данный рид может совпадать с любым количеством позиций в референсном геноме, например, в 1 местоположении, или 16, или 32, или 64, или 100, или 500, или 1000 или более местоположениях, где данный рид картируется на геном. Однако любой отдельный рид был получено, например, секвенирован, только из одной определенной части генома. Следовательно, чтобы найти, откуда был получен данный конкретный рид, можно выполнить функцию выравнивания, например, выравнивание Смита-Ватермана с гэпами и без гэпов, выравнивание Нидлмана-Вунша и т.д., чтобы определить, где в геноме в действительности были получены одно или более ридов, например, путем сравнения всех возможных местоположений, где имеет место совпадение, и определения того, какой из всех возможных вариантов является наиболее вероятным местоположением, из которого был секвенирован рид, исходя из наивысшей оценки выравнивания местоположений.
[00200] Как было указано, для выполнения такой функции выравнивания обычно используют алгоритм. Например, для выравнивания двух или более последовательностей друг с другом можно использовать алгоритм выравнивания Смита-Ватермана и/или Нидлмана-Вунша. В этом случае они могут быть использованы таким образом, чтобы для любой данной позиции, где рид картируется на референсный геном, определить вероятности того, что картирование действительно выполнено в позиции, откуда происходит рид. Как правило, эти алгоритмы выполнены с возможностью осуществления программным обеспечением, однако в различных случаях, таких как представленные в настоящем документе, один или более из этих алгоритмов может быть выполнен с возможностью осуществления в аппаратном обеспечении, как более подробно описано ниже в настоящем документе.
[00201] В частности, функцию выравнивания используют по меньшей мере частично для выравнивания одного или более, например, всех, ридов с референсным геномом, несмотря на наличие одной или более позиций несовпадений, например, ОНП, инсерций, делеций, структурных артефактов и т.д., чтобы определить, где эти риды, по всей видимости, правильно впишутся в геномом. Например, одно или более ридов сравнивают с референсным геномом и определяют наилучшее возможное совпадение рида с геномом, учитывая при этом замены, и/или инделы, и/или структурные варианты. Однако, чтобы лучше определять, какая из модифицированных версий рида лучше всего вписывается в референсный геном, необходимо учитывать предполагаемые изменения, и поэтому можно также выполнить функцию оценки.
[00202] Например, можно выполнить функцию оценки, например, как часть общей функции выравнивания, в рамках которой модуль выравнивания выполняет свою функцию и вводит одно или более изменений в последовательность, сравниваемую с другой последовательностью, например, чтобы достичь более хорошего или наилучшего соответствия между ними, при этом для каждого изменения, вносимого для достижения более хорошего выравнивания, из начальной оценки вычитают некоторое число, например, либо из идеальной оценки, либо из нулевой начальной оценки, таким образом, чтобы при выполнении выравнивания определять также оценку этого выравнивания, например, когда обнаруживают совпадения, оценку увеличивают, а при каждом внесенном изменении накладывают штраф, и таким образом можно определять лучшее возможно соответствие для возможных выравниваний путем выявления из всех возможных модифицированных ридов того рида, соответствие которого геному имеет наивысшую оценку. Соответственно, в различных случаях функция выравнивания может быть выполнена с возможностью определения лучшей комбинации изменений, которые нужно внести в рид (-ы) для достижения выравнивания с наивысшей оценкой, и тогда это выравнивание может быть определено как правильное или наиболее вероятное выравнивание.
[00203] Поэтому, ввиду вышеизложенного, существуют по меньшей мере две цели, которые могут быть достигнуты за счет выполнения функции выравнивания. Одна из них - это отчет о наилучшем выравнивании, включающий в себя позицию в референсном геноме и описание изменений, которые необходимы для того, чтобы рид совпал с референсным сегментом в этой позиции, а другая - оценка качества выравнивания. Например, в различных случаях выходными данными из модуля выравнивания может быть Compact Idiosyncratic Gapped Alignment Report, например, строка CIGAR, где выходная строка CIGAR представляет собой отчет, подробно описывающий все изменения, которые вносили в риды, чтобы достичь для них наиболее соответствующего выравнивания, например, подробные инструкции по выравниванию, указывающие, каким образом исследуемая последовательность действительно выравнивает с референсом. Вывод такой строки CIGAR может быть полезным на последующих стадиях обработки для более хорошего определения того, что для данной геномной нуклеотидной последовательности индивида прогнозированные вариации в сравнении с референсным геномом действительно являются истинными вариациями, а не просто обусловлены ошибкой машины, программного обеспечения или человека.
[00204] Как было указано выше, в различных вариантах реализации выравнивание, как правило, выполняют последовательно, причем алгоритм и/или прошивка принимают данные последовательности рида (например, из модуля картирования), принадлежащие риду, и одно или более возможных местоположений, где этот рид потенциально может быть картирован на один или более референсных геномов, а также принимают данные геномной последовательности (например из одной или более памятей, такой как связанные DRAM), относящиеся к одной или более позиций в одном или более референсных геномах, на которые может быть картирован рид. В частности, в различных вариантах реализации модуль картирования обрабатывает риды, например, из файла FASTQ, и картирует каждое из них на одну или более позиций в референсном геноме, на которую они, возможно, выровнены. Затем выравниватель берет эти прогнозированные позиции и использует их для выравнивания ридов на референсный геном, например, путем построения виртуального массива, с помощью которого риды можно сравнивать с референсным геномом.
[00205] При выполнении этой функции выравниватель оценивает каждую картированную позицию для каждого отдельного рида и, в частности, оценивает те риды, которые картированы на множество возможных местоположений в референсном геноме, и для каждой позиции оценивает возможность того, что она является правильной. Затем он сравнивает лучшие оценки, например, две лучшие оценки, и принимает решение о том, где действительно выравнивается конкретный рид. Например, при сравнении первой и второй лучших оценок выравнивания выравниватель проверяет разницу между оценками, и если разница между ними большая, то оценка достоверности того, что позиция с большей оценкой является правильной, будет высокой. Однако, если разница между ними маленькая, например, нулевая, то оценка достоверности выбора из двух позиций одной из них в качестве правильной позиции, из которой получен рид, низкая и, возможно, будет полезна дополнительная обработка, чтобы четко определить истинное местоположение в референсном геноме, из которого получен рид.
[00206] Поэтому выравниватель, в частности, ищет наибольшую разницу между первой и второй лучшими оценками достоверности для принятия решения о том, что данный рид картируется на данное местоположение в референсном геноме. В идеале оценка лучшего возможного варианта выравнивания значительно выше оценки второго лучшего выравнивания для данной последовательности. Существуют множество различных способов реализации метода оценки выравнивания, например, можно оценивать каждую ячейку массива или подмножество ячеек, например, в соответствии со способами, описанными в настоящем документе. В различных случаях параметры оценки совпадений нуклеотидов, несовпадений нуклеотидов, инсерций и делеций могут иметь любые различные положительные, отрицательные или нулевые значения. В различных случаях эти параметры оценки могут быть изменены на основе имеющейся информации. Например, точные выравнивания могут быть достигнуты путем изменения параметров оценки, в том числе любого или всех из оценок совпадения нуклеотидов, оценок несовпадения нуклеотидов, штрафов на гэп (инсерция и/или делеция), штрафов на открытие гэпа и/или штрафов на продление гэпов, в соответствии с оценкой качества основания, связанной с текущим нуклеотидом или позицией рида. Например, бонусы и/или штрафы оценки могут быть уменьшены, когда оценка качества основания указывает на высокую вероятность наличия ошибок секвенирования или других ошибок. Чувствительную к качеству основания оценку можно реализовать, например, с помощью фиксированной или выполненной с возможность конфигурирования таблицы подстановки, доступной с помощью оценки качества основания, которая возвращает соответствующие параметры оценки.
[00207] В случае аппаратной реализации в интегральной схеме, такой как матрица FPGA или схема ASIC, фронт волны оценки может быть реализован в виде линейного массива ячеек оценки, например, 16 ячеек, или 32 ячейки, или 64 ячейки, или 128 ячеек и т.п. Каждая из ячеек оценки может быть построена из цифровых логических элементов в монтажной конфигурации для вычисления оценок выравнивания. Таким образом, для каждого этапа фронта волны, например, каждого тактового цикла или некоторых других фиксированных или переменных единиц времени, каждая из ячеек оценки, или часть ячеек, вычисляет оценку или оценки, требуемые для новой ячейки в виртуальной матрице выравнивания. Теоретически различные ячейки оценки считаются находящимися в различных позициях матрицы выравнивания, соответствующих фронту волны оценки, как отмечалось в настоящем документе, например, вдоль прямой линии, проходящей из нижней левой части в верхнюю правую часть матрицы. Как известно из области разработки цифровых логических устройств, физические ячейки оценки и составляющая их цифровая логика не должны быть физически расположены подобным образом на интегрированной схеме.
[00208] Соответственно, по мере того, как фронт волны шаг за шагом прокатывается по виртуальной матрице выравнивания, воображаемые позиции ячеек оценки соответствующим образом обновляют каждую ячейку, например, умозрительно «перемещаются» на шаг вправо или, например, на шаг вниз в матрице выравнивания. Все ячейки оценки совершают одинаковое относительное воображаемое перемещение, сохраняя порядок диагонального фронта волны. Всякий раз, когда фронт волны перемещается в новое положение, например, за счет шага в вертикальном направлении вниз или шага в горизонтальном направлении вправо в матрице, ячейки оценки прибывают в новые воображаемые позиции и вычисляют оценки выравнивания для ячеек виртуальной матрицы выравнивания, в которые они вошли. В такой реализации соседние ячейки оценки в линейном массиве соединены для обмена исследуемыми (принадлежащими риду) нуклеотидами, референсными нуклеотидами и ранее рассчитанными оценками выравнивания. Нуклеотиды окна референса могут последовательно подаваться на один конец фронта волны, например, в верхнюю правую ячейку оценки в линейном массиве, и могут последовательно сдвигаться оттуда вниз вдоль фронта волны, чтобы в любой данный момент времени сегмент референсных нуклеотидов, равный по длине количеству ячеек оценки, присутствовал в этих ячейках, по одному следующему один за другим нуклеотидов в каждой следующей одна за другой ячейке.
[00209] Например, всякий раз, когда фронт волны перемещается на шаг в горизонтальном направлении, следующий референсный нуклеотид подают в верхнюю правую ячейку, а другие референсные нуклеотиды сдвигаются вниз влево по фронту волны. Этот сдвиг референсных нуклеотидов может быть реальным отражением воображаемого перемещения фронта волны ячеек оценки вправо в матрице выравнивания. Таким образом, нуклеотиды рида могут последовательно подаваться на противоположный конец фронта волны, например, в нижнюю левую ячейку оценки в линейном массиве, и могут последовательно сдвигаться оттуда вверх вдоль фронта волны, чтобы в любой данный момент времени сегмент исследуемых нуклеотидов, равный по длине количеству ячеек оценки, присутствовал в этих ячейках, по одному следующему один за другим нуклеотидов в каждой следующей одна за другой ячейке. Аналогичным образом всякий раз, когда фронт волны перемещается на шаг в вертикальном направлении, следующий исследуемый нуклеотид подают в нижнюю левую ячейку, а другие исследуемые нуклеотиды сдвигаются вверх вправо по фронту волны. Этот сдвиг исследуемых нуклеотидов может быть реальным отражением воображаемого перемещения фронта волны ячеек оценки вниз в матрице выравнивания. Соответственно, подавая команду на сдвиг референсных нуклеотидов, можно перемещать фронт волны на шаг в горизонтальном направлении, а подавая команду на сдвиг исследуемых нуклеотидов, можно перемещать фронт волны на шаг в вертикальном направлении. Таким образом, для получения в целом диагонального перемещения фронта волны, например, чтобы следовать типичному выравниванию исследуемой и референсной последовательностей без инсерций или делеций, можно попеременно подавать команды на перемещение фронта волны на шаг в вертикальном и горизонтальном направлениях.
[00210] Соответственно, соседние ячейки оценки в линейном массиве могут быть соединены для обмена ранее рассчитанными оценками выравнивания. В различных алгоритмах оценки выравнивания, таких как алгоритм Смита-Ватермана или Нидлмана-Вунша и т.п., оценки в каждой ячейке виртуальной матрицы выравнивания могут быть рассчитаны с помощью раннее рассчитанных оценок в других ячейках матрицы, например, в трех ячейках, расположенных непосредственно слева от текущей ячейки, выше текущей ячейки и вверх влево по диагонали от текущей ячейки. Когда ячейка оценки рассчитывает новые оценки для другой позиции матрицы, в которую она входит, она должна извлечь такие ранее рассчитанные оценки, соответствующие таким другим позициям матрицы. Эти ранее рассчитанные оценки могут быть получены из хранилища ранее рассчитанных оценок внутри этой же ячейки и/или из хранилища ранее рассчитанных оценок в одной или двух соседних ячейках оценки в линейном массиве. Дело в том, что три вносящие вклад в оценку позиции в виртуальной матрице выравнивания (непосредственно слева, сверху и сверху слева по диагонали) могли быть оценены либо текущей ячейкой оценки, либо одной из ее соседних ячеек оценки в линейном массиве.
[00211] Например, ячейка непосредственно слева в матрице могла быть оценена текущей ячейкой оценки, если самый последний шаг фронта волны был в горизонтальном направлении (вправо), или могла быть оценена соседней ячейкой снизу слева в линейной матрице, если самый последний шаг фронта волны был в вертикальном направлении (вниз), Аналогичным образом ячейка непосредственно сверху в матрице могла быть оценена текущей ячейкой оценки, если самый последний шаг фронта волны был в вертикальном направлении (вниз), или могла быть оценена соседней ячейкой сверху справа в линейной матрице, если самый последний шаг фронта волны был в горизонтальном направлении (вправо), В частности, ячейка сверху слева по диагонали в матрице могла быть оценена текущей ячейкой оценки, если два самых последних шага фронта волны были в разных направлениях, например, вниз затем направо, или вправо затем вниз, или могла быть оценена соседней ячейкой сверху справа в линейном массиве, если два самых последних шага фронта волны были оба в горизонтальном направлении (вправо), или могла быть оценена соседней ячейкой снизу слева в линейном массиве, если два самых последних шага фронта волны были оба в вертикальном направлении (вниз).
[00212] Соответственно, учитывая информацию о направлениях последних одного или двух шагов фронта волны, ячейка оценки может выбрать надлежащие ранее рассчитанные оценки, получив доступ к ним внутри себя и/или в соседних ячейках оценки, используя соединение между соседними оценками. В качестве варианта на наружных входах для оценок ячеек оценки на двух концах фронта волны могут быть жестко смонтированы недопустимые нулевые, или имеющие минимальное значение оценки, чтобы они не повлияли на новые расчеты оценок в этих крайних ячейках. Благодаря реализуемому таким образом фронту волны в линейном массиве ячеек оценки при таком соединении для сдвига референсных и исследуемых нуклеотидов по массиву в противоположных направлениях, чтобы умозрительно перемещать фронт волны пошагово в вертикальном и горизонтальном направлении, например, по диагонали, и соединении для доступа к оценкам, ранее вычисленным соседними ячейками, чтобы вычислять оценки выравнивания в новых позициях ячеек виртуальной матрицы, в которых входит фронт волны, можно, соответственно, оценивать в виртуальной матрице полосу ячеек шириной с фронт волны, например, путем подачи команд на последовательное пошаговое перемещение фронта волны, чтобы он прокатился по матрице.
[00213] Следовательно, чтобы выровнять новый рид и окно референса, фронт волны может начинаться изнутри матрицы оценки, или, преимущественно, может постепенно входить в матрицу оценки снаружи, начиная, например, слева, или сверху, или по диагонали слева и сверху с верхнего левого угла матрицы. Например, фронт волны может начинаться с его верхней левой ячейки оценки, расположенной сразу слева от верхней левой ячейки виртуальной матрицы, а затем фронт волны может вкатываться вправо в матрицу с помощью серии горизонтальных шагов, оценивая горизонтальную полосу ячеек в верхней левой области матрицы. Когда фронт волны достигает прогнозированного соотношения выравнивания между референсной и исследуемой последовательностью, или когда обнаруживается совпадение на основе возрастания оценок выравнивания, фронт волны может начать прокатываться по диагонали вниз вправо за счет попеременных вертикальных и горизонтальных шагов, оценивая диагональную полосу ячеек посередине. Когда нижняя левая ячейка оценки фронта волны достигает низа матрицы выравнивания, фронт волны может начать снова прокатываться вправо за счет последовательных горизонтальных шагов, оценивая горизонтальную полосу ячеек в нижней правой области матрицы, до тех пор, пока некоторые или все ячейки фронта волны не выйдут за границы матрицы выравнивания.
[00214] Одна или более таких процедур выравнивания могут быть выполнены с помощью любого подходящего алгоритма выравнивания, такого как алгоритм выравнивания Нидлмана-Вунша и/или алгоритма выравнивания Смита-Ватермана, которые могут быть изменены для приведения в соответствие с функциональными возможностями, описанными в настоящем документе. Вообще оба эти и подобные им алгоритмы по сути работают, в некоторых случаях, аналогичным образом. Например, как указано выше, эти алгоритмы выравнивания, как правило, строят виртуальный массив похожим образом так, что в различных случаях, горизонтальная верхняя граница может быть выполнена с возможностью представления геномной референсной последовательности, которая может быть выложена по всему верхнему ряду массива в соответствии с ее составов пар оснований. Аналогичным образом вертикальная граница может быть выполнена таким образом, чтобы представлять секвенированные и картированные исследуемые последовательности, которые были расположены в порядке вниз вдоль первого столбца так, что порядок их нуклеотидной последовательности в основном совпадает с нуклеотидной последовательностью референса, на который они картированы. Тогда промежуточные ячейки могут быть заполнены оценками вероятности того, что соответствующее основание исследуемой последовательности в данной позиции расположено в этом местоположении относительно референса. При выполнении этой функции полоса захвата может перемещаться по диагонали по всей матрице, заполняя оценки внутри промежуточных ячеек, и, начиная с указанной позиции, можно определить вероятность для каждого основания исследуемой последовательности.
[00215] Что касается функции выравнивания Нидлмана-Вунша, которая создает оптимальные глобальные (или полуглобальные) выравнивания, выравнивающие все последовательности рида на некоторый сегмент референсного генома, управление направлением движения фронта волны может быть сконфигурировано так, чтобы он, как правило, прокатывался от самого верхнего края матрицы выравнивания, до самого нижнего края. По завершении проката фронта волны выбирают максимальную оценку на нижней границе матрицы выравнивания (соответствующей концу рида), и выравнивание отслеживают в обратном направлении к ячейке на верхнем крае матрицы (соответствующем началу рида). В различных случаях, описанных в настоящем документе, риды могут быть любой длины, могут быть любого размера, и для описания выполнения выравнивания не требуется обширных параметров, например, в различных случаях длина рида может быть такой же, как у хромосомы. Однако в таком случае размер памяти и длина хромосомы могут быть ограничивающим фактором.
[00216] Что качается алгоритма Смита-Ватермана, который формирует оптимальные локальные выравнивания, выравнивая всею последовательность рида или часть последовательности рида на некоторый сегмент референсного генома, этот алгоритм может быть выполнен с возможностью осуществления поиска лучшей возможной оценки на основе полного или частичного выравнивания рида. Поэтому в различных случаях оцениваемая фронтом волны полоса может не доходить до верхнего и/или нижнего краев матрицы выравнивания, например, если очень длинный рид имеет лишь затравки при картировании его середины на референсный геном, но обычно фронт волны все же может выполнять оценку от верха до низа матрицы. Локальное выравнивание обычно достигают двумя регулировками. Во-первых, запрещено падение оценок выравнивания ниже нуля (или некоторого другого нижнего порога), и если, в противном случае, рассчитанная оценка ячейки будет отрицательной, ее заменяют нулевой оценкой, представляющей начало нового выравнивания. Во-вторых, в качестве завершающей точки выравнивания используют максимальную оценку выравнивания, полученную в любой ячейке матрицы, необязательно вдоль нижнего края. Выравнивание отслеживают в обратном порядке от этой максимальной оценки вверх и влево по всей матрице до нулевой оценки, которую используют в качестве начальной позиции локального выравнивания, даже если она не находится в верхнем ряду матрицы.
[00217] Ввиду вышеизложенного существуют несколько возможных путей через виртуальный массив. В различных вариантах реализации фронт волны начинается с верхнего левого угла виртуального массива и движется вниз к идентификаторам максимальной оценки. Например, результаты всех возможных выравниваний можно собрать, обработать, коррелировать и оценить, чтобы определить максимальную оценку. Когда достигнут конец границы или конец массива и/или определено вычисление, приведшее к наивысшей оценке для всех обработанных ячеек (например, выявлена общая наивысшая оценка), можно выполнить обратное отслеживание, чтобы найти путь, который привел к достижению этой наивысшей оценки. Например, можно найти путь, который ведет к прогнозированной максимальной оценке, и после этот можно выполнить аудит, чтобы определить, каким образом была получена эта максимальная оценка, например, путем перемещения в обратном направлении, следуя стрелкам выравнивания с лучшей оценкой, указывающими обратное прохождение пути, который привел к достижению выявленной максимальной оценки, например, рассчитанной с помощью ячеек оценки фронта волны.
[00218] Эта обратная реконструкция или обратное отслеживание включает в себя начало движения с определенной максимальной оценки и возвращение в начало через предыдущие ячейки с прокладыванием пути через ячейки, имеющие оценки, которые привели к достижению максимальной оценки, от самого верха таблицы и обратно до начальной границы, такой как начало массива или нулевая оценка в случае локального выравнивания. Во время обратного отслеживания после достижения конкретной ячейки в матрице выравнивания следующий шаг обратного отслеживания совершают в соседнюю ячейку непосредственно слева, или сверху, или по диагонали вверх влево, которая внесла вклад в лучшую оценку, выбранную для построения оценки в текущей ячейке. Таким образом можно отследить эволюцию максимальной оценки, тем самым выяснив, каким образом была достигнута максимальная оценка. Обратное отслеживание может завершиться в углу, или на крае, или на границе, или может закончиться на нулевой оценке, например, в левом верхнем углу массива. Соответственно, именно таким обратным отслеживанием определяют правильное выравнивание и тем самым получают выходную строку CIGAR, которая показывает, как геномная последовательность, или ее часть, из образца, взятого у индивида, совпадает с геномной последовательностью референсной ДНК или иным образом выравнивается на нее.
[00219] После того, как определено, куда картируется каждый рид, и также определено, где выравнивается каждый рид, например, каждому соответствующему риду даны позиция и оценка качества, отражающая вероятность того, что эта позиция является правильным выравниванием, так что нуклеотидная последовательность для ДНК субъекта известна, можно проверить порядок различных ридов и/или геномную последовательность нуклеиновых кислот субъекта, например, путем определения идентичности каждой нуклеиновой кислоты в ее правильном порядке в геномной последовательности образца. Поэтом в соответствии с некоторыми аспектами настоящее изобретение относится к функции обратного отслеживания, например, являющейся частью модуля выравнивания, который выполняет как функцию выравнивания, так и функцию обратного отслеживания, такого как модуль, который может быть частью конвейера модулей, например, конвейера, который предназначен для приема необработанных данных рида последовательности, например, в виде геномного образца индивида, и картирования и/или выравнивания этих данных, которые могут быть затем сохранены.
[00220] Для облегчения операции обратного отслеживания полезно сохранять вектор оценки для каждой оцененной ячейки в матрице выравнивания, кодирующий решение относительно выбора оценки. В случае классических интерпретаций оценки Смита-Ватермана и/или Нидлмана-Вунша с линейными штрафами на гэп вектор оценки может кодировать четыре возможности, которые могут быть, необязательно, сохранены в виде 2-битового целого числа от 0 до 3, например: 0 = новое выравнивание (выбрана нулевая оценка); 1 = вертикальное выравнивание (выбрана оценка из ячейки сверху, изменена за счет штрафа на гэп); 2 = горизонтальное выравнивание (выбрана оценка из ячейки слева, изменена за счет штрафа на гэп); 3 = диагональное выравнивание (выбрана оценка из ячейки сверху и слева, изменена за счет оценки совпадения или не совпадения нуклеотида). Необязательно, можно также сохранять вычисленные оценки для каждой оцененной ячейки матрицы (в дополнение к максимальной достигнутой оценке выравнивания, которую обычно сохраняют), но для обратного отслеживания в этом нет необходимости, а данная информация может занимать огромные объемы памяти. После этого выполнение обратного отслеживания сводится к следующим векторам оценки; когда обратное отслеживание достигло данной ячейки в матрице, следующий шаг обратного отслеживания определяется сохраненным вектором оценки для этой ячейки, например: 0 = завершить обратное отслеживание; 1 = обратное отслеживание вверх; 2 = обратное отслеживание влево; 3 = обратное отслеживание вверх влево.
[00221] Такие векторы оценки могут храниться в двумерной таблице, скомпонованной в соответствии с размерами матрицы выравнивания, которая может заполняться только записями, соответствующими ячейкам, оцениваемым с помощью фронта волны. В альтернативном варианте реализации для экономии памяти, упрощения записи векторов оценки по мере их формирования и более простого приспособления матриц выравнивания различных размеров, векторы оценки можно сохранять в таблице, размер каждой строки которой определяется в зависимости от сохраняемых векторов оценки из одного фронта волны ячеек оценки, например, 128 битов для хранения 64 2-битовых векторов оценки фронта волны, состоящего из 64 ячеек, а количество строк равно максимальному количеству шагов фронта волны в операции выравнивания. Кроме того, для этого варианта можно вести запись направлений различных шагов фронта волны, например, сохраняя дополнительный, например, 129-й, бит в каждой строке таблицы, кодируя, например, с помощью 0 вертикальный шаг фронта волны, предшествующий данному положению фронта волны, а с помощью 1 горизонтальный шаг фронта волны, предшествующий данному положению фронта волны. Этот дополнительный бит можно использовать во время обратного отслеживания для контроля за тем, каким позициям виртуальной матрицы оценки соответствуют векторы оценки в каждой строке таблицы, чтобы после каждого последующего шага можно было извлекать правильный вектор оценки. Если шаг обратного отслеживания вертикальный или горизонтальный, следующий вектор оценки следует извлекать из предыдущей строки таблицы, но если шаг обратного отслеживания диагональный, следующий вектор оценки следует извлекать двумя строками выше, так как фронт волны должен сделать два шага, чтобы перейти от оценки любой одной ячейки к оценке ячейки справа внизу от нее.
[00222] В случае аффинной оценки гэпов информация вектора оценки может быть расширена, например, до 4 битов на оцениваемую ячейку. В дополнение к, например, 2-битовому индикатору направления выбора оценки, могут быть добавлены два 1-битовых флага - флаг вертикального продления и флаг горизонтального продления. В соответствии с методами расширений аффинной оценки гэпов для алгоритмов Смита-Ватермана, Нидлмана-Вунша или подобных алгоритмов, для каждой ячейки в дополнение к первичной оценке выравнивания, представляющей выравнивания с лучшей оценкой, прекращающееся в этой ячейке, следует формировать «вертикальную оценку», соответствующую максимальной оценке выравнивания, достигаемой этой ячейкой с помощью завершающего вертикального шага, и «горизонтальную оценку», соответствующую максимальной оценке выравнивания, достигаемой этой ячейкой с помощью завершающего горизонтального шага; и при вычислении любой из трех оценок вертикальный шаг в ячейку может быть вычислен либо с помощью первичной оценки из ячейки сверху минус штраф на открытие гэпа, либо с помощью вертикальной оценки из ячейку сверху минус штраф на продление гэпа в зависимости оттого, что больше; а горизонтальный шаг в ячейку может быть вычислен либо с помощью первичной оценки из ячейки слева минус штраф на открытие гэпа, либо с помощью горизонтальной оценки из ячейки слева минус штраф на продление гэпа в зависимости оттого, что больше. В случае выбора вертикальной оценки минус штраф на продление гэпа в векторе оценки должен быть установлен флаг вертикального продления, например, «1», а в противном случае он должен быть снят, например, «0».
[00223] В случае выбора горизонтальной оценки минус штраф на продление гэпа в векторе оценки должен быть установлен флаг горизонтального продления, например, «1», а в противном случае он должен быть снят, например, «0». Во время обратного отслеживания в случае аффинной оценки гэпов всякий раз, когда при обратном отслеживании совершают вертикальный шаг вверх из данной ячейки и флаг вертикального продления в векторе оценки этой ячейки установлен, следующий шаг обратного отслеживания тоже должен быть вертикальным независимо от вектора оценки для ячейки сверху. Аналогичным образом всякий раз, когда при обратном отслеживании совершают горизонтальный шаг влево из данной ячейки и флаг горизонтального продления в векторе оценки этой ячейки установлен, следующий шаг обратного отслеживания тоже должен быть горизонтальным независимо от вектора оценки для ячейки слева. Соответственно, такой таблицы векторов оценки, имеющей, например, 129 битов на строку для 64 ячеек при использовании линейной оценки гэпов, или 257 битов на строку для 64 ячеек при использовании аффинной оценки гэпов, и некоторое количество, NR, строк, достаточно для поддержки обратного отслеживания после завершения оценки выравнивания, где фронт волны оценки выполняет NR шагов или менее.
[00224] Например, при выравнивании ридов из 300 нуклеотидов количество шагов фронта волны может быть всегда меньше 1024, поэтому таблица может занимать 257 × 1024 битов, или приблизительно 32 килобайта, что во многих случаях может быть разумной локальной памятью внутри интегральной схемы. Но если требуется выравнивать очень длинные риды, например, из 100 000 нуклеотидов, требования к памяти для векторов оценки могут быть довольно большими, например, 8 мегабайтов, что может быть слишком дорогим для включения ее в качестве локальной памяти внутрь интегральной схемы. Для такой поддержки информацию векторов оценки можно записывать в память большой емкости вне интегральной схемы, например, DRAM, но тогда слишком дорогими могут стать требования к полосе пропускания, например, 257 битов на тактовый цикл для каждого модуля выравнивания, что может привести к затору и резко уменьшить производительность выравнивателя. Соответственно, желательно иметь способ для размещения векторов оценки до завершения выравнивания, чтобы сохранять ограниченными требования, предъявляемые ими к памяти, например, для выполнения инкрементальных обратных отслеживаний, формирующих инкрементальные частичные строки CIGAR, например, из начальных частей из истории векторов оценки выравнивания, чтобы такие начальные части векторов оценки могли быть отброшены. Проблема состоит в том, что, как предполагается, обратное отслеживание начинается с завершающей точки выравнивания, ячейки с максимальной оценкой, которая неизвестна до тех пор, пока не завершится оценка выравнивания, поэтому любое обратное отслеживание, начинающееся до завершения выравнивания, может начаться из неверной ячейки, не по возможному окончательному оптимальному пути выравнивания.
[00225] Поэтому предложен способ для выполнения инкрементального обратного отслеживания на основе частичной информации о выравнивании, например, содержащей частичные сведения о векторах оценки для ячеек матрицы выравнивания, оцененных на текущий момент. Исходя из границы выполненного на данный момент выравнивания, например, конкретного положения фронта волны, обратное отслеживание начинают из всех позиций ячеек на границе. Такое обратное отслеживание из всех граничных ячеек может быть выполнено последовательно или, преимущественно, особенно в случае аппаратной реализации, все обратные отслеживания могут быть выполнены вместе. Выделять символические записи выравнивания, например, строки CIGAR, из этих многочисленных обратных отслеживаний не требуется; нужно только определять, какие позиции матрицы выравнивания они проходят во время обратного отслеживания. При реализации одновременного обратного отслеживания с границы можно использовать инициализированные, например, установленные на «1», 1-битовые регистры в количестве, соответствующем количеству ячеек выравнивания, которые показывают, проходит ли какое-либо из обратных отслеживаний через соответствующую позицию. Для каждого шага одновременного обратного отслеживания можно проверять векторы оценок, соответствующие всем текущим «1» в этих регистрах, например, из одной строки таблицы векторов оценки, чтобы определять следующий шаг обратного отслеживания, соответствующий каждой «1» в регистрах, ведущий к следующей позиции для каждой «1» в регистрах, для следующего шага одновременного обратного отслеживания.
[00226] Важно отметить, что весьма велика вероятность объединения множества «1» в регистрах в общие позиции, соответствующие множеству одновременных обратных отслеживаний, сливающихся в общие маршруты обратного отслеживания. После того, как два или более одновременных отслеживаний сливаются, далее они все время остаются объединенными, так как с этого момента они будут использовать информацию вектора оценки из одной и той же ячейки. Было замечено, эмпирически и по теоретическим соображениям, что с высокой вероятностью все одновременные отслеживания сольются в сингулярный маршрут обратного отслеживания за относительно малое количество шагов обратного отслеживания, количество которых, например, может быть кратно, количеству ячеек оценки во фронте волны с небольшим коэффициентом, например, 8-кратным. Например, в случае фронта волны из 64 ячеек с высокой вероятностью все обратные отслеживания с данной границы фронта волны сольются в один маршрут обратного отслеживания в пределах 512 шагов обратного отслеживания. Или же, также возможно, и не редко, что все обратные отслеживания завершатся в пределах этого числа, например, 512 шагов обратного отслеживания.
[00227] Соответственно, множество одновременных обратных отслеживаний могут быть выполнены с границы оценки, например, оцененной позиции фронта волны, достаточно далеко, чтобы они все либо завершились, либо слились в единственный маршрут обратного отслеживания, например, за 512 шагов или меньше. Если они все сольются в сингулярный маршрут обратного отслеживания, то начиная с места в матрице, где они слились, или на любом расстоянии дальше по сингулярному маршруту обратного отслеживания возможно инкрементальное обратное отслеживание на основе частичной информации о выравнивании. Далее начинают обратное отслеживание из точки слияния или любого расстояния дальше назад с помощью обычных способов сингулярного обратного отслеживания, включающих в себя запись соответствующей символической записи, например, частичной строки CIGAR. Это инкрементальное обратное отслеживание и, например, частичная строка CIGAR, должны быть частью любого возможного окончательного обратного отслеживания, и, например, полной строки CIGAR, которая получится по завершении выравнивания, если такое окончательное обратное отслеживание не завершится раньше достижения границы оценки, где начались одновременные обратные отслеживания, так как если оно достигнет границы оценки, оно должно следовать одним из маршрутов одновременного отслеживания и слиться с сингулярным маршрутом обратного отслеживания, выделенным теперь инкрементально.
[00228] Следовательно, все векторы оценки для областей матрицы, соответствующих инкрементально выделенному обратному отслеживанию, например, во всех строках таблицы для позиций фронта волны, предшествующих началу выделенного сингулярного обратного отслеживания, могут быть безопасно отброшены. Если при выполнении завершающего обратного отслеживание из ячейки с максимальной оценкой оно завершается раньше достижения границы оценки (или же, если оно завершается раньше достижения начала выделенного сингулярного обратного отслеживания), инкрементальную символическую запись, например, частичную строку CIGAR, можно отбросить. Если завершающее обратное отслеживание продолжается до начала выделенного сингулярного обратного отслеживания, тогда символическая запись его выравнивания может быть наращена на инкрементальную символическую запись выравнивания, например, частичную строку CIGAR. Кроме того, при очень длинном выравнивании процесс выполнения одновременного обратного отслеживания с границы оценки, например, оцененной позиции фронта волны, до тех пор, пока все обратные отслеживания не завершатся или не сольются, с последующим сингулярным обратным отслеживанием с выделением символической записи выравнивания можно повторять многократно с различных последовательных границ оценки. Инкрементальная символическая запись выравнивания, например, частичная строка CIGAR, из каждого последовательного инкрементального обратного отслеживания может быть затем наращена на накопленные предыдущие символические записи выравнивания, если новое одновременное обратное наращивание или сингулярное обратное наращивание не завершится раньше, и в этом случае накопленные предыдущие символические записи выравнивания можно отбросить. Аналогичным образом возможное завершающее обратное отслеживание наращивает свою символическую запись на самые последние накопленные символические записи выравнивания для полного описания обратного отслеживания, например, строки CIGAR.
[00229] Соответственно, при таком способе память для хранения векторов оценки может оставаться ограниченной в предположении, что одновременные обратные отслеживания всегда сливаются за ограниченное количество шагов, например 512 шагов. В редких случаях, когда одновременным обратным отслеживаниям не удается слиться или завершиться за ограниченное количество шагов, могут быть предприняты различные исключительные действия, в том числе прекращение текущего выравнивания вследствие сбоя или повтор его с более высоким ограничением или без ограничения, возможно, другим или традиционным способом, таким как сохранение всех векторов оценки для полного выравнивания, например, во внешнем DRAM. В качестве варианта, возможно, будет целесообразно прекратить такое выравнивание вследствие сбоя, поскольку это случается крайне редко, и даже еще реже такое неудавшееся выравнивание будет иметь выравнивание с лучшей оценкой, которое будет включено в отчет о выравнивании.
[00230] В необязательном варианте хранилище векторов оценки может быть разделено, физически или логически, на ряд различных блоков, например, по 512 строк каждый, и конечную строку в каждом блоке можно будет использовать в качестве границы оценки для начала одновременного обратного отслеживания. Необязательно, может потребоваться, чтобы одновременное обратное отслеживание завершилось или слилось в пределах одного блока, например, за 512 шагов. Необязательно, если одновременные обратные отслеживания сливаются за меньшее количество шагов, совместное обратное отслеживание, тем не менее, может быть продолжено по всему блоку, прежде чем приступать к выделению сингулярного обратного отслеживания в предыдущем блоке. Соответственно, после того, как векторы оценки полностью записаны в блок N и начинается запись в блок N+1, можно начать одновременное обратное отслеживание в блоке N, а затем сингулярное обратное отслеживание и выделение символической записи выравнивания в блоке N-1. Если скорость одновременного обратного отслеживания, сингулярного обратного отслеживания и оценки выравнивания аналогичны или идентичны, и эти операции могут выполняться одновременно, например, в параллельном аппаратном обеспечении в интегральной схеме, то сингулярное обратное отслеживание в блоке N-1 может происходить одновременно с заполнением векторами оценки блока N+2, а когда наступит пора заполнять блок N+3, блок N-1 может быть освобожден и использован повторно.
[00231] Следовательно, при такой реализации можно использовать минимум 4 блока векторов оценки, сменяющих друг друга по циклу. Поэтому общее хранилище векторов оценки для модуля выравнивателя может быть, например, из 4 блоков по 257 × 512 битов в каждом, или приблизительно 64 килобайта. В качестве варианта, если текущая максимальная оценка выравнивания соответствует более раннему блоку, чем текущая позиция фронта волны, этот блок и предыдущий блок могут быть придержаны, а не использованы повторно, чтобы завершающее обратное отслеживание можно было начать из этой позиции, если она останется позицией с максимальной оценкой; придерживание дополнительных 2 блоков таким образом даст, например, как минимум 6 блоков.
[00232] В другом варианте для поддержки перекрывающихся выравниваний, где фронт волны оценки постепенно перемещается из одной матрицы выравнивания в следующую, как описано выше, могут быть использованы дополнительные блоки, например, 1 или 2 дополнительных блока, например, всего 8 блоков, например, приблизительно 128 килобайтов. Соответственно, при циклическом использовании такого ограниченного количества блоков, например, 4 блока или 8 блоков, возможно выравнивание и обратное отслеживание длинных ридов, например, 100 000 нуклеотидов, или всей хромосомы, без использования внешней памяти для векторов оценки. Необходимо понимать, что касается вышеизложенного, то хотя в некоторых случаях функция картирования упоминалась в описаниях как, например, сопоставитель, и/или в некоторых случаях функция выравнивания могла упоминаться как, например, выравниватель, эти различные функции могут выполняться одновременно одной и той же архитектурой, которую в данной области техники обычно называют выравнивателем. Соответственно, в различных случаях функция картирования и функция выравнивания, как описано в настоящем документе, могут выполняться общей архитектурой, которую можно понимать как выравниватель, особенно в тех случаях, когда для выполнения функции выравнивания сначала нужно выполнить функцию картирования.
[00233] В различных случаях устройства, системы и способы их использования по настоящему изобретению могут быть выполнены с возможностью осуществления одного или более из выравниваний полного рида с гэпами и/или без гэпов, которые затем могут быть оценены для определения надлежащего выравнивания для ридов в наборе данных. Например, в различных случаях на данных, подлежащих обработке, может быть выполнена процедура выравнивания без гэпов, причем за этой процедурой выравнивания без гэпов могут следовать одно или более выравниваний с гэпами и/или процедура выборочного выравнивания Смита-Ватермана. Например, на первом этапе может быть сформирована цепочка выравнивания без гэпов. Как описано в настоящем документе, такие функции выравнивания без гэпов могут выполняться быстро без необходимости учета гэпов, причем после первого этапа выполнения выравнивания без гэпов может следовать выполнение выравнивания с гэпами.
[00234] Например, можно выполнить функцию выравнивания, чтобы определить, как любая данная нуклеотидная последовательность, например рид, выравнивается на референсную последовательность, без необходимости вставки гэпов в одном или более ридах и/или референсе. Важная часть выполнения такой функции выравнивания состоит в том, чтобы определить, где и какие несовпадения имеются в исследуемой последовательности по сравнению с последовательностью референсного генома. Однако вследствие колоссальной гомологии в геноме человека любая данная нуклеотидная последовательность, теоретически, имеет склонность к совпадению в значительной степени с репрезентативной референсной последовательностью. Имеющиеся несовпадения, скорее всего, будут обусловлены однонуклеотидным полиморфизмом, который относительно легко обнаружить, или они будут вызваны инсерцией или делецией в исследуемой последовательности, которые намного труднее обнаружить.
[00235] Следовательно, при выполнении функции выравнивания в большинстве случаев исследуемая последовательность имеет тенденцию к совпадению с референсной последовательностью, а если имеется несовпадение вследствие ОНП, это будет легко определено. Следовательно, для выполнения такого анализа не требуется относительно большого объема вычислительной мощности. Однако при наличии инсерций или делеций в исследуемой последовательности по сравнению с референсной последовательностью возникают трудности, поскольку такие инсерции и делеций приводят к гэпам при выравнивании. Такие гэпы требуют более обширной и сложной платформы обработки для правильного определения выравнивания. Тем не менее, поскольку процент инделов будет невелик, нужно будет выполнить относительно небольшой процент протоколов выравнивания с гэпами по сравнению с выполняемыми миллионами выравниваний без гэпов. Поэтому лишь небольшой процент всех функций выравнивания без гэпов приведет к необходимости дальнейшей обработки вследствие наличия индела в последовательности и, следовательно, потребует выравнивания с гэпами.
[00236] Когда в процедуре выравнивания без гэпов указан индел, только эти последовательности пропускаются в движок выравнивания для дальнейшей обработки, например, в движок обработки, выполненный с возможностью осуществления продвинутой функции выравнивания, такой как выравнивание Смита-Ватермана (SWA). Поэтому, поскольку нужно выполнять выравнивание либо без гэпов, либо с гэпами, устройства и системы, описанные в настоящем документе, являются намного более эффективным использованием ресурсов. Более конкретно, в определенных вариантах реализации на данной подборке последовательностей выравнивание может быть выполнено как без гэпов, так и с гэпами, например, одно за другим, затем для каждой последовательности сравнивают результаты и лучший результат выбирают. Такая конфигурация может быть реализована, например, когда желательно повышение точности и имеется повышенное количество времени и ресурсов для выполнения требуемой обработки.
[00237] В частности, в различных случаях первый этап выравнивания может быть выполнен без привлечения функции Смита-Ватермана, требующей интенсивной обработки. Следовательно, множество выравниваний без гэпов могут быть выполнены с меньшими требованиями к ресурсам и меньшими временными затратами, а поскольку требуется меньше ресурсов, на микросхеме нужно выделить меньше пространства для такой обработки. Таким образом, можно выполнить больше обработки с использованием меньшего числа обрабатывающих элементов, требующих меньше времени, поэтому можно выполнить больше выравниваний и достичь более высокой точности. Более конкретно, для реализации выполнения выравниваний Смита-Ватермана нужно выделять меньше ресурсов микросхемы с использованием меньшей площади микросхемы, так как для обрабатывающих элементов, необходимых для выполнения выравниваний без гэпов, не требуется такая большая площадь микросхемы, как для выполнения выравнивания с гэпами. Поскольку требования к ресурсам микросхемы снижаются, можно выполнить больший объем обработки за более короткий период времени, а за счет большего объема обработки, который можно выполнить, можно достичь более высокой точности.
[00238] Соответственно, в таких случаях можно использовать протокол выравнивания без гэпов, например, который должен выполняться соответствующим образом сконфигурированными ресурсами для выравнивания без гэпов. Например, как описано в настоящем документе, в различных вариантах реализации предусмотрен движок обработки выравнивания, например, когда движок обработки выполнен с возможностью приема цифровых сигналов, например, представляющих одно или более ридов геномных данных, таких как цифровые данные, выражающие одну или более нуклеотидных последовательностей, из электронного источника данных, и картирования и/или выравнивания этих данных на референсную последовательность, например, путем выполнения сначала функции выравнивания без гэпов на этих данных, причем при необходимости за функцией выравнивания без гэпов может последовать функция выравнивания с гэпами, например, путем выполнения протокола выравнивания Смита-Ватермана.
[00239] Поэтому в различных случаях выполняют функцию выравнивания без гэпов на сплошной части рида, например, с помощью выравнивателя без гэпов, и если выравнивание без гэпов проходит от начала до конца, например рид является полным, выравнивание с гэпами не выполняют. Однако, если результаты выравнивания без гэпов указывают на наличие индела, например рид обрезан или является неполным по иным причинам, можно выполнить выравнивание с гэпами. Таким образом, результаты выравнивания без гэпов могут быть использованы для определения необходимости выравнивания с гэпами, например, когда выравнивание без гэпов достигло области гэпа, но не распространилось на всю длину рида, например, когда рид, возможно, обрезан, например, слабо обрезан, и в том месте, где он обрезано, затем может быть выполнено выравнивание с гэпами.
[00240] Поэтому в различных вариантах реализации, основанных на полноте и оценках выравнивания, выравнивание с гэпами применяют только в том случае, если выравнивание без гэпов завершается, будучи обрезанным, например, не проходит от начала до конца. Более конкретно, в различных вариантах реализации лучшая оценка выравнивания без гэпов и/или с гэпами, которую можно определить, может быть оценена и использована в качестве линии отсечки для принятия решения о том, является ли оценка достаточно хорошей для оправдания дальнейшего анализа, например путем выполнения выравнивания с гэпами. Таким образом, полнота выравнивания и его оценка могут быть использованы так, чтобы высокая оценка указывала на то, что выравнивание завершено и, следовательно, не имеет гэпов, а низкая оценка указывает на то, что выравнивание не завершено, и нужно выполнить выравнивание с гэпами. Следовательно, когда достигнута высокая оценка, выравнивание с гэпами не выполняют, а выравнивание с гэпами выполняют только тогда, когда оценка достаточно низкая. Конечно, в различных случаях может быть применен подход с выравниванием перебором, например, когда в архитектуре микросхемы развернут ряд выравнивателей с гэпами и/или без гэпов, чтобы обеспечить возможность выполнения большего числа выравниваний, и таким образом может быть проверено большее количество данных.
[00241] Более конкретно, в различных вариантах реализации каждый движок картирования и/или выравнивания может включать в себя один или более, например, два, модулей выравнивателя Смита-Ватермана. В определенных случаях эти модули могут быть выполнены с возможностью поддержки глобального (от начала до конца) выравнивания без гэпов и/или локального (обрезанного) выравнивания с гэпами, выполнения аффинной оценки гэпов, и могут быть выполнены с возможностью формирования бонусов оценки за отсутствие обрезания на каждом конце. Возможна также поддержка чувствительной к качеству оснований оценки совпадения и несовпадения. Когда в состав входят два модуля выравнивания, например, как часть интегральной схемы, например, каждый выравниватель Смита-Ватермана может быть построен в виде антидиагонального фронта волны ячеек оценки, причем этот фронт волны «перемещается» по виртуальному прямоугольнику выравнивания, оценивая ячейки, через которые он прокатывается.
[00242] Однако в случае длинных ридов фронт волны Смита-Ватермана может быть также выполнен с возможностью поддержки автоматического управления направлением движения фронта волны, чтобы отслеживать лучшее выравнивание через накопленные инделы для обеспечения того, чтобы фронт волны выравнивания и оцениваемые ячейки не вышли из полосы оценки. Логические движки могут быть выполнены с возможностью проверки текущих оценок фронта волны, нахождения максимумом, пометки подмножеств ячеек на пороговом расстоянии ниже максимума и назначения в качестве мишени средней точки между двумя флагами экстремумов в фоновом режиме. В таком случае автоматическое управление направлением движения может быть выполнено с возможностью прохождения по диагонали, когда мишень находится в центре фронта волны, но может быть выполнено с возможностью прохождения прямо по горизонтали или вертикали при необходимости возврата мишени в центр, если она смещается, например вследствие наличия инделов.
[00243] Выходными данными из модуля выравнивания является файл SAM (текст) или ВАМ (например, двоичная версия файла SAM) вместе с оценкой качества картирования (МАРА), которая отражает достоверность того, что прогнозированное и выровненное местоположение рида относительно референса действительно то самое, откуда получен рид. Соответственно, после того, как определено, где каждый рид картирован, а также определено, где каждый рид выровнен, например, каждому соответствующему риду даны позиция и оценка качества, отражающая вероятность того, что эта позиция является правильным выравниванием, так что нуклеотидная последовательность для ДНК субъекта известна, как и то, как ДНК субъекта отличается от референса (например, определена строка CIGAR), различные риды, представляющие геномную последовательность нуклеиновых кислот субъекта могут быть отсортированы по местоположению в хромосоме, чтобы можно было определить точное местоположение рида на хромосомах. Поэтому в соответствии с некоторыми аспектами настоящее изобретение относится к функции сортировки, например, которая может быть выполнена модулем сортировки, который может быть частью конвейера модулей, например, конвейера, предназначенного для приема необработанных данных рида последовательности, например, в виде геномного образца индивида, и картирования и/или выравнивания этих данных, которые могут быть затем сохранены.
[00244] Более конкретно, после того, как ридам назначены позиции, например, относительно референсного генома, что может включать в себя определение того, какой хромосоме принадлежит рид, и/или его смещения от начала этой хромосомы, риды можно отсортировать по позиции. Сортировка может быть полезна, например, в последующих анализах, так как при помощи ее все риды, которые перекрывают данную позицию в геноме, могут быть сформированы в скопление, чтобы находится друг возле друга, например, после обработки модулем сортировки, в результате чего можно легко определить, согласуются ли большинство ридов с референсным значением или нет. Таким образом, если большинство ридов не согласуются с референсным значением, определение варианта может пометить. Следовательно, сортировка может включать в себя одну или более сортировок ридов, которые выровнены относительно одной и той же позиции, например, одной и той же позиции хромосомы, для создания скопления, чтобы все риды, которые покрывают одно и то же местоположение, были физически сгруппированы вместе; и может также включать в себя анализ ридов в скоплении для определения того, где риды могут указывать фактический вариант в геноме по сравнению с референсным геномом, причем этот вариант можно отличить, например, с помощью согласования скопления, от ошибки, такой как ошибка считывания машиной или ошибка в методах секвенирования, которая может проявляться малой частью ридов.
[00245] После того, как данные получены, имеются один или более других модулей, с помощью которых можно очистить эти данные. Например, один модуль, который может входить, например, в конвейер анализа последовательностей, такой как для определения геномной последовательности индивида, может быть модулем локального повторного выравнивания. Например, часто трудно определить инсерции и делеции, которые возникают в конце рида. Причина в том, что алгоритм Смита-Ватермана или аналогичный процесс выравнивания испытывает недостаток контекста касательно индела, чтобы можно было выполнить оценку для обнаружения его присутствия. Поэтому фактический индел может быть указан в отчете как один или более ОНП. В таком случае точность прогнозированного местоположения для любого данного рида может быть улучшена за счет выполнения локального повторного выравнивания на картированных, и/или выровненных, и/или сортированных данных рида.
[00246] В таких случаях могут быть использованы конвейеры для помощи в выяснении истинного выравнивания, например, когда рассматриваемая позиция находится в конце любого данного рида, эта же позиция, вероятно, будет посредине некоторого другого рида в данном скоплении. Соответственно, при выполнении локального повторного выравнивания могут быть проанализированы различные риды в скоплении, чтобы определить, указывают ли некоторые риды в скоплении на наличие инсерции или делеции в данной позиции, где другой рид не содержит индела или, скорее, имеет замену в этой позиции, тогда можно вставить индел, например, в референс, где он не присутствует, и можно повторно выровнять риды в локальном скоплении, которое перекрывает эту область, чтобы посмотреть, будет ли при этом достигнута более хорошая совокупная оценка, чем в том случае, когда там не было инсерции и/или делеции. Если улучшение имеется, весь набор ридов в скоплении может быть пересмотрен, и если оценка всего набора улучшилась, то становится понятно, что в этой позиции действительно был индел. Подобным образом можно компенсировать отсутствие достаточного контекста для более точного выравнивания рида в конце хромосомы для любого отдельного рида. Поэтому при выполнении локального повторного выравнивания исследуют одно или более скоплений, где могут находиться один или более инделов, и определяют, можно ли улучшить общую оценку выравнивания путем добавления индела в любую данную позицию.
[00247] Другой модуль, который может входить, например, в конвейер анализа последовательностей, таком как для определения геномной последовательности индивида, может быть модулем маркировки дубликатов. Например, функция маркировки дубликатов может быть выполнена с возможностью компенсации ошибок химии, которые могут возникать во время фазы секвенирования. Например, как описано выше, во время некоторых процедур секвенирования последовательности нуклеиновых кислот прикрепляют к бусинам и строят на этой основе с помощью меченных нуклеотидных оснований. В идеале получится по одному риду на бусину. Однако иногда к одной бусине прикрепляется множество ридов, что приводит к чрезмерному количеству копий прикрепленных ридов. Это явление известно как дупликация ридов.
[00248] После выполнения выравнивания и получения результатов и/или выполнения функции сортировки, локальной повторной сортировки и/или удаления дубликатов на полученных данных можно использовать функцию определения вариантов. Например, типичная функция определения вариантов или ее часть может быть выполнена с возможностью реализации в программной и/или аппаратной конфигурации, например в интегральной схеме. В частности, определение вариантов представляет собой процесс, который включает в себя позиционирование всех ридов, выровненных относительно данного местоположения на референсе, в группировки таким образом, что все перекрывающиеся области из всех различных выровненных ридов образуют «скопление». Затем скопление ридов, покрывающее данную область референсного генома, анализируют для определения того, какой наиболее вероятный фактический контент пробы ДНК/РНК индивида находится в этой области. Затем это повторяют поэтапно для каждой области в геноме. Из полученного контента формирует список различий, называемых «вариациями» или «вариантами» референсного генома, с указанием для каждого из них соответствующего уровня доверия и других метаданных.
[00249] Наиболее распространенными вариантами являются однонуклеотидные полиморфизмы (ОНП), при которых одно основание отличается от референса. ОНП встречаются примерно 1 раз на 1000 позиций в геноме человека. Следующими по распространенности являются инсерции (вставки в референс) и делеции (пропуски в референсе). Они чаще всего встречаются при малых длинах, но могут быть любой длины. Однако возникают дополнительные трудности, так как вследствие того, что выбор секвенированных сегментов («ридов») происходит случайным образом, некоторые области будут иметь более глубокое покрытие, чем другие. Существуют также множество сложных вариантов, которые включают в себя замены множества оснований и комбинации инделов и замен, которые могут быть восприняты как замены, изменяющие длину. Стандартные определители вариантов на базе программного обеспечения испытывают трудности при выявлении всего этого и имеют различные ограничения на длины вариантов. Более специализированные определители вариантов в программной и/или аппаратной реализации необходимы для выявления более длинных вариаций и многих вариаций экзотических «структурных вариантов», включающих в себя крупные изменения хромосом.
[00250] Однако определение вариантов является сложной процедурой для реализации в программном обеспечении и на порядки величины более сложной для развертывания в аппаратном обеспечении. Чтобы учесть и/или обнаружить эти типы ошибок, стандартные определители вариантов могут выполнить одну или более из следующих задач. Например, они могут начать с набора гипотетических генотипов (содержимого одной или двух хромосом в локусе) и с помощью байесовских расчетов оценить апостериорную вероятность того, что каждый генотип является истинным в свете наблюдаемых подтверждающих данных, и сообщить наиболее вероятный генотип вместе с уровнем доверия. В силу этого определители вариантов могут быть простыми или сложными. Простые определители вариантов рассматривают только столбцы оснований в скоплении выровненных ридов точно в той позиции, где осуществляется определение. Более совершенные варианты определителей представляют собой «определители на основе гаплотипа», которые могут быть выполнены с возможностью учета контекста, например, в окне вокруг выполняемого определения.
[00251] «Гаплотип» - это конкретное содержимое ДНК (нуклеотидная последовательность, список вариантов и т.д.) в одной общей «нити», например, одна или две диплоидные нити в области, и определитель гаплотипов учитывает байесовские импликации того, какие различия связаны появлением в одном и том же риде. Соответственно, протокол определения вариантов, который представлен в настоящем документе, может реализовывать одну или более функций, например, выполняемых определителем гаплотипов Genome Analysis Tool Kit (GATK), и/или с помощью средства Hidden Markov Model (HMM), и/или функции графа де Брейна, например, когда одна или более из этих функций, обычно выполняемая определителем гаплотипов GATK, и/или средством HMM, и/или функцией графа де Брейна, может быть реализована в программном и/или аппаратном обеспечении.
[00252] Более конкретно, в соответствии с реализациями в данном документе всевозможные разные операции определения вариантов могут быть выполнены с возможностью осуществления в программном или аппаратном обеспечении, и могут включать в себя один или более из следующих этапов. Например, функция определения вариантов может включать в себя выявление активной области, например, для выявления мест, где множество ридов не согласуются с референсом, и для формирования окна вокруг выявленной активной области, чтобы только эта область могла быть выбрана для дальнейшей обработки. Кроме того, возможна локализованная сборка гаплотипа, например, когда для каждой данной активной области все перекрывающиеся риды могут быть собраны в матрицу «графа де Брейна» (De Bruijn graph, DBG) Из этого DBG можно выделять различные маршруты через матрицу, где каждый маршрут образует гаплотип-кандидат, например, гипотезы о том, какая истинная последовательность ДНК может быть на по меньшей мере одной нити. Кроме того, возможно выравнивание гаплотипа, например, когда каждый выделенный гаплотип-кандидат может быть выровнен, например, с помощью алгоритма Смита-Ватермана, обратно на референсный геном, чтобы определить, какие вариации референса он означает. Кроме того, может быть выполнен расчет правдоподобия рида, например, когда рид может быть проверен относительно каждого гаплотипа или гипотезы, чтобы оценить вероятность наблюдения рида в предположении, что гаплотип был получен из истинной исходной ДНК.
[00253] Что касается этих процессов, расчет правдоподобия рида обычно будет наиболее ресурсоемкой и времязатратной операцией, часто требующей оценки парной НММ. Кроме того, построение графов де Брейна для каждого скопления ридов вместе со связанными операциями локального или глобального выявления уникальных K-меров, как описано ниже, тоже может быть ресурсоемким и/или времязатратным. Соответственно, в различных вариантах реализации один или более из различных расчетов, относящихся к выполнению одного или более из этих этапов, могут быть выполнены с возможностью реализации оптимальным образом в программном или аппаратном обеспечении, например, с возможностью осуществления ускоренным образом интегрированной схемой, как описано в настоящем документе.
[00254] Как указано выше, в различных вариантах реализации определитель гаплотипов по данному изобретению, реализованный в программном и/или аппаратном обеспечении или их сочетании, может быть выполнен с возможностью включения в себя одной или более из следующих операций: выявление активной области, локализованная сборка гаплотипа, выравнивание гаплотипа, расчет правдоподобия рида и/или генотипирование. Например, устройства, системы и/или способы по данному изобретению могут быть выполнены с возможностью осуществления одной или более из операций картирования, выравнивания и/или сортировки на данных, полученных из секвенированной ДНК/РНК субъекта, для формирования картированных, выровненных и/или сортированных данных результатов. Затем эти данные результатов могут быть очищены, например, путем выполнения на них операции удаления дубликатов, и/или эти данные могут быть переданы в один или более специализированных движков обработки определителя гаплотипов для выполнения операции определения вариантов, в том числе одного или более вышеупомянутых этапов, на этих данных результатов, чтобы тем самым сформировать файл определения вариантов. Поэтому все риды, которые были секвенированы, и/или картированы, и/или выровнены на конкретные позиции в референсном геноме, могут быть подвергнуты дальнейшей обработке, чтобы определить, как определенная последовательность отличается от референсной последовательности в любой данной точке в референсном геноме.
[00255] Соответственно, в различных вариантах реализации устройство, система и/или способ их использования, которые описаны в настоящем документе, могут включать в себя систему определителя варианта или гаплотипа, которая реализована в программной и/или аппаратной конфигурации для выполнения операции выявления активной области на полученных данных результатов. Выявление активной области включает в себя выявление и определение мест, где множество ридов, например в скоплении ридов, не согласуются с референсом, а также включает в себя формирование одного или более окон вокруг отличий («активных областей») таким образом, чтобы область внутри окна могли быть выбрана для дальнейшей обработки. Например, во время этапа картирования и/или выравнивания выявленные риды картируют и/или выравнивают на области в референсном геноме, откуда они, как ожидается, взяты из генетической последовательности субъекта.
[00256] Однако, поскольку секвенирование выполняют таким образом, чтобы создать избыточную выборку секвенированных ридов для любой данной области генома, в любой данной позиции в референсной последовательности можно увидеть скопление из любых и/или всех секвенированных ридов, которые привязываются и выравниваются относительно этой области. Все эти риды, которые выравниваются и/или перекрываются в данной позиции области или скопления, могут быть введены в систему определителя вариантов. Таким образом, любое данный анализируемый рид можно сравнить с референсом в его предполагаемой области перекрытия, и этот рид можно сравнить с референсом, чтобы определить, имеет ли ее последовательность какие-либо отличия от известной последовательности референса. Если рид укладывается на референс без всяких инсерций или делеций и все основания одинаковые, то выравнивание определяют как хорошее.
[00257] Следовательно, любой данный картированный и/или выровненный рид может иметь основания, которые отличаются от референса, например, рид может содержать один или более ОНП, образующих позицию, где основание не совпадает; и/или рид может иметь одну или более инсерций и/или делеций, например, создающих гэп в выравнивании. Соответственно, в любом из этих случаев будут одно или более несовпадений, которые нужно учитывать в дальнейшей обработке. Тем не менее, чтобы сэкономить время и повысить эффективность, такие дальнейшие обработки следует ограничить случаями, где выявленное несовпадение является нетривиальным, например, не вызванным помехой, отличием. При определении значимости несовпадения места, где множество ридов в скоплении не согласуются с референсом, могут быть идентифицированы как активная область, затем вокруг этой активной области можно использовать окно, чтобы выбрать локус расхождения, который после этого может быть подвергнут дальнейшей обработке. Однако отличие должно быть нетривиальным. Это можно определить множеством способов, например, для каждого рассматриваемого локуса можно рассчитать вероятно его непринадлежности референсу, например, путем анализа оценки качества на основе совпадений и несовпадений оснований таким образом, что превышение данного порога считается достаточно значимым показателем того, что эти риды не согласуются с референсом в значительной мере.
[00258] Например, если 30 из картированных и/или выровненных ридов укладываются и/или накладываются с образование скопления в данной позиции в референсе, например в активной области, и лишь 1 или 2 из этих 30 ридов не согласуются с референсом, то можно считать, что минимальный порог для дальнейшей обработки не удовлетворен, а несогласующиеся риды можно игнорировать, принимая во внимание тот факт, что 28 или 29 ридов согласуются. Однако, если не согласуются 3, или 4, или 5, или 10, или более ридов в скоплении, то это несогласование можно считать достаточно статистически значимым для оправдания дальнейшей обработки, и вокруг выявленный областей отличия можно определить активную область. В таком случае можно рассмотреть окно активной области, определяющее основания, окружающие это отличие, чтобы улучшить контекст области, окружающей отличие, и можно предпринять дополнительные этапы обработки, такие как применение гауссовского распределения и суммирование вероятностей непринадлежности референсу, распределенных по всем соседним частям, чтобы дополнительно изучить и обработать эту область для выявления того, нужно ли объявить активную область и, если да, то какие вариации относительно референса действительно присутствуют в этой области, если таковые имеются. Поэтому определение активной области выявляет те области, где может понадобиться дополнительная обработка, чтобы выяснить, действительно ли имеет место вариация, или произошла ошибка.
[00259] В частности, поскольку во многих случаях нежелательно подвергать дальнейшей обработке каждую область в скоплении последовательностей, можно определить активную область, в которой находятся только те области, где может потребоваться дальнейшая обработка, чтобы четко определить, действительно ли это вариация, или произошла ошибка, которая может быть определена, как требующая дальнейшей обработки. И, как указано выше, размер окна активной области может определяться размером предполагаемой вариации. Например, в различных случаях границы активного окна могут меняться от 1 или 2 или от около 10 до 20, или даже от около 25 до около 50, и ли от около 200 до около 300, или от около 500 до около 1000 оснований или более, причем дальнейшая обработка происходит только внутри границ активного окна. Конечно, размер активного окна может быть любой подходящей длины, такой, чтобы она обеспечивала контекст для определения статистической важности отличия.
[00260] Следовательно, если имеются только одно или два изолированных отличия, возможно, потребуется, чтобы активное окно охватывало одно или более из нескольких десятков оснований в активной области, чтобы иметь достаточно контекста для статистического определения наличия действительного варианта. Однако, если имеется кластер или группа отличий, или если имеются инделы, для которых требуется больше контекста, окно можно сделать большего размера. В любом случае может потребоваться проанализировать все без исключения отличия, которые могут быть в кластерах, чтобы проанализировать их все в одной или более активных областях, поскольку это может обеспечить вспомогательную информацию о каждом отдельном отличии и сэкономит время обработки за счет уменьшения количества затрагиваемых активных окон. В различных случаях границы активной области могут быть определены с помощью активных вероятностей, которые удовлетворяют данному порогу, такому как от около 0,00001, или около 0,00001, или около 0,0001 или меньше до около 0,002, или около 0,02, или около 0,2 или больше. И если активная область длиннее данного порога, например, около 300-500 оснований или 1000 оснований или более, то эту область можно разбить на подобласти, например, на подобласти, определяемые локусом с наинизшей оценкой активной вероятности.
[00261] В различных случаях после выявления активной области может быть выполнена процедура локализованной сборки гаплотипа. Например, в каждой активной области все собранные в скопление и/или перекрывающиеся риды могут быть собраны в «граф де Брейна» (DBG). DBG может быть ориентированным графом, основанным на всех ридах, которые перекрыли выбранную активную область, где активная область может быть длиной около 200, или около 300, или около 400, или около 500 оснований или более, и внутри этой активной области нужно определить наличие и/или идентичность вариантов. В различных случаях, как указано выше, активная область может быть удлинена, например, путем включения еще около 100 или около 200 или более оснований в каждом направлении исследуемого локуса, чтобы сформировать удлиненную активную область, например, когда может потребоваться дополнительный окружающий контекст. Соответственно, именно в окне активной области, удлиненном или нет, собирают в скопление все риды, которые имеют части, перекрывающие активную область, например, чтобы создать скопление, выявляют перекрывающиеся части и последовательности ридов направляют в систему определителя гаплотипа и тем самым собирают вместе в виде графа де Брейна, что во многом напоминает складывание мозаики.
[00262] Соответственно, в любом данном активном окне будут риды, которые образуют скопление таким образом, что скопление в целом содержит путь последовательности, с помощью которого перекрывающиеся области различных перекрывающихся ридов в скоплении покрывают всю последовательность внутри активного окна. Таким образом, в любом данном локусе в активной области будет множество ридов, перекрывающих этот локус, хотя и любой данный рид может не простираться на всю активную область. В результате этого различные области различных ридов внутри скопления используют в DBG для определения того, действительно ли имеется вариант для любого данного локуса в последовательности внутри активной области или нет. Поскольку это определение осуществляют именно внутри активного окна, учитываются именно части любого данного рида в пределах границ активного окна, а части за пределами активного окна можно отбросить.
[00263] Как было указано, именно те секции ридов, которые перекрывают референс в пределах активной области, подают в систему DBG. Затем система DBG собирает риды, подобно мозаике, в граф, после чего для каждой позиции в последовательности на основании коллекции перекрывающихся ридов для этой позиции определяют, имеется ли совпадение или несовпадение для любого данного рида, а если несовпадение существует, то какова вероятность этого несовпадения. Например, когда существуют прерывистые места, где сегменты ридов в скоплении перекрывают друг друга, они могут быть выровнены друг с другом на основе их областей совпадения, а объединяя в строку или сшивая вместе совпадающие ридов на основе их точек совпадения, для каждой позиции в пределах этого сегмента можно определить, совпадают ли или не совпадают, и в какой степени, риды в любой данной позиции. Следовательно, если два или более ридов накладываются и тождественно совпадают друг с другом на какое-то время, получается граф с одной строкой; однако, когда как только два или более ридов попадают в точку, где они отличаются, в графе образуется разветвление и получаются две или более расходящихся строк, пока эти два или более ридов снова не совпадут.
[00264] Следовательно, пути через граф часто бывают не прямой линией. Например, когда k-меры рида отличаются от k-меров референса и/или k-меров одного или более перекрывающихся ридов, например в скоплении, в графе образуется «пузырь» в точке отличия, приводящей к двум расходящимся строкам, которые продолжатся вдоль двух разных путей до тех пор, пока эти две последовательности снова не совпадут. Каждой вершине можно присвоить взвешенную оценку, показывающую, сколько раз соответствующие k-меры перекрываются во всех ридах в скоплении. В частности, каждому пути, проходящему через сформированный граф с одной стороны на другую, может быть назначен счетчик. И когда одни и те же k-меры формируются из множества ридов, например, когда каждый k-мер имеет одну и тужу структуры последовательности, они могут быть учтены в графе путем увеличения счетчика для этого пути, где k-мер перекрывает уже существующий путь k-мера. Таким образом, когда один и тот же k-мер формируется из множества перекрывающихся ридов, имеющих одну и ту же последовательность, структура пути по графу будет повторяться снова и снова, и счетчик для прохождения этого пути через граф будет инкрементально увеличиваться соответствующим образом. В таком случае структуру записывают только для первого экземпляра k-мера и счетчик инкрементально увеличивают для каждого k-мера, который повторяет эту структуру. В этом режиме можно получить различные риды в скоплении, чтобы определить, какие вариации имеют место и где.
[00265] Подобным образом можно сформировать матрицу графа, взяв все возможные k-меры из N оснований, например k-меры из 10 оснований, которые могут быть сформированы из каждого данного рида путем последовательного прохождения по всей длине рида сегментами по десять оснований, где начало каждых новых десяти оснований смещено на одно основание от последнего сформированного сегмента из 10 оснований. Затем эту процедуру можно повторить, сделав то же самое для каждого другого рида в скоплении в пределах активного окна. После этого сформированные k-меры можно выровнять друг с другом таким образом, чтобы области идентичного совпадения между сформированными k-мерами совпадали с областями, где они перекрываются, для построения таким образом структуры данных, например, графа, которую можно затем просканировать и определить процент совпадения и несовпадения. В частности, референс и любые ранее обработанные k-меры, выровненные на него, можно отсканировать на предмет следующего формируемого k-мера, чтобы определить, совпадает и/или перекрывается ли текущий формируемый k-мер с какой-либо частью ранее сформированного k-мера, и там, где обнаруживается совпадение, текущий формируемый k-мер может быть вставлен в граф в соответствующей позиции.
[00266] После того, как граф построен, его можно отсканировать и на основе этого сопоставления можно определить, могут ли любые данные ОНП и/или инделы относительно референса быть действительной вариацией в генетическом коде субъекта, или они являются результатом ошибки обработки или иной ошибки. Например, если все или значительная часть k-меров всех или значительной части ридов в данной области содержат одно и то же несовпадение в виде ОНП и/или индела, но отличаются от референса одинаково, то можно определить, что в геноме субъекта действительно существует вариация в виде ОНП и/или индела по сравнению с референсным геномом. Однако, если только ограниченное количество k-меров из ограниченного количества ридов проявляют артефакт, это, вероятно, вызвано ошибкой машины, и/или обработки, и/или другой ошибкой и не свидетельствует о наличии истинной вариации в этой исследуемой позиции,
[00267] Как было указано, там, где есть подозрение на вариацию, в графе будет сформирован пузырь. А именно, там, где все k-меры во всей данной области ридов соответствуют референсу, они выстроятся таким образом, что образуют линейный граф. Однако там, где имеется отличие между основаниями в данном локусе, в этом локусе с отличием граф разветвится. Этот разветвление может быть в любой позиции в пределах k-мера, и, следовательно, в этой точке отличия k-мер из 10 оснований, включающий в себя это отличие, отклонится от остальных k-меров в графе. В таком случае будет сформирован новый узел, формирующий другой путь через граф.
[00268] Следовательно, там, где все может быть согласовано, например, последовательность в данном новом k-мере наносимая на граф, совпадает с последовательностью, на которую он выравнивается в графе вплоть до точки отличия, путь для этого k-мера будет соответствовать пути для графа в целом и будет линейным, но после точки несходства появится новый путь через граф для приведения в соответствие с отличием, представленным в последовательности k-мера, вновь нанесенного на граф. Это расхождение будет представлено новым узлом в графе. В таком случае любые новые k-меры, подлежащие добавлению к графу, который совпадает с вновь расходящимся путем, увеличат счетчик в этом узле. Следовательно, для каждого рида, которое поддерживает ребро, счетчик будет увеличен инкрементально.
[00269] В различных таких случаях k-мер и/или рид, который он представляет, когда-нибудь начнет снова совпадать, например, после точки расхождения, так что теперь появится точка схождения, где k-мер начинает совпадать с главным путем через граф, представленный k-мерами референсной последовательности. Например, естественно, через некоторое время риды, которые поддерживают разветвленный узел, должны вновь присоединиться к графу со временем. Таким образом, со временем k-меры для данного рида снова присоединятся к главному пути. Более конкретно, в случае ОНП в данном локусе в пределах рида k-мер, начинающийся в этом ОНП, отклонится от главного пути и будет оставаться отделенным примерно в течение 10 узлов, так как существуют 10 оснований в k-мере, которые перекрывают этот локус несовпадения между ридом и референсом. Таким образом, в случае ОНП в 11-й позиции k-меры, покрывающие этот локус в пределах рида, вновь присоединятся к главному пути, так как точное совпадение возобновится. Следовательно, для k-меров рида, имеющего ОНП в данном локусе, потребуется десять сдвигов, чтобы вновь присоединиться к главному графу, представленному референсной последовательностью.
[00270] Как указано выше, обычно существует один главный путь, или линия, или остов, т.е., референсный путь, и когда имеется расхождение, на узле, где существует отличие между ридом и остовным графом, образуется пузырь. Таким образом, существуют некоторые риды, которые отклоняются от остова и образуют пузырь, причем этот расхождение может указывать на наличие варианта. По мере обработки графа вдоль референсного остова могут формироваться пузыри в пузырях внутри пузырей, так что они образуют стопку, и можно создать множество путей через граф. В таком случае могут существовать главный путь, представленный референсным остовом, один путь первого расхождения и еще один путь второго расхождения в пределах первого расхождения, все в пределах данного окна, причем каждый путь через граф может представлять действительную вариацию или может быть артефактом, например, вызванным ошибкой секвенирования, и/или ошибкой ПЦР, и/или ошибкой обработки и т.п.
[00271] После того, как такой граф построен, необходимо определить, какие пути через граф представляют действительные вариации в пределах генома образца, а какие являются всего лишь артефактами. Хотя и ожидается, что риды, содержащие ошибки обработки или машины, не будут поддерживаться большинством ридов в скоплении образца, тем не менее, это не всегда так. Например, ошибки в обработке ПЦР могут, как правило, быть результатом ошибки клонирования, которое происходит во время приготовления пробы ДНК, причем такие ошибки обычно приводят к добавлению инсерции и/или делеции в клонированную последовательность. Такие ошибки-инделы могут быть более согласованными между ридами и могут накручиваться при формировании множества ридов, которые имеют одну и ту же ошибку вследствие данной ошибки при ПЦР-клонировании. Следовательно, такие ошибки могут привести к более высокой линии подсчета для такой точки.
[00272] Таким образом, после того как сформирована матрица графа с множеством путей через граф, следующая стадия заключается в прохождении, и тем самым выделении, всех путей через граф, например, слева направо. Один путь будет референсным остовом, но будут другие пути, которые следуют различным пузырям вдоль пути. Необходимо пройти все пути и занести их счетчики в таблицу. Например, если граф содержит путь с двухуровневым пузырем в одном месте и трехуровневый пузырь в другом месте, через этот граф будет (2×3)6 путей. Поэтому каждый из путей нужно выделить по отдельности, а выделенные пути называют гаплотипами-кандидатами. Такие гаплотипы-кандидаты представляют гипотезы в отношении того, что могло бы реально представлять действительную ДНК субъекта, которая была секвенирована, и для проверки этих гипотез могут быть использованы последующие этапы обработки, включая одно или более из выравнивания гаплотипа, расчета правдоподобия рида и/или генотипирования, чтобы найти вероятности того, что какая-либо и/или каждая из этих гипотез верная. Следовательно, реализация реконструкции графа де Брейна представляет способ надежного выделения хорошего набора гипотез для проверки.
[00273] Например, при выполнении функции определения вариантов, как описано в настоящем документе, может быть реализована операция выявления активной области, например, для выявления мест, где множество ридов в скоплении в пределах области не согласуются с референсом, и для формирования окна вокруг выявленной активной области, чтобы только эта область моглы быть выбрана для дальнейшей обработки. Кроме того, локализованная сборка гаплотипа может иметь место, например, когда для каждой данной активной области все перекрывающиеся риды в скоплении могут быть собраны в матрицу «графа де Брейна» (DBG) Из этого DBG можно выделять различные маршруты через матрицу, где каждый маршрут образует гаплотип-кандидат, например, гипотезы того, для истинная последовательность ДНК может быть на по меньшей мере одной нити.
[00274] Кроме того, возможно выравнивание гаплотипа, например, когда каждый выделенный гаплотип-кандидат может быть выровнен, например, с помощью алгоритма Смита-Ватермана, обратно относительно референсного генома, чтобы определить, какие вариации референса он означает. Кроме того, может быть выполнен расчет правдоподобия рида, например, когда рид может быть проверен относительно каждого гаплотипа, чтобы оценить вероятность наблюдения рида, предполагающего, что гаплотип был получен из истинной исходной ДНК. Наконец, может быть реализована операция генотипирования и создан файл нахождения вариантов. Как указано выше, любая или все из этих операций могут быть выполнены с возможностью реализации оптимизированным образом в программном и/или аппаратном обеспечении, и в различных случаях в виду ресурсоемкого и времязатратного характера построения матрицы DNG и выделение из нее гаплотипов-кандидатов и/или в виду ресурсоемкого и времязатратного характера выполнения выравнивания гаплотипа и/или расчета правдоподобия рида, которое может включать в себя использование оценки скрытой марковской модели НММ), эти операции (например, локализованная сборка гаплотипа, и/или выравнивание гаплотипа, и/или расчет правдоподобия рида) или их части могут быть выполнены с возможностью реализации одной или более функций этих операций в аппаратном виде, например, выполнения их ускоренным образом интегральной схемой, как описано в настоящем документе. В различных случаях эти задачи могут быть выполнены с возможностью реализации одной или более квантовыми схемами, такими как квантовое вычислительное устройство.
[00275] Соответственно, в различных случаях устройства, системы и способы их использования могут быть выполнены с возможностью осуществления выравнивания гаплотипа и/или расчета правдоподобия рида. Например, как было указано, каждый выделенный гаплотип может быть выровнен, например, с помощью алгоритма Смита-Ватермана, обратно относительно референсного генома, чтобы определить, какие вариации референса он означает. В различных примерах случаев может выполняться оценка, например, в соответствии со следующими примерами параметров оценки: соответствие=20,0; несоответствие=-15,0; открытие гэпа=-26,0; и продление гэпа=-1,1; могут быть использованы другие параметры оценки. Соответственно, таким образом можно сформировать строку CIGAR и связать с гаплотипом, чтобы создать собранный гаплотип, причем собранный гаплотип может быть в конечном счете использован для выявления вариантов. Соответственно, подобным образом можно рассчитать правдоподобие данного рида, связываемого с данным гаплотипом, для всех комбинаций рид/гаплотип.В таких случаях правдоподобие можно рассчитать с помощью скрытой марковской модели (НММ).
[00276] Например, различные собранные гаплотипы могут быть выровнены в соответствии с моделью динамического программирования, аналогично выравниванию Смита-Ватермана. В таком случае можно сформировать виртуальную матрицу, например, где гаплотип-кандидат, например, сформированный с помощью DBG, может быть расположен на одной оси виртуального массива, а рид может быть расположен на другой оси. Затем можно заполнить матрицу оценками, формируемыми путем прохождения выделенных путей через граф и расчета вероятностей того, что данный путь является истинным путем. Следовательно, в таком случае отличие данного протокола выравнивания от типичного протокола выравнивания Смита-Ватермана состоит в том, что для отыскания наиболее вероятного пути через массив используют расчет максимального правдоподобия, такой как расчет, выполняемый с помощью модели НММ, которая выполнена таким образом, чтобы обеспечивать полную вероятность для выравнивания ридов с гаплотипом. Поэтому выполнять реальное выравнивание строки CIGAR в этом случае не требуется. Вместо этого рассматривают все возможные выравнивания и суммируют их вероятности. Оценка парной НММ является ресурсоемкой и времязатратной, и поэтому реализация ее операций в аппаратной конфигурации в интегральной схеме или с помощью квантовых схем на квантовой вычислительной платформе имеет большое преимущество.
[00277] Например, можно проверить каждый рид с каждым потенциальным гаплотипом, чтобы оценить вероятность наблюдения рида в предположении, что гаплотип является истинным представлением исходного образца ДНК. В различных случаях этот расчет может быть выполнен путем оценки «парной скрытой марковской модели» (НММ), которая может быть выполнена с возможностью моделирования различных возможных способов, которыми мог быть изменен гаплотип-кандидат, таких как ошибки ПЦР или секвенирования и т.п., и вариация, внесенная в наблюдаемый рид. В таких случаях оценка НММ может быть выполнена с использованием метода динамического программирования для расчета полной вероятности любой последовательности переходов между марковскими состояниями, достигающих наблюдаемого рида в виде возможности того, что любое расхождение в риде может быть результатом модели ошибок. Соответственно, такие расчеты НММ могут быть выполнены с возможностью анализа всех возможных ОНП и инделов, которые могли быть введены в одно или более ридов, например, за счет артефактов усиления и/или секвенирования.
[00278] В частности, парная НММ учитывает в виртуальной матрице все возможные выравнивания рида с референсными гаплотипами-кандидатами наряду с вероятностью, связанной с каждым из них, где все вероятности суммируют. Чтобы получить одну общую вероятность для каждого рида, суммируют все вероятности всех вариантов вдоль данного пути. Затем этот процесс выполняют для каждой пары гаплотипа и рида. Например, если имеется кластер из шести скоплений, перекрывающих данную область, например, область из шести гаплотипов-кандидатов, и если скопление содержит около ста ридов, потребуется выполнить 600 операций НММ. Более конкретно, если имеются 6 гаплотипов, то на протяжении пути должны быть 6 ветвей, и необходимо рассчитать вероятность того, что каждая из них является правильным путем, который соответствует действительному генетическому коду субъекта для данной области. Следовательно, необходимо учитывать каждый путь для всех ридов, и нужно рассчитать вероятность для каждого рида, что вы прибудете на этот данный гаплотип.
[00279] Парная скрытая марковская модель является приблизительной моделью того, как истинный гаплотип в образце ДНК может превратиться в возможный отличающийся обнаруживаемый рид. Было замечено, что эти типы преобразований являются комбинацией ОНП и инделов, которые были введены в набор генетического образца процессом ПЦР, одним или более других этапов приготовления образца и/или ошибкой, вызванной процессом секвенирования и т.п. Как показано на ФИГ. 2, чтобы учесть эти типы ошибок, можно использовать основополагающую базовую модель из 3 состояний, где: (М=совпадение выравнивания, I=инсерция, D=делеция), и где возможен любой переход, кроме I<->D.
[00280] Как показано на ФИГ. 2, содержащая переходы базовой модели из 3 состояний совершаются не во временной последовательности, а, скорее, в последовательности продвижения по последовательностям гаплотипа - кандидата и рида, начиная с позиции 0 в каждой последовательности, где первое основание находится в позиции 1. Переход к Μ означает позицию +1 в обеих последовательностях; переход к I означает позицию +1 только последовательности рида; а переход к D означает позицию +1 только в последовательности гаплотипа. Такую же модель из 3 состояний можно также сконфигурировать в качестве основы для алгоритмов Смита-Ватермана и/или Нидлмана-Вунша, которые описаны в настоящем документе. Соответственно, такая модель из 3 состояний, которая изложена в настоящем документе, может быть использована в процессе Смита-Ватермана и/или Нидлмана-Вунша для обеспечения тем самым аффинной оценки гэпа (индела), в которой предполагается, что открытие гэпа (введение I или D) будет менее вероятно, что продление гэпа (продолжение пребывания в состоянии I или D). Таким образом, в данном случае парную НММ можно рассматривать как выравнивание, и можно создать строку CIGAR для кодирования последовательности различных переходов между состояниями.
[00281] В различных случаях базовая модель из 3 состояний может быть усложнена путем разрешения изменения вероятностей в зависимости от позиции. Например, вероятности всех М-переходов могут быть умножены не априорные вероятности наблюдения следующего основания рида, определяемые его оценкой качества основания и соответствующим следующим основанием гаплотипа. В таком случае оценки качества оснований могут быть преобразованы в вероятность ошибки ОНП при секвенировании. Когда два основания совпадают, в качестве априорной вероятности берут единицу минус вероятность этой ошибки, а когда они не совпадают, берут вероятность ошибки, деленную на 3, так как существуют 3 возможных результата ОНП.
[00282] Выше рассмотрена абстрактная «марковская» модель. В различных случаях может быть также определена последовательность переходов с максимальным правдоподобием, которая в настоящем документе называется выравниванием, и может быть выполнена с помощью алгоритма Нидлмана-Вунша или другого алгоритма динамического программирования. Но, в различных вариантах, при выполнении функции определения вариантов, как описано в настоящем документе, выравнивание методом максимального правдоподобия или любое конкретное выравнивание не должно иметь первостепенного значения. Скорее, можно вычислить полную вероятность, например, путем расчета полной вероятности наблюдения рида данного гаплотипа, которая является суммой вероятностей всех возможных путей перехода через граф от нулевой позиции рида в любой позиции гаплотипа до конечной позиции рида в любой позиции гаплотипа, где вероятность каждой составляющей пути является просто произведением вероятностей различных составляющих переходов.
[00283] Нахождение суммы вероятностей пути может быть также выполнено с помощью виртуального массива и алгоритма динамического программирования, как описано выше, например, в каждой ячейке матрицы (0…Ν)×(0…М) существуют три рассчитанных значения вероятности, соответствующие переходам в состояния М, D и I (или, что то же, имеются 3 матрицы). Верхняя строка (нулевая позиция рида) матрицы может быть инициализирована вероятностью 1,0 в состояниях D и вероятностью 0,0 в состояниях I и М; а остальная часть левого столбца (нулевая позиция гаплотипа) может быть инициализирована всеми нулями. (В программном обеспечении начальные вероятности D могут быть установлены близкими к максимальному значению двойной точности, например, 2∧1020, чтобы избежать обращения в машинный нуль, но этот фактор может быть нормализован позже.)
[00284] Эта зависимость вычисления «3 к 1» ограничивает порядок, в котором могут быть вычислены ячейки. Они могут быть вычислены слева направо в каждой строке с переходом по строкам сверху вниз или сверху вниз в каждом столбце с переходом вправо. Кроме того, они могут быть вычислены в антидиагональных фронтах волны, где следующий шаг заключается в вычислении всех ячеек (n, m), a n+m равно приращенному номеру шага. Преимущество этого порядка фронта волны состоит в том, что все ячейки на антидиагонали могут быть вычислены независимо друг от друга. Тогда нижняя строка матрицы в конечной позиции рида может быть выполнена с возможностью представления вычисленных выравниваний. В таком случае определитель гаплотипа будет действовать путем суммирования вероятностей I и Μ всех ячеек нижней строки. В различных вариантах реализации система может быть настроена так, чтобы в нижней строке были запрещены переходы D, или там можно использовать вероятность 0,0 перехода D, чтобы избежать двойного подсчета.
[00285] Как описано в настоящем документе, в различных случаях каждая оценка НММ может действовать на паре последовательностей, например, на паре из гаплотина-кандидата и рида. Например, в пределах данной активной области каждый набор гаплотипов может быть оценен с помощью НММ относительно набора ридов. В таком случае полоса пропускания на входе программного или аппаратного обеспечения может быть уменьшена и/или сведена к минимуму за счет однократной передачи набора ридов и набора гаплотипов и предоставления программному и/или аппаратному обеспечению возможности формировать Ν×Μ пар операций. В определенных случаях средство оценки Смита-Ватермана может быть выполнено с возможностью выстраивания в очередь отдельных операций НММ, каждая со своей собственной копией данных рида и гаплотипа. Модуль выравнивания Смита-Ватермана (SW) может быть выполнен с возможностью выполнения расчета парной НММ в линейном пространстве или может действовать в логарифмическом вероятностном пространстве. Это полезно для сохранения точности по всему огромному диапазону значений вероятности, представленных числами с фиксированной запятой. Однако в других случаях могут быть использованы операции с плавающей запятой.
[00286] Имеются три параллельных умножений (например, суммирований в логарифмическом пространстве), затем два последовательных суммирования (конвейеры ~5-6-ступенчатой аппроксимации), затем еще одно умножение. В таком случае полный конвейер может быть длиной около L=12-16 циклов. Расчеты I & D могут быть примерно половинной длины. В конвейер может подаваться множество входных вероятностей, например, 2, или 3, или 5, или 7, или более входных вероятностей в каждом цикле, например, из одной или более уже вычисленных соседних ячеек (М и/или D слева, Μ и/или I сверху, и/или Μ и/или I и/или D сверху слева). Он может также содержать в каждом цикле одно или более оснований гаплотипа и/или одно или более оснований ридов, например, вместе со связанными параметрами, такими как предварительно обработанные параметры, Он выводит итоговый набор Μ & I & D для одной ячейки за каждый цикл после сквозной задержки.
[00287] Как указано выше, при выполнении функции определения вариантов, как описано в настоящем документе, может быть составлен граф де Брейна, и когда все риды в скоплении идентичны, DBG будет линейным. Однако, когда имеются отличия, в графе будут формироваться «пузыри», которые указывают на области отличий, приводящие к множеству путей, расходящихся от совпадения при выравнивании с референсом, и затем позже снова соединяющихся в совпадении при выравнивании. Из этого DBG можно выделить различные пути, которые образуют гаплотипы-кандидаты, например, гипотезы относительно того, какой может быть истинная последовательность ДНК на по меньшей мере одной нити, причем эти гипотезы могут быть проверены путем выполнения операции НММ, или модифицированной НММ, на этих данных. Более того, можно использовать функцию генотипирования, например, когда могут быть сформированы диплоидные комбинации гаплотипов-кандидатов, и для каждой из них может быть рассчитана условная вероятность наблюдения всего скопления ридов. Затем эти результаты можно ввести в модуль байесовской формулы для расчета безусловной вероятности того, что каждый генотип является истинным, при условии, что наблюдается все скопление ридов.
[00288] Следовательно, в соответствии с устройствами, системами и способами их использования, описанными в настоящем документе, в различных случаях может быть выполнена операция генотипирования, причем эта операция генотипирования может быть выполнена с возможностью реализации оптимизированным образом в программном обеспечении, и/или аппаратном обеспечении, и/или квантовым процессорным устройством. Например, можно сформировать возможные диплоидные комбинации гаплотипов-кандидатов и для каждой комбинации рассчитать условную вероятность наблюдения всего скопления ридов, например, с помощью составных вероятностей наблюдения каждого данного рида каждого гаплотипа на основе оценки парной НММ. Результаты этих расчетов подают в модуль байесовской формулы для расчета безусловной вероятности того, что каждый генотип является истинным, при условии, что наблюдается все скопление ридов.
[00289] Соответственно, согласно различным аспектам настоящее изобретение относится к системе для выполнения операции определения гаплотипов или вариантов на сформированных и/или предоставленных данных с целью создания тем самым файла определения вариантов. А именно, как описано выше, в отдельных случаях файл определения вариантов может быть цифровым или иным подобным файлом, который кодирует отличия между одной и другой последовательностью, например, разницу между последовательностью образца и референсной последовательностью. В частности, в различных случаях файл определения вариантов может быть текстовым файлом, который формулирует или иным образом детально излагает генетические и/или структурные вариации в генетическом строении индивида по сравнению с одним или более референсными геномами.
[00290] Например, гаплотип представляет собой набор генетических, например, ДНК и/или РНК, вариаций, таких как полиморфизм, который присутствует в хромосомах человека и в силу этого может быть передан потомку и тем самым унаследован. В частности, гаплотип может означать комбинацию аллелей, например, одну из множества альтернативных форм гена таких, которые могут возникать в результате мутации, причем аллельные вариации обычно обнаруживают в одном и том же месте хромосомы. Следовательно, при определении идентичности генома человека важно знать, какую форму из множества различных возможных аллелей кодирует генетическая последовательность определенного человека. В конкретных случаях гаплотип может означать один или более, например, набор, нуклеотидных полиморфизмов (например, ОНП), которые могут быть найдены в одной и той же позиции на одной и той же хромосоме.
[00291] Как правило, в различных вариантах реализации для определения генотипа например, аллельных гаплотипов, для субъекта, как описано выше в настоящем документе, можно прибегнуть к основанному на программном обеспечении алгоритму, такому как алгоритм, использующий программу определения гаплотипов, например, GATK, для одновременного определения ОНП, и/или инсерций, и/или делеций, т.е. инделов, в генетической последовательности индивида. В частности, алгоритм может включать в себя один или более протоколов сборки гаплотипа, например, для локальной сборки гаплотипа с самого начала в одной или более активных областях обрабатываемой генетической последовательности. Такая обработка обычно подразумевает развертывание функции обработки, называемой скрытой марковской моделью (НММ), которая представляет собой стохастическую и/или статистическую модель, используемую для воплощения случайно изменяющихся систем, например, в предположении, что будущие состояния в системе зависят только от настоящего состояния, а не от ряда предшествующих ему событий.
[00292] В таких случаях моделируемая система обладает характеристиками или иным образом предполагается марковским процессом с ненаблюдаемыми (скрытыми) состояниями. В конкретных случаях модель может содержать простую динамическую байесовскую сеть. В частности, что касается определения генетической вариации в ее простейшей форме, существует одна из четырех возможностей идентификации любого данного основания в обрабатываемой последовательности, например, при сравнении сегмента референсной последовательности, например, гипотетического гаплотипа, и сегмента последовательности ДНК или РНК субъекта, например рида, полученного из секвенатора. Однако, чтобы определить такую вариацию, в первую очередь нужно секвенировать ДНК/РНК субъекта, например, с помощью секвенатора нового поколения (СНП), чтобы создать считывание или «риды», которые определяют генетический код субъекта. Далее, после того, как геном субъекта секвенирован для получения одного или более ридов, различные представления, представляющие ДНК и/или РНК субъекта, необходимо картировать и/или выровнять, как более подробно описано выше в настоящем документе. Затем следующий этап обработки заключается в определении того, как гены субъекта, которые только что определены, например, картированы и/или выровнены, отличаются от генов прототипной референсной последовательности. Поэтому при выполнении такого анализа предполагается, что рид, потенциально представляющий данный ген субъекта, является представлением прототипного гаплотипа, хотя и с различными ОНП и/или инделами, которые были определены к данному времени.
[00293] А именно, в соответствии с конкретными аспектами предложены устройства, системы и/или способы их практического применения, например, для выполнения функции определения гаплотипов и/или вариантов, например, развертывания функции НММ, например, в ускоренном определителе гаплотипов. В различных случаях для преодоления этих и других подобных проблем, известных в данной области техники, представленный в настоящем документе ускоритель НММ может быть выполнен с возможностью выполнения операций таким образом, чтобы его можно было реализовать в программном обеспечении, реализовать в аппаратном обеспечении, или чтобы его реализация и/или управление иным образом осуществлялись комбинированно, частично программным обеспечением и/или частично аппаратным обеспечением, и/или с возможностью использования реализаций квантовых вычислений. Например, в соответствии с конкретным аспектом, изобретение относится к способу, с помощью которого можно определять данные, относящиеся к идентичности последовательности ДНК и/или РНК субъекта, и/или как генетическая информация субъекта может отличаться от референсного генома.
[00294] В таком случае способ может быть осуществлен путем реализации функции определения гаплотипов или вариантов, например, использующей протокол НММ. В частности, функция НММ может быть выполнена в программном обеспечении, аппаратном обеспечении или посредством одной или более квантовых схем, например, на ускоренном устройстве, в соответствии со способом, описанным в настоящем документе. В таком случае ускоритель НММ может быть выполнен с возможностью приема и обработки секвенированных, картированных и/или выровненных данных для обработки их, например, с целью создания файла определения вариантов, а также для передачи обработанных данных обратно по всей системе. Соответственно, способ может включать в себя развертывание системы, в которой данные могут быть отправлены из процессора, такого как управляемый программным обеспечением ЦПУ или ГПУ или даже КПУ, в определитель гаплотипов, реализующий ускоренную НММ, причем этот определитель гаплотипов может быть развернут на микропроцессорной микросхеме, такой как FPGA, ASIC или структурированная ASIC, или может быть реализован с помощью одной или более квантовых схем. Способ может также включать в себя этапы обработки данных для получения результирующих данных НММ, причем эти результаты могут быть потом возвращены обратно в ЦПУ, и/или ГПУ, и/или КПУ.
[00295] В частности, в одном варианте реализации, как показано на ФИГ. ЗА, предложена конвейерная система для биоинформатики, содержащая ускоритель НММ. Например, в одном случае конвейерная система для биоинформатики может быть выполнена в виде системы 1 определения вариантов. Система на фигуре изображена в аппаратной реализации, но может быть также реализована посредством одной или более квантовых схем, таких как квантовая вычислительная платформа. А именно, на ФИГ. ЗА приведено высокоуровневое представление структуры интерфейса НММ. В конкретных вариантах реализации система 1 определения вариантов выполнена с возможностью ускорения по меньшей мере части операции определения вариантов, такой как операция НММ. Поэтому в настоящем документе в различных случаях система определения вариантов может упоминаться как система 1 НММ. Система 1 содержит сервер, имеющий одно или более процессорных устройств 1000 (ЦПУ/ГПУ/КПУ), выполненных с возможностью осуществления одной или более стандартных программ, относящихся к секвенированию и/или обработке генетической информации, например, для сравнения секвенированной генетической последовательности с одной или более референсных последовательностей.
[00296] Кроме того, система 1 содержит периферийное устройство 2, такое как плата расширения, которое содержит микросхему 7, например FPGA, ASIC или sASIC. В некоторых случаях могут быть предусмотрены одна или более квантовых схем, выполненных с возможностью осуществления различных операций, указанных в настоящем документе. Необходимо также отметить, что термин ASIC может в равной степени означать структурированную ASIC (sASIC), когда это уместно. Периферийное устройство 2 содержит межсоединение 3 и интерфейс 4 шины, например, параллельной или последовательной шины, который соединяет ЦПУ/ГПУ/КПУ 1000 с микросхемой 7. Например, устройство 2 может содержать межсоединение периферийных компонентов, такое как PCI, PCI-X, PCIe или QPI (межсоединение быстрого доступа), и может содержать интерфейс 4 шины, который выполнен с возможностью функционального и/или пригодного для обмена данными соединения ЦПУ/ГПУ/КПУ 1000 с устройством 2, например для высокоскоростной передачи данных с низкой задержкой. Соответственно, в конкретных случаях интерфейс может представлять собой интерфейс 4 межсоединения периферийных компонентов типа экспресс (PCIe), который связан с микросхемой 7, причем эта микросхема содержит ускоритель 8 НММ. Например, в конкретных случаях ускоритель 8 НММ выполнен с возможностью осуществления функции НММ, например, когда функция НММ в определенных вариантах реализации может быть по меньшей мере частично реализована в аппаратном обеспечении FPGA, AISC или sASIC или посредством одной или более соответствующим образом сконфигурированных квантовых схем.
[00297] В частности, на ФИГ. 3А представлено высокоуровневое изображение ускорителя 8 НММ с приведенной в качестве примера организацией одного или более движков 13, таких как множество движков 13a-13m+1, для осуществления одного или более процессов функции определения вариантов, например, включая задачу НММ. Соответственно, ускоритель 8 НММ, который может состоять из распределителя 9 данных, например, CentCom, и одного или множества кластеров 11-11n+1 обработки, которое могут быть организованы как, или иным образом включать в себя, один или более экземпляров 13, например, когда каждый экземпляр может быть выполнен в виде движков обработки, такого как малогабаритный движок 13a-13m+1. Например, распределитель 9 может быть выполнен с возможностью приема данных, например, из ЦПУ/ГПУ/КПУ 1000, и распределения или передачи иным образом этих данных в один или более из множества кластеров 11 обработки НММ.
[00298] В частности, в определенных вариантах реализации распределитель 9 может быть расположен логически между встроенным интерфейсом 4 PCIe и модулем 8 ускорителя НММ, например, когда интерфейс 4 обменивается данными с распределителем 9, например, по межсоединению или иной соответствующим образом сконфигурированной шине 5, например, по шине PCIe. Модуль распределителя 9 может быть выполнен с возможностью обмена данными с одним или более кластерами 11 ускорителя НММ, например по одной или более кластерным шинам 10. Например модуль 8 ускорителя НММ может быть выполнен в виде, или иным образом включать в себя, массив кластеров 11a-11n+1, например, когда каждый кластер 11 НММ может быть выполнен в виде или иным образом включать в себя концентратор 11 кластеров и/или может включать в себя один или более экземпляров 13, причем экземпляр может представлять собой движок 13 обработки, который выполнен с возможностью осуществления одной или более операций на данных, принимаемых им. Соответственно, в различных вариантах реализации каждый кластер 11 может быть сформирован как, или иным образом включать в себя, концентратор 11a-11n+1, где каждый из концентраторов может быть выполнен с возможностью функциональной связи с множеством экземпляров 13a-13m+1 движка ускорителя НММ, например когда каждый концентратор 11 кластеров может быть выполнен с возможностью направления данных во множество движков 13a-13m+1 обработки в пределах кластера 11.
[00299] В различных случаях ускоритель 8 НММ выполнен с возможностью сравнения каждого основания секвенированного генетического кода субъекта, например, в формате рида, с различными известными или сформированными гаплотипами-кандидатами референсной последовательности и определения вероятности того, что любое данное основание в изучаемой позиции либо совпадает, либо не совпадает с соответствующим гаплотипом, например, рид содержит ОНП, инсерцию или делецию, что приводит к вариации основания в исследуемой позиции. В частности, в различных вариантах реализации ускоритель 8 НММ выполнен с возможностью присвоения вероятностей перехода для последовательности оснований рида, осуществляемых между каждым из этих состояний, совпадение («М»), инсерция («I») или делеция («D»), как более подробно описано ниже в настоящем документе.
[00300] Более конкретно, в зависимости от конфигурации, функция ускорения НММ может быть реализована в программном обеспечении, например, с помощью ЦПУ/ГПУ/КПУ 1000 и/или микросхемы 7, и/или может быть реализована в аппаратном обеспечении и может быть представлена в микросхеме 7, например, расположенной на карте или плате 2 расширения периферии. В различных вариантах реализации эта функциональная возможность может быть реализована частично в виде программного обеспечения, например, выполняемого ЦПУ/ГПУ/КПУ 1000, и частично в виде аппаратного обеспечения, реализованного на микросхеме 7 или посредством одной или более схем квантовой обработки. Соответственно, в различных вариантах реализации микросхема 7 может быть представлена на материнской плате ЦПУ/ГПУ/КПУ 1000 или она может быть частью периферийного устройства 2, или и то, и другое. Соответственно, модуль 8 ускорителя НММ может содержать или иным образом быть связанным с различными интерфейсами, например, 3, 5, 10 и/или 12, чтобы обеспечивать эффективную передачу данных в движки 13 обработки и из них.
[00301] Соответственно, как показано на ФИГ. 2 и 3, в различных вариантах реализации предусмотрена микросхема 7, выполненная с возможностью осуществления функции определения вариантов, например гаплотипов. Микросхема 7 может быть связана с ЦПУ/ГПУ/КПУ 1000, например, непосредственно сопряжена с ними, например, установлена на материнскую плату компьютера, или опосредованно соединена с ними, например, являться частью периферийного устройства 2, которое выполнено с возможностью функционального соединения с ЦПУ/ГПУ/КПУ 1000, например, посредством одного или более межсоединений, например 3, 4, 5, 10 и/или 12. В данном случае микросхема 7 присутствует на периферийном устройстве 2. Необходимо понимать, что хотя ускоритель выполнен в виде микросхемы, он может быть также выполнен в виде одной или более квантовых схем квантового процессорного устройства, где квантовые схемы выполнены в виде одного или более движков обработки для выполнения одной или более функций, описанных в настоящем документе.
[00302] Следовательно, периферийное устройство 2 может содержать параллельную или последовательную шину 4 расширения, например, для соединения периферийного устройства 2 с центральным процессорным устройством (ЦПУ/ГПУ/КПУ) 1000 компьютера и/или сервера, например, посредством интерфейса 3, например DMA. В конкретных случаях периферийное устройство 2 и/или последовательная шина 4 расширения может представлять собой интерфейс межсоединения периферийных компонентов типа экспресс (PCIe), который выполнен с возможностью обмена данными с микросхемой 7, например через соединение 5. Как описана в настоящем документе, микросхема 7 может, по меньшей мере частично, быть выполнена как, или включать в себя иным образом, ускоритель 8 НММ. Ускоритель 8 НММ может быть выполнен как часть микросхемы 7, например, в аппаратной реализации и/или в виде кода, предназначенного для исполнения вместе с ней, и выполнен с возможностью осуществления функции определения вариантов, например, для выполнения одной или более операций скрытой марковской модели, на данных, подаваемых в микросхему 7 с помощью ЦПУ/ГПУ/КПУ 1000, например, через интерфейс 4 PCIe. Аналогичным образом после того, как одна или более функций определения вариантов выполнены, например, одна или более операций НММ выполнены, их результаты могут быть переданы из ускорителя 8 НММ схемы 7 по шине 4 в ЦПУ/ГПУ/КПУ 1000, например посредством соединения 3.
[00303] Например, в конкретных случаях предусмотрен ЦПУ/ГПУ/КПУ 1000 для обработки и/или передачи информации и/или исполнения инструкций наряду с микросхемой 7, которая лишь частично выполнена в виде ускорителя 8 НММ. ЦПУ/ГПУ/КПУ 1000 обменивается данными с микросхемой 7 посредством интерфейса 5, который выполнен с возможностью содействия обмену данными между ЦПУ/ГПУ/КПУ 1000 и ускорителем 8 НММ микросхемы 7 и, следовательно, может соединять с возможностью обмена данными ЦПУ/ГПУ/КПУ 1000 с ускорителем 8 НММ, который является частью микросхемы 7. Для содействия этим функция микросхема 7 содержит модуль 9 распределителя, который может представлять собой модуль CentCom, выполненный с возможностью передачи данных на множество движков 13 НММ, например посредством одного или более кластеров 11, где каждый движок 13 выполнен с возможностью приема и обработки данных, например, посредством выполнения на них протокола НММ, вычисления конечных значений, вывода его результатов и повторения этих действий. В различных случаях выполнение протокола НММ может включать в себя определение одной или более вероятностей перехода, как описано ниже в настоящем документе. В частности, каждый движок 13 НММ может быть выполнен с возможностью осуществления заданий, в том числе таких, как одно или более формирований и/или оценок виртуальной матрицы НММ, для создания тем самым и вывода конечного суммарного значения, причем конечное суммарное значение выражает вероятное правдоподобие того, что определенное основание совпадает или отличается от соответствующего основания в последовательности гипотетического гаплотипа, как описано ниже в настоящем документе.
[00304] На ФИГ. 3В приведено подробное изображение кластера 11 НММ, показанного на ФИГ. 3А. В различных вариантах реализации каждый кластер 11 НММ содержит один или более экземпляров 13 НММ. Могут быть предусмотрены один или множество кластеров, например, в соответствии объемом предоставляемых ресурсов, например, на микросхеме или квантовом вычислительном процессоре. В частности, может быть предусмотрен кластер НММ, который выполнен в виде концентратора 11 кластеров. Концентратор 11 кластеров получает данные, относящиеся к одному или более заданий 20, из распределителя 9 и дополнительно соединен с возможностью обмена данными с одним или более, например, множеством, экземпляров 13 НММ, например, посредством одной или более шин 12 экземпляров НММ, на которые концентратор 11 кластеров передает данные заданий 20.
[00305] Полоса пропускания для передачи данных по всей системе может быть процессом с относительно низкой полосой пропускания, и после того, как задание 20 принято, система 1 может быть выполнена с возможностью выполнения этого задания, например, без необходимости обращения из микросхемы 7 к памяти. В различных вариантах реализации в любой данный момент времени одно задание 20а отправляют на один движок 13а обработки, а несколько заданий 20а-n могут быть распределены концентратором 11 кластеров на несколько движков 13a-13m+1 обработки, например, когда каждый из движков обработки 13 будет работать над одним заданием 20, например, один сравнением между одним или более ридами и одной или более последовательностями гаплотипа, параллельно и высокими скоростями. Как описано ниже, выполнение такого задания 20 может, как правило, включать в себя формирование виртуальной матрицы, посредством которой последовательности «рида» субъекта могут быть сравнены с одной или более, например, двумя, последовательностями гипотетического гаплотипа, чтобы определить различия между ними. В таких случаях одно задание 20 может включать в себя обработку одной или более матриц, имеющих множество ячеек, которые нужно обработать для каждого выполняемого сравнения, например, основание за основанием. Поскольку геном человека насчитывает около 3 миллиардов пар оснований, при анализе генома человека с 30-кратным избыточным покрытием (что эквивалентно примерно 20 триллионам ячеек в матрицах всех связанных заданий по НММ) нужно будет выполнить порядка от 1 до 2 миллиардов различных заданий.
[00306] Соответственно, как описано в настоящем документе, каждый экземпляр 13 НММ может быть выполнен с возможностью осуществления протокола НММ, например, формирования и обработки матрицы НММ, на данных последовательности, таких как данные, принятые из ЦПУ/ГПУ/КПУ 1000. Например, как объяснялось выше, при секвенировании генетического материала субъекта, такого как ДНК или РНК, ДНК/РНК разбивают на сегменты, например, длиной до около 100 оснований. Затем проверяют идентичность этих сегментов из 100 оснований, например, с помощью автоматизированного секвенатора, и «считывают» в текстовый файл FASTQ или другой формат, который хранит идентичность каждого основания рида вместе с оценкой качества Phred (например, это обычно число от 0 до 63 на логарифмической шкале, где оценка 0 означает минимальную величину достоверности того, что определенное основание является верным, а оценки от 20 до 45 обычно считают приемлемыми как относительно точные).
[00307] В частности, как указано выше, оценка качества Phred является индикатором качества, который измеряет качество идентификации идентичностей нуклеотидов, сформированных процессором секвенирования, например, автоматизированным секвенатором ДНК/РНК. Следовательно, каждое основание рида содержит свою собственную оценку качества, например, Phred, основанную на том, как секвенатор оценил качество данной конкретной идентификации. Phred представляет достоверность, с которой секвенатор оценивает, что он правильно определил идентичность основания. Затем эта оценка Phred используется модулем 8 НММ, как подробно описано ниже, для дальнейшего определения точности каждого определенного основания в риде по сравнению с гаплотипом, на который оно было картировано и/или выровнено, например, определения ее вероятностей перехода в состояния «совпадение», «инсерция» и/или «делеция», например в состояние «совпадение» и из него. Необходимо отметить, что в различных вариантах реализации система 1 может модифицировать или иным образом корректировать первоначальную оценку Phred перед выполнением протокола НММ с ее использованием, например, с учетом соседних оснований/оценок и/или фрагментов соседней ДНК и в предположении влияния таких факторов на оценку Phred основания, например, исследуемую ячейку.
[00308] В таких случаях, как показано на ФИГ. 4, система 1, например, компьютер/квантовое программное обеспечение, может определить и идентифицировать различные активные области 500n в пределах секвенированного генома, которые могут быть использованы и/или иным образом подвергнуты дальнейшей обработке, как описано в настоящем документе, и которая может быть разбита на задания 20n, которые могут быть распараллелены среди различных ядер и доступных потоков 1007 по всей системе 1. Например, такие активные области 500 могут быть выявлены в качестве источников вариации между секвенированным и референсным геномом. В частности, ЦПУ/ГПУ/КПУ 1000 может иметь множество выполняющихся потоков 1007, идентифицируя активные области 500а, 500b и 500с, компилируя и агрегируя всевозможные разные задания 20 n, которые нужно выполнить, например, посредством надлежащим образом сконфигурированного агрегатора 1008, на основе активных областей 500а-с, исследуемых в данный момент. Для того чтобы система 1 могла работать эффективно, может быть использовано любое подходящее количество потоков 1007, например, чем больше потоков, тем меньше потрачено активного времени на ожидание.
[00309] По завершении идентификации, компиляции и/или агрегирования потоки 1007/1008 передадут активные задания 20 в распределитель 9 данных, например, CentCom, модуля 8 НММ, например, через интерфейс 4 PCIe, например, в режиме «самонаведения», и затем перейдут к другим процессам в ожидании, когда модуль 8 НММ отправит выходные данные обратно, чтобы согласовать их обратно с соответствующей активной областью 500, на которую они картируются и/или выравниваются. После этого распределитель 9 данных распределяет задания 20 всевозможных разным кластерам 11 НММ, например, задание за заданием. Если все работает эффективно, это может быть в формате «первым пришел, первым обслужен», но это необязательно. Например, в различных вариантах реализации необработанные данные задания и обработанные результаты задания могут быть отправлены по всей системе по мере их доступности.
[00310] В частности, на ФИГ. 2, 3 и 4 различные данные задания 20 могут быть агрегированы в страницы по 4К байтов, которые могут быть отправлены посредством PCIe 4 в и через CentCom 9 и далее в движки 13 обработки, например, посредством кластеров 11. Количество отправляемых данных может быть больше или меньше 4К байтов, но, как правило, они будут содержать 100 заданий НММ на страницу данных объемом 4К (например, 1024). В частности, эти данные потом перевариваются распределителем 9 данных и подаются в каждый кластер 11, например, одну страницу объемом 4K посылают на один кластер 11. Однако это необязательно, так как каждое отдельное задание 20 может быть послан в любой данный кластер 11 в зависимости от того, какой кластер становится доступным и когда.
[00311] Соответственно, подход на основе кластера 11, который представлен здесь, эффективно и с высокой скоростью распределяет поступающие данные движкам 13 обработки. В частности, по мере поступления данных на интерфейс 4 PCIe из ЦПУ/ГПУ/КПУ 1000, например, по соединению 3 DMA, принимаемые данные затем отправляются по шине 5 PCIe в распределитель 9 CentCom микросхемы 7 определителя вариантов. После чего распределитель 9 отправляет данные в один или более кластеров 11 обработки НММ, например, по одной или более специализированным шинам 10 кластеров, причем кластер 11 может затем передать эти данные в один или более экземпляров 13 обработки, например, по одной или более шин 12 экземпляров, например, для обработки. В этом случае интерфейс 4 PCIe выполнен с возможностью подачи данных через периферийную шину 5 расширения, распределитель 9 и/или шины 10 и/или 12 кластера и/или экземпляра с быстрой скоростью, например, с такой, которая может обеспечивать занятость одного или более, например, всех экземпляров 13a-(m+1) ускорителя НММ в пределах одного или более, например, всех, кластеров 11a-(n+1) НММ, например, в течение длительного периода времени, например, полного времени, причем на протяжении периода, в течение которого система 1 работает, задания 20 обрабатываются, и в то же время система успевает выводить данные НММ, которые должны быть отправлены обратно в один или более ЦПУ 1000, через интерфейс 4 PCIe.
[00312] Например, любая неэффективность интерфейсов 3, 5, 10 и/или 12, которая приводит к периоду простоя одного или более экземпляров 13 ускорителя НММ, может увеличивать общее время обработки системы 1. В частности, при анализе генома человека могут быть порядка двух или более миллиардов различных заданий 20, которые должны быть распределены различным кластерам 11 НММ и обработаны в течение некоторого периода времени, например, менее 1 часа, менее 45 минут, менее 30 минут, менее 20 минут, включая 15 минут, 10 минут, 5 минут или менее.
[00313] Соответственно, на ФИГ. 4 дан обзор примера потока данных по всему программному и/или аппаратному обеспечению системы 1, как описано в целом выше. Как показано на ФИГ. 4, система 1 может быть выполнена, частично, с возможностью передачи данных, например, между интерфейсом 4 PCIe и распределителем 9, таким как, CentCom, например, по шине 5 PCIe. Кроме того, система 1 может быть также выполнена, частично, с возможностью передачи принимаемых данных, например, между распределителем 9 и одним или более кластерами 11 НММ, например, посредством одной или более шин 10 кластеров. Таким образом, в различных вариантах реализации ускоритель 8 НММ может содержать один или более кластеров 11, например, один или более кластеров 11, выполненных с возможностью осуществления одного или более процессов функции НММ. В таком случае имеется интерфейс, такой как кластерная шина 10, которая соединяет CentCom 9 с кластером 11 НММ.
[00314] Например, на ФИГ. 5 приведена высокоуровневая схема, изображающая интерфейс входа в модуль 8 НММ и выхода из него, такой как вход и выход модуля кластера. Как показано на ФИГ. 6, каждый кластер 11 НММ может быть выполнен с возможностью обмена данными, например, приема данных из и/или отправки результирующих данных, например, суммарных данных, с распределителем 9 данных CentCom через кластерную шину 10. В частности, может быть предусмотрен любой подходящий интерфейс 5, если он позволяет интерфейсу 4 PCIe обмениваться данными с распределителем 9 данных. Более конкретно, шина 5 может представлять собой межсоединение, содержащее логику интерпретации, полезную для сообщения распределителю 9 данных, какая логика интерпретации может быть выполнена с возможностью приспособления к любому протоколу, используемому для обеспечения этой функциональной возможности. А именно, в различных случаях межсоединение может выполнено в виде шины 5 PCIe.
[00315] Кроме того, кластер 11 может быть выполнен с возможностью использования в нем одной или более областей тактовой частоты и, следовательно, в пределах кластера 11 могут быть представлены один или более тактовых генераторов. В конкретных случаях могут быть предусмотрено множество областей тактовой частоты. Например, может быть предусмотрен более медленный тактовый генератор, например, для передач данных, скажем, в кластер 11 и из него. Кроме того, может быть предусмотрен более быстрый, например, высокоскоростной, тактовый генератор, который может использоваться экземплярами 13 НММ при выполнении различных расчетов состояний, описанных в настоящем документе.
[00316] В частности, в различных вариантах реализации, как показано на ФИГ. 6, система 1 может быть установлена таким образом, чтобы в первом случае, когда распределитель 9 данных использует существующий CentCom IP, может быть предусмотрена манжета, такая как уплотнительное кольцо, причем уплотнительное кольцо выполнено с возможностью трансляции сигнала в интерфейс 5 CentCom из интерфейса или шины 10 кластера НММ и обратно. Например, кластерная шина 10 НММ может соединять с возможностью обмена данными и/или функционально ЦПУ/ГПУ 1000 с различными кластерами 11 модуля 8 ускорителя НММ. Таким образом, как показано на ФИГ. 6, структурированные записанные и/или считанные данные для каждого гаплотипа и/или каждого рида могут быть отправлены по всей системе 1.
[00317] Вслед за заданием 20, вводимым в движок НММ, движок 13 НММ может, как правило, приступать к работе либо: а) немедленно, если она находится в состоянии простоя (IDLE), либо b) по завершении текущей назначенной задачи. Необходимо отметить, что каждый движок 13 ускорителя НММ может обрабатывать входные сигналы с попеременным переключением (например, может работать с одним набором данных во время загрузки другого), тем самым сводя к минимуму непроизводственную потерю времени между заданиями. Соответственно, манжета 11 кластера НММ может быть выполнена с возможностью автоматического приема входного задания 20, отправленного распределителем 9 данных и назначения его одному или более экземпляров 13 движка НММ в кластере 11, который может принять новое задание. На стороне программного обеспечения не требуется управления, которое может выбирать определенный экземпляр 13 движка НММ для определенного задания 20. Однако в различных случаях программное обеспечение может быть выполнено с возможностью управления такими экземплярами.
[00318] Соответственно, ввиду вышеизложенного, система 1 может быть рационализирована при передаче данных результатов обратно в ЦПУ/ГПУ/КПУ, и благодаря этой эффективности имеется не много данных, которые нужно вернуть в ЦПУ/ГПУ/КПУ, чтобы добиться пользы от результатов. Это позволяет системе достигать времени выполнения операции определения вариантов около 30 минут или меньше, например, около 25, или около 20 минут или меньше, например, около 18 или около 15 минут или меньше, включая около 10 или около 7 минут или меньше, даже около 5 или около 3 минут или меньше в зависимости от конфигурации системы.
[00319] На ФИГ. 6 приведено высокоуровневое представление различных функциональных блоков примера движка 13 НММ в пределах аппаратного ускорителя 8 на FPGA или ASIC 7. В частности, в пределах аппаратного ускорителя 8 НММ имеются множество кластеров 11, и в пределах каждого кластера 11 имеются множество движков 13. На ФИГ. 6 приведен пример движка 13 НММ. Как показано на ФИГ. 6, движок 13 может содержать интерфейс 12 шины экземпляра, множество памятей, например, НМЕМ 16 и RMEM 18, различные другие компоненты 17, логику 15 управления НММ, а также интерфейс 19 вывода результатов. В частности, на стороне движка шина 12 экземпляра НММ выполнена с возможность функционального соединения с памятями, НМЕМ 16 и RMEM 18, и может содержать логику интерфейса, которая обменивается данными с концентратором 11 кластеров, причем концентратор кластеров обменивается данными с распределителем 9, который, в свою очередь, обменивается данными с интерфейсом 4 PCIe, который обменивается данными с программным обеспечением определения вариантов, выполняемым ЦПУ/ГПУ и/или сервером 1000. Таким образом, шина 12 экземпляра НММ принимает данные из ЦПУ 1000 и загружает их в одну или более памятей, например НМЕМ и RMEM. Эта конфигурация может быть также реализована в одной или более квантовых схем и адаптирована соответствующим образом.
[00320] В этих случаях должен быть выделен достаточный объем памяти, чтобы можно было загружать по меньшей мере два или более гаплотипов, например, два гаплотипа, в НМЕМ 16, для данной последовательности рида, которую загружают, например, в RMEM 18, что в случае загрузки множества гаплотипов снижает нагрузку на полосу пропускания шины 5 PCIe. В конкретных случаях два гаплотипа или две последовательности рида могут быть загружены в их соответствующие памяти, что позволит обрабатывать четыре последовательности вместе во всех соответствующих комбинациях. В других случаях могут быть загружены, например, четыре, или восемь или шестнадцать, пар последовательностей и аналогичным образом обработаны в комбинации, например, чтобы еще более облегчить нагрузку на полосу пропускания, если требуется.
[00321] Кроме того, может быть зарезервировано достаточно памяти, чтобы в ней можно было реализовать структуру с попеременным переключением, так чтобы после того, как памяти загружены новым заданием 20а, например, на одной стороне памяти, подавался сигнал о новом задании, и логика управления 15 могла начать обработку нового задания 20а, например, путем формирования матрицы и выполнения необходимых расчетов, как описано ниже в настоящем документе. Соответственно, благодаря этому другая сторона памяти остается доступной, чтобы в нее можно было загрузить другое задание 20b, которое может быть загружена туда, пока первое задание 20а обрабатывается, а по завершении задания 20а можно было сразу же начинать обработку задания 20b с помощью логики 15 управления.
[00322] В таком случае матрица для задания 20b может быть обработана фактически без непроизводственной потери времени, например, одного или двух тактовых циклов, между завершением обработки первого задания 20а и началом обработки второго задания 20b. Следовательно, при использовании обеих сторон структуры памяти с попеременным переключением НМЕМ 16 может, как правило, хранить 4 последовательности гаплотипа, например, два фрагмента, a RMEM 18 может хранить, как правило, 2 последовательности рида. Эта конфигурация с попеременным переключением полезна, так как требует лишь немного дополнительного объема памяти, но позволяет удвоить пропускную способность движка 13.
[00323] Во время и/или после обработки памяти 16, 18 снабжают данными блок 17а калькулятора вероятностей перехода и таблицы подстановки (LUT), который выполнен с возможностью расчета различной информации, относящейся к значениям «Prior», как объясняется ниже, и который, в свою очередь, подает данные результатов Prior в блок 17b калькулятора состояний М, I и D для использования при расчете вероятностей перехода. Кроме того, могут быть включены одна или более сверхоперативных ОЗУ 17 с, например, для хранения состояний М, I и D на границе полосы захвата, например, значений нижней строки полосы захвата обработки, которые, как было указано, в различных случаях могут быть любым подходящим количеством ячеек, например, около 10 ячеек, в длину, чтобы быть соразмерными с длиной полосы захвата 35.
[00324] Кроме того, может быть включен отдельный блок 19 интерфейса вывода результатов, чтобы по завершении суммирований они, например, 4 32-битовых слова, могли быть немедленно переданы обратно в программное обеспечение определения вариантов ЦПУ/ГПУ/КПУ 1000. Необходимо отметить, что эта конфигурация может быть сконфигурирована таким образом, чтобы система 1, а именно, калькулятор 17b М, I и D, не дожидались, пока интерфейс 19 вывода очистится, например, до тех пор, пока он не очистит результаты после того, как выполнит задание 20. Поэтому в данной конфигурации могут быть три ступени конвейере, функционирующие в унисон, чтобы создать общесистемный конвейер, такой как загрузка памяти, выполнение расчетов MID и вывод результатов. Кроме того, следует отметить, что любой данный движок 13 НММ является одним из многих со своими собственными интерфейсами 19 вывода, однако они могут совместно использовать общий интерфейс 10 для возврата в распределитель 9 данных. Следовательно, концентратор 11 кластеров будет включать в себя возможности управления для управления передачей («xfer») информации через ускоритель 8 НММ во избежание конфликтов.
[00325] Соответственно, далее подробно описаны процессы, выполняемые в каждом модуле движков 13 НММ, когда он принимает данные гаплотипа и рида, обрабатывает их и выводит полученные в результаты данные, относящиеся к ним, как большей часть описано в общих чертах выше. А именно, вычисления с широкой полосой пропускания в движке 13 НММ в пределах кластера 11 НММ направлены на вычисление и/или обновление значений состояний вставки (М), инсерции (I) и делеции (D), которые используют при определении того, совпадает ли конкретный исследуемый рид с референсом гаплотипа, а также в какой степени совпадает, как описано выше. В частности, рид вместе с оценкой Phred и значением штрафа на открытие гэпа (GOP) для каждого основания в риде передают в кластере 11 из распределителя 9 и тем самым назначают конкретному движку 13 обработки для обработки. Затем эти данные используются калькулятором 17 М, I и D движка 13 обработки для определения того, является ли определенное основание в риде более или менее правдоподобным, чтобы быть правильным и/или совпадать с соответствующим ему основанием в гаплотипе, или быть результатом вариации, например, инсерцией или делецией; и/или если имеется вариация, то вызвана ли эта вариация, по всей видимости, действительной изменчивостью в гаплотипе, или, скорее, артефактом вследствие ошибки в системах формирования последовательности, и/или картирования, и/или выравнивания.
[00326] Как указано выше, часть такого анализа включает в себя калькулятор 17 MID, определяющий вероятности перехода от одного основания к другому в риде, переходящим из одного состояния М, I или D в другое, в сравнении с референсом, например, из состояния совпадения в другое состояние совпадения, или из состояния совпадения либо в состояния инсерции, либо в состояния делеции. При выполнении таких определений каждую из связанных вероятностей перехода определяют и учитывают, когда оценивают, является ли наблюдаемый переход между ридом и референсом истинной вариацией, а не просто какой-то ошибкой машины или обработки. В этих целях полезно использовать оценку Phred для каждого рассматриваемого основания при определении вероятностей переходов в состояние совпадения и из него, например, из состояния совпадения в состояние инсерции или делеции, например, с гэпом, при сравнении. Подобным образом определяют также вероятности перехода продления гэпа или выход из состояния с гэпом, например, состояния инсерции или делеции, обратно в состояние совпадения. В конкретных случаях вероятности входа в состояние делеции или инсерции и выхода из него, например, выхода из состояния продления гэпа, могут быть фиксированный величины, и могут упоминаться в настоящем документе как вероятность продления гэпа или штраф на продление гэпа. Тем не менее, в различных случаях такие штрафы на продление гэпа могут быть плавающими и, следовательно, подверженными изменению в зависимости от требований к точности конфигурации системы.
[00327] Соответственно, как показано на ФИГ. 7 и 8, для каждой возможной пары рида и гаплотипа вычисляют значение каждого из состояний М, I и D. В таком случае можно сформировать виртуальную матрицу 30 из ячеек, содержащих оцениваемый рид на одной оси матрицы и связанную последовательность гаплотипа на другой оси матрицы, таким образом, что каждая ячейка в матрице представляет позицию основания в риде и референсе гаплотипа. Следовательно, если каждая из последовательности рида и гаплотипа имеет длину в 100 оснований, матрица 30 будет содержать 100 на 100 ячеек, данную часть которой нужно будет обработать, чтобы определить правдоподобие и/или степень, в которой каждый конкретный рид совпадает с данных конкретным референсом. Поэтому после того как виртуальная матрица 30 сформирована, она может быть использована для определения различных переходов состояний, которые имеют место при перемещении от одного основания в последовательности рида к другому, и сравнения с такими же переходами последовательности гаплотипа, например, как изображено на ФИГ. 7 и 8. А именно, движок 13 обработки выполнен с возможностью обработки множества ячеек параллельно и/или последовательно при прохождении матрицы с помощью логики 15. Например, как изображено на ФИГ. 7, виртуальная полоса 35 захвата обработки распространяется и перемещается поперек и в низ матрицы 30, например, слева направо, обрабатывая отдельные ячейки матрицы 30 по диагонали вниз справа налево.
[00328] Точнее говоря, как показано на ФИГ. 7, каждая отдельная виртуальная ячейка в пределах матрицы 30 содержит значение состояния М, I и D, которое нужно рассчитать, чтобы оценить характер идентичности найденного основания и, как изображено на ФИГ. 7, можно четко увидеть зависимости между этими данными для каждой ячейки в этом процессе. Следовательно, для определения данного состояния М текущей обрабатываемой ячейки, в текущую ячейку необходимо передвинуть состояния совпадения, инсерции и делеции ячейки, расположенной сверху по диагонали от нее, и использовать при расчете состояния М ячейки, рассчитываемого в данный момент (например, таким образом, продвижение диагонали вниз вперед по матрице указывает на совпадение),
[00329] Однак, для определения состояния I в текущую обрабатываемую ячейку нужно передвинуть только состояния совпадения и инсерции из ячейки непосредственно выше текущей обрабатываемой ячейки (таким образом, при переходе в состояние инсерции получаем продвижение вертикально вниз «с гэпом»). Аналогичным образом для определения состояния D в текущую обрабатываемую ячейку нужно передвинуть только состояния совпадения и делеции из ячейки непосредственно слева от текущей ячейки (таким образом, при переходе в состояние делеции получаем продвижение горизонтально поперек «с гэпом»). Как показано на ФИГ, 7, после того, как начинается вычисление ячейки 1 (затененная ячейка в крайней сверху строке), можно также начать обработку ячейки 2 (затененная ячейка во второй строке), не ожидая никаких результатов из ячейки 1, поскольку между этой ячейкой в строке 2 и ячейкой в строке 1, где начинается обработка, нет зависимости по данным. В результате образуется обратная диагональ 35, где продвижение продолжается вниз и влево, как показано красной стрелкой. Этот подход с продвижение обратной диагонали 35 повышает эффективность обработки и пропускную способность всей системы. Аналогичным образом данные, формируемые в ячейке 1, могут быть немедленно продвинуты в ячейку внизу и прямо справа от крайней сверху ячейки 1, тем самым продвигая полосу 35 захвата.
[00330] Например, на ФИГ. 7 изображен пример структуры 35 матрицы НММ, показывающей поток аппаратной обработки. Матрица 30 включает в себя индекс оснований гаплотипа, например, содержащий 36 оснований, расположенных слева направо вдоль верхнего края горизонтальной оси, а также включает в себя индекс оснований рида, например, содержащий 10 оснований, расположенных сверху вниз вдоль бокового края вертикальной оси таким образом, что формировать структуру ячеек, где выбранная ячейка может быть заполнена состояниями вероятности М, I и D и вероятностями перехода из текущего состояния в соседнее состояние. В таком случае, как более подробно описано выше, перемещение из состояния совпадения в состояние совпадения приводит к продвижению вперед по диагонали по матрице 30, тогда как перемещение из состояния совпадения в состояние инсерции приводит к продвижению вертикально вниз с образованием гэпа, а перемещение из состояния совпадения в состояние делеции приводит к продвижению по горизонтали с образованием гэпа. Следовательно, как показано на ФИГ. 8, для данной ячейки при определении состояний совпадения, инсерции и делеции для каждой ячейки используют вероятности совпадения, инсерции и делеции ее трех примыкающих ячеек.
[00331] Указывающая вниз стрелка на ФИГ. 7 представляет параллельный и последовательный характер движков обработки, которые выполнены с возможностью создания полосы захвата 35 или волны, перемещающейся поступательно вдоль виртуальной матрицы в соответствии с зависимостями данных (см. ФИГ. 7 и 8) для определения состояний М, I и D для каждой конкретной ячейки в структуре 30. Соответственно, в определенных случаях может потребоваться рассчитать идентичности каждой ячейки в направлении вниз и по диагонали, как объяснено выше, а не просто рассчитать каждую ячейку исключительно вдоль вертикальной или горизонтальной оси, хотя это можно сделать, если требуется. Это обусловлено повышенным временем ожидания, например, задержкой, которое потребуется при обработке виртуальных ячеек матрицы 30 по отдельности и последовательно только вдоль вертикальной или горизонтальной оси, например, посредством аппаратной конфигурации.
[00332] Например, в таком случае при движении линейно и последовательно по виртуальной матрице 30, например, строка за строкой или столбец за столбцом, для обработки каждой новой ячейки вычисления каждой предыдущей ячейки должны быть завершены, что повышает время ожидания в целом. Однако при распространении вероятностей М, I, D каждой новой ячейки в направлении вниз и по диагонали системе 1 не нужно дожидаться, пока обработка ее предшествующей ячейки, например, строки один, завершится, прежде чем начинать обработку примыкающей ячейки в строке два матрицы. Это позволяет параллельно и последовательно обрабатывать ячейки по диагонали, а также позволяет скрывать различные задержки вычислений конвейера, связанные с расчетами состояний М, I и D. Соответственно, по мере перемещения полосы 35 захвата по матрице 30 слева направо вычислительная обработка перемещается по диагонали вниз, например, влево (как показано стрелкой на ФИГ. 7). Эта конфигурация может быть особенно полезна для аппаратных и/или основанных на квантовых схемах реализаций, например, когда задержка памяти и/или межтактовая задержка имеют первостепенное значение.
[00333] В таких конфигурациях действительно ценным результатом каждого вызова движка 13 НММ, например, по завершении расчета всей матрицы 30, может быть нижняя строка (например, строка 35 на ФИГ. 21), содержащая состояния М, и D, где состояния М и I могут быть суммированы (состояния D можно игнорировать на этом этапе, так как они уже выполнили свою функцию при обработке расчетов вверху), чтобы получить конечное суммарное значение, которое может быть единственной вероятностью, оценивающей для каждого индекса рида и гаплотипа вероятность наблюдения рида, например, в предположении, что гаплотип был действительно взят из исходной ДНК.
[00334] В частности, результатом обработки матрицы 30, например, изображенной на ФИГ. 7, может быть одно значение, представляющее вероятность того, что рид является фактическим представлением данного гаплотипа. Эта вероятность представляет собой значение между 0 и 1 и получается путем суммирования всех состояний М и I с нижней строки ячеек в матрице 30 НММ. По существу оценивается именно возможность того, что произошла какая-то ошибка в секвенаторе или соответствующих методах приготовления ДНК перед секвенированием, приведшая к неправильному возникновению несовпадения, инсерции или делеции в риде, в действительности отсутствующих в генетической последовательности субъекта. В таком случае рид не является истинным отражением фактической ДНК субъекта.
[00335] Следовательно, учитывая такие производственные ошибки, можно определять, что в действительности представляет любой данный рид относительно гаплотипа, что позволяет системе лучше определять, как генетическая последовательность субъекта, например, в целом, может отличаться от референсной последовательности. Например, можно сравнивать множество гаплотипов с множеством последовательностей считывания, формируя оценки для всех них и определяя на основе того, какие совпадения имеют лучшие оценки, какова действительная идентичности геномной последовательности индивида, и/или как она в действительности отличается от референсного генома.
[00336] Более конкретно, на ФИГ. 8 изображена увеличенная часть матрицы 30 состояний НММ, показанной на ФИГ. 7. Как показано на ФИГ. 8, при данном внутреннем составе каждой ячейки в матрице 30, как и структуре матрицы в целом, вероятность состояний М, I и D для любой данной «новой» рассчитываемой ячейки зависит от состояний М, I и D нескольких окружающих ее соседей, которые уже рассчитаны. В частности, как более подробно показано на ФИГ. 1 и 16, в примере конфигурации вероятность переход из состояния совпадения в другое состояние совпадения может составлять приблизительно 0,9998, а вероятность перехода из состояния совпадения в состояние инсерции или делеции, например, с гэпом, (штраф на открытие гэпа) составляет только 0,0001. Кроме того, при пребывании в состоянии гэпа вследствие инсерции или в состоянии гэпа вследствие делеции вероятность остаться в состоянии гэпа (штраф на продление или продолжение) может составлять лишь 0,1, тогда как вероятность возврата в состояние совпадения составляет 0,9. Необходимо отметить, что в соответствии с этой моделью все вероятности входа в данное состояние или выхода из него в сумме должны давать единицу. В частности, обработка матрицы 30 вращается вокруг расчета вероятностей перехода с учетом различных штрафом на открытие гэпа или продолжение гэпа, в конце рассчитывают сумму.
[00337] Следовательно, эти рассчитанные вероятности перехода в состояния получают главным образом их непосредственно примыкающих ячеек в матрице 30, например, из ячеек, которые находятся непосредственно слева, сверху и слева по диагонали от данной рассчитываемой ячейки, как показано на ФИГ. 16. Кроме того, вероятности перехода в состояния могут частично получать из оценки качества «Phred», которая прилагается к каждому основанию рида. Поэтому данные вероятности перехода полезны при вычислении значений состояний М, I и D для конкретной ячейки и, аналогичным образом, для любой связанной новой рассчитываемой ячейки. Необходимо отметить, что, как описано в настоящем документе, штрафы на открытие гэпа и продолжение гэпа могут быть фиксированными значениями, однако в различных случаях штрафы на открытие гэпа и продолжение гэпа могут быть переменными и, следовательно, могут быть запрограммированы в системе, хотя и с использованием дополнительных аппаратных ресурсов, специально предназначенных для определения таких расчетов переменной вероятности перехода. Такие случаи могут быть полезны, если требуется повышенная точность. Тем не менее, когда такие значения предполагаются постоянными, можно уменьшить использование ресурсов и/или размер микросхемы, что приводит к повышению скорости обработки, как объяснено ниже.
[00338] Соответственно, при получении каждого нового значения состояния М, I и D используют множество расчетов и/или других математических операций, таких как умножения и/или сложения. В таком случае, чтобы максимально увеличить пропускную способность расчета, примитивные математические операции, используемые при каждом расчете состояния перехода М, I и D, можно организовать в виде конвейера. Такая конвейерная организация может быть выполнена таким образом, чтобы соответствующие тактовые частоты были высокими, но при этом глубина конвейера могла быть нетривиальной. Кроме того, такой конвейер можно выполнить таким образом, чтобы он имел конечную глубину, и в таких случаях для выполнения операций может потребоваться более одного тактового цикла.
[00339] Например, эти вычисления могут выполняться при высоких скоростях внутри процессора 7, например, около 300 МГц. Этого можно достичь путем тщательной конвейерной организации FPGA или ASIC с помощью регистров, чтобы между каждым триггерным переключением производилось мало математических операций. Эта структура конвейера приводит к множеству циклов задержки при переходе от ввода состояния совпадения до вывода, но при данной обратной диагональной структуре вычисления, показанной на ФИГ. 7 выше, эти задержки могут быть скрыты по всей матрице 30 НММ, например, когда каждая ячейка представляет один тактовый цикл.
[00340] Следовательно, количество расчетов состояний М, I и D может быть ограничено. В таком случае движок 13 обработки может быть выполнен таким образом, чтобы группировка, например, полоса 35 захвата, ячеек во множестве строк матрицы 30 могла быть обработана как группа (например, по диагонали вниз влево, как показано на ФИГ. 7), прежде чем переходить к обработке второй полосы захваты ниже, например, когда вторая полоса захвата содержит такое же количество подлежащих обработке ячеек в строках, что и первая. Подобным образом аппаратная реализация ускорителя 8, описанная в настоящем документе, может быть выполнена с возможностью повышения общей эффективности системы, как описано выше.
[00341] В частности, на ФИГ. 9 показан пример вычислительной структуры для выполнения различных расчетов состояний, описанных в настоящем документе. Более конкретно, на ФИГ. 9 показаны три специализированных логических блока 17 движка 13 обработки для производства вычислений состояний, используемых при формировании каждого значения состояния М, I и D для каждой конкретной ячейки или группировки ячеек, обрабатываемой в матрице 30 НММ. Эти логические блоки могут быть реализованы в аппаратном обеспечении, но в некоторых случаях могут быть реализованы в программном обеспечении, например, выполняемом одной или более квантовыми схемами. Как показано на ФИГ. 9, вычисление 15а состояния совпадения задействует больше операций, чем вычисления 15b инсерции или 15 с делеции, поскольку при расчете 15а состояния совпадения текущей обрабатываемой ячейки текущее вычисление совпадения включает в себя все предыдущие состояния совпадения, инсерции и делеции примыкающих ячеек наряду с различными данными «Prior» (см. ФИГ. 9 и 10), тогда как расчеты состояний инсерции и делеции включают в себя только состояния совпадения и либо инсерции, либо делеции, соответственно. Поэтому, как показано на ФИГ. 9, при расчете состояния совпадения используют три умножителя состояний, а также два сумматора и, наконец, конечный умножитель, который учитывает значение Prior, например, Phred. Однако при расчете состояния I или D задействуют только два умножителя и один сумматор. Следует отметить, что в аппаратном обеспечении умножители более ресурсоемкие, чем сумматоры.
[00342] Соответственно, в различной степени значения состояний М, I и D для обработки каждой новой ячейки в матрице 30 НММ используют знание или предварительное вычисление следующих значений, таких как «предыдущие» значения состояний М, I и D слева, сверху и/или по диагонали слева и выше текущей вычисляемой ячейки в матрице НММ. Кроме того, такие значения, представляющие предыдущую информацию или значения «Prior», могут быть, по меньшей мере частично, основаны на оценке качества «Phred» и зависеть от того, совпадают ли основание рида и основание референса в данной ячейке в матрице 30, или они разные. Такая информация особенно полезна при определении состояния совпадения. А именно, как показано на ФИГ. 9, в таких случаях в основном существуют семь «вероятностей перехода» (из М в М, из I в М, из D в М, из I в I, из М в I, из D в D и из М в D), которые указывают и/или оценивают вероятность наблюдения открытия гэпа, например, наблюдения перехода из состояния соответствия в состояние инсерции или делеции; наблюдения закрытия гэпа, например, перехода из состояния инсерции или делеции обратно в состояние совпадения; и наблюдения следующего состояния, остающегося в прежнем состоянии, например, из соответствия в соответствие, из инсерции в инсерцию, из делеции вделецию.
[00343] Значения состояния (например, в любой ячейке, подлежащей обработке в матрице 30 НММ), значения Prior и вероятности перехода являются значениями в диапазоне
[0,1]. Кроме того, известны также начальные условия для ячеек, которые находятся слева и правя по краям матрицы 30 НММ. Как видно из логики 15а на ФИГ. 9, существуют четыре операции умножения и две операции сложения, которые могут быть использованы при расчете конкретного состояния М, определяемого для любой данной обрабатываемой ячейки. Аналогичным образом, как видно из логик 15b и 15с, при расчете каждого состояния I и каждого состояния D, соответственно, используют два умножения и одно сложение. В совокупности вместе с умножителем предварительных данных это дает в сумме восемь операций умножения и четыре операции сложения для расчетов состояний М, I и D каждой одной ячейки матрицы 30 НММ, подлежащей обработке.
[00344] Результат заключительного суммирования, например, строки 34 на ФИГ. 16, вычисления матрицы 30, например, для одного задания 20 сравнения одного рида с одним или двумя гаплотипами, представляет собой сумму окончательных состояний М и I по всей нижней строке 34 матрицы 30, которая является суммарным окончательным значением, выводимым из ускорителя 8 НММ и подаваемым в ЦПУ/ГПУ/КПУ 1000. Данное окончательное суммарное значение представляет, насколько хорошо рид совпадает с гаплотипом (-ами). Это значение является вероятностью, например, меньше единицы, для отдельного задания 20а, которая затем может быть сравнена с выходным результатом другого задания 20b, например, относящегося к той же самой активной области 500. Следует отметить, что существуют порядка 20 триллионом ячеек НММ, которые нужно оценить в «типичном» геноме человека с 30-кратным покрытием, причем эти 20 триллионов ячеек НММ распределены по от 1 до 2 миллиардов матриц 30 НММ всего соответствующего задания 20 НММ.
[00345] После этого результаты таких расчетов могут быть сравнены друг с другом, чтобы более точно определить, например, путем сравнения оснований одного за другим, как генетическая последовательность субъекта отличается от последовательности одного или более референсных геномов. Для заключительного расчета суммы можно повторно использовать сумматор, который уже применялся для расчета состояний М, I и/или D отдельных ячеек, чтобы вычислить окончательное суммарное значение, например, путем включения мультиплексора в выбор повторно используемых сумматоров, тем самым включая одну последнюю дополнительную строку, например, к времени расчета, в матрицу, чтобы она рассчитывала эту окончательную сумму, что в случае рида длиной в 100 оснований приводит к непроизводственным затратам ресурсов около 1%. В альтернативных вариантах реализации для выполнения таких расчетов можно использовать специально предназначенные аппаратные ресурсы. В различных случаях логика сумматоров для расчета состояний М и D может быть использована для расчета окончательной суммы, причем сумматор состояния D может быть эффективно применен таким образом, чтобы он не использовался иным образом в заключительной обработке, приводящей к суммарным значениями.
[00346] В определенных случаях эти расчеты и соответствующие процессы могут быть выполнены с возможностью соответствия выходу данной платформы секвенирования, например, содержащей множество секвенаторов, который в совокупности могут быть в состоянии вывода (в среднем) нового генома человека с 30-кратным покрытием каждые 28 минут (хотя они выходят из множества секвенаторов группами примерно по 150 геномов раз в три дня), В таких случаях, когда текущие операции картирования, выравнивания и определения вариантов выполнены с возможностью вписывания в такую платформу секвенирования технологий обработки, часть из 28 минут (например, около 10 минут), которую занимает секвенирование генома кластером секвенирования, может быть использована соответствующим образом сконфигурированным средством картирования и/или выравнивателем, как описано в настоящем документе, для получения результаты файла изображения /BCL/FASTQ из секвенатора и выполнения этапов картирования и/или выравнивания генома, например, последующей обработки после секвенатора. В результате остается около 18 минут периода времени секвенирования для выполнения этап определения вариантов, основной вычислительной частью которого является операция НММ, например, до того, как секвенатор нуклеотидов секвенирует следующий геном, например, в течение следующих 28 минут. Соответственно, в таких случаях 18 минут могут быть выделены на вычисление 20 триллионов ячейке НММ, которые нужно обработать в соответствии с обработкой генома, например, когда обработка ячеек НММ включают в себя около двенадцати операций (например, восемь операций умножения и/или четыре операции сложения). Такая пропускная способность делает возможной следующую вычислительную динамику (20 триллионов ячеек НММ) × (12 математических операций на ячейку)/(18 минут × 60 секунд/минуту), что дает пропускную способность около 222 миллиардов операций в секунду при непрерывной работе.
[00347] На ФИГ. 10 показаны логические блок 17 движка обработки, приведенного на ФИГ. 9, в том числе схемы обновления состояний М, I и D, которые представляют упрощение схемы, приведенной на ФИГ. 9. Система может быть выполнена с возможностью неограничения памяти, чтобы один экземпляр 13 движка НММ (например, который вычисляет все одиночные ячейки в матрице 30 НММ со скоростью одна ячейка за тактовый цикл, в среднем, плюс непроизводственные затраты ресурсов) мог быть дублирован множество раз (по меньшей мере 65~70 раз, чтобы добиться эффективной пропускной возможности, как описано выше). Тем не менее, чтобы свести к минимуму размер аппаратного обеспечения, например размер микросхемы 2 и/или использование связанных с ней ресурсов и/или предпринять дальнейшую попытку включить на микросхему 2 столько экземпляров 13 движка НММ, сколько требуется и/или возможно, можно внести упрощения в логические блоки 15а'-с' экземпляра обработки 13 для вычисления одной или более вероятностей перехода, которые нужно рассчитать.
[00348] В частности, можно предположить, что штраф на открытие гэпа (GOP) и штраф на продолжение гэпа (GCP), как описано выше, например, для инсерций и делеций, одинаковые и известны заранее конфигурации микросхемы. Данное упрощение означает, что вероятности перехода из I в М и из D в М идентичны. В таком случае один или более умножителей, например, показанных на ФИГ. 9, могут быть устранены, например, предварительным сложением состояний I и D перед умножением на общую вероятность перехода из индела в М. Например, в различных вариантах, если расчеты состояний I и D предполагаются одинаковыми, то расчеты состояний для ячейки можно упростить, как показано на ФИГ. 10. В частности, если значения состояний I и D одинаковые, то состояние I и состояние D можно сложить, а затем сумму умножить на одно значение, тем самым сэкономив умножение. Это можно сделать, поскольку, как показано на ФИГ. 10, штраф на продолжение и/или закрытие гэпа для состояний I и D одинаковые. Однако, как указано выше, система может быть выполнена с возможностью расчета разных значений вероятностей переходов для обоих состояний I и D, и в таком случае данное упрощение не будет использоваться.
[00349] Кроме того, в дальнейшем описании вместо того, чтобы специально предназначенная схема или другие вычислительные ресурсы, выполненные определенным образом с возможностью выполнения заключительной операции суммирования внизу матрицы НММ, настоящий ускоритель 8 НММ может быть выполнен с возможностью эффективного присоединения одной или более дополнительных строк к матрице 30 НММ сточки зрения вычислительного времени, например, непроизводственных затрат ресурсов, которое он тратит на выполнение расчета, и может также быть выполнен с возможностью «одалживать» один или более сумматоров из логики вычисления 15а М-состояния и 15с D-состояния, например, путем мультиплексирования в окончательных суммарных значений в существующие сумматоры по мере надобности для выполнения фактического окончательного расчета суммирования. В таком случае заключительная логика, включающая блоки логики 15а М-состояния, логики 15b I-состояния и логики 15с D-состояния, которые вместе образуют часть экземпляра 17 MID НММ, может содержать 7 умножителей и 4 сумматора наряду с различным задействуемым мультиплексированием.
[00350] Соответственно, на ФИГ. 10 показаны схемы 15а', 15b' и 15с' обновления состояний М, I и D с учетом упрощающих допущений в отношении вероятностей перехода, а также с учетом совместного использования различных ресурсов М, I и/или D, например, ресурсов сумматоров, для заключительных операций суммирования. Кроме того, к блоку вычисления М-состояния может быть добавлен блок задержки в путь М-состояния, как показано на ФИГ. 10. Эта задержка может быть добавлена для компенсации задержек в фактической аппаратной реализации операций умножения и сложения и/или для упрощения логики управления, например, 15.
[00351] Как показано на ФИГ. 9 и 10, эти соответствующие умножители и/или сумматоры могут быть умножителями и сумматорами с плавающей запятой. Однако в различных случаях, как показано на ФИГ. 11, может быть реализована конфигурация логарифмической области, где в такой конфигурации все умножители превращаются в сумматоры. На ФИГ. 12 показано, как выглядели расчеты в логарифмической области, если все умножители превратились бы в сумматоры, например, 15а'', 15b'' и 15с'', как это происходит при использовании вычислительной конфигурации логарифмической области. В частности, вся логика умножителей превращается в сумматор, но сам сумматор превращается или иным образом включает в себя функцию, такую как: f(a,b)=max(a,b)-log2(1+2^(-[a-b])), например, когда логарифмическая часть уравнения может поддерживаться в LUT, глубина и физический размер которой определяются требуемой точностью.
[00352] При типичных длинах последовательностей рида и гаплотипа и значениях, обычно наблюдаемых для оценок качества (Phred) и соответствующих вероятностей перехода, требования к динамическому диапазону значений состояний НММ могут быть довольно серьезными. Например, при реализации модуля НММ в программном обеспечении различные задания 20 НММ могут приводить к неполному выполнению, например, при реализации на значениях состояний одинарной (32-битовой) точности с плавающей запятой. Это означает динамический диапазон, который больше 80 степеней 10, и поэтому требует повышения программного обеспечения определения вариантов до работы со значениями состояний двойной (64-битовой) точности с плавающей запятой. Однако полное 64-битовое представление двойной точности с плавающей запятой во многих случаях имеет некоторые отрицательные последствия, например, если должны быть реализован высокоскоростное аппаратное обеспечение, нужно будет повысить требования к памяти и ресурсам вычислительного конвейера, тем самым занимая больше места на микросхеме и/или замедляя согласование по времени. В таких случаях может быть реализовано представление чисел в линейной области только с фиксированной запятой. Тем не менее, требования по динамическому диапазону к значениям состояний в данном варианте реализации делают битовые ширины в определенных обстоятельствах менее желательными. Соответственно, в таких случаях может быть реализовано представление чисел в логарифмической области только с фиксированной запятой, как описано в настоящем документе.
[00353] В такой схеме, как показано на ФИГ. 11, вместо представления в памяти и вычисления фактического значения состояния может быть представлен -log по основанию 2. Это может дать несколько преимуществ, в том числе использование операций умножения в линейном пространстве, которое переводит в операции сложения в логарифмическое пространстве; и/или данное представление чисел в логарифмической области по своей природе поддерживает более широкий динамический диапазон лишь при небольшом увеличении количества целочисленных битов. Эти расчеты обновлений состояний М, I, D в логической области показаны на ФИГ. 11 и 12.
[00354] Как можно заметить при сравнении конфигурации логики 17 на ФИГ. 11 и ФИГ. 9, операции умножения исчезают в логарифмической области. Вернее, они заменяются операциями сложения, а операции сложения преобразуются в функцию, которая может быть выражена как операция максимума с последующим добавлением поправочного коэффициента, например, посредством LUT, где поправочный коэффициент является функцией от разницы между двумя значениями, суммируемыми в логарифмической области. Такой поправочный коэффициент может быть либо вычислен, либо сформирован из таблицы подстановки. Что эффективнее использовать, вычисление поправочного коэффициента или реализация его с помощью таблицы подстановки, зависит от требуемой точности (битовой ширины) разницы между значениями суммы. Поэтому в конкретных случаях количество битов для представления состояния в логарифмической области может быть примерно от 8 до 12 целочисленных битов плюс от 6 до 24 битов для дробных битов в зависимости от требуемого уровня качества для любой данной реализации. Это означает где-то от 14 до 36 битов всего для представления значения состояния в логарифмической области. Кроме того, было определено, что существуют представления с фиксированной запятой в логарифмической области, которые могут обеспечивать приемлемое качество и приемлемые размер и скорость аппаратного обеспечения.
[00355] В различных случая для каждого задания 20 НММ обычно обрабатывают одну последовательность рида, что, как было указано, может включать в себя сравнение с двумя последовательностями гаплотипа. Аналогично вышесказанному в отношении памяти гаплотипа, в памяти 18 последовательности рида тоже может быть использована структура с попеременным переключением, чтобы обеспечить различным программно реализованным функциям возможность записи информации нового задания 20b НММ в то время, когда текущее задание 20b все еще выполняется экземпляром 13 движка НММ. Следовательно, в качестве памяти для хранения последовательности рида может потребоваться одна память 1024×32 с двумя портами (например, один порт для записи, один порт для чтения, и/или отдельные тактовые генераторы для портов записи и чтения).
[00356] В частности, как описано выше, в различных случаях архитектура, используемая системой 1 выполнена с возможностью формирования виртуальной матрицы 30 при определении того, совпадает ли данное основание в секвенированном геноме образца с соответствующим основанием в одном или более референсных геномах, где референсный геном теоретически расположен по горизонтальной оси, тогда как секвенированные последовательности, представляющие геном образца, теоретически расположены в порядке убывания вдоль вертикальной оси. Следовательно, при выполнении расчета НММ движка 13 обработки НММ, который описан в настоящем документе, выполнен с возможностью прохождения этой виртуальной матрицы 30 НММ. Такая обработка может быть изображена как на ФИГ. 7, когда полоса 35 захвата движется по диагонали виз и поперек виртуального массива, выполняя различные расчеты НММ для каждой ячейки виртуального массива, как показано на ФИГ. 8.
[00357] Более конкретно, данный теоретический проход подразумевает обработку первой группировки строк ячейки 35а из матрицы 30 во всей ее полноте, например, для всех оснований гаплотипа и рида в пределах группировки, прежде чем переходить вниз к следующей группировке строк 35b (например, к следующей группе оснований рида). В таком случае значения состояний М, I и D для первой группировки сохраняют на нижнем крае этой первоначальной группировки строк, чтобы эти значения состояний М, I и D могли быть затем использованы для подачи верхней строки следующей группировки (полосы захвата) вниз в матрице 30. В различных случаях система 1 может быть выполнена с возможностью обеспечения подачи в ускоритель 8 НММ гаплотипов и/или ридов длиной до 1008, и так как числовое представление использует W-битов для каждого состояния, это вытекает в память размером 1008 слов × W битов для хранения состояний М, I и D.
[00358] Соответственно, как было указано, такая память может быть памятью с одним портом или с двумя портами. Кроме того, может быть также предусмотрена сверхоперативная память уровня кластера, например, для хранения результатов границы полосы захвата. Например, в соответствии с вышеизложенным описанием обсуждаемые памяти уже сконфигурированы для каждого экземпляра 13 движка. В конкретных реализациях НММ множество экземпляров 13a-(n+1) движков могут быть сгруппированы в кластер 11, который обслуживается одним соединением, например, шиной 5 PCIe, с интерфейсом 4 PCIe и 3 DMA посредством 9 CentCom. Чтобы более эффективно использовать полосу пропускания PCIe с помощью существующих функциональных возможностей CentCom 9, можно создать множество экземпляров кластеров 11a-(n+1).
[00359] Следовательно, в типичной конфигурации в пределах кластера 11n создают где-то от 16 до 64 экземпляров движков 13m, а в типичной реализации модуля 8 НММ на FPGA/ASIC могут быть созданы от одного до четырех кластеров (например, в зависимости оттого, является ли это специально предназначенной для НММ FPGA для обработки изображений, или должна ли НММ делить полезную площадь FPGA с секвенатором/сопоставителем/выравнивателем и/или другими модулями, как описано в настоящем документе). В конкретных случаях на уровне кластера 11 в аппаратном обеспечении НММ может быть небольшой объем используемой памяти. Эта память может быть использована в качестве эластичной памяти «первым пришел, первым обслужен» («FIFO») для сбора выходных данных из экземпляра 13 движка НММ в кластере и передачи их на CentCom 9 для дальнейшей передачи обратно в программное обеспечение на ЦПУ 1000 посредством интерфейса 3 DMA и 4 PCIe. Теоретически эта FIFO может быть очень маленькой (порядка двух 32-битовых слов), поскольку, как правило, после поступления FIFO данные почти сразу же передаются в 9 CentCom. Однако для поглощения потенциальных разрывов на пути выходных данных размер этой памяти FIFO может быть параметризуемым. В конкретных случаях FIFO может использоваться с глубиной в 512 слов. Таким образом, требованием к памяти уровня кластера может быть одна память 512×32 с двумя портами (отдельные порты чтения и записи, одна и та же тактовая область).
[00360] На ФИГ. 12 приведены различные переходы 17b состояний НММ, изображающие взаимосвязь между штрафами на открытие гэпа (GOP), штрафами на продление гэпа (GCP) и вероятностями перехода, участвующими в определении того, совпадает ли данная последовательность рида с конкретной последовательностью гаплотипа, и насколько. При выполнении такого анализа движка 13 НММ содержит по меньшей мере три логических блока 17b, таких как логический блок 15а для определения состояния совпадения, логический блок 15b для определения состояния инсерции и логический блок 15с для определения состояния делеции. Эти логики 17 для расчета состояний М, I и D при надлежащей конфигурации функционируют эффективно во избежание узких мест с широкой полосой пропускания, например, с потоком вычислений НММ. Однако после того, как базовая архитектура вычисления М, I, D определена, можно также сконфигурировать и реализовать другие улучшения системы, чтобы избежать образования других узких мест в системе.
[00361] В частности, система 1 может быть выполнена с возможностью максимального повышения эффективности подачи информации из ядра 1000 компьютера в модуль 2 определителя вариантов и обратно, чтобы не создавать узких мест, которые могли бы ограничить общую пропускную способность. Одним из таких блоков, который снабжает логику 17 расчета состояний М, I, D ядра НММ, является блок вычисления вероятностей перехода и предварительных данных. Например, как показано на ФИГ. 9, каждый тактовый цикл использует представление семи вероятностей перехода и одно значение Prior на входе в блок 15а вычисления состояний М, I, D. Однако после упрощений, которые приводят к архитектуре, приведенной на ФИГ. 10, для каждого цикла на входе блока вычисления состояний М, I, D используются только четыре уникальные вероятности перехода и одно значение Prior. Соответственно, в различных случаях эти расчеты могут быть упрощены и могут быть сформированы результирующие значения. Таким образом достигаются повышение пропускной способности, эффективности и снижение возможности формирования узких мест на этой стадии процесса.
[00362] Кроме того, как описано выше, значения Prior являются значениями, формируемыми с использованием качества рида, например, оценки Phred, конкретного основания для текущей оцениваемой ячейки в виртуальной матрице 30 НММ. Эту взаимосвязь можно описать с помощью следующих уравнений: Во-первых, исследуемого рида Phred можно выразить как вероятность=10^(-(Phred рида/10)). Затем можно вычислить Prior в зависимости от того, совпадает ли основание рида с основанием гипотетического гаплотипа: Если основание рида и основание гипотетического гаплотипа совпадают: Prior=1-Phred рида, выраженную как вероятность. В противном случае: Prior=(Phred рида, выраженная как вероятность)/3. Операция деления на три в этом последнем уравнении отражает тот факт, что существуют только четыре возможных основания (А, С, G, Т). Следовательно, если основание рида и основание гаплотипа не совпали, значит совпасть должно одно из трех оставшихся оснований, и каждую из трех вероятностей моделируют как одинаково правдоподобную.
[00363] Оценки Phred для каждого основания подают в аппаратный ускоритель 8 НММ в виде 6-битовых значений. Поэтому уравнения для значений Prior имеют 64 возможных результата для случая «совпадение» и 64 возможных результата для случая «несовпадение». Это можно эффективно реализовать в аппаратном обеспечении в виде таблицы подставки размером в 128 слов, где адрес в таблице подстановки представляет собой 7-битовую величину, образованную путем конкатенации значения Phred с одним битом, который указывает, совпадает ли основание рида с основание гипотетического гаплотипа или нет.
[00364] Кроме того, что касается определения вероятностей перехода совпадения в инсерцию и/или совпадения в делецию, в различных вариантах реализации архитектуры для аппаратного ускорителя 8 НММ можно определить отдельные штрафы на открытие гэпа (GOP) для перехода состояния из совпадения в инсерцию и перехода из совпадения в делецию, как указано выше. Это равносильно тому, что значениям M2I и M2D на диаграмме переходов состояний, изображенной на ФИГ. 12, различаются. Поскольку значения GOP получают из аппаратного ускорителя 8 НММ в виде 6-битовых значений типа Phred, вероятности перехода в состояние открытия гэпа могут быть вычислены в соответствии со следующими уравнениями: Вероятность перехода M2I=10^(-(GOP(I) рида/10)) и вероятность перехода M2D=10^(-(GOP(D) рида/10)). Аналогично получению значений Prior в аппаратном обеспечении для получения значений M2I и M2D можно использовать простую таблицу подставки размером в 64 слова. Если GOP(I) и GOP(D) вводят в аппаратный ускоритель 8 НММ как потенциально разные значения, то можно использовать две такие таблицы подстановки (или одну таблицу подстановки с совместным использованием ресурсов, потенциально работающую с удвоенной тактовой частотой по сравнению с остальной схемы).
[00365] Кроме того, что касается определения вероятностей перехода совпадения в совпадение, в различных случаях вероятность перехода из совпадения в совпадение можно рассчитать следующим образом: Вероятность перехода М2М=1-(вероятность перехода M2I+вероятность перехода M2D). Если вероятности перехода M2I и M2D могут быть сконфигурированы так, чтобы быть меньшими или равными значению то в различных вариантах реализации приведенное выше уравнение может быть реализовано в аппаратном оборудовании таким образом, чтобы повысить общую эффективность и пропускную способность, например за счет переработки уравнения: Вероятность перехода М2М=(0,5-вероятность перехода M2I)+(0,5-вероятность перехода M2D). Эта перезапись уравнения позволяет получать М2М с использованием двух 64-элементных таблиц подстановки с последующим сумматором, где таблицы подстановки хранят результаты.
[00366] Более того, что касается определения вероятностей перехода инсерции в инсерцию и/или делеции в делецию, вероятности перехода I2I и D2D являются функциями от значений вероятности продолжения гэпа (GCP), вводимых в аппаратный ускоритель 8 НММ. В различных случаях эти значения GCP могут быть 6-битовыми значениями типа Phred, присваеваемыми каждому основанию рида. Значения I2I и D2D могут быть получены следующим образом: Вероятность перехода I2I=10^(-(GCP(I) рида/10)) и вероятность перехода D2D=10^(-(GCP(D) рида/10)). Аналогично некоторым другим вероятностям перехода, рассмотренным выше, значения I2I и D2D могут быть эффективно реализованы в аппаратном обеспечении и могут включать две таблицы подстановки (или одну таблицу подстановки с совместно используемыми ресурсами), например, в той же форме и с таким же контекстом, что и таблицы подставки перехода из совпадения к инделу, рассмотренные выше. То есть, каждая таблица постановки имеет 64 слова.
[00367] Кроме того, что касается определения вероятностей перехода инсерции и/или делеции в совпадение, вероятности перехода I2M и D2M являются функциями от значений вероятности продолжения гэпа (GCP), которые можно вычислить следующим образом: Вероятность перехода I2M=1-вероятность перехода I2I и вероятность перехода D2M=1-вероятность перехода D2D, где вероятности перехода I2I и D2D могут быть получены, как обсуждалось выше. Простая операция вычитания для реализации вышеуказанных уравнений может быть более дорогой по аппаратным ресурсам, чем просто реализация другой состоящей из 64 слов таблицы подстановки и использование двух ее экземпляров для реализации получения I2M и D2M. В таких случаях каждая таблица постановки имеет 64 слова. Конечно, во всех соответствующих вариантах реализации простые и сложные операции могут формироваться с помощью программного обеспечения, сконфигурированного подходящим образом.
[00368] На ФИГ. 13 приведена электрическая схема 17а для упрощенного расчета вероятностей перехода НММ и значений Prior, как описано выше, которая поддерживает общую диаграмму переходов состояний, изображенную на ФИГ. 12. Как показано на ФИГ. 13, в различных случаях представлена простая архитектура 17а программного ускорителя, причем ускоритель может быть выполнен с возможностью включения отдельных значений GOP для переходов инсерции и делеции и/или в ней могут быть отдельные значения GCP для переходов инсерции и делеции. В таком случае стоимость формирования семи уникальных вероятностей перехода и одного значения Prior за каждый тактовый цикл может быть сконфигурирована таким образом, как указано ниже: восемь таблиц подстановки по 64 слова, одна таблица подстановки на 128 слов и один сумматор.
[00369] Кроме того, аппаратное обеспечение 2, которое представлено в настоящем документе, может быть выполнена с возможностью вмещения стольких экземпляров 13 движка НММ, сколько возможно поместить на целевую микросхему (такую как FPGA, sASIC или ASIC). В таком случае стоимость реализации логики 17а формирования вероятностей перехода и значений Prior может быть существенно снижена относительно стоимостей, которые обеспечиваются приведенными ниже конфигурациями. Во-первых, вместо поддержки более общей версии переходов состояний, таких как показаны на ФИГ. 13, например, где могут быть отдельные значения для GOP(I) и GOP(D), в различных случаях можно предполагать, что значения GOP для инсерции и делеции одинаковые для данного основания. Это приводит к нескольким упрощениям аппаратного обеспечения, как указано выше.
[00370] В таких случаях можно использовать только одну таблицу подстановки объемом 64 слова для формирования значения М2Индел, заменяющего оба значения вероятности M2I и M2D, тогда как в более общем случае, как правило, используют две таблицы. Аналогичным образом для формирования значения вероятности перехода М2М можно использовать только одну таблицу подстановки объемом 64 слова, тогда как в общем случае могут использоваться две таблицы и сумматор, поскольку М2М может быть теперь рассчитано как 1-2×М2Индел.
[00371] Во-вторых, можно сделать допущение, что зависимое от секвенатора значение GCP как для инсерции, так и для делеции, одинаковое, И что это значение не изменяется в течение задания 20 НММ. Это означает, что: вместо отдельных значений I2I и D2D можно рассчитать одну вероятность перехода из индела в индел с использованием таблицы подстановки объемом 64 слова вместо двух таблиц; и вместо отдельных значений I2M и D2M можно рассчитать одну вероятность перехода из индела в совпадение с использованием одной таблицы подстановки объемом 64 слова вместо двух таблиц.
[00372] Кроме того, можно сделать еще одно упрощающее допущение, которое предполагает, что значения из инсерции в инсерцию и из делеции в делецию (I2I и D2D) и от инсерции к совпадению и от делеции к совпадению (I2M и D2M) не только идентичны между переходами инсерции и делеции, но могут быть статическим для конкретного задания 20 НММ. Таким образом, всего в более общей архитектуре с вероятностями перехода I2I, D2D, I2M и D2M можно удалить четыре таблицы подстановки. В различных подобных случаях можно сделать так, чтобы статические вероятности из индела в индел и из индела в совпадение вводились посредством программного обеспечения или через параметр RTL (и чтобы их можно было программировать в двухпотоковом режиме в FPGA). В определенных случаях эти значения могут быть выполнены с возможностью двухпотокового программирования, и в определенных случаях может быть реализован режим тренировки, использующий тренировочную последовательность для дальнейшего улучшения точности вероятности перехода для данного прогона секвенатора или геномного анализа.
[00373] На ФИГ. 14 показано, как может выглядеть диаграмма новой логики 17b перехода состояния при реализации этих различных упрощающих допущений. А именно, на ФИГ. 14 показана упрощенная диаграмма переходов состояния НММ, изображающая взаимосвязи между GOP, GCP и вероятностями перехода с упрощениями, изложенными выше.
[00374] Аналогичным образом на ФИГ. 15 показана электрическая схема 17а, b для формирования вероятностей перехода и величин Prior НММ, которая поддерживает упрощенную диаграмму переходов состояний, изображенную на ФИГ. 14. На ФИГ 15 приведена реализация схемы данной диаграммы переходов. Таким образом, в различных случаях для аппаратного ускорителя 8 НММ стоимость формирования вероятностей переходов и Prior за каждый тактовый цикл сокращена на: две таблицы подстановки объемом 64 слова, одну таблицу подстановки объемом 128 слов.
[00375] Как указано выше, логика 15 управления движка выполнена с возможностью формирования виртуальной матрицы и/или прохода матрицы таким образом, чтобы достигать края полосы захвата, например, посредством высокоуровневых конечных автоматов, где результирующие данные могут быть окончательно суммированы, например, посредством логики 19 управления заключительным суммированием, и сохранены, например посредством логики put/get.
[00376] Соответственно, как показано на ФИГ. 16, в различных вариантах реализации предложен способ создания и/или прохождения матрицы 30 ячеек НММ. А именно, на ФИГ. 16 показан пример того, как логика 15 управления укорителем НММ проходит по виртуальным ячейкам в матрице НММ туда и обратно. Например, предположим для примера, что каждая операция умножения и сложения имеют задержку в 5 тактовых циклов, тогда худшая задержка расчетов обновления состояний М, I, D составит 20 тактовых циклов и будет иметь место при расчете обновления М. В расчетах обновления состояния I и D на половину меньше операций, то есть задержка для этих операций составляет 10 тактовых циклов.
[00377] Последствия задержки для операций вычисления М, I и D можно понять с помощь ФИГ. 16, на котором показаны различные примеры зависимостей данных между ячейками. В таких случаях информация о состоянии I, М и D данной ячейки подается в вычисления состояния D ячейки в матрице НММ, которая находится непосредственно справа (т.е. имеет то же самое основание рида, что и данная ячейка, но имеет следующее основание гаплотипа). Аналогичным образом информация о состоянии I, М и D данной ячейки подается в вычисления состояния I ячейки в матрице НММ, которая находится непосредственно ниже (т.е. имеет то же самое основание гаплотипа, что и данная ячейка, но имеет следующее основание рида). Поэтому в конкретных случаях состояния М, I и D текущей ячейки подаются в вычисления состояний D и I ячеек на следующей диагонали матрицы ячеек НММ.
[00378] Аналогичным образом состояния М, I и D данной ячейки подаются в вычисление состояния М ячейки, которая находится справа и снизу (т.е. имеет следующее основание гаплотипа И следующее основание рида). Эта ячейка фактически отдалена на две диагонали от ячейки, которую она снабжает (ввиду того, что расчеты состояний I и D опираются на состояния из ячейки, которая отдалена на одну диагональ). Это качество, когда расчеты состояний I и D, опирающихся на ячейки, отдаленные на одну диагональ, тогда как расчеты состояния М опираются на ячейки, отдаленные на две диагонали, благотворно влияет на разработку аппаратного обеспечения.
[00379] В частности, при таких конфигурациях расчеты состояний I и D могут быть выполнены с возможностью убыстрения вдвое (например, 10 циклов) по сравнению с расчетами состояния М (например, 20 циклов). Следовательно, если расчеты состояния М начинаются за 10 циклов до расчетов состояний I и D для той же ячейки, то вычисления состояний М, I и D для ячейки в матрице 30 НММ все завершатся одновременно. Кроме того, если проходить матрицу 30 по диагонали так, что полоса 35 захвата содержит примерно 10 ячеек (например, с охватом десяти оснований рида), то: Состояния М и D, создаваемые данной ячейкой в координатах (i, j), где i относится к гаплотипу, a j относится к риду, могут быть использованы в расчетах состояния D ячейки (i+1, j), как только они пройдут весь вычислительный конвейер ячейки (i, j).
[00380] Состояния М и I, создаваемые данной ячейкой в координатах (i, j), где i относится к гаплотипу, a j относится к риду, могут быть использованы в расчетах состояния I ячейки (i, j+1) через один тактовый цикл после того, как только они пройдут весь вычислительный конвейер ячейки (i, j). Аналогичным образом состояния М, I и D, создаваемые данной ячейкой в координатах (i, j), где i относится к гаплотипу, a j относится к риду, могут быть использованы в расчетах состояния М ячейки (i+1, j+1) через один тактовый цикл после того, как только они пройдут весь вычислительный конвейер ячейки (i, j). В своей совокупности вышеизложенное означает, что для состояний М, I и D вдоль диагонали полосы захвата, которая простирается на длину полосы захвата, например, десять оснований, требуется очень маленькая специализированная память. В таком случае требуются лишь регистры для задержки на один тактовый цикл значений М, I и D ячейки (i, j), чтобы использовать их в расчетах М в ячейке (i+1, j+1) М и в расчетах I в ячейке (i, j+1) за один тактовый цикл. Более того, все это происходит неким волшебным образом, так как расчеты состояния М для данной ячейки начинаются за 10 тактовых циклов до вычислений состояний I и D для этой же ячейки, что естественным образом приводит к одновременному выводу новых состояний М, I и D для любой данной ячейки.
[00381] Ввиду вышеизложенного, и как показано на ФИГ. 16, логика 15 управления ускорителем НММ может быть выполнена с возможностью обработки данных в каждой ячейке виртуальной матрицы 30 с прохождением матрицы. В частности, в различных вариантах реализации операции начинаются в ячейке (0,0), причем расчеты состояния М начинаются за 10 тактовых циклов до начала расчетов состояний I и D. Следующей ячейкой должна быть ячейка (1,0). Однако результаты расчетов состояний I и D из ячейки (0,0) будут доступны с задержкой в десять циклов после их начала. Поэтому аппаратное обеспечение вставляет девять «мертвых» циклов в вычислительный конвейер. Это показано в виде ячеек с индексом гаплотипа ниже нуля на ФИГ. 16.
[00382] По завершении мертвого цикла, который имеет эффективную позицию ячейки в матрице (-9,-9), значения состояний М, I и D для ячейки (0,0) доступны. После этого они (например, выводы состояний М и D ячейки (0,0)) могут быть сразу же использованы для вычислений состояния D ячейки (0,1). Спустя один тактовый цикл значения состояний М, I и D из ячейки (0,0) могут быть использованы для начала вычислений состояния I ячейки (0,1) и вычислений состояния М ячейки (1,1).
[00383] Следующей ячейкой для прохождения может быть ячейка (2,0). Однако результаты расчетов состояний I и D из ячейки (1,0) будут доступны с задержкой в десять циклов после их начала. Поэтому аппаратное обеспечение вставляет восемь «мертвых» циклов в вычислительный конвейер. Это показано в виде ячеек с индексом гаплотипа ниже нуля, как на ФИГ. 16 вдоль той же диагонали, где находятся ячейки (1,0) и (0,1). По завершении мертвого цикла, который имеет эффективную позицию ячейки в матрице (-8,-9), значения состояний М, I и D для ячейки (1,0) доступны. После этого они (например, выводы состояний М и D ячейки (1,0)) сразу же используются для вычислений состояния D ячейки (2,0).
[00384] Спустя один тактовый цикл значения состояний М, I и D из ячейки (1,0) могут быть использованы для начала вычислений состояния I ячейки (1,1) и вычислений состояния М ячейки (2,1). К тому же значения состояний М и D из ячейки (0,1) могут быть одновременно использованы для расчетов состояния D ячейки (1,1). Спустя один тактовый цикл значения состояний М, I и D из ячейки (0,1) используются для начала вычислений состояния I ячейки (0,2) и вычислений состояния М ячейки (1,2).
[00385] Теперь следующей ячейкой для прохождения может быть ячейка (3,0). Однако результаты расчетов состояний I и D из ячейки (2,0) будут доступны с задержкой в десять циклов после их начала. Поэтому аппаратное обеспечение вставляет семь «мертвых» циклов в вычислительный конвейер. Это опять же показано в виде ячеек с индексом гаплотипа ниже нуля на ФИГ. 16 вдоль той же диагонали, где находятся ячейки (2,0), (1,1) и (0,2). По завершении мертвого цикла, который имеет эффективную позицию ячейки в матрице (-7,-9), значения состояний М, I и D для ячейки (2,0) доступны. После этого они (например, выводы состояний М и D ячейки (2,0)) сразу же используются для вычислений состояния D ячейки (3,0). И, таким образом, начинается вычисление других десяти ячеек на диагонали.
[00386] Такая обработка может продолжаться до конца последней полной диагонали в полосе 35а захвата, что, в данном примере (с длиной рида 35 и длиной гаплотипа 14), произойдет после диагонали, которая начинается в ячейке с координатами гаплотипа и рида (13,0). После прохождения ячейки (4,9) на ФИГ. 16 следующей ячейкой для прохождения должна быть ячейка (13,1). Однако результаты расчетов состояний I и D из ячейки (12,1) будут доступны с задержкой в десять циклов после их начала.
[00387] Поэтому аппаратное обеспечение может быть выполнено с возможностью начала операций, связанных с первой ячейкой в следующей полосе 35 захвата, например, в ячейке с координатами (0, 10). После обработки ячейки (0, 10) может быть пройдена ячейка (13, 1). Затем проходят всю диагональ ячеек, начиная с ячейки (13, 1), пока не будет достигнута ячейка (5, 9). Аналогичным образом после прохождения ячейки (5, 9) следующей ячейкой для прохождения должна быть ячейка (13, 2). Однако, как и прежде, результаты расчетов состояний I и D из ячейки (12, 2) могут быть доступны с задержкой в десять циклов после их начала. Поэтому аппаратное обеспечение может быть выполнено с возможностью начала операций, связанных с первой ячейкой на второй диагонали следующей полосы 35b захвата, например, в ячейке с координатами (1, 10), за которой следует ячейка (0, 11).
[00388] После обработки ячейки (0, 11) может быть пройдена ячейка (13, 2) в соответствии со способами, описанными выше. Затем проходят всю диагональ 35 ячеек, начиная с ячейки (13, 2), пока не будет достигнута ячейка (6, 9). Кроме того, после прохождения ячейки (6, 9) следующей ячейкой для прохождения должна быть ячейка (13, 3). Однако и здесь результаты расчетов состояний I и D из ячейки (12, 3) могут быть доступны с периодом задержки в десять циклов после их начала. Поэтому аппаратное обеспечение может быть выполнено с возможностью начала операций, связанных с первой ячейкой на третьей диагонали следующей полосы 35с захвата, например, в ячейке с координатами (2, 10), за которой следуют ячейки (1, 11) и (0, 12) и т.п.
[00389] Это продолжается, как указано выше, до тех пор, пока не будет пройдена последняя ячейка в первой полосе 35а захвата (ячейка с координатами гаплотипа и рида (13, 9)), и в этот момент логика может полностью переключиться на прохождение второй диагонали во второй полосе 35b захвата, начиная с ячейки (9, 10). Схема, кратко описанная выше, повторяется столько раз, сколько полос захвата из 10 оснований потребуется, пока не будет достигнута нижняя полоса 35с захвата (в данном примере это ячейки, которые связаны с основаниями рида, имеющими индекс 30 или больше).
[00390] Внизу полосы 35 захвата может быть вставлено больше мертвых ячеек, как показано на ФИГ. 16, в качестве ячеек с индексами рида больше 35 и индексами гаплотипа больше 13. Кроме того, в заключительной полосе 35с захвата может быть фактически добавлена дополнительная строка ячеек. Эти ячейки указаны на линии 35 на ФИГ. 16 и относятся к специальному тактовому циклу, в котором происходят заключительные операции суммирования в каждой диагонали заключительной полосы захвата. В этих циклах складываются состояния М и I ячеек непосредственно вверху, и этот результат сам суммируется с текущей заключительной суммой (которая инициализируется нулем на левом крае матрицы 30 НММ).
[00391] В контексте вышесказанного и с учетом ФИГ. 16 можно отметить, что в данном примере с ридом длиной 35 и гаплотипом длиной 14 имеются 102 мертвых цикла, 14 циклов, связанных с заключительными операциями суммирования, и 20 циклов задержки конвейера, что в итоге дает 102+14+20=146 циклов непроизводственных затрат ресурсов. Также можно отметить, что любого задания 20 НММ с длиной рида более 10 мертвые циклы в верхнем левом углу ФИГ. 16 не зависят от длины рида. Кроме того, можно отметить, что мертвые циклы в нижней и нижней правой части ФИГ. 16 зависят от длины рида, причем минимальное количество мертвых циклов для ридов равно mod(длина рида, 10)=9, а минимальное количество мертвых циклов равно mod(длина рида, 10)=0. Также можно отметить, что процент циклов непроизводственных затрат ресурсов от общего количества циклов оценки матрицы 30 НММ уменьшается по мере увеличения длин гаплотипов (матрица больше при частично фиксированном количестве циклов непроизводственных затрат ресурсов) или по мере увеличения длин ридов (примечание: это касается процента непроизводственных затрат ресурсов, связанных с заключительным суммированием в матрице, снижаемым по мере увеличения разности между длиной рида и количеством строк). С помощью таких данных гистограммы из анализов репрезентативных полных геномов человека было установлено, что прохождение матрицы НММ описанным выше образом приводите к менее чем 10% непроизводственных затрат ресурсов для обработки полного генома.
[00392] Для сокращения количества циклов непроизводственных затрат ресурсов можно также использовать дополнительные способы, в том числе приведенные ниже. Наличие специализированной логики для заключительных операций суммирования вместо использования сумматоров совместно с логикой расчета состояний М и D. Этим устраняется одна строка матрицы 30 НММ. Использование мертвых циклов для начала операций матрицы НММ для следующего задания НММ в очереди.
[00393] Каждая группировка из десяти строк матрицы 30 НММ составляет «полосу 35 захвата» в функции ускорителя НММ. Следует отметить, что полоса захвата может быть увеличена или уменьшена для удовлетворения требований к эффективности и/или пропускной способности системы. Следовательно, длина полосы захвата может иметь длину от около пяти строк до менее чем около пятидесяти строк, скажем, от около десяти строк до около сорока пяти строк, например, от около пятнадцати или около двадцати строк до около сорока или около тридцати пяти строк, в том числе от около двадцати пяти строк до около тридцати строк.
[00394] С учетом исключений, отмеченных в разделе выше, относящиеся к циклам получения данных, которые иначе были бы мертвыми циклами на правом крае матрицы на ФИГ. 16, матрицу НММ можно обрабатывать по одной полосе захвата за раз. Как показано на ФИГ. 16, состояния ячеек в нижней строке каждой полосы 35а захвата подают в логику вычисления состояний в верхней строке следующей полосы 35b захвата. Следовательно, возможно, потребуется сохранять (put) и извлекать (get) информацию о состоянии для этих ячеек в нижней строке, или на крае, каждой полосы захвата.
[00395] Логика для выполнения этого, может включать в себя одно или более из следующего: по завершении вычислений состояний М, I и D для ячейки в матрице 30 НММ с mod(индекс рида, 10)=9 результат сохраняют в память для хранения состояний М, I, D. При начале вычислений состояний М и I (например, когда вычисления состояния D не требуют информации из ячеек сверху в матрице) для ячейки в матрице 30 НММ с ячейки с mod(индекс рида, 10)=0 извлекают ранее сохраненную информацию о состояниях М, I и D из соответствующего места в памяти для хранения состояний М, I, D. Следует отметить, что в этих случаях при подаче значений состояний М, I и D в строку 0 (верхнюю строку) вместо расчета состояний М и I в матрице 30 НММ использую просто заданное постоянное значение и его не нужно вызвать из памяти, что справедливо и в отношении значений состояний М и D, которые подают в столбец 0 (левый столбец) расчетов состояния D.
[00396] Как отмечено выше, ускоритель НММ может содержать или не содержать специализированные ресурсы для суммирования в аппаратном ускорителе НММ, который существует просто в целях заключительных операций суммирования. Однако, в конкретных случаях, как описано в настоящем документе, к нижней части матрицы 30 НММ может быть добавлена дополнительная строка, а тактовые циклы, связанные с этой дополнительной строкой, могут быть использованы для заключительных операций суммирования. Например, собственно суммирования можно достичь путем заимствования (например, как показано на ФИГ. 13) сумматора из логики вычисления состояния М для выполнения операции М+I, а также заимствования сумматора из логики вычисления состояния D для сложения вновь полученной суммы М+I с текущим накопленным значением заключительного суммирования. В таком случае логика управления, чтобы активировать операцию заключительного суммирования, может вклиниваться всякий раз, когда индекс рида, который направляет операцию прохождения НММ, равен длине последовательности рида, вводимой для задания. Эти операции можно наблюдать на линии 34 в направлении в низ матрицы 30 НММ, изображенной на ФИГ. 16.
[00397] Следовательно, как можно было заметить выше, в одной реализации определитель вариантов может использовать движки сопоставителя и/или выравнивателя для определения правдоподобия мест происхождения различных ридов, например, в отношении данного местоположения, такого как местоположение на хромосоме. В таких случаях определитель вариантов может быть выполнен с возможностью обнаружения лежащей в основе последовательности в этом местоположении, например, независимо от других областей, не примыкающих непосредственно к нему. Это, в частности, полезно и хорошо работает, когда интересующая область не похожа ни на никакую другую область генома на протяжении одного рида (ли пары ридов для секвенирования спаренных концов). Однако значительная часть генома человека не удовлетворяет этому критерию, что может создать проблемы с выполнением определения вариантов, например, с процессом реконструкции генома субъекта из ридов, полученных с помощью СНП.
[00398] В частности, хотя в секвенировании ДНК произошли громадные улучшения, определение вариантов остается трудной проблемой, по большей части вследствие избыточной структуры генома. Тем не менее, как описано в настоящем документе, сложности, представляемые избыточностью генома, можно преодолеть, по меньшей мере частично, с использованием подхода на основе данных коротких ридов. Более конкретно, устройства, системы и способы их применения, описанные в настоящем документе, могут быть выполнены с возможностью концентрации на гомологичных или подобных областях, которые в противном случае могли бы отличаться низкой точностью определения вариантов. В определенных случаях такая низкая точность определения вариантов может объясняться трудностями, наблюдаемыми в картировании и выравниваниях ридов на гомологичные области, которые, как правило, могут приводить к риду с очень низким качеством рида (MAPQ). Соответственно, в настоящем документе предложены стратегические реализации, которые точно определяют варианты (ОНП, инделы и т.п.) в гомологичных областях, например, путем совместного рассмотрения информации, представленной в этих гомологичных областях.
[00399] Например, многие области генома являются гомологичными, например, они имеют почти идентичные копии, находящиеся повсюду в геноме, например во множестве местоположений, и в результате истинное исходное местоположение может отличаться высокой неопределенностью. А именно, если группа ридов картирована с низкой достоверностью, например, вследствие явной гомологии, типичный определитель вариантов может игнорировать и не обрабатывать эти риды, даже если они могут содержать полезную информацию. В других случаях, если рид ошибочно картирован (например, первичное выравнивание не является истинным источником рида), это может привести к ошибкам обнаружения. Точнее говоря, ранее реализованные технологии секвенирования с короткими ридами были подвержены этим проблемам, и традиционные способы обнаружения часто сохраняют полную неясность в отношении больших областей.
[00400] В некоторых случаях для смягчения данных проблем можно использовать секвенирование длинных ридов, однако это, как правило, стоит намного дороже и/или чаще приводит к ошибкам, занимает больше времени и/или отличается другими недостатками. Поэтому в различных случаях, возможно, будет полезно выполнить операцию совместного обнаружения во множестве областей, которая описана в настоящем документе. Например, вместо рассмотрения каждой области по отдельности и/или выполнения и анализа секвенирования длинных ридов можно использовать метод совместного обнаружения во множестве областей (MPJD), например, когда протокол MRJD рассматривает множество, например все, местоположений, из которых могла быть получена каждая группа ридов, и пытается обнаружить лежащие в основе последовательности вместе, например, совместно, используя всю имеющуюся информацию, что можно сделать вне зависимости от низких или ненормальных оценок достоверности и/или определенности.
[00401] Например, в случае диплоидного организма со статистически равномерным покрытием в анализе поиска вариантом можно выполнить байесовское вычисление методом перебора. Однако при вычислении MLRD методом перебора сложность расчета быстро растет с количеством областей N и количеством K гаплотипов-кандидатов, которые нужно рассмотреть. В частности, чтобы рассмотреть все комбинации гаплотипов-кандидатов, количество решений для гаплотипов-кандидатов, для которых нужно рассчитать вероятности, часто может увеличиваться экспоненциально. Например, как более подробно описано ниже, при реализации перебора ряд гаплотипов-кандидатов включают в себя множество активных позиций, причем в случае использования метода сборки на основе графа для формирования списка гаплотипов-кандидатов в операции поиска вариантов, например путем построения графа де Брёйна, как описано в настоящем документе, количество активных позиций является количеством независимых «пузырей» в графе. Следовательно, реализация такого расчета методом перебора может быть непозволительно дорогой, и сами по себе байесовские вычисления методом перебора могут быть непозволительно сложными.
[00402] Соответственно, согласно одному аспекту, как показано на ФИГ. 17А, предложен способ снижения сложности таких расчетов методом перебора. Например, как описано выше, хотя скорость и точность секвенирования ДНК/РНК резко улучшились, особенно в отношении способов, описанных в настоящем документе, определение вариантов, например, процесс реконструкции генома субъекта из ридов, которые создает секвенатор, остается сложной проблемой, по большей части вследствие избыточной структуры генома. Устройства, системы и способы, описанные в настоящем документе, выполнены с возможностью снижения сложностей, предъявляемых избыточностью генома, с помощью подхода, основанного на данных коротких ридов, в отличие от секвенирования длинных ридов. В частности, в настоящем документе предложены способы выполнения обнаружения очень длинного рида с учетом гомологичных и/или подобных областей генома, которые обычно отличаются низкой точностью определения вариантов, без необходимости выполнения секвенирования длинного рида.
[00403] Например, в одном варианте реализации предложены система и способ для выполнения совместного обнаружения во множестве областей. А именно, в первом случае может быть выполнена обычная операция определения вариантов, например, с использованием способов, описанных в настоящем документе. В частности, обычный определитель вариантов может использовать референсную геномную последовательность, которая представляет все основания в модельном геноме. Эти референсы образуют остов анализа, с помощью которого геном субъекта сравнивают с референсным геномом. Например, как отмечалось выше, с помощью секвенатора нового поколения геном субъекта может быть разбит на подпоследовательности, например риды, обычно около 100-1000 оснований в каждом, причем эти риды могут быть картированы и выровнены на референс, что во многом напоминает сборку мозаики из фрагментов.
[00404] После того, как геном субъекта картирована и/или выровнен с использованием данного референсного генома для сравнения с фактическим геномом субъекта, можно определить, в какой степени и как геном субъекта отличается от референсного генома, например, последовательно для каждого основания. В частности, при сравнении генома субъекта с одним или более референсных геномов, например, одного основания за другим, анализ выполняют, итеративно перемещаясь вдоль последовательности и сравнивая одну последовательность с другими, чтобы определить, согласуются ли они или нет. Соответственно, каждое основание в пределах последовательности представляет позицию, которую нужно определить, например, как представлено позицией А на ФИГ. 18А.
[00405] А именно, для каждой позиции А референса, которую нужно определить относительно генома субъекта, скопление последовательностей, или ридов, будут картированы или выровнены таким образом, чтобы все риды из более крупного набора образов могли покрывать друг друга в любой данной позиции А. В частности, эта избыточная выборка может содержать ряд ридов, например, от одного до сотни или более, где каждый рид в скоплении имеет нуклеотиды, перекрывающие определяемую область. Следовательно, определение этих ридов от одного основания к другому включает в себя формирование окна обработки, которое скользит вдоль последовательности, выполняя определения, причем длина окна, например, количество оснований, исследуемых в любой данный момент времени, образует активную область определения. Следовательно, окно представляет активную область оснований в определяемом образце, где определение включает в себя сравнение каждого основания в данной позиции, например, А, во всех ридах скопления в пределах активной области, при этом идентичность основания в данной позиции в ряде скоплений ридов обеспечивает доказательство истинной идентичности основания в данной определяемой позиции.
[00406] Для этой цели на основании соответствующей оценки достоверности MAPQ, получаемой для каждого сегмента рида, можно в целом определить, в рамках определенной оценки достоверности, что картирование или выравнивание было выполнено точно. Однако по-прежнему остается вопрос, каким бы незначительным он ни был, по поводу того, является ли картирование или выравнивание ридов точным или нет, и действительно ли одно или более ридов принадлежат еще какому-нибудь месту. Соответственно, согласно одному аспекту в настоящем документе предложены устройства и способы для улучшения достоверности при выполнении определения вариантов.
[00407] В частности, в различных случаях определитель вариантов может быть выполнен с возможностью осуществления одной или более операций совместного обнаружения во множестве областей, как описано в настоящем документе, что можно использовать для придания большей достоверности достижимых результатов. Например, в таком случае определитель вариантов может быть выполнен с возможностью анализа различных областей в геном для определения конкретных областей, которые представляются похожими. Например, как показано на ФИГ. 18А, могут существовать референсная область А и референсная область В, где используемые в качества референса области очень схожи друг с другом, например за исключением нескольких областей с несходством пар оснований, таких как где пример Ref А имеет «А», и пример Ref В имеет «Т», но за пределами этих несходств в любом другом месте исследуемой области могут совпадать. Благодаря степени схожести эти две области, например, Ref А и Ref В, как правило, будут считаться гомологичными, или паралогичными, областями.
[00408] Как показано на фигуре, референсные области А и В похожи на 99%. Могут быть другие области, например, Ref С и Ref D, которые относительно похожи, например, похожи примерно на 93%, но по сравнению с похожестью на 99% между референсными областями А и В, референсные области С и D не будут считаться гомологичными, или по меньшей мере будет иметь меньше шансов реально быть гомологичными. В таком случае процедуры определения вариантов могут быть выполнены с возможностью адекватного определения различий между референсными областями С и D, но могут, в определенных случаях, иметь трудности с определением различий между высокогомологичными референсными областями А и В, например вследствие их высокой гомологии. В частности, ввиду степени несхожести референсных последовательностей А и В с референсными последовательностями С и D не следует ожидать, что картирование и выравнивание на референсную последовательность А или В, будет ошибочно принято за картирование на референсную последовательность С или D. Однако можно ожидать, что риды, которые картируются и выравниваются на референсную последовательность А, могут быть ошибочно картированы на референсную последовательность В.
[00409] Учитывая степень гомологии, ошибочное картирование между областями А и В может быть вполне вероятным. Соответственно, для повышения точности, было бы целесообразно, чтобы была в состоянии различать и/или учитывать разницу между гомологичными областями, например, при выполнении процедуры картирования, выравнивания и/или определения вариантов. А именно, при формировании скопления ридов, которые картируют или выравнивают на область в пределах Ref А, и при формировании скопления ридов, которые картируют и выравнивают на область в пределах Ref В, любое из ридов может быть в действительности ошибочно картировано на неверное место и, поэтому, чтобы добиться более высокой точности, при выполнении операций определения вариантов, описанных в настоящем документе, эти гомологичные области и риды, сопоставляемые и выравнивание не них, должны рассматриваться вместе, например, в протоколе совместного обнаружения, таком как протокол совместного обнаружения во множестве областей, который описан в настоящем документе.
[00410] Соответственно, в настоящем документе представлены устройства, системы, а также способы их использования, которые относятся к совместному обнаружению во множестве областей (MRJD), например когда множество, например все, ридов из различных скоплений различных выявленных гомологичных областей рассматривают вместе, например, когда вместо выполнения одно определения вариантов для каждого местоположения осуществляют совместное обнаружение для всех местоположений, которые представляются гомологичными. Выполнение таких совместных определений обладает преимуществом, так как прежде чем пытаться проделать определение для каждого референса по отдельности, сначала нужно было бы определить, на какую область какого референса различные исследуемые риды действительно картируются и выравниваются, а это по своей сути точно не известно, и именно эту проблему решает предлагаемое совместное обнаружение. Следовательно, поскольку области двух референсов настолько похожи, очень трудно определить, какие риды на какие области картируются. Однако, если определение этих областей выполняется совместно, нет необходимости принимать предварительное решение о том, какие гомологичные риды на какую референсную область картируются, Поэтому при выполнении совместного определения можно предположить, что любые риды в скоплении области на одной референсе, например, А, которые гомологичны другой области на втором референсе, например, В, могли бы принадлежать либо Ref. А, либо Ref. В.
[00411] Следовательно, если требуется, в дополнение к алгоритму определения вариантов, реализованному в устройствах, системах и способах, изложенных в настоящем документе, может быть реализован протокол MRJD. Например, за одну итерацию алгоритм определения вариантов принимает во внимание подтверждающие данные, представленные в картированных и/или выровненных ридах для данной области в геноме образца и референсном геноме, на основе сравнения с референсным геномом анализирует возможность фактического наличия в геноме образца того, что могло бы в нем присутствовать, и с учетом данного доказательства принимает решение по поводу того, как образец действительно отличается от референса, например, с учетом данного доказательства алгоритм определения вариантов определяет наиболее вероятный ответ, в чем разница между ридом и референсом. Однако MRJD является также алгоритмом, который может быть реализован наряду с алгоритмом определения вариантов, причем MRJD выполнен с возможностью оказания помощи определителю вариантов в более точном определении, является ли наблюдаемое отличие, например, в риде субъекта, действительно истинным отклонением от референса.
[00412] Соответственно, первый этап в анализе MRJD включает в себя выявление гомологических областей на основе процента соответствия между последовательностью в множестве областей одного или более референсов, например, Ref. А и Ref. В, и последовательностями скоплений в одной или более областей ридов субъекта. В частности, Ref. А и Ref. В могут быть в действительности диплоидными формами одного и того же генетического материала, например, когда существуют два копии данной области хромосомы. Следовательно, при анализе диплоидных референсов в различных позициях Ref А может иметь один конкретный нуклеотид, а в той же самой позиции в Ref. В может присутствовать другой нуклеотид. В данном примере Ref. А и Ref. В являются гомозиготными в позиции А для «А». Однако, как показано на ФИГ. 18А, ДНК субъекта является гетерозиготной в этой позиции А, например, когда по отношению к ридам скопления области Ref. А один аллель хромосомы субъекта имеет «А», а другой аллель имеет «С», а что касается Ref. В, другая копия хромосомы субъекта имеет «А» в обоих аллелях в позиции А. Это тоже приобретает более сложный характер, когда анализируемая проба содержит мутацию, например, в одной из тех естественным образом возникающих переменных позициях, таких как гетерозиготный ОНП в позиции А (не показан).
[00413] Как показано на Ref. А, изображенном на ФИГ. 18 В, в позиции А образец субъекта может содержать риды, которые указывают на наличие гетерозиготное™ в позиции А, например, когда некоторые из ридов содержат «С» в этой позиции, а некоторые из ридов указывают «А» в этой позиции (например, гаплотипа1 = «А», На2 = «С»); что касается Ref. В, риды в позиции А указывают гомозиготность, например, когда все риды в скоплении имеют «А» в этой позиции (например, Hb1 = «А», Hb2 = «А»). Однако MJRD преодолевает эти трудности за счет одновременного выполнения совместного определения путем анализа всех ридов, которые картируются на обе области референса, с учетом при этом возможности того, что риды могут быть в неверном местоположении. После выявления различных гомологичных областей следующим этапом является определение соответствия между гомологичными референсными областями и затем, в соответствии с MRJD, определение с помощью сопоставителя и/или выравнивателей того, где различные подходящие риды «предположительно картируются» между двумя гомологичными областями, может быть отброшено, а, вернее, все риды в любом из скоплений в этих гомологичных областях могут быть рассмотрены совместно с учетом знания того, что любое из этих ридов может принадлежать любой из сравниваемых гомологичных областей. Следовательно, расчеты для определения этих совместных определений, как подробно изложено ниже, учитывают возможность того, что любое из этих ридов поступает из любой гомологических референсных областей и, где применимо, из любого из гаплотипов любой из референсных областей.
[00414] Необходимо отметить, что хотя вышесказанное касалось множества областей гомологии в пределах референса, тот же самый анализ может быть также применен к обнаружению одной области. Например, как показано на ФИГ. 18В, даже если область одна, в любой данной области могут присутствовать два отдельных га плоти па, например, H1 и Н2, которые генетический образец субъекта может иметь для конкретной области, а поскольку они являются гаплотипами, они, скорее всего, будут очень похожи друг на друга. Следовательно, если бы эти позиции анализировались отдельно друг от друга, было бы трудно определить, имеются ли здесь учитываемые истинные вариации. Таким образом, расчеты, выполняемые в отношении гомологичных областей, также полезны для негомологичных областей, так как любая конкретная область, вероятно, будет диплоидом, например, имеющим как первый гаплотип (H1), так и второй гаплотип (Н2), и поэтому совместный анализ этих областей улучшит точность системы. Аналогичным образом в случае области с двумя референсами, например, гомологичной области, как описано выше, определяют именно HA1 и HA2 для первой области и HA1 и HA2 для второй области (что равносильно двум нитям для каждой хромосомы и двум областям для каждой нити = 4 диплоидным типам, как правило).
[00415] Соответственно, MRJD можно использовать для определения первоначального ответа по поводу одной или более, например, всех, гомологичных областей, а затем можно применить обнаружение одной области обратно к одной или более, например, всем, одинарным или негомологичным областям, например, с использованием того же самого базового анализа, и, таким образом, можно достичь большей точности. Следовательно, можно также выполнить несовместное определение одной области. Например, что касается определения одной области, для гаплотипов-кандидатов HA1 в текущих итерациях референсный геном может быть длиной около 300-500 пар оснований, и сверху референса строят граф, например, де Брёйна, как показано на ФИГ. 18С, например, из K-меров из ридов, где любое местоположение, которое отличается от референса, образует отклоняющийся путь или «пузырь» на графе, из которого выделяют гаплотипы, где каждый выделенный гаплотип, например, отклоняющийся путь, образует потенциальную гипотезу о том, что могло быть на одной из двух нитей хромосомы в конкретном месте исследуемой активной области.
[00416] Однако если имеется много отклоняющихся путей, например, по всему графу образуется много пузырей, как показано на ФИГ. 18С, и выделено большое количество гаплотипов, то можно ввести отсечку по максимуму для поддержания управляемости расчетов. Отсечка может быть на любом статистически значимом количестве, таком как 35, 50, 100, 125-128, 150, 175, 200 или более и т.п. Тем не менее, в определенных случаях может быть рассмотрено большее количество, например, все, гаплотипы.
[00417] В таких случаях вместо выделения полных гаплотипов от истока до стока с начала до конца, например, от начала последовательности до ее конца, выделять нужно только последовательности, связанные с отдельными пузырями, например, выравнивать на референс нужно только пузыри. Соответственно, из DBG выделяют пузыри, последовательности выравнивают на референс и из этих выравниваний можно определить конкретные ОНП, инсерции, делеции и т.п. с точки зрения того, почему последовательности различных пузырей отличаются от референса. Следовательно, в этом смысле все разные гипотетические гаплотипы для анализа можно получить путем смешивания и сопоставления последовательностей, относящихся ко всем различным пузырям в различных комбинациях. При таком подходе не требуется перечислять все гаплотипы, подлежащие выделению. Эти способы для выполнения совместного обнаружения во множестве областей описаны более подробно ниже в настоящем документе.
[00418] Кроме того, гипотетически, даже если все из этих гаплотипов-кандидатов могут быть проверены, алгоритм выращивания дерева может быть выполнен там, где создаваемый граф начинает выглядеть как растущее дерево. Например, ветвящийся древовидный граф совместных гаплотипов/диплотипов может быть построен таким образом, что по мере роста дерева лежащий в основе алгоритм функционирует как для выращивания, так и для обрезания дерева одновременно по мере того, как производится все больше и больше расчетов и становится очевидно, что всевозможные разные гипотезы-кандидаты просто слишком неправдоподобные. Следовательно, по мере выращивания и обрезания дерева не все гипотетические гаплотипы нужно рассчитывать.
[00419] А именно, что касается функции выравнивания дерева, когда существует несогласованность между двумя референсами или между референсами и ридами по поводу того, какое основание присутствует в данных решаемых позициях, необходимо определить, какое основание действительно принадлежит какой позиции, и ввиду таких несогласованностей необходимо определить, какие различия могут быть вызван ОНП, инделами и т.п., а какие являются ошибками машины. Соответственно, при выращивании дерева, например, путем выделения пузырей из графа де Брёйна, например, с помощью выравнивания Смита-Ватермана или Нидлмана-Вунша, и позиционирования их в пределах появляющегося древовидного графа, каждый пузырь, подлежащий выделению, становится в древовидном графе событием, которое представляет возможные ОНП, инделы и/или другие отличия от референса (см. ФИГ. 18С).
[00420] В частности, на DBG пузыри представляют несовпадения с референсом, например, представляющие инделы (когда основания были добавлены или удалены), ОНП (когда основания отличаются) и т.п. Поэтому по мере выравнивания пузырей на референс(-ы) различные отличия между ними распределяют по категориям как события и формируют список различных событий, например пузырей. В силу этого определение тогда превращается в следующее: какая комбинация возможных событий, например, возможных ОНП и инделов, привела к фактическим вариациям в генетической последовательности субъекта, например, является истинной в каждом из фактических различных гаплотипах, например, 4, исходя из вероятности. Более конкретно, любой один кандидат, например, совместный диплотип-кандидат, формирующий корень G0 (представляющий события для данного сегмента) может иметь 4 гаплотипа, и какой из четырех гаплотипов будет формировать идентифицированное подмножество событий.
[00421] Однако, как показано на ФИГ. 18D, при выполнении функции выращивания и/или обрезания дерева полный список всего подмножества комбинаций событий может быть, а может и не быть, определен весь сразу. Вместо этого определение начинают в одной позиции G0, например, с одного события, и из него выращивают дерево по одному событию за раз, что в результате функция обрезания может оставить различные маловероятные события нерешенными. Таким образом, что касается функции выращивания дерева, то, как показано на ФИГ. 18D, расчет начинается с определения гаплотипов, например, HA1, HA2, HB1, HB2 (для диплоидного организма), причем начальные гаплотипы считаются все нерешенными по отношению к их соответствующим референсам, например, Ref. А и Ref. В, по существу ни с одним из присутствующих событий.
[00422] Соответственно, первоначальной отправной точкой является корень дерева, представляющий собой G0, и совместный диплотип, у которого все события нерешенные. Затем конкретное событие, например начальный пузырь, выбирают в качестве начала для определения, тем самым начальное событие должно быть решено для всех гаплотипов, где это событие может быть первой точкой расхождения с референсом, например, по отношению к потенциальному присутствию ОНП или индела в позиции один. Как объяснено на ФИГ. 18Е, в позиции один имеется событие или пузырь, например, ОНП, где «С» заменено на «А», так что референс имеет «А» в позиции один, а исследуемый рид имеет «С». В таком случае, так как для этой позиции в скоплении имеются 4 гаплотипа, и каждый может иметь либо «А», как референс, или событие «С», потенциально существуют 24=16 возможностей для решения этой позиции. Следовательно, расчет переходит сразу с корня на 16 ветвей, представляющих потенциальные разрешения для каждого события в позиции один.
[00423] Поэтому, как показано на ФИГ. 18D, можно определить все потенциальные последовательности для всех четырех гаплотипов, например, HA1, HA2, HB1, HB2, где в позиции один имеется либо «А», что соответствует референсу, либо событие «С», указывающее на наличие ОНП, для этого одного события, где событие «С» определяется путем изучения различных путей пузыря через граф. Итак, для каждой ветви или дочернего узла каждая ветвь может отличаться на основе правдоподобия основания в позиции один, соответствующего или вытекающего из референса, тогда как остальные события остаются нерешенными. Затем этот процесс будет повторен для каждого узла ветвления и для каждого основания в пределах пузырей вариации, чтобы решить все события для всех гаплотипов. Следовательно, можно пересчитать вероятности наблюдения любого конкретного рида при условии различных потенциальны гаплотипов.
[00424] В частности, для каждого узла могут быть четыре гаплотипа, и каждый гаплотип можно сравнить с каждым ридом в скоплении. Например, в одном варианте реализации движка Смита-Ватермана, Нидлмана-Вунша и/или НММ анализирует каждый узел и рассматривает каждый из четырех гаплотипов для каждого узла. Следовательно, формирование каждого узла активирует движок Смита-Ватермана и/или НММ для анализа этого узла путем рассмотрения всех гаплотипов, например, 4, для этого узла в сравнении с каждым ридом, где движок Смита-Ватермана и/или НММ рассматривает по одному гаплотипу на один рид для каждого из гаплотипов и каждого из ридов для всех жизнеспособных узлов.
[00425] Таким образом, если в данном примере предположить, что имеется гетерозиготный ОНП «С» для одной области одного гаплотипа, например, одна нить хромосомы имеет «С», а все остальные нити имеют в этой позиции другие основания, например, они все совпадают с референсом «А», то следует ожидать, что все риды в скоплении поддерживают эти данные, например, большинство из них имеют «А» в позиции один, а меньшинство, например, около ридов имеют «С» в позиции один в случае истинного узла. Поэтому, если любые ранее наблюдаемые события в другом узле демонстрирую множество «С» в позиции один, то этот узел вряд ли будет истинным узлом, например, будет иметь низкую вероятность, поскольку в скоплении не будет достаточно ридов с «С» в этой позиции, чтобы сделать его появление вероятным. А именно, более вероятно будет то, что существование «С» в этой позиции в исследуемых ридах свидетельствует об ошибке секвенирования или другой ошибке исследования, а не о наличии истинного гаплотипа-кандидата. Следовательно, если определенные узлы обрываются, имея низкие вероятности по сравнению с истинным узлом, причина в том, что они не поддерживаются большинством ридов, например в скоплении, и поэтому эти узлы можно обрезать, тем самым отбросив узлы низкой вероятности, но при этом сохранив истинные узлы.
[00426] Соответственно, после того, как позиция один события определена, можно определить следующую позицию события, и описанный здесь процесс может быть потом повторен для этой новой позиции по отношению к любому из выживших узлов, которые до сих пор не обрезаны. В частности, событие два может быть выбрано из существующих доступных узлов, и это событие может служить в качестве корня G1 для определения вероятной идентичности основания в позиции два, например, опять путем определения новых гаплотипов, например, 4, а также их различных ветвей, например, 16, объясняющих возможные вариации в отношении позиции 2. Таким образом, повторяя этот же самый процесс теперь можно решить событие 2. Следовательно, как показано на ФИГ. 18D, после того, как позиция 1 определена, можно выбрать новый узел для позиции 2 и рассмотреть его 16 гаплотипов-кандидатов. В таком случае можно определить кандидатов для каждого HA1, HA2, HB1, HB2, но теперь, поскольку позиция 1 уже решена в отношении определения идентичности нуклеотида для каждого гаплотипа в позиции 1, именно позиция 2 будет теперь решена для каждого гаплотипа в позиции 2, как указано на ФИГ. 18D, показывающей позицию 2.
[00427] По завершении этого процесса после того, как все события обработаны и решены, например, включая дочерние узлы и их дочерние узлы, которые не были обрезаны, можно изучить необрезанные узлы дерева и на основе оценок вероятности определить, какое дерево представляет совместный диплотип, например, какая последовательность имеет наивысшую вероятность быть деревом. Следовательно, таким образом, ввиду функции обрезания, нет необходимости в построении полного дерева, например, большая часть дерева оборвется, будучи обрезанной по мере продолжения анализа, поэтому общий объем вычислений сильно сокращен по сравнению с функциями без обрезания, хотя он и существенно больше, чем при выполнении определения несовместного диплотипа, например определения одной области. Соответственно, представленные модули аналитики могут с высокой степенью точности определять и решать две или более областей высокой гомологии, например, используя анализ совместного диплотипа, где традиционные способы просто не в состоянии вообще решать такие области, например, вследствие ложно положительных вариантов и неразрешимости.
[00428] В частности, различные реализации определителя вариантов могут быть выполнены с возможностью просто невыполнения анализа на областях высокой гомологии. Представленные итерации преодолевают эти и другие подобные проблемы в данной области техники. Более конкретно, представленные устройства, системы и способы их использования могут быть выполнены с возможностью рассмотрения большей части, например, всех, гаплотипов, несмотря на наличие областей высокой гомологии. Конечно, скорость этих расчетов может быть дополнительно увеличена за счет невыполнения расчетов, когда можно определять, что результаты таких расчетов имеют низкую вероятность в плане истинности, например за счет реализации функции обрезания, как описано в настоящем документе.
[00429] Преимущество этих конфигураций, например, решение и обрезание совместного диплотипа, состоит в том, что размер окна активной области, например, анализируемых оснований, может быть увеличен от около нескольких сотен обрабатываемых оснований до нескольких тысяч или даже десятков тысяч оснований, которые могут быть обработаны вместе, например в одной непрерывной активной области. Такое увеличение размера активного окна анализа позволяет рассматривать больше подтверждающих данных при определении идентичности любого конкретного нуклеотида в любой данной позиции, тем самым обеспечивая больше контекста, в рамках которого можно выполнить более точное определение идентичности нуклеотида. Аналогичным образом более широкий контекст позволяет лучше связывать вместе подтверждающие данные при сравнении одного или более ридов, покрывающих одну или более областей, которые имеют одно или более отклонений от референса. Следовательно, таким образом одно событие может быть соединено с другим, которое само может быть соединено с еще одним событием и т.д., и на основе этих связей можно выполнять более точное определение по отношению к данному конкретному рассматриваемому событию, тем самым обеспечивая информативность подтверждающих данных из еще более отдаленных, например, от сотен до тысяч или более отдаленных оснований, при выполнении настоящего определения вариантов (несмотря на тот факт, что любой данный рид, как правило, имеет длину в сотни оснований), и благодаря этому еще больше повышая точность процессов, описанных в настоящем документе.
[00430] В частности, подобным образом можно добиться дальнейшего включения в активную область от тысяч до десятков тысяч, даже сотен тысяч или более оснований и, следовательно, можно избежать способа формирования графа де Брёйна путем выделения всех гаплотипов, поскольку нужно исследовать лишь ограниченное число гаплотипов, тех, что имеют пузыри, которые могут быть жизнеспособными, причем даже те из них, которые жизнеспособны, могут быть обрезаны после того, как становятся нежизнеспособными, а для остающихся жизнеспособными можно использовать связывание в цепочку, чтобы улучшить точность осуществляемого в конечном счете определения вариантов. Все это стало возможным благодаря квантовому и/или аппаратному вычислению. Это также может быть выполнено, но медленнее, в программном обеспечении с помощью ЦПУ или ГПУ,
[00431] Касательно приведенных выше примеров необходимо отметить, что вероятности входных данных, например, ридов, определяются с учетом гипотетических гаплотипов, созданных с помощью граф де Брёйна. Однако, возможно, также будет полезно использовать теорему Байеса, например, для определения вероятности ридов с учетом совместного диплотипа вплоть до противоположной вероятности определения из теории совместного диплотипа наилучшего соответствия с учетом оцениваемых ридов и подтверждающих данных. Соответственно, как показано на ФИГ. 18С, на основе сформированного графа де Брёйна после того, как выполнено совместное обнаружение во множестве областей и/или обрезание, будет получен набор потенциальных гаплотипов, и затем эти гаплотипы будут проверены на соответствие фактическим ридами субъекта. А именно, каждое горизонтальное поперечное сечение представляет гаплотип, например, В1, который может быть затем подвергнут обработке с помощью другого протокола НММ для проверки на соответствие ридам, чтобы определить вероятность конкретного рида при условии гаплотипа В1.
[00432] Однако, в определенных случаях гаплотип, например, В1, может быть еще не полностью определен, однако выполнение НММ все же может принести пользу, и в таком случае можно выполнить модифицированный расчет НММ, например, операцию частично определенной НММ, (PD)-HMM, обсуждаемую ниже, когда в гаплотипе допускается наличие неопределенных вариантов, например, ОНП и/или инделов, которые еще предстоит определить, и по сути этот расчет подобно расчету наилучшей возможной вероятности достижимого ответа с учетом любой комбинации вариантов в нерешенных позициях. Таким образом, это еще больше облегчает функцию итеративного выращивания дерева, где фактическое выращивание дерева, например, выполнение операций PD-HMM, не должно ограничиваться только теми расчетами, где все возможные варианты известны. Следовательно, таким образом можно выполнить ряд расчетов PD-HMM итеративным путем, чтобы вырастить дерево узлов несмотря на тот факт, что в конкретных гаплотипах-кандидатах все еще имеются неопределенные области неизвестных возможных событий, и так, где появляется возможность обрезать дерево, ресурсы PD-HMM могут быть плавно переключены с расчета обрезанных узлов на обработку только тех возможностей, которые имеют наивысшую вероятность успешного охарактеризования истинного генотипа.
[00433] Соответственно, при определении вероятности конкретного основания действительно присутствующего в любой одной позиции, идентичность основания в этой позиции может быть определена на основе идентичности в этой позиции в каждой области хромосомы, например, в каждом гаплотипе, который представляет жизнеспособный кандидат. Следовательно, любой кандидат, определение которого выполняется, является идентичностью данного основания в рассматриваемой позиции в каждом из четырех гаплотипов одновременно. В частности, определяется именно вероятность наблюдения ридов каждом из скоплении при условии определенного правдоподобия. А именно, каждый кандидат представляет совместный диплотип, и в силу этого каждый кандидат содержит около четырех гаплотипов, которые могут быть представлены в следующем уравнении как G = генотип, где G = четырем гаплотипам одной диплоидной области хромосомы генома, например совместного диплотипа. В таком случае рассчитывать нужно именно вероятность фактического наблюдения каждого из выявленных оснований-кандидатов рида последовательностей в скоплениях в предположении, что они действительно истинные. Это начальное определение может быть выполнено с помощью расчета гаплотипа НММ, как указано ниже в настоящем документе.
[00434] Например, «Совместный Диплотип» = 4 гаплотипа: (область A: HA1HA2, и область В: HB1HB2) = G→P(R/G) как определено с помощью НММ (модель ошибок) = П P(r/G)=
[00435] Следовательно, если предполагается, что конкретный гаплотип Ha1 является истинной последовательностью в этой области, и рид происходит оттуда, то каковы шансы, что данный Ha1 этой последовательности рида действительно наблюдался. Соответственно, калькулятор НММ работает над тем, чтобы определить, в предположении, что гаплотип Ha1 истинным, каково правдоподобие реального наблюдения данной исследуемой последовательности рида.
[00436] А именно, если рид действительно совпадает с гаплотипом, вероятность, конечно, будет очень высокой. Однако, если конкретный исследуемый рид не совпадает с гаплотипом, то любое отклонение от него должно объясняться ошибкой исследования, например, ошибкой секвенирования или оборудования для секвенирования, а не действительной вариацией. Следовательно, расчет НММ является функцией от моделей ошибок. А именно, возникает вопрос, какова вероятность необходимой комбинации ошибок, которые должны были бы произойти, чтобы наблюдались эти конкретные анализируемые риды? Следовательно, в данной модели рассматривается не только одна область, но и множество позиций в множестве областей на множестве нитей одновременно (например, вместо рассмотрения, скорее всего, двух гаплотипов в одной области, теперь одновременно рассматривается вероятность четырех гаплотипов для любой данной позиции, одновременно, с использованием всех данных ридов из всех исследуемых областей). Теперь рассмотрим более подробно эти процессы, например, обрезание дерева, совместное обнаружение во множестве областей и PD-НММ.
[00437] А именно, как показано на ФИГ. 17 и 18, предложена цепочка обработки высокого уровня, например, когда цепочка обработки может включать в себя один или более из следующих этапов: выявление и ввод гомологичных областей, выполнение предварительной обработки входных гомологичных областей, выполнение обнаружения очень длинного рида (VLRD) или совместного обнаружения во множестве областей (MJRD) и вывод файла определения вариантов. В частности, что касается выявления гомологичных областей, в качестве первичных входных данных в движок обработки совместного обнаружения во множестве областей, реализующий алгоритм MRJD, может быть введен файл картированных, выровненных и/или сортированных данных SAM и/или ВАМ, например, CRAM. Движок обработки MRJD может быть частью интегральной схемы, например, ЦПУ, и/или ГПУ, и/или квантовой вычислительной платформы, исполняющей программное обеспечение, например, квантовый алгоритм, или может быть реализован в FPGA, ASIC и т.п. Например, описанный выше сопоставитель и/или выравниватель может быть использован для формирования файла CRAM и настроен для вывода N вторичных выравниваний для каждого рида вместе с первичными выравниваниями. Затем эти первичные и вторичные выравнивания могут быть использованы для определения списка гомологичных областей, причем гомологические области могут вычислены на основе определяемого пользователем порога подобия между N областями референсного генома. Этот список выявленных гомологичных областей может быть затем подан на стадию предварительной обработки соответствующим образом сконфигурированного модуля MRJD.
[00438] Соответственно, на стадии предварительной обработки для каждого набора гомологичных областей сначала может быть сформировано совместной скопление, например, с помощью первичных выравниваний из одной или более, например каждой из, областей в наборе. См., например, ФИГ. 19. Затем с помощью этого совместного скопления может быть сформирован список активных/кандидатов позиций вариантов (ОНП/инделов), с помощью которого каждый из этих вариантов-кандидатов может быть обработан и оценен с посредством движка (-ов) предварительной обработки MRJD. Чтобы уменьшить сложность вычислений, можно вычислить матрицу связности, с помощью которой можно определить порядок обработки вариантов-кандидатов.
[00439] В таких вариантах реализации алгоритм совместного обнаружения во множестве областей оценивает каждый выявленный вариант-кандидат на основе порядка обработки, определенного в сформированной матрице связности. Во-первых, можно сформировать и выдать один или более совместных диплотипов-кандидатов (Gi) для варианта-кандидата. Затем можно рассчитать апостериорные вероятности каждого совместного диплотипа (P(Gi|R)). На основе этих апостериорных вероятностей можно вычислить матрицу генотипа. Затем N диплотипов с самыми низкими апостериорными вероятностями можно обрезать, чтобы сократить вычислительную сложность расчетов. После этого можно включить следующий вариант-кандидат, который обеспечивает подтверждающие данные для текущего оцениваемого варианта-кандидата, и повторить вышеописанный процесс. Включив информацию, например, из одного или более, например, всех, вариантов-кандидатов из одной или более, например, всех, областей в наборе гомологических областей для текущего варианта, можно выполнить определение вариантов на основе заключительной матрицы генотипирования. Таким образом, каждую из активных позиций можно оценить, как описано выше, и тем самым получить окончательный файл VCF.
[00440] В частности, как показано на ФИГ. 17В, этап обработки MRJD может быть реализован, например, включением одного или более следующих этапов или блоков. Загружают выявленное и собранное совместное скопление, затем из собранного совместного скопления создают список вариантов-кандидатов и вычисляют матрицу связности. В частности, в различных вариантах может быть осуществлен метод предварительной обработки, например, для выполнения одной или более операций определения вариантов, таких как операция совместного обнаружения множества ридов. Такие операции могут включать в себя один или более блоков предварительной обработки, в том числе: этапы, относящиеся к загрузке совместных скоплений, формированию из совместного скопления списка вариантов-кандидатов и вычисление матрицы связности. Теперь рассмотрим подробнее каждый из блоков и связанных с ними потенциальных этапов.
[00441] А именно, в процедуру анализа может быть включен первый блок предварительной обработки совместного скопления. Например, для идентифицируемого промежутка могут быть выделены различные референсные области, например, из картированных и/или выровненных ридов. В частности, с помощью списка гомологичных областей можно сформировать совместное скопление для каждого набора гомологичных областей. После этого с помощью задаваемого пользователем промежутка можно выделить N референсных областей, соответствующих N гомологичным областям в наборе. Затем можно выровнять одну или более, например, все референсные области, например с помощью выравнивания Смита-Ватермана, что можно использовать для формирования системы универсальных координат всех оснований в N референсных областях. Далее, затем можно выделить из входного файла SAM или ВАМ все первичные риды, соответствующие каждой области, и картировать на универсальные координаты. Это картирование можно выполнить, как описано в настоящем документе, например, с помощью информации о выравнивании (CIGAR), представленной в файле CRAM для каждого картирования. В условиях, когда некоторые риды не были ранее картированы, эти риды можно картировать и/или выровнять, например, с помощью алгоритма Смита-Ватермана, на их соответствующую референсную область.
[00442] Более конкретно, после того, как совместное скопления сформировано и загружено (см., например, ФИГ. 19), можно создать список вариантов-кандидатов, например из совместного скопления. Например, чтобы выделить различные варианты-кандидаты (ОНП/инделы), которые могут быть выявлены из совместного скопления, можно создать граф де Брейна (DBG) или другой граф сборки. После создания DBG на нем можно найти различные пузыри, чтобы получить список вариантов-кандидатов.
[00443] В частности, при наличии всех ридов можно построить граф, используя каждую референсную область в качестве остова. Затем все позиции выявленного варианта-кандидата можно выровнять на универсальные координаты. Затем можно вычислить матрицу связности, которая определяет порядок обработки активных позиций, который может быть функций от длин ридов и/или размера инсерции. На ФИГ. 19 показан упоминаемый в настоящем документе пример совместного скопления из двух гомологичных областей в хромосоме 1. Хотя это скопление построено на основании двух гомологичных областей хромосомы 1, это сделано лишь для примера, так как данный процесс создания скопления можно использовать для любых и всех гомологичных областей вне зависимости от хромосомы.
[00444] Как показано на ФИГ. 20, список вариантов-кандидатов можно создать следующим образом. Сначала можно сформировать совместное скопление и построить граф де Брейна (DBG) или другой граф сборки в соответствии со способами, описанными в настоящем документе. Затем с помощью DBG можно выделить варианты-кандидаты из совместных скоплений. DBG строят таким образом, чтобы формировать пузыри, которые указывают вариации, представляющие альтернативные пути через граф, причем каждый альтернативный путь является гаплотипом-кандидатом. См., например, ФИГ. 20 и 21.
[00445] Соответственно, различные пузыри на графе представляют список позиций гаплотипов варианта-кандидата. Поэтому при наличии всех ридов можно построить DBG, используя каждую референсную область в качестве остова. Затем все позиции варианта-кандидата можно выровнять на универсальные координаты. В частности, на ФИГ. 20 приведена блок-схема, показывающая процесс формирования DBG и использования его для создания гаплотипов-кандидатов. Точнее говоря, граф де Брейна можно использовать для создания списка вариантов-кандидатов ОНП и инделов. С учетом наличия N областей, которые совместно обрабатываются с помощью MRJD, можно построить N графов де Брейна. В таком случае в каждом графе может использовать одну референсную область в качестве остова и все риды, соответствующие N областям.
[00446] Например, в одном методе реализации после построения графа DBG из него можно выделить га плотипы-кандидаты на основе событий-кандидатов. Однако при использовании протокола предварительной обработки MRJD, как описано в настоящем документе, можно совместно обрабатывать N областей, например, когда длина областей может составлять несколько тысяч или более оснований и количество гаплотипов, которые нужно выделить, может расти очень быстро по экспоненциальному закону. Соответственно, чтобы уменьшить вычислительную сложность, вместо выделения всех гаплотипов из графов нужно выделить только пузыри, которые представляют варианты-кандидаты.
[00447] Пример структур пузырей, образуемых на графе де Брейна, показан на ФИГ. 21. Выделен ряд областей, подлежащих совместной обработке. Это определяет один из двух путей обработки, которым можно следовать. Если выявлены все совместные области, для формирования DBG можно использовать все риды. Можно выделить пузыри, показывающие возможные варианты, чтобы идентифицировать различные гаплотипы-кандидаты. А именно, для каждого пузыря можно выполнить выравнивание Смита-Ватермана на альтернативные пути к референсному остову. Отсюда можно выделить варианты-кандидаты и сохранить события из каждого графа.
[00448] Однако, в других случаях после того, как выполнен первый процесс для формирования одного или более DBG и/или i теперь равно 0, можно сформировать объединение всех событий-кандидатов из всех DBG и удалить оттуда любые дубликаты. В таком случае можно все варианты-кандидаты можно картировать, например, на систему универсальных координат, чтобы создать список вариантов-кандидатов, и этот список вариантов-кандидатов можно отправить в качестве входных данных в модуль обрезания, такой как модуль MRJD. Пример выполнения выделения пузыря вместо выделения всех гаплотипов показан на ФИГ. 22. В данном случае выделяют и обрабатывают именно только область пузыря, показывающую возможные варианты, как описано в настоящем документе.
[00449] А именно, после того, как репрезентативные пузыри выделены, можно выполнить глобальное выравнивание, например, выравнивание Смита-Ватермана, путей пузыря и соответствующего референсного остова, чтобы получить варианты-кандидаты и их позиции в референсе. Это можно сделать для всех выделенных пузырей на всех графах де Брейна. Далее, из N графов можно получить объединение всех выделенных вариантов-кандидатов, удалить дубликаты потенциально возможных вариантов, при наличии таковых, а позиции уникальных вариантов-кандидатов можно картировать на систему универсальных координат, полученную из совместного скопления. Это дает окончательный список позиций вариантов-кандидатов для N областей, которые могут действовать в качестве входных данных «обрезанного» алгоритма MRJD.
[00450] В частности, с помощью блоков обработки, которые описаны выше в настоящем документе, можно построить матрицу связности. Например, матрицу связности можно использовать для определения порядка обработки активных, например, кандидатов, позиций, например, как функцию от длины рида и размера инсерции. Например, для дальнейшего снижения вычислительной сложности можно вычислить матрицу связности, чтобы определить порядок обработки выявленных вариантов-кандидатов, которые получены из графа де Брейна. Эту матрицу можно построить и использовать в качестве функции сортировки или вместе с ней для определения того, какие варианты-кандидаты нужно обрабатывать в первую очередь. Поэтому данная матрица связности может быть функцией от средней длины ридов и размера инсерции ридов со спаренными концами. Соответственно, для данного варианта-кандидата другие позиции потенциально возможных вариантов, которые являются целочисленными кратными размера инсерции или находятся в пределах длины рида, имеют более высокие веса по сравнению с вариантами-кандидатами в других позициях. Причина в том, что эти варианты-кандидаты с большей вероятностью обеспечивают подтверждающие данные для текущего оцениваемого варианта. На ФИГ. 23 показан пример функции сортировки, которая реализована в настоящем документе, для средней длины ридов 101 и размера инсерции 300.
[00451] Что касается функции обрезания MRJD, примеры этапов обрезанного алгоритма MRJD, упоминаемого в настоящем документе, показан на ФИГ. 24. Например, входными данными платформы и алгоритма MRJD является совместное скопление из N областей, например все варианты-кандидаты (ОНП/инделы), априорные вероятности, основанные на модели мутации, и матрица связности. Соответственно, входными данными платформы обработки обрезанного MRJD могут быть совместное скопление, выявленные активные позиции, сформированная матрица связности и модель апостериорной вероятности и/или ее результаты.
[00452] Далее, можно обработать каждый вариант-кандидат в списке, а остальные варианты можно последовательно добавлять в качестве подтверждающих данных для текущего обрабатываемого варианта-кандидата с помощью матрицы связности. Соответственно, при наличии текущего варианта-кандидата и каких-либо поддерживающих вариантов-кандидатов можно сформировать совместные диплотипы-кандидаты. Например, совместный диплотип представляет собой набор из 2N гаплотипов, где N - количество совместно обрабатываемых областей. Количество совместных диплотипов-кандидатов М является функцией от количества совместно обрабатываемых областей, количества рассматриваемых активных/кандидатов вариантов и количества фаз. Пример формирования совместных диплотипов показан ниже.
Для: Р = 1, количество позиций рассматриваемых активных/кандидатов вариантов;
N = 2, количество совместно обрабатываемых областей;
М = 22⋅N⋅P = 24 = 16 совместных диплотипов-кандидатов
[00453] Следовательно, пусть имеется одна активная позиция-кандидат и даны все риды и обе референсные области, и пусть этими двумя гаплотипами будут «А» и «G».
Уникальные гаплотипы = «А» и «G».
Гаплотипы-кандидаты = «АА», «AG», «GA» и «GG»', (4 потенциально возможных гаплотипа на 1 область).
[00454] Соответственно, используя совместные диплотипы-кандидаты, можно рассчитать правдоподобия ридов с учетом гаплотипа для каждого гаплотипа в каждом наборе совместных диплотипов-кандидатов. Это можно сделать с помощью алгоритма НММ, как описано в настоящем документе. Однако, при этом алгоритм НММ может быть модифицирован по сравнению с его стандартным применением, чтобы учитывать варианты-кандидаты (ОНП/инделы) в гаплотипе, которые еще не обработаны. Соответственно, правдоподобия ридов можно рассчитать при наличии совместного диплотипа с помощью результатов из модифицированной НММ. Это можно сделать с помощью следующей формулы.
[00455] В случае совместного определения в 2 областях:
. При наличии можно легко рассчитать для всех ридов. Далее, с помощью формулы Байеса можно вычислить априорную вероятность из и априорные вероятности (P(Gi)).
[00456] Кроме того, можно рассчитать промежуточную матрицу генотипа для каждой области с учетом апостериорных вероятностей для всех совместных диплотипов-кандидатов. Для каждой комбинации событий в матрице генотипа можно суммировать все апостериорные вероятности всех совместных диплотипов, поддерживающих данное события. На этом этапе матрицу генотипа можно рассматривать как «промежуточную», так как включены не все варианты-кандидаты, поддерживающие текущий кандидат. Однако, как было замечено ранее, количество совместных диплотипов-кандидатов растет экспоненциально в зависимости от количества позиций вариантов-кандидатов и количества областей. Это, в свою очередь, экспоненциально увеличивает расчет, требуемые для расчета апостериорных вероятностей. Следовательно, чтобы снизить вычислительную сложность на этой стадии, ряд совместных диплотипов можно обрезать на основе апостериорных вероятностей, для поддержания количества совместных диплотипов, которое может быть определено пользователем и запрограммировано. Наконец, можно обновить окончательную матрицу генотипов на основе определяемой пользователем метрики вариантов, которые вычисляют с помощью промежуточной матрицы генотипа. Различные этапы этих процессов показаны на блок-схеме процесса, изображенной на ФИГ. 24.
[00457] Вышеуказанный процесс можно повторять до тех пор, пока все варианты-кандидаты не будут включены в качестве подтверждающих данных для текущих вариантов-кандидатов, обрабатываемых с помощью матрицы связности. После того, как все варианты-кандидаты включены, выполняется обработка текущего варианта-кандидата. Для обработки вариантов-кандидатов возможны также другие критерии остановки. Например, процесс может быть остановлен, когда достоверность перестала расти при добавления очередных вариантов-кандидатов. Этот анализ, как показано в качестве примера на ФИГ. 24, может быть перезапущен и повторен аналогичным образом для всех других вариантов-кандидатов в списке, что приведет к окончательному файлу определения вариантов на выхода MRJD. Соответственно, вместо рассмотрения каждой области по отдельности можно использовать протокол совместного обнаружения во множестве областей, который описан в настоящем документе, чтобы рассматривать все местоположения, из которых, возможно, произошла группа ридов, поскольку он пытается обнаружить лежащие в основе последовательности совместно, используя всю имеющуюся информацию.
[00458] Соответственно, в случае совместного обнаружения во множестве областей в примере протокола MRJD могут быть использованы одно или более из следующих уравнений в соответствии со способами, описанными в настоящем документе. А именно, вместо рассмотрения каждой области по отдельности, MRJD рассматривает множество местоположений, из которых, возможно, произошла группа ридов, и пытается совместно обнаружить лежащие в их основе последовательности, например, используя столько доступной информации, например, всю, сколько будет полезно. Например, в одном примере варианта осуществления:
[00459] Пусть N будет количеством областей, подлежащих совместной обработке. И пусть Hk будет гаплотипом-кандидатом, k = 1…K, каждый из которых содержит различные ОНП, инсерции и/или делеции по сравнению с референсной последовательностью. Каждый гаплотип Hk представляет одну область вдоль одной нити (или «фазу», например, материнскую или отцовскую), и они необязательно непрерывные (например, могут содержат гэпы или «безразличные» последовательности).
[00460] Пусть Gm будет решением-кандидатом для обеих фаз Ф = 1,2 (для диплоидного организма) и всех областей n = 1…N:
где каждый элемент Gm,Ф,n является гаплотипом, выбранным из набора гаплотипов-кандидатов {H1…Hk}.
[00461] Во-первых, можно рассчитать вероятность каждого рида для каждого гаплотипа , например, с помощью скрытой марковской модели (НММ). В случае наборов данных с парными ридами ri указывает пару {ri,1,ri,2}, a . В случае наборов данных со связанными ридами (например, риды в штрихкодах), ri указывает группу ридов {ri,1…ri,NL}, которые образуются из одной и той же молекулы, а .
[00462] Далее, для каждого решения-кандидата Gm, m = 1…M рассчитывают условную вероятность каждого рида и условную вероятность каждого полного скопления .
[00463] Далее, рассчитывают апостериорную вероятность каждого решения-кандидата при условии наблюдаемого скопления: , где P(Gm) указывает апостериорную вероятность решения-кандидата, которое подробно описано ниже в настоящем документе.
[00464] Наконец, рассчитывают относительную вероятность каждого варианта-кандидата , например, где указывает, что Gm поддерживает вариант Vj, a указывает, что Gm поддерживает референс. В файле VCF это может быть указано как оценка качества по шкале phred: .
[00465] Пример процесса выполнения различных операций определения вариантов описан в настоящем документе со ссылкой на ФИГ. 25, где сравниваются традиционный процесс обнаружения и MRJD. А именно, на ФИГ. 25 показано совместное скопление парных ридов для двух областей, референсные последовательности которых отличаются только 3 основаниями во всем диапазоне, представляющем интерес. Известно, что все риды происходят либо из области №1, либо из области №2, но не известно с определенностью, из какой области происходит любой отдельный рид. Отметим, как описано выше, основания показаны только для позиций, где два референса отличаются, например, области пузырей, или где риды отличаются от референса. Эти области называют активными позициями. Все другие позиции можно игнорировать, так как они не влияют на расчет.
[00466] Соответственно, как показано на ФИГ. 25, в традиционном детекторе пары ридов 1-16 будут картированы на область №2, и только они будут использованы для определения вариантов в области №2. Все эти риды совпадают с референсом в области №2, поэтому варианты не будут найдены. Аналогичным образом пары ридов 17-23 будут картированы на область №1, и только они будут использованы для определения вариантов в области №1. Как можно заметить, все эти риды совпадают с референсом в области №1, поэтому варианты не будут найдены. Однако, пары ридов 24-32 в равной мере пригодны области №1 и области №2 (каждая отличается одним основанием от референса №1 и референса №2), поэтому картирование неопределенное, и типичный определитель вариантов просто проигнорирует эти риды. Поэтому традиционный определитель вариантов не выполнит определение вариантов ни для одной из двух областей, как показано на ФИГ. 25.
[00467] Однако, в случае MRJD как показано на ФИГ. 25, результат полностью отличается от результата, полученного путем применения традиционных способов. Соответствующие расчеты приведены ниже. В данном случае N = 2 областям. Кроме того, имеются три позиции, каждая с 2 основаниями-кандидатами (основания, число которых достаточно низкое, можно безопасно игнорировать, и в данном примере число равно нулю для всех, кроме 2 оснований, в каждой позиции). Если рассматривать все комбинации, это даст гаплотипов-кандидатов: H1 = CAT, H2 = САА, Н3 = ССТ, Н4 = ССА, H5 = GAT, H6 = GAA, H7 = GCT, H8 = GCA.
[00468] При расчете перебором, когда учитывают все комбинации из всех гаплотипов-кандидатов, количество потенциально возможных решений будет , и для каждого решения-кандидата Gm можно рассчитать P(Gm/R). Этот расчет для двух решений-кандидатов проиллюстрировано ниже.
Где Gm1 не имеет вариантов (это решение, найденное традиционным детектором), a Gm2 имеет единственный гетерозиготный ОНП в позиции №2 области №1.
[00469] Вероятность зависит от различных факторов, в том числе от качества основания и других параметров НММ. Можно предположить, что присутствуют только ошибки определения основания и все ошибки определения основания одинаково вероятны, поэтому , где ре - вероятность ошибки определения основания, Np(i) - количество активных позиций основания(-ий), перекрываемых ридом i, a Ne(i) - количество ошибок для рида i в предположении гаплотипа Hk. Соответственно, можно предположить, что ре = 0,01, что соответствует качеству основания 20 по шкале phred. В таблице, приведенной на ФИГ. 26, показаны для всех пар ридов и всех гаплотипов-кандидатов. В двух крайних справа столбцах показаны и с указанием произведения внизу. На ФИГ. 26 показано, что и то есть разница в 15 порядков величины в пользу Gm2.
[00470] Апостериорные вероятности зависят от априорных вероятностей P(Gm). В завершение этого примера можно предположить простую модель независимо и одинаково распределенных (IID) случайных величин таким образом, что априорная вероятность решения-кандидата с Nv вариантами составляет , где Np - количество активных позиций (3 в данном случае), a Pv - вероятность варианта, в данном примере предполагаемая равной 0,01. Это дает P(Gm) = 7,22е-13, и P(Gm2) = 0,500. Следует отметить, что Gm2 является гетерозиготным по все области №1, и все гетерозиготные пары гаплотипов имеют зеркально отображенное представление с одинаковой вероятностью (полученное простым обменом местами фаз). В данном случае сумма вероятностей для Gm2 и его зеркального отражения составляет 1,000. Рассчитав вероятности отдельных вариантов, можно увидеть гетерозиготный ОНП в позиции 2 области №1 с оценкой качества 50,4 по шкале phred.
[00471] Соответственно, как можно заметить, что вычислительная сложность операции определения вариантов перебором колоссальная, причем эту сложность можно снизить путем выполнения совместного обнаружения во множестве областей, как описано в настоящем документе. Например, сложность вычисления вышеприведенных расчетов быстро растет с количеством областей N и количеством К гаплотипов-кандидатов. Чтобы рассмотреть все комбинации гаплотипов-кандидатов, количество решений-кандидатов, для которых нужно рассчитать вероятности, составляет М = K2N. В реализации перебора количество гаплотипов-кандидатов составляет K = 2Np, где Np - количество активных позиций (например, как объяснено выше, если для формирования списка гаплотипов-кандидатов используют методы сборки графа, то Np - число независимых пузырей на графе). Следовательно, расчет простым перебором может оказаться непозволительно дорогим для реализации. Например, если N = 3 и Np = 10, количество решений-кандидатов составляет М = 23⋅2⋅10 = 260 = 1018. Поэтому на практике не приняты значения Np намного выше этого.
[00472] Следовательно, поскольку байесовское вычисление перебором может быть непозволительно сложным, далее описаны дальнейшие способы снижения сложности таких расчетов. Например, на первом этапе другого варианта реализации, начинающегося с небольшого количества позиций (или даже одной позиции ), на этих позициях может быть выполнено байесовское вычисление. В конце расчета варианты-кандидаты, чья вероятность попадает ниже заданного порога, могут быть удалены, например, с помощью функции обрезания дерева, как описано выше. В таком случае порог может быть адаптивным.
[00473] Далее, на втором этапе количество позиция может быть увеличено на небольшое число ΔNp (например, так: ), и выжившие кандидаты могут быть объединены с одним или более, например, всеми, возможными кандидатами новых позициях, например, в функции выращивания дерева. Затем этапы (1) выполнения байесовского вычисления, (2) обрезания дерева и (3) выращивания дерева можно повторять, например, последовательно, до тех пор, пока не будут удовлетворены критерии остановки. Затем история порога может быть использована для определения достоверности результата (например, вероятность того, что истинное решение было найдено или не найдено). Этот процесс проиллюстрирован блок-схемой на ФИГ. 27.
[00474] Необходимо понимать, что у этого подхода существует множество возможных вариантов. Например, как было указано, порог обрезания может быть адаптивным, например, основанным на количестве выживших кандидатов. Например, в простой реализации порог может устанавливаться для поддержания количества кандидатов ниже фиксированного числа, тогда как в более сложной реализации порог может устанавливаться на основе анализа затрат и выгод включения дополнительных кандидатов. Кроме того, критерии остановки могут состоять в том, что результат найден с достаточным уровнем достоверности, или что достоверность в начальной позиции перестала расти при добавлении новых позиций. Более того, в более сложной реализации может выполняться анализ затрат и выгод продолжения добавления еще позиций. Кроме того, как показано на ФИГ. 27, порядок добавления новых позиций может зависеть от нескольких критериев, таких как расстояние до начальных позиций, или насколько высоко соединены эти позиции с уже включенными позициями (например, величина перекрытия с парными ридами).
[00475] Полезным признаком данного алгоритма является то, что вероятность того, что истинное решение не было найдено, может быть определена количественно. Например, полезную оценку получают путем простого суммирования вероятностей всех обрезанных ветвей на каждом этапее: . Такая оценка полезна для расчета достоверности получающихся в результате определений вариантов: . Хорошие оценки достоверности существенны для создания хороших кривых рабочей характеристики приемника (РХП). Это главное преимущество данного способа обрезания над другими методами сокращениями сложности, подходящими к данному случаю.
[00476] Вернемся к примеру скопления на ФИГ. 25 и, начиная с крайней левой позиции (позиция №1), будем продвигаться вправо по одной позиции основания за раз, используя в качестве порога обрезания оценку 60 по шкале phred на каждой итерации. Пусть представляет решения-кандидаты на j-й итерации. На ФИГ. 28 показаны решения-кандидаты на первой итерации, представляющие все комбинации оснований С и G, перечисленные в порядке убывания вероятности. Для любого решения с эквивалентными зеркально-отраженными представлениями (полученными путем обмена местами фаз) здесь показано только одно представление. Для всех решений-кандидатов можно рассчитать вероятности, и те вероятности, которые ниже порога обрезания (указанного сплошной линией на ФИГ. 28), можно отбросить. Как показано на ФИГ. 28, в результате способов обрезания, описанных в настоящем документе, выживут шесть кандидатов.
[00477] Далее, как показано на ФИГ. 29, дерево можно выращивать путем нахождения всех комбинаций выживших на итерации №1 кандидатов и оснований-кандидатов (С и А) в позиции №2. Частичный список новых кандидатов показан на ФИГ. 29 опять в порядке убывания вероятности. Снова можно рассчитать вероятности и сравнить с порогом обрезания, и в данном случае выживут 5 кандидатов.
[00478] Наконец, можно определить все комбинации выживших на итерации №2 кандидатов и оснований кандидатов в позиции №3(А и Т). Окончательные кандидаты и их связанные вероятности показаны на ФИГ. 30. Соответственно, при расчете вероятностей отдельных вариантов получится гетерозиготный ОНП в позиции №2 области №1 с оценкой качества 50,4 по шкале phred, что совпадает с результатом, полученным с помощью вычисления перебором. В данном примере обрезание не оказало значительного влияния на конечный результат, но в целом обрезание может влиять на расчет, часто приводя к более достоверной оценке.
[00479] Существуют множество возможных вариантов реализации этого подхода, которые могут влиять на рабочие характеристики и сложность системы, и разные варианты могут подходить для разных сценариев. Например, возможны отличия в принятии решения о том, какие области нужно включать. Например, определитель вариантов может быть выполнен таким образом, чтобы перед выполнением совместного обнаружения во множестве областей определять, нужно ли обрабатывать данную активную область отдельно или совместно с другими областями, и если совместно, то может затем определять, какие области нужно включать. В других случаях некоторые реализации могут опираться на список вторичных выравниваний, предоставляемый сопоставителем для информации или принятия решения иным образом. В других реализациях может использоваться база данных гомологичных областей, вычисленных в автономном режиме, например, на основе поиска референсного генома.
[00480] Соответственно, полезным этапом в таких операциях является принятие решения о том, какие позиции нужно включать. Например, необходимо отметить, что различные области, представляющие интерес, могут быть не самодостаточными и/или изолированными от примыкающих областей. Следовательно, информация в скоплении может влиять на вероятность разделенных оснований значительно сильнее, чем общая длина рида (например, длина парного рида или длина длинной молекулы). Поэтому необходимо принимать решение, какие позиции включать в расчет MRJD, и количество позиций не ограничено (даже при обрезании). Например, в некоторых реализациях могут обрабатываться перекрывающиеся блоки позиций и обновляться результаты для подмножества позиций на основе уровня достоверности в этих позициях или полноты подтверждающих данных в этих позициях (например, позиции возле середины блока, как правило, имеют более полные подтверждающие данные, чем те, что расположены возле края).
[00481] Другим определяющим фактором может быть порядок, в котором могут добавляться новые позиции. Например, в случае обрезанного MRJD порядок добавления новых позиций может влиять на рабочие характеристики. Например, в некоторых реализациях новые позиции могут добавляться на основе расстояния до уже включенных позиций или степени связности с этими позициями (например, количества ридов, перекрывающих обе позиции). Кроме того, существуют также множество вариантов того, как может выполняться обрезание. В примере, приведенном выше, обрезание основывалось на фиксированном пороге вероятности, но обычно порог обрезания может быть адаптивным или основанным на количестве выживших кандидатов. Например, в простой реализации порог может устанавливаться для поддержания количества кандидатов ниже фиксированного числа, тогда как в более сложной реализации порог может устанавливаться на основе анализа затрат и выгод включения дополнительных кандидатов.
[00482] В различных реализациях обрезание может выполняться на основе вероятностей вместо априорных вероятностей . Преимуществом здесь является возможность устранения эквивалентных зеркально отраженных представлений по всем областям (в дополнение к фазам). Данное преимущество, по меньшей мере частично, компенсируется недостатком, заключающимся в том, то кандидаты с очень низкими априорными вариантами не обрезаются, что в различных случаях может быть полезным. Поэтому полезное решение может зависеть от сценария. Если обрезание выполняется, например, на основе , то после заключительной итерации будет выполняться байесовское вычисление.
[00483] Кроме того, в приведенном выше примере процесс останавливался после обработки все позиций оснований в показанном скоплении, но возможны и другие критерии остановки. Например, если поиск решения осуществляется только для подмножества позиций оснований (например, при обработке перекрывающихся блоков), процесс может быть остановлен, когда результат для этого подмножества найден с достаточным уровнем достоверности, или когда достоверность перестала расти по мере добавления еще позиций. Однако в более сложны реализациях может выполняться какого-либо рода анализ затрат и выгод с присвоением весом стоимости вычисления в зависимости потенциальной ценности добавления дополнительных позиций.
[00484] Возможно, априорные вероятности тоже будут полезны. Например, в приведенных выше примерах использовалась простая модель IID, но могут быть использованы и другие модели. Например, необходимо отметить, что кластеры вариантов более распространены, чем можно было предсказать с помощью модели IID. Также необходимо отметить, что варианты с большей степенью вероятности встречаются в позициях, где референсы отличаются друг от друга. Следовательно, учет таких знаний в априорных вероятностях P(Gm) может улучшить характеристики обнаружения и дать более хорошие кривые РХП. В частности, необходимо отметить, что среди специалистов в области геномики нет четкого понимания в отношении априорных вероятностей для гомологических областей. Поэтому в некоторых реализациях возможно обновление априорных моделей по мере появления более качественной информации. Это может происходить автоматически по мере получения дополнительных результатов. Такие обновления могут основываться на других биологических образцах или других областях генома того же образца, изучение которых может быть применено к способам, изложенным в настоящем документе, для дальнейшего продвижения более быстрого и точного анализа.
[00485] Соответственно, в некоторых случаях может быть реализован итеративный процесс MRJD. А именно, методика, описанная в настоящем документе, может быть расширена, чтобы обеспечить возможность передачи сообщений между связанными областями с целью дальнейшего снижения сложности и/или повышения характеристик обнаружения системы. Например, результаты расчета в одном месте могут быть использованы в качестве входной априорной вероятности для расчета в соседнем месте. Кроме того, в некоторых реализациях может использоваться сочетание обрезания и выполнения итераций для достижения требуемого компромисса между рабочими характеристиками и сложностью.
[00486] Кроме того, возможна реализация приготовления образца для оптимизации процесса MRJD. Например, в случае секвенирования спаренных концов, возможно, будет полезно иметь жесткое распределение по размеру инсерции при использовании традиционного обнаружения. Однако в различных случаях введение вариации в размер инсерции могло бы значительно улучшить рабочие характеристики MRJD. Например, образец может быть приготовлен для умышленного введения бимодального распределения, многомодального распределения или распределения с колоколообразной кривой с более высокой вариацией, чем, как правило, реализуют для традиционного обнаружения.
[00487] На ФИГ. 31 показаны кривые РХП для MRJD и традиционного детектора для человеческого образца NA12878 в выбранных областях генома с одной гомологичной копией, так что N = 2, с меняющимися степенями подобия референсной последовательности. Для этого набора данных использовано секвенирование спаренных концов с длиной рида 101 и средним размер инсерции приблизительно 400. Как показано на ФИГ. 31, MRJD обеспечивает резко улучшенную чувствительность и специфичность в этих областях по сравнению с традиционными способами обнаружения. На ФИГ. 32 показаны те же самые результаты как функция от подобия последовательности, измеряемой в окне из 1000 оснований (например, если референсы отличаются 10 основаниями из 1000, то подобие составляет 99,0 процента). Можно заметить, что в случае этого набора данных традиционное обнаружение начинает плохо работать при подобии последовательности ~0,98, тогда как MRJD работает достаточно хорошо вплоть до 0,995 и даже выше.
[00488] Кроме того, в различных случаях данная методика может быть расширена, чтобы обеспечить возможность передачи сообщений между связанными областями с целью дальнейшего снижения сложности и/или повышения характеристик обнаружения. Например, результаты расчета в одном месте могут быть использованы в качестве входной априорной вероятности для расчета в соседнем месте, и в некоторых реализациях может использоваться сочетание обрезания и выполнения итераций для достижения требуемого компромисса между рабочими характеристиками и сложностью. В конкретных случаях, как указано выше, перед выполнением совместного обнаружения во множестве областей определитель вариантов может определять, следует ли обрабатывать данную активную область отдельно или совместно с другими областями. Кроме того, как указано выше, некоторые реализации могут опираться на список вторичных выравниваний, предоставляемый сопоставителем, для принятия такого решения. В других реализациях может использоваться база данных гомологичных областей, вычисленных в автономном режиме на основе поиска референсного генома.
[00489] Ввиду вышеизложенного, можно реализовать частично определенную скрытую марковскую модель (PD-HMM) таким образом, чтобы использовать преимущества MRJD. Например, MRJD может отдельно оценивать вероятность наблюдения части или всех ридов при данном возможном совместном диплотипе, который содержит по одному гаплотипу на каждую плоидию в каждой гомологичной референсной области, например, в случае двух гомологичных областей в диплоидных хромосомах каждый совместный диплотип будет содержать четыре гаплотипа. В таких случаях можно рассматривать все или часть возможных гаплотипов, например, путем конструирования, например, за счет изменения каждой референсной области с помощью каждого возможного подмножества из всех вариантов, для которых имеются нетривиальные подтверждающие данные. Однако, в случае длинных гомологичных референсных областей количество возможных вариантов большое, поэтому количество гаплотипов (комбинаций вариантов) вырастает экспоненциально, и количество совместных диплотипов (комбинаций гаплотипов) может стать астрономическим.
[00490] Следовательно, для сохранения управляемости расчетами MRJD, возможно, нецелесообразно проверять все возможные совместные диплотипы. Скорее, в некоторых случаях систему можно выполнить с возможностью проверки только небольших подмножеств «наиболее вероятных» совместных диплотипов. Эти «наиболее вероятные» совместные диплотипы могут быть определены путем инкрементального построения дерева частично определенных совместных диплотипов. В таких случаях каждый узел дерева может быть частично определенным диплотипом, который содержит частичной определенный гаплотип на каждую плоидию каждой гомологичной референсной области. В этом случае частично определенный гаплотип может содержать референсную область, модифицированную частично определенным подмножеством возможных вариантов. Соответственно, частично определенное подмножество возможных вариантов может для каждого возможного варианта содержать индикацию одного из трех состояний: вариант определен и присутствует, или вариант определен и отсутствует, или вариант еще не определен, например, он может присутствовать или отсутствовать. В корне дерева все варианты не определены во всех гаплотипах; узлы дерева, разветвляющиеся последовательно при отдалении от корня имеют последовательно больше вариантов, определенных как присутствующие или отсутствующие в каждом гаплотипе каждого совместного диплотипа узла.
[00491] Кроме того, в контексте данного дерева совместных диплотипов, как описано выше, объем расчетов MRJD сохраняется ограниченным и управляемым за счет обрезания ветвей дерева, в которых все узлы совместных диплотипов маловероятны, например, с вероятностью от умеренной до крайней, по сравнению с другими более вероятными ветвями или узлами. Соответственно, такое обрезание можно выполнять на ветвях или узлах, которые до сих пор лишь частично определены, например несколько или много вариантов еще не определены как присутствующие или отсутствующие в гаплотипах совместного диплотипа обрезанного узла. Следовательно, в таком случае полезно иметь возможность оценки или связывания правдоподобия каждого наблюдаемого рида в предположении истинности частично определенного гаплотипа. Расчет модифицированной парной скрытой марковской модели (рНММ), обозначаемой «PD-HMM» в случае «частично определенной парной скрытой марковской модели», полезно для оценки вероятности наблюдения рида R в предположении, что истинный гаплотип Н* согласуется с частично определенным гаплотипом Н. В данном контексте «согласуется» означает, что некоторый конкретный истинный гаплотип Н* согласуется с частично определенным гаплотипом Н с точки зрения всех вариантов, присутствие или отсутствие которых определено в Н, но для вариантов, не определенных в Н, Н* может согласоваться с референсной последовательностью, как модифицированной, так и немодифицированной каждым неопределенным вариантом.
[00492] Отметим, что простого выполнения обычного расчета рНММ, как правило, недостаточно для охвата некоторым выбранным подгаплотипом Н только определенных позиций вариантов. Вообще важно построить дерево совместных диплотипов с неопределенными вариантами, решаемыми в эффективном порядке, который обычно отличается от их геометрического порядка, поэтому частично определенный гаплотип Н будет, как правило, иметь много неопределенных позиций вариантов, перемежающихся с определенными. Для правильного рассмотрения связанных с инделами ошибок ПЦР полезно использовать напоминающее рНММ расчет, охватывающее все определенные варианты и значительный радиус вокруг них, что может быть не совместимо с попытками избежать неопределенных позиций вариантов.
[00493] Соответственно, входные данные PD-HMM могут включать в себя подвергнутую определению вариантов нуклеотидную последовательность рида R, оценки качества основания (например, по шкале phred) определенных нуклеотидов рида R, исходный гаплотип НО и список неопределенных вариантов (редакций) из НО. В число неопределенных вариантов могут входить замены одного основания (ОНП), замены множества оснований (МНП), инсерции и делеции. Преимуществом является то, что этого может быть достаточно для поддержки неопределенных ОНП и делеции. Неопределенные МНП могут быть неполностью, но в достаточной степени представлены как множество независимых ОНП, Неопределенная инсерция может быть представлена первой редакцией инсерции в исходном гаплотипе с последующим указанием неопределенной делеции, которая отменяет данную инсерцию.
[00494] На неопределенные делеции можно наложить ограничения, чтобы облегчить реализацию жестко смонтированного движка с ограниченной памятью и логикой, например, запретить перекрытие двух неопределенных делеции (удаление одних и тех же оснований исходного гаплотипа). При необходимости проверки частично определенного гаплотипа с помощью неопределенных вариантов, нарушающих такие ограничения, это можно решить путем преобразования одного или более неопределенных вариантов в определенные варианты за счет большего числа операций PD-HMM, охватывающих случаи с присутствием и отсутствием этих вариантов. Например, если две неопределенные делеции А и В нарушают ограничение вследствие перекрытия друг с другом в исходном гаплотипе НО, то делеция В может быть отредактирована в НО с получением НОВ, и могут быть выполнены две операции PD-HMM, использующие только неопределенную делецию А, одну для исходного гаплотипа НО, а другую для исходного гаплотипа НОВ, и полученная в результате этих двух операций PD-HMM максимальная вероятность может быть сохранена.
[00495] Результатом операции PD-HMM может быть оценка максимума среди всех гаплотипов Н*, которые могут быть сформированы путем редактирования НО с использованием только любого подмножества неопределенных вариантов. Максимизация может выполняться локально и вносить вклад в напоминающее рНММ динамическое программирование в данной ячейке, как если бы примыкающий неопределенный вариант присутствовал или отсутствовал в гаплотипе в зависимости оттого, какая оценка выше, например, вносить вклад в более высокую частную вероятность. Такая максимизация во время динамического программирования может привести к более высоким оценках максимума P(R|H*), чем истинная максимизация она отдельных чистых гаплотипах Н*, но разница обычно несущественная.
[00496] Неопределенные ОНП могут быть включены в PD-HMM путем разрешения задания одного или более значений совпадающих нуклеотидов для каждой позиции гаплотипа. Например, если основание 30 гаплотипа НО представляет собой «С», а неопределенный ОНП заменяет это основание «С» на «Т», то гаплотип в операции PD-HMM может указывать позицию 30 как оба основания, «С» и «Т». При обычном динамическом программировании рНММ любой переход в состояние «М» приводит к умножению вероятности пути на вероятность правильного определения основания (если позиция гаплотипа совпадает с позицией рида) или на вероятность определенной ошибки определения основания (если позиция гаплотипа не совпадаете позицией рида); в случае PD-HMM это изменено путем использования вероятности правильного определения, если позиция рида совпадает с любой из возможных позиций гаплотипа (например, «С» или «Т»), и вероятности ошибки определения основания в противном случае.
[00497] Неопределенные делеции гаплотипа могут быть включены в PD-HMM путем пометки флагом необязательно удаляемых позиций гаплотипа и изменения динамического программирования рНММ с тем, чтобы позволить путям выравнивания проходить, минуя по горизонтали сегменты гаплотипа с неопределенной делецией без потери вероятности. Это можно сделать различными способами, но с соблюдением общего правила, заключающегося в том, что значения вероятности состояний М, I и/или D могут переходить по горизонтали (вдоль оси гаплотипа) по всему промежутку неопределенной делеции без уменьшения обычных вероятностей открытия гэпа и продления гэпа.
[00498] В одном конкретном варианте реализации позиции, где начинаются неопределенные делеции, помечают флагом «F1», а позиции, где неопределенные делеции заканчиваются, помечают флагом «F2». В дополнение к «состояниям» М, I и D (представлениям частной вероятности) для каждой ячейки матрицы НММ (гаплотип по горизонтали/рид по вертикали) каждая ячейка PD-HMM может дополнительно содержать состояния «обхода» ВМ, BI и BD. В помеченных флагом F1 столбцах гаплотипа состояния ВМ, BI и BD принимают значения, копируемые из состояний М, I и D ячейки слева, соответственно. В не помеченных флагом F2 столбцах гаплотипа, в частности, в столбцах, начинающихся со столбца, помеченного флагом F1, и далее внутрь неопределенной делеции, состояния ВМ, BI и BD передают свои значения состояниям ВМ, BI и BD ячейки справа, соответственно. В помеченных флагом F2 столбцах гаплотипа вместо состояний М, I и D, используемых для расчета состояний примыкающих ячеек, используют максимум М и ВМ, максимум I и BI и максимум D и BD, соответственно. Это показано в качестве примера в столбце F2 как мультиплексированный выбор сигналов из регистров М и ВМ, I и BI, D и BD.
[00499] Отметим, что хотя регистры состояния ВМ, BI и DB могут быть представлены в столбцах с F1 по F2, и максимизирующие мультиплексоры М/ВМ, I/BI и D/BD могут быть показаны в столбце F2, эти компоненты могут присутствовать для расчетов всех ячеек, позволяя обрабатывать неопределенные делеции в любой позиции и обеспечивая возможность множества неопределенных делеции с соответствующими флагами F1 и F2 по всему гаплотипу. Отметим также, что флаги F1 и F2 могут быть в одном и том же столбце, когда неопределенная делеция состоит из одного основания. Так же необходимо отметить, что матрицу PD-HMM ячеек можно изобразить в виде схематического представления логических расчетов состояний М, I, D, ВМ, BI и BD, но в аппаратной реализации может присутствовать меньшее количество ячеек, рассчитывающих логические элементы, причем организованных в конвейер соответствующим образом для расчета значений состояний М, D, I, ВМ, BI и BD с высокими тактовыми частотами, а ячейки матрицы могут рассчитываться с различной степенью распараллеливания аппаратного обеспечения в различных порядках в соответствии с внутренне присущими логическими зависимостями расчета PD-HMM.
[00500] Таким образом, в данном варианте реализации значения состояний рНММ в одном столбце могут находиться непосредственно слева отделении, причем они могут быть захвачены и переданы вправо, без изменения, в крайний справа столбец этой промежуточной делеции, где они будут подставлены в расчет рНММ всякий раз, когда превзойдут оценки нормального пути. В случае выбора этих максимальных значений значения состояний «обхода» ВМ, BI и BD представляют результаты локального динамического программирования в предположении наличия делеции, тогда как значения «нормальных» состояний М, и D представляют результаты локального динамического программирования в предположении отсутствия неопределенной делеции.
[00501] В другом варианте реализации может быть использовано одно состояние обхода, например, состояние ВМ, принимающее значение из состояния М столбца, помеченного флагом F1, или принимающее сумму состояний М, D и/или I. В другом варианте реализации вместо использования состояний «обхода» удаляют штрафы на открытие гэпа/продление гэпа в столбцах неопределенных делеции. В другом варианте реализации состояния обхода вносят аддитивный вклад в динамическое программирование вправо от неопределенных делеции, а не используются для локальной максимизации. В еще одном варианте реализации используют в большем или меньшем количестве, или по-другому определенные, или по-другому располагаемые флаги позиции гаплотипа для инициирования обхода или подобных действий, например, один флаг, указывающий на принадлежность к неопределенной делеции. В дополнительном варианте реализации могут участвовать две или более перекрывающиеся неопределенные делеции, например, с использованием дополнительных флагом и/или состояний обхода. Кроме того, поддерживаются неопределенные инсерции в гаплотипе вместо или в дополнение к неопределенным делециям. Аналогичным образом поддерживаются неопределенные инсерции и/или делеции на оси рида вместо или в дополнение к неопределенным делециям и/или инсерциям на оси гаплотипа. В другом варианте реализации поддерживаются неопределенные замены множества оснований в качестве неделимых вариантов (все присутствуют или все отсутствуют). В еще одно варианте реализации поддерживаются неопределенные замены переменной длины в качестве неделимых вариантов. В другом варианте реализации неопределенные варианты штрафуют с использованием фиксированной или конфигурируемой вероятности или коррекций оценки.
[00502] Данный расчет PD-HMM может быть реализовано в виде аппаратного движка, например, в технологии FPGA или ASIC, путем расширения архитектуры аппаратного движка для «обычного» расчета рНММ, или может быть реализовано с помощью одной или более квантовых схем на квантовой вычислительной платформе. В дополнение к конвейерной логике движка для расчета, передачи и хранения значений состояний М, I и D для различных или последовательных ячеек может быть создана параллельная логика для расчета, передачи и хранения значений состояний ВМ, BI и BD, как описано выше в настоящем документе. Ресурсы памяти и порты для хранения и извлечения значений состояний М, I и D могут быть дополнены аналогичными или более широкими или глубокими ресурсами памяти и портами для хранения и извлечения значений состояний ВМ, BI и BD. Флаги, такие как F1 и F2, могут храниться в памятях наряду со связанными основаниями гаплотипов.
[00503] Множество совпадающих нуклеотидов для, например, позиций неопределенного ОНП гаплотипа, могут быть закодированы таким образом, чтобы использовать вектор, содержащий по одному биту на каждое возможное значение нуклеотида. Зависимости расчета ячеек в матрице рНММ остаются неизменными в PD-HMM, поэтому порядок и организация конвейера расчетов множества ячеек может оставаться тем же самым для PD-HMM. Однако, задержка по времени и/или тактовым циклам для полного расчета ячейки несколько увеличивается в случае PD-НММ, поскольку требуется сравнивать значения «обычных» и «обходных» состояний и выбирать из них те, что больше. Соответственно, возможно, что преимуществом будет включение одной или более дополнительных стадий конвейера для расчета ячеек PD-HMM, что приведет к дополнительной задержке в тактовых цикла. Кроме того, другим преимуществом может быть расширение каждой «полосы захвата» ячеек, рассчитываемых с помощью одной или более строк, чтобы дольше поддерживать конвейер в заполненном состоянии без проблем с зависимостями.
[00504] Данный выч расчет исление PD-HMM в два раза больше значений состояний (ВМ, BI, и BD в дополнение к М, I и D), чем обычное расчет рНММВ, и может потребовать примерно в два раза больше аппаратных ресурсов для реализации движка с эквивалентной пропускной способностью. Однако движок PD-HMM обладает преимуществами экспоненциальной скорости и эффективности с точки зрения увеличения неопределенных вариантов по сравнению с обычным движком рНММ, совершающего один прогон для каждого гаплотипа, представляющего отличающуюся комбинацию присутствующих или отсутствующих неопределенных вариантов. Например, если частично определенный гаплотип имеет 30 неопределенных вариантов, каждый из которых может независимо присутствовать или отсутствовать, то существуют 2^30, или более 1 миллиарда, различных специфических гаплотипов, которые пришлось бы обрабатывать с помощью рНММ в противном случае.
[00505] Соответственно, эти и другие подобные операции, описанные в настоящем документе, могут быть выполнены таким образом, чтобы лучше понимать и точнее прогнозировать, что случилось с геномом субъекта, что риды изменились относительно референса. Например, даже если мутации, возможно, встречаются случайным образом, существуют случаи, когда правдоподобие их появления представляется потенциально предсказуемой до некоторой степени. В частности, в некоторых случаях, когда встречаются мутации, они могут возникать в определенных известных местах и в определенных формах. Более конкретно, мутации, если они происходят, будут возникать на одном или другом аллеле, или на том и другом, и обычно чаще возникают в одних местах, чем в других, например, на концах хромосом. Следовательно, эта и другая связанная информация может быть использована для разработки моделей мутации, которые могут быть сформированы и использованы для лучшей оценки вероятного присутствия мутации в одной или более областях генома. Например, учитывая различные априорные знания, например, одну или более моделей мутации, при выполнении анализов геномных вариаций, можно добиться более хороших и более точных результата геномного анализа, например, с более точными разграничениями генетических мутаций.
[00506] Такие модели мутации могут позволить учитывать частоту и/или местоположение различных известных мутаций и/или мутаций, которые, как представляется, происходят в сочетании друг с другом или иным неслучайным образом. Например, установлено, что вариации встречаются преимущественно ближе к концам данной хромосомы. Таким образом, известные модели мутаций могут быть сформированы, сохранены в базе данных, описанной в настоящем документе и использоваться системой для более хорошего прогнозирования наличия одной или более вариаций в анализируемых геномных данных. Кроме того, можно также реализовать процесс машинного обучения, как описано более подробно ниже в настоящем документе, чтобы различные данные результатов, получаемые с помощью анализов, выполняемых здесь, могли быть проанализированы и использованы для более хорошего информирования системы о том, когда нужно предпринимать конкретное определение вариантов, например, в соответствии с принципами машинного обучения, описанными в настоящем документе. А именно, машинное обучение может быть реализовано на совокупных наборах данных, особенно в отношении определенных вариаций, и это обучение может быть использовано для более хорошего формирования более всеобъемлющих моделей мутации, которые, в свою очередь, могут быть использованы для выполнения более точных определений вариаций.
[00507] Следовательно, система может быть выполнена с возможностью рассмотрения различных данных вариаций, проверять данные на различные корреляции и, в случае обнаружения корреляции, такая информация может быть использована для более хорошего взвешивания и, следовательно, более точного определения наличия других вариаций в других образцах генома, например на регулярной основе. Соответственно, подобным образом система, в особенности движок определения вариантов, может постоянно обновляться изученными данными о корреляции варианта, чтобы достигать прогресса в более качественном определении вариантов для получения более хороших и более точных данных результатов.
[00508] А именно, можно использовать телеметрию для обновления растущей модели мутации, чтобы достигать улучшенного анализа в системе. Это может быть особенно полезно при анализе образцов, которые некоторым образом связаны друг с другом, например, принадлежат одной и той же географической популяции, и/или может быть использовано для определения того, какой референсный геном из множества референсных геномов может быть лучшим референсным геномом для анализа с его помощью конкретного образца. Кроме того, в различных случаях модель мутации и/или телеметрия могут быть использованы, чтобы лучше выбирать референсный геном для использования в процессах системы и тем самым улучшать точность и эффективность результатов системы. В частности, когда в одном или более описанных в настоящем документе анализов могут быть использованы множество референсных геномов, при выборе для использования преимущество может быть отдано конкретному референсному геному, например, благодаря применению модели мутации при выборе наиболее подходящего референсного генома для применения.
[00509] Необходимо отметить, что при выполнении вторичного анализа фундаментальная структура для каждой картируемоей или выравниваемой области генома может содержать один или более основополагающих генов. Соответственно, в различных случаях это понимание основополагающих генов/или функций белков, которые они кодируют, может обеспечить полезную информацию при выполнении вторичного анализа. В частности, третичные показатели и/или результаты могут быть полезны в протоколах вторичного анализа, выполняемых представленной системой, например, в процессе биологической контекстно-зависимой модели мутации. Более конкретно, поскольку ДНК кодирует гены, а гены кодируют белки, информация о таких белках, которые приводят к мутациям и/или одиозным функциям, может быть использована для информирования моделей мутации, используемых при выполнении вторичного и/или третичного анализа на геноме субъекта.
[00510] Например, третичный анализ, например, набор образцов генов, кодирующих мутированные белки, может быть информативным при выполнении вторичного анализа геномных областей, о которых известно, что они кодируют такие мутации. Следовательно, как указано выше, различные результат третичной обработки могут быть использованы для информирования и/или обновления моделей мутации, описанных в настоящем документе, для достижения более высокой точности и эффективности при выполнении различных операций вторичного анализа, описанных в настоящем документе. А именно, информация о мутированных белках, например, контекстуальный третичный анализ, может быть использована для обновления модели мутации прим выполнении вторичного анализа тех областей, о которых известно, что они кодируют белки и/или потенциально содержат такие мутации.
[00511] Соответственно, ввиду вышеизложенного, в случае вариантов реализации, включающих в себя ускоренные с помощью FPGA приложения картирования, выравнивания, сортировки и/или определения вариантов, одна или более из этих функций могут быть реализованы в одном или обоих из программных или аппаратных (АО) компонентах обработки, например, в программном обеспечении, исполняемом на традиционных ЦПУ, ГПУ, КПУ, и/или в прошивке, которая может быть внедрена в FPGA, ASIC, sASIC и т.п.В таких случаях ЦПУ и FPGA должны быть выполнены с возможностью обмена данными, чтобы передавать результаты с одного этапа в одном устройстве, например, ЦПУ или FPGA, для обработки на следующем этапе в другом устройстве. Например, при выполнении функции картирования построение больших структур данных, таких как индекс референса, может быть реализовано с помощью ЦПУ, а выполнение хэш-функции применительно к ним может быть реализовано с помощью FPGA. В таком случае ЦПУ может строить структуры данных, сохранять их в связанной памяти, такой как DRAM, причем память затем может быть доступна для движков обработки, выполняемых на FPGA.
[00512] Например, в некоторых вариантах реализации обмены данными между ЦПУ и FPGA могут быть реализованы с помощью любого подходящего межсоединения, такого как периферийная шина, например, шина PCIe, USB или сетевой интерфейс, такой как Ethernet. Однако шина PCIe может обеспечивать сравнительно слабую интеграцию между ЦПУ и FPGA, за счет чего задержки передачи между ними могут быть довольно высокими. Соответственно, хотя одно устройство (например, ЦПУ или FPGA) может получать доступ к памяти, прикрепленной к другому устройству (например, посредством передачи DMA), вызываемые области памяти выполнены без возможности кэширования, поскольку не имеют средств для поддержания когерентности кэша между двумя устройствами. В результате передачи между ЦПУ и FPGA ограничены выполнением между большими этапами обработки высокого уровня, и большое количество заданий на ввод и вывод должны быть организованы в очередь между устройствами, чтобы не замедлять друг друга в ожидании операций с высокой задержкой. Это замедляет различные операции обработки, описанные в настоящем документе. Кроме того, когда FPGA получает доступ к выполненной без возможности кэширования памяти ЦПУ, вся нагрузка такого обращения к памяти ложится на внешние интерфейсы памяти ЦПУ, которые ограничены по полосе пропускания по сравнению с их внутренними интерфейсами кэша.
[00513] Соответственно, вследствие таких слабых интеграции ЦПУ/FPGA обычно требуется иметь «централизованное» программное управление интерфейсом FPGA. В таких случаях различные программные потоки могут обрабатывать различные единицы данных, но когда эти потоки формируют работу для выполнения движком FPGA, эта работа должна быть агрегирована в «центральных» буферах, например, с помощью программного потока с одним агрегатором или с помощью доступа с агрегированием множества потоков посредством семафоров, причем управление передачей агрегированной работы с помощью пакетов DMA осуществляется центральным программным модулем, таким как драйвер пространства ядра. Следовательно, по мере создания результатов аппаратными движками происходит обратный процесс, причем программный драйвер принимает пакеты DMA из аппаратного обеспечения, а деагрегатор потоков распределяет результаты различным ожидающим программным рабочим потокам. Однако, это централизованное программное управление обменом данными с аппаратной логикой FPGA является громоздким и ресурсоемким, снижает эффективность программной поточно обработки и обмена данными между аппаратным и программным обеспечением, ограничивает практическую полосу пропускания обмена данными между аппаратным и программным обеспечением и резко повышает ее задержку.
[00514] Кроме того, как показано на ФИГ. 33А, слабая интеграция между ЦПУ 1000 и FPGA 7 может потребовать наличия у каждого устройства своей собственной специализированной внешней памяти, такой как DRAM 1014, 14. Как показано на ФИГ. 33А, ЦПУ 1000 имеет свою собственную DRAM 1014 на системной материнской плате, например, модули DIMM DDR3 или DDR4, тогда как FPGA 7 имеет свою собственную DRAM 14, например, 8 ГБ SODIMM, которая может быть напрямую соединена с FPGA 7 посредством одной или более шин 6 для DDR3, таких как шина PCIe с большой задержкой. Аналогичным образом ЦПУ 1000 может быть соединен с возможностью обмена данными со своим собственным DRAM 1014, например с помощью соответствующим образом сконфигурированной шины 1006. Как указано выше, FPGA 7 может быть выполнена с возможностью содержания одного или более движков 13 обработки, причем эти движки обработки могут быть выполнены с возможностью осуществления одной или более функций в биоинформационном конвейере, как описано в настоящем документе, например, когда FPGA 7 содержит движок 13а картирования, движок 13b выравнивания и движок 13 с определения вариантов. Также могут быть включены другие движки, описанные в настоящем документе. В различных вариантах реализации один или оба из ЦПУ и FPGA могут быть выполнены с возможностью содержания кэш-памяти 1014а, 14а, соответственно, которая выполнена с возможностью хранения данных, например, результирующих данных, которые передаются в нее одним или более различными компонентами системы, такими как одна или более памятей и/или один или более движков обработки.
[00515] Многие операции, описанные в настоящем документе, которые подлежат выполнению с помощью FPGA 7 для геномной обработки, требуют доступа к большой памяти для выполнения основополагающих операций. А именно, ввиду использования больших единиц данных, например, референсных геномов из более 3 миллиардов нуклеотидов, свыше 100 миллиардов нуклеотидов необработанных данных секвенатора и т.д., FPGA 7 может потребоваться многократный доступ к главной памяти 1014, например, для доступа к индексу, такому как хэш-таблица объемом 30 ГБ, или другому индексу референсного генома, например, в целях картирования затравок из исследуемой секвенированной ДНК/РНК на референсный геном из 3 миллиардов пар оснований и/или выборки сегментов-кандидатов, например, из референсного генома, для выравнивания на них.
[00516] Соответственно, в различных реализациях системы, описанной в настоящем документе, может понадобиться множество быстрых доступов к оперативной памяти одним или более жестко смонтированных движков 13, например, при выполнении операции картирования, выравнивания и/или определения вариантов. Однако, совершение FPGA 7 такого большого количества небольших произвольных доступов к памяти посредством периферийной шины 3 или другой сетевой линии связи с памятью 1014, присоединенной к главному ЦПУ 1000, может оказаться непозволительно непрактичным. Например, в таких случаях задержки возвращаемых данных могут быть очень большими, эффективность шины может быть очень низкой, например, для таких небольших произвольных доступов, и нагрузка на интерфейс 1006 внешней памяти ЦПУ может быть непозволительно большой.
[00517] Кроме того, в результате каждое устройство нуждается в своей собственной внешней памяти, причем полный форм-фактор полной платформы ЦПУ 1000+FPGA 7 вынужден быть больше, чем было бы желательно, например, для некоторых областей применения. В таких случаях в дополнение к стандартной системной материнской плате для одного или более ЦПУ 1000 и поддерживающих микросхем 7 и памятей 1014 и/или 14, требуется пространство на плате для большого корпуса FPGA (которое может оказаться даже еще больше вследствие необходимости достаточного количества контактов для нескольких шин внешней памяти) и нескольких модулей памяти 1014, 14. Однако стандартные материнские платы не содержат этих компонентов, да и найти на них свободного пространства трудно, поэтому практический вариант реализации может быть выполнен с возможностью использования платы 2 расширения, содержащей FPGA 7, ее память 14 и другие поддерживающие компоненты, такие как источник питания, которая, например, соединена с гнездом расширения PCIe на материнской плате ЦПУ. Чтобы иметь пространство для платы расширения 2, система может быть выполнена в достаточно большом корпусе, например, в виде сервера 1U или 2U или более крупного сервера, монтируемого в стойке.
[00518] Ввиду вышеизложенного, в различных случаях, как показано на ФИГ. 33 В, для преодоления этих факторов, возможно, потребуется конфигурировать ЦПУ 1000 в компоновке с жестким связыванием с FPGA 7. В частности, в различных случаях FPGA 7 может быть жестко связана с ЦПУ 1000, например, с помощью межсоединения 3 с малой задержкой, такого как межсоединение быстрого доступа (QPI). А именно, чтобы организовать более жесткую интеграцию ЦПУ+FPGA, эти два устройства могут быть соединены с помощью любого подходящего интерфейса с низкой задержкой, такого как «межпроцессорное соединение» и т.п, например INTELS® Quick Path Interconnect (QPI) или HyperTransport (HT).
[00519] Соответственно, как показано на ФИГ. 33В, система 1, предложенная в настоящем документе, содержит ЦПУ 1000 и процессор, такой как FPGA 7, причем оба устройства связаны с одним или более модулями памяти. Например, ЦПУ 1000 может быть соединено, например, с помощью соответствующим образом сконфигурированной шины 1006, с DRAM 1014, и, аналогичным образом, FPGA 7 соединена с возможностью обмена данными со связанной память 14 посредством шины 6 DDR3. Однако, в данном случае вместо того, чтобы соединяться друг с другом, например, посредством типичного межсоединения с низкой задержкой, например, интерфейса PCIe, ЦПУ 1000 соединено с FPGA 7 с помощью межсоединения 3 HyperTransport, такого как QPI. В таком случае благодаря низкой задержке, присущей таким межсоединениям, связанные памяти 1014, 14 ЦПУ 1000 и FPGA 7 легко доступны друг для друга. Кроме того, в различных случаях ввиду этой жестко связанной конфигурации один или более кэшей 1114а/14а, связанных с устройствами, могут быть выполнены с возможностью поддержания когерентности друг с другом.
[00520] В число некоторых основных свойств такого жестко связанного межсоединения ЦПУ/FPGA входят широкая полоса пропускания, например, 12,8 ГБ/с; низкая задержка, например, 100-300 не; адаптированный протокол, выполненный с возможностью обеспечения эффективных удаленных доступов к памяти и эффективных небольших передач в память, например, порядке 64 байтов или менее; и интеграция поддерживаемого протокола и ЦПУ для доступа к кэшу и когерентности кэша. В таких случаях естественным межсоединением для использования такой жесткой интеграции сданным ЦПУ 1000 может быть его собственное межпроцессорное соединение 1003, которое может быть использовано здесь для обеспечения возможности параллельной работы множества ядер и множества ЦПУ в пространстве совместно используемой памяти 1014, тем самым обеспечивая возможность доступа к стекам кэша друг друга и внешней памяти с поддержание когерентности кэша.
[00521] Соответственно, как показано на ФИГ. 34А и 34В, может быть предусмотрена плата 2, например, когда плата может быть выполнена с возможностью приема одного или более ЦПУ 1000, например, посредством множества межсоединений 1003, таких как собственные межпроцессорные соединения 1003а и 1003b. Однако в данном случае, как показано на ФИГ. 34А, ЦПУ 1000 выполнено с возможностью соединения с межсоединением 1003a, но вместо соединения с ним другого ЦПУ посредством межсоединения 1003b, с возможностью соединения с ним выполнена FPGA 7 по настоящему изобретению. Кроме того, система 1 выполнена таким образом, что ЦПУ 1000 может быть соединен со связанной FPGA 7, например, посредством межсоединения 3 жесткого связывания с малой задержкой. В таких случаях каждая память 1014, 14, связанная с соответствующим устройством 1000, 7, может быть выполнена с возможностью получения доступа друг к другу, например, с широкой полосой пропускания и поддержанием когерентности кэша.
[00522] Аналогичным образом, как показано на ФИГ. 34В, система также может быть выполнена с возможностью приема корпусов 1002а и/или 1002b, например, когда корпусы содержат один или более ЦПУ 1000a, 1000b, которые сильно связаны, например, посредством межсоединений 3а и 3b с низкой задержкой, с одной или более FPGA 7а, 7b, например, когда при данной архитектура системы каждый корпус 2а и 2b может быть соединен один с другим, например, посредством межсоединения 3 с жестким связыванием. Кроме того, как показано на ФИГ. 35, в различных случаях может быть предусмотрен корпус 1002а, причем корпус 1002а содержит ЦПУ 1000, выполненный с возможностью сильного связывания с интегральной схемой, такой как FPGA 7. В таком случае за счет сильного связывания ЦПУ 1000 и FPGA 7 система может быть построена с возможностью непосредственного совместного использования кэша 1014а с обеспечением согласованности, когерентности и легкодоступности для каждого из двух устройств, например, в отношении данных, хранящихся там.
[00523] Следовательно, в таких случаях FPGA 7 и один из корпусов 2а/2b может, в сущности, выдавать себя за другой ЦПУ и тем самым работать в среде поддерживающей когерентность кэша совместной используемой памяти с одним или более ЦПУ точно так же, как это делали бы множество ЦПУ на многогнездовой материнской плате 1002 или множество ядер ЦПУ в многоядерном ЦПУ. При таком межсоединении FPGA/ЦПУ FPGA 7 может эффективно совместно использовать память 1014 ЦПУ, а не иметь свою собственную специализированную внешнюю память 14, которая может или не может быть включена или доступа. Следовательно, в такой конфигурации быстрые, краткие, произвольные доступы эффективно поддерживаются межсоединением 3, например, с малой задержкой. Это делает ее практичной и эффективной для доступа различных движков 13 обработки в FPGA 7 к большим структурам данных в памяти ЦПУ 1000.
[00524] Например, как показано на ФИГ. 37, предложена система для осуществления одного или более способов, описанных в настоящем документе, например, когда способ включает в себя один или более этапов для выполнения функций по настоящему изобретению, таких как одна или более из функций картирования, и/или выравнивания, и/или определения вариантов, которые описаны в настоящем документе, стандартным образом. В частности, на этапе (1) может быть сформирована или иным образом обеспечена структура данных, например, с помощью СНП и/или ЦПУ 1000, после чего эта структура данных может быть сохранена (2) в связанной памяти, такой как DRAM 1014. Структура данных может быть любой структурой данных, например, в том, что касается тех, что описаны в настоящем документе, но в этом случае может быть множеством ридов секвенированных данных, и/или референсным геномом, и/или индексом референсного генома, например, для выполнения функций картирования, и/или выравнивания, и/или определения вариантов.
[00525] На втором этапе (2), например в том, что касается функций картирования и/или выравнивания и т.п, FPGA 7, связанная с ЦПУ 1000, например, посредством интерфейса 3 с тесным связыванием, может получать доступ к связанной памяти 1014 ЦПУ для выполнения одного или более действий в отношении хранящихся секвенированных ридов, референсных геномов и/или их индексов. В частности, на этапе (3), например, в операции картирования, FPGA 7 может получать доступ к структуре данных, например, к секвенированным ридами и/или референсным последовательностям, для создания из них одной или более затравок, например, когда структура данных содержит одно или более ридов и/или последовательностей генома. В таком случае затравки, например, последовательности референса и/или рида, могут быть использованы в целях выполнения с ними хэш-функции, например, для создания одного или более ридов, которое картировано на одну или более позиций относительно референсного генома.
[00526] На дальнейшем этапе (3) полученные картированные результирующие данные могут быть сохранены, например, либо в главной памяти 1014, либо в связанном DRAM 14. Кроме того, после того, как данные картированы, FPGA 7, или ее движок 13 обработки, может быть реконфигурирована, например, частично реконфигурирована, в качестве движка выравнивания, который может затем получить доступ к сохраненной структуре картированных данных для выполнения на ней функции выравнивания с целью создания одного или более ридов, выровненных на референсный геном. На дополнительном этапе (4) главное ЦПУ может затем получить доступ к картированным и/или выровненным данным для выполнения на них одной или более функций, например, для создания графа де Брейна («DBG»), который затем может быть сохранен в его связанной памяти. Аналогичным образом на одном или более дополнительных этапов FPGA 7 может снова обратиться к памяти 1014 главного ЦПУ для получения доступа к DBG и выполнения на нем анализа НММ с целью создания одного или более файлов определения вариантов.
[00527] В конкретных случаях ЦПУ 1000 и FPGA 7 могут иметь одну или более кэш-памятей, которые благодаря жесткому связыванию интерфейса между этими двумя устройствами обеспечат когерентность отдельных кэшей, например, в отношении промежуточных данных, например, данных результатов, хранящихся в них, например, в результате выполнения в них одной или более функций. Подобным образом данные могут совместно использоваться по существу беспрепятственно жестко связанными устройствами, тем самым позволяя функциям конвейера переплетаться, например, в биоинформационном конвейере. Поэтому в таком случае FPGA 7 больше не нужно иметь свою собственную присоединенную специализированную внешнюю память 14, и, следовательно, благодаря такой жестко связанной конфигурации сохраненные риды, референсный геном и/или индекс референсного генома, которые описаны в настоящем документе, могут интенсивно совместно использоваться, например, с поддержанием когерентности кэша, например, для картирования и выравнивания ридов и других операций обработки геномных данных.
[00528] Кроме того, как показано на ФИГ. 38, жестко связанные и поддерживающие когерентность кэша конфигурации, как и другие конфигурации компонентов, рассмотренные в настоящем документе, позволяют выполнять более мелкие операции низкого уровня в одном устройстве (например, ЦПУ или FPGA), прежде чем возвращать структуру данных или поток 20 обработки на другое устройство, например, для дальнейшей обработки. Например, в одном случае поток 20а ЦПУ может быть выполнен с возможностью организации больших количеств работ в очередь в аппаратной логику 13 FPGA для выполнения, и этот же или другой поток 20b может быть выполнен с возможностью последующей обработки большой очереди сформированных таким образом результатов, например, существенно позже. Однако, в различных случаях, возможно, будет более эффективно, если поток 20 ЦПУ, будет, как описано в настоящем документе, блокировать «вызов функции» в связанный аппаратный движок 13 FPGA, причем ЦПУ может быть установлено на возобновление исполнения программного обеспечения сразу по завершении аппаратной функции FPGA. Следовательно, вместо того, чтобы упаковывать структуры данных для потоковой передачи с помощью DMA 14 в FPGA 7 и распаковывать результаты по их возвращении, программный поток 20 мог бы просто предоставлять указатель памяти в движок 13 FPGA, который мог бы получать доступ к совместно используемой памяти 1014/14 и вносить изменения на месте с поддержанием когерентности кэша.
[00529] В частности, при такой взаимосвязи между структурами, предложенной в настоящем документе, глубина детализации взаимодействия программного обеспечения/аппаратного обеспечения может быть более мелкой, чтобы назначать более мелкие операции низкого уровня для выполнения различными аппаратными движками 13, например, путем вызова функций из различных выделенных программных потоков 20. Например, на слабо связанной платформе ЦПУ/FPGA для эффективного ускорения картирования, выравнивания и/или определения вариантов рида ДНК/РНК, может быть создан полный конвейер картирования/выравнивания/определения вариантов в виде одного или более программных и/или реализованных в FPGA движков, причем некартированные и невыровненные риды передаются в потоковом режиме из программного обеспечения в аппаратное обеспечение, где процесс может быть повторен, например, для определения вариантов. Что касается конфигураций, описанных в настоящем документе, они могут быть очень быстрыми. Однако в различных случаях такая система может страдать от ограничений гибкости, сложности и/или программируемости, например, вследствие того, что весь конвейер картирования/выравнивания и/или определения вариантов реализован в аппаратной схеме, которая, хотя и выполнена с возможностью реконфигурирования в FPGA, как правило, значительно менее гибкая и программируемая, чем программное обеспечение, и может быть поэтому ограничена меньшей алгоритмической сложностью.
[00530] В отличие от этого за счет использования жесткого межсоединения ЦПУ/FPGA, такого как QPI или другое межсоединение, в конфигурациях, описанных в настоящем документе, несколько ресурсоемких дискретных операций, таких как формирование затравки и/или картирование, восстановительное сканирование, выравнивание без гэпов, выравнивание с гэпами, например, выравнивание Смита-Ватермана и т.д., могут быть реализованы в виде различных доступных по отдельности аппаратных движков 13 (см., например, ФИГ. 38), и общие алгоритмы картирования/выравнивания и/или определения вариантов могут быть реализованы в программном обеспечении, причем ускорение низкого уровня осуществляется за счет обращения к FPGA за специальными дорогостоящими этапами обработки. Такая инфраструктура обеспечивает полную возможность программирования программного обеспечения за рамками определенных вызовов ускорения, и делает возможной более высокую алгоритмическую сложность и гибкость, чем в случае стандартных жестко смонтированных операций.
[00531] Кроме того, в такой инфраструктуре исполнения программного обеспечения, ускоренного путем вызовов низкоуровневого аппаратного ускорения FPGA, функции аппаратного ускорения могут более легко совместно использоваться для множества целей. Например, когда аппаратные движки 13 формируют большие монолитные конвейеры, отдельные подкомпоненты конвейера могут быть, как правило, специально предназначены для их среды и взаимно соединены между собой только в пределах одного конвейера, который, если он не тесно связан, может, вообще говоря, не быть доступным для любой цели. Но многие операции обработки геномных данных, такие как выравнивание Смита-Ватермана, построение графа де Брейна или графа сборки и другие подобные операции, могут быть использованы в различных родительских алгоритмах верхнего уровня. Например, как описано в настоящем документе, выравнивание Смита-Ватермана может быть использовано в картировании и выравнивании рида ДНК/РНК, например, относительно референсного генома, но может быть также выполнено с возможностью применения определителями вариантов на основе гаплотипа, для выравнивания гаплотипов-кандидатов на референсный геном или друг на друга, или для секвенированных последовательностей, например, в анализе НММ и/или функции определения вариантов. Следовательно, привлечение различных дискретных низкоуровневых функций аппаратного ускорения посредством вызовов функций общим программным обеспечением может позволить максимально использовать одну и ту же логику ускорения, например, 13, по всему приложению обработки геномных данных, например, при выполнении как выравнивания, так и определения вариантов, например операций НММ.
[00532] В случае тесного межсоединения ЦПУ/FPGA, с практической точки зрения целесообразно также иметь распределенное, а не централизованное, управление с помощью программного обеспечения ЦПУ 1000 по каналам связи с различными аппаратными движками 13 FPGA, описанными в настоящем документе. В широко распространенных на практике многопотоковых, многоядерных и многопроцессорных архитектурах программного обеспечения множество программных потоков и процессов обмениваются данными и взаимодействуют беспрепятственно без каких-либо центральных программных модулей, драйверов или потоков для управления внутренним обменом данными. В таком формате это практично ввиду совместно используемой памяти с поддержанием когерентности кэша, которая видна для потоков во всех ядрах всех ЦПУ, хотя физически когерентное совместное использование памяти ядрами и ЦПУ происходит за счет внутреннего обмена данными посредством процессорного межсоединения, например QPI или НТ.
[00533] Подобным образом, как показано на ФИГ. 36-38, системы, предложенные в настоящем документе, могут иметь ряд ЦПУ и/или FPGA, которые могут быть в конфигурации тесно связанного межсоединения ЦПУ/FPGA, включающей в себя множество потоков, например, 20а, b, с, и множество процессов, выполняющихся в одном или множестве ядер и/или ЦПУ, например 1000a, 100b и 1000с. Поэтому компоненты системы выполнены с возможностью обмена данными и взаимодействия с распределением между друг другом, например, между всевозможными разными ЦПУ и/или аппаратными движками ускорения FPGA, например, за счет совместного использования памяти с поддержание когерентности кэша различными ЦПУ и FPGA. Например, как показано на ФИГ. 36, множество ядер ЦПУ 1000a, 1000b и 1000 с могут быть связаны вместе так, чтобы совместно использовать одну или более памятей, например, DRAM 1014, и/или один или более кэшей, имеющих один или более слоев, например, LI, L2, L3 и т.д, или уровней, связанных с ними. Аналогичным образом, как показано на ФИГ, 38, в другом варианте реализации одно ЦПУ 1000 может быть выполнено с возможностью содержания множества ядер 1000a, 1000b и 1000с, которые могут быть связаны вместе таким образом, чтобы совместно использовать одну или более памятей, например, DRAM 1014, и/или один или более кэшей 1014а, имеющих один или более слоев или уровней, связанных с ними.
[00534] Поэтому в другом варианте реализации подлежащие обработке данные из одного или более программных потоков 20 из одного или более ядер 1000 ЦПУ в аппаратный движок 13, например, из FPGA, или наоборот может непрерывно и/или беспрепятственно обновляться в совместно используемой памяти 1014 или кэше и/или его слое, который виден каждому устройству. Кроме того, запросы на обработку данных в совместно используемой памяти 1014 или уведомления о результатах, обновляемых там, могут передаваться посредством сигнализации между программным и/или аппаратным обеспечением, например, по соответствующим образом сконфигурированной шине, например, шине DDR4, например, в очередях, которые могут быть реализованы внутри самой совместно используемой памяти. Для координации программного/аппаратного обеспечения могут быть также реализованы стандартные программные движки управления, передачи и защиты данных, такие как семафоры, взаимоисключающие блокировки и неразложимые целые числа.
[00535] Следовательно, в некоторых вариантах реализации, пример которых приведен на ФИГ. 36, и которые не требуют наличия своей собственной специализированной памяти 14 или иных внешних ресурсов у FPGA 7 ввиду когерентного совместного использования памяти посредством тесной межсоединения ЦПУ/FPGA, становится намного практичнее упаковывать FPGA 7 более компактным и присущим исходной системе образом в пределах традиционных материнских плат ЦПУ 1000 без использования плат расширения. См., например, ФИГ. 34А и 34 В и ФИГ. 35. Существуют несколько вариантов упаковки. А именно, FPGA 7 может быть установлена на многопроцессорную материнскую плату в гнездо ЦПУ, как показано на ФИГ. 34А и 34В, например, с помощью надлежащей переходной платы, такой как небольшая плата 2 PC или альтернативная связанная проводами упаковка кристалла FPGA в пределах корпуса 2а микросхемы ЦПУ, где контакты гнезда ЦПУ соответствующим образом соединены с контактами FPGA, включая соединения питания и заземления, процессорное межсоединение 3 (QPI, НТ и т.д.) и другие системные соединения. Соответственно, кристалл FPGA и кристалл ЦПУ могут быть включены в один и тот же многокристальный корпус (МСР) с необходимыми соединениями, включая питание, заземление и межсоединение ЦПУ/FPGA, созданные внутри корпуса 2а. Межкристальные соединения могут быть выполнены методом межкристального проволочного монтажа, или путем соединения с общей подложкой или переходной платой, или с помощью связанных контактных площадок или сквозных отверстий через кремний между многоуровневыми кристаллами.
[00536] Кроме того, в различных реализациях FPGA и ядра ЦПУ могут быть изготовлены на одном кристалле (см. ФИГ. 35) методом «система на микросхеме» (SOC). В любом из этих случаев заказная логика, например, 17, может быть реализована внутри FPGA 7, как для обмена данными по межсоединению 3 ЦПУ/FPGA, например, с помощью надлежащим образом созданных протоколов, так и обслуживания, преобразования и/или маршрутизации запросов на доступ к памяти из внутренних движков 13 FPGA через межсоединение 3 ЦПУ/FPGA посредством надлежащих протоколов в совместно используемую память 1014а. Кроме того, вся эта логика или ее некоторая часть могут быть реализованы в заказном кремниевом кристалле во избежание использования пространства логики FPGA в этих целях, например, когда отвержденная логика может находиться на кристалле ЦПУ и/или кристалле FPGA, или на отдельном кристалле. Кроме того, в любом из этих случаев требования к подаче электропитания и теплоотдаче могут быть достигнуты соответствующим образом, например, в одном корпусе (МСР или SOC). Кроме того, размер FPGA и количество ядер ЦПУ можно выбрать так, чтобы оставаться в пределах безопасной мощности огибающей, и/или можно использовать динамические методы (управление тактовой частотой, тактовое стробирование, отключение ядра, силовые острова и т.д.) для регулирования потребления энергии в соответствии с изменением потребности в вычислениях ЦПУ и/или FPGA.
[00537] Все эти варианты упаковки имеют ряд общих преимуществ. Жестко интегрированная платформа ЦПУ/FPGA становится совместимой со стандартными материнскими платами и/или корпусами системы различных размеров. В случае установки FPGA через переходную плату в гнездо ЦПУ (см. ФИГ. 34А и 34В) можно использовать по меньшей мере двухгнездовую материнскую плату 1002. В других случаях можно использовать четырехгнездовую материнскую плату, чтобы обеспечить возможность реализации конфигураций 3 ЦПУ+1 FPGA, 2 ЦПУ+2 FPGA или 1 CPU+3 FPGA и т.д. Если FPGA находится в одном корпусе с ЦПУ CPU (либо МСР, либо SOC), то можно использовать одногнездовую материнскую плату, потенциально в очень маленьком корпусе системы (хотя изображена двухгнездовая материнская плата); это также очень хорошо подходить для масштабирования в сторону увеличения, например, 4 FPGA и 4 многоядерных ЦПУ на 4-гнездовой серверной материнской плате, которые, тем не менее, могут работать в компактном корпусе, например в виде сервера 1U, монтируемого в стойке.
[00538] Соответственно, в различных случаях поэтому может существовать потребность в установке платы расширения, чтобы интегрировать ЦПУ и ускорение FPGA, так как FPGA 7 может быть интегрирована в гнездо 1003 ЦПУ. Такая реализация избавляет от дополнительных требований к пространству и электропитанию для платы расширения, и исключает вероятность появления различных дополнительных отказов, которые иногда возникают с картами расширения вследствие компонентов с относительно низкой надежностью. Кроме того, к FPGA или ЦПУ/FPGA в корпусах или в гнездах ЦПУ можно применять стандартные решения для охлаждения ЦПУ (теплоотводы, тепловые трубки и/или вентиляторы), которые эффективны даже при их низкой стоимости, поскольку изготовляются в больших объемах, тогда как охлаждение плат расширения может быть дорогостоящим и неэффективным.
[00539] Аналогичным образом FPGA/переходная плата и/или ЦПУ/FPGA в одном корпусе могут полностью использовать питание из гнезда ЦПУ, например, 150 Вт, тогда как плата расширения может быть ограничена по питанию, например, 25 Вт или 75 Вт из шины PCIe. В различных случаях для приложений обработки геномных данных все эти варианты упаковки могут облегчить установку тесно связанной платформы вычисления ЦПУ+FPGA, например внутри секвенатора ДНК. Например, типичные современные секвенаторы ДНК «нового поколения» содержат оборудование для секвенирования (хранилище для образцов и реагентов, трубки и средства регулирования для текучей среды, матрицы датчиков, средства первичной обработки изображения и/или сигнала) в корпусе, который также содержит стандартную или заказную серверную материнскую плату, соединенную проводами с устройством секвенирования для управления секвенированием и получения данных секвенирования. Жестко интегрированная платформа ЦПУ+FPGA, описанная в настоящем документе, может быть получена в таком секвенаторе, например, путем простой установки в гнезда ЦПУ имеющейся у него материнской платы одного или более комплекса FPGA/материнская плата и/или FPGA/ЦПУ в одном корпусе, или, в альтернативном варианте реализации, путем установки новой материнской платы с ЦПУ и FPGA, например, тесно связанных, как описано в настоящем документе. Кроме того, все эти варианты упаковки могут быть выполнены с возможностью способствования упрощению разработки тесно интегрированной платформы ЦПУ+FPGA, например, в доступной из облака и/или находящей в центре данных серверной стойке, в которую входят компактные/плотные серверы с очень высокой надежностью/доступностью.
[00540] Следовательно, в соответствии с идеями, изложенными в настоящем документе, существует множество этапов обработки для картирования и выравнивания, сортировки и/или удаления дубликатов, для определения вариантов данных секвенирования ДНК (или РНК), которые могут меняться в зависимости от используемых технологий первичной, и/или вторичной, и/или третичной обработки и их применений. В число таких этапов обработки могут входить одно или более из следующего: обработка сигнала на электрических измерениях из секвенатора, обработка изображения на оптических измерениях из секвенатора, определение оснований с помощью обработанных данных сигнала или изображения для определения наиболее вероятной нуклеотидной последовательности и оценок достоверности, фильтрация секвенированных ридов с низким качеством или поликлональными кластерами, обнаружение и обрезание адаптеров, ключевых последовательностей, штрихкодов и концов ридов низкого качества, а также de novo сборка последовательности, формирование и/или использование графов де Брейна и/или графов последовательности, например, построение графа де Брейна и графа последовательности, редактирование, обрезание, очистка, окрашивание, аннотирование, сравнение, преобразование, расщепление, анализ, выбора подграфа, прохождение, обратное прохождение, поиск, фильтрация, импорт, экспорт, в том числе картирование ридов на референсный геном, выравнивание ридов на возможные местоположения картирования в референсном геноме, локальная сборка ридов, картированных на референсную область, сортировка ридов по выровненным позициям, маркировка и/или удаление перекрывающихся ридов для соответствия инделов, перекалибровка оценки качества оснований, определение вариантов (одного образца или совместно), анализ структурных вариантов, анализ количество копий вариантов, определение соматических вариантов (например, только образца опухоли, совпадений опухоль/нормальная или опухоль/несовпавшая нормальная и т.д.), обнаружение границы сплайсинга РНК, анализ альтернативного сплайсинга РНК, сборка транскрипта РНК, анализ экспрессии транскрипта РНК, анализ дифференциальной экспрессии РНК, определение вариантов РНК, анализ отличия ДНК/РНК, анализ и определение метилирования ДНК, перекалибровка оценки качества вариантов, фильтрация вариантов, аннотирование вариантов с помощью баз данных известных вариантов, обнаружение и оценка загрязнения образца, прогнозирование фенотипа, тестирование на заболевание, прогнозирование реакции на терапию, разработка индивидуальной терапии, анализ родословной и истории мутации, анализ ДНК популяции, выявление генетических маркеров, кодирование геномных данных в стандартные форматы и/или файлы сжатия (например, FASTA, FASTQ, SAM, ВАМ, VCF, BCF), декодирование геномных данных из стандартных форматов, запрос, выбор или фильтрация подмножеств геномных данных, общие сжатие или распаковка геномных файлов (сжатие gzip, ВАМ), специализированные сжатие и распаковка геномных данных (CRAM), шифрование и расшифрование геномных данных, расчет статистики, сравнение и представление геномных данных, сравнение результирующих геномных данных, анализ точности и составление отчета, сохранение, архивирование, извлечение, резервное копирование, восстановление и передача геномного файла, а также построение геномной базы данных, выполнение запросов, управление доступом, выделение данных и т.п.
[00541] Все эти операции могут быть довольно медленными и дорогостоящими при реализации на традиционных вычислительных платформах. Медлительность таких операций, реализованных исключительно программным способом, может быть, отчасти, вызвана сложностью алгоритмов, но, как правило, обусловлена очень вводом и выводом очень больших наборов данных, что приводит к большой задержке по сравнению с движением данных. Устройства или системы, описанные в настоящем документе, преодолевают эти проблемы, в частности, за счет конфигурации различных аппаратных движков обработки, ускорения с помощью различных аппаратных реализаций и/или, частично, за счет тесного связывания ЦПУ/FPGA. Соответственно, как показано на ФИГ. 39, одна или более, например, все, из этих операций могут быть ускорены за счет взаимодействия ЦПУ 1000 и FPGA 7, например, в модели распределенной обработки, как описано в настоящем документе. Например, в некоторых случаях (шифрование, общее сжатие, картирование и/или выравнивание ридов) вся операционная функция может быть по существу или полностью реализована в заказной логике FPGA (например, с помощью методики разработки аппаратного обеспечения, например, RTL), например, когда программное обеспечение ЦПУ в основном исполняет функцию компиляции пакетов больших данных для обработки рабочими потоками 20, например, путем агрегирования данных в различные задания, подлежащие обработке одним или более жестко смонтированными движками обработки, и подачи различных входных данных, например, в формате «первым пришел, первым обслужен», в один или более движков 13 FPGA и/или принимает результаты из них.
[00542] Например, как показано на ФИГ. 39, в различных вариантах реализации рабочий поток формирует различные пакеты данных задания, которые могут быть скомпилированы и/или переданы в потоковом режиме в более крупные пакеты заданий, которые могут быть поставлены в очередь и/или дополнительно агрегированы в качестве подготовки для передачи, например, посредством DDR3 в 7, например, посредством протокола широкополосной двухточечной связи с малой задержкой, например QPI 3. В конкретных случаях данные могут быть буферизованы в соответствии с конкретными наборами данных, передаваемыми в FPGA. После того, как объединенные в пакет данные приняты FPGA 7, например, с поддержкой когерентности кэша, они могут обработаны и отправлены в один или более специализированных кластеров 11, откуда они могут быть направлены далее в один или более наборов движков обработки для обработки их там в соответствии с одной или более операций конвейера, описанных в настоящем документе.
[00543] После обработки данные результатов могут быть отправлены обратно в кластер и поставлены в очередь на отправку обратно по двухточечному межсоединению тесного связывания в ЦПУ для последующей обработки. В определенных вариантах реализации данные могут быть отправлены в поток деагрегатора для последующей обработки. По завершении последующей обработки данные могут быть отправлен обратно в первоначальный рабочий поток 20, который может ожидать эти данные. Такая распределенная обработка особенно полезна в случае функций, описанных выше в настоящем документе. В частности, эти функции отличаются тем, что их алгоритмическая сложность (хотя и требующая очень больших затрат сетевых вычислительных ресурсов) довольно ограничена и каждая из них может быть выполнена с возможностью обладания довольно равномерной вычислительной стоимостью всех своих различных подопераций.
[00544] Однако в различных случаях вместо обработки данных в больших пакетах могут выполняться более мелкие подпрограммы или протоколы отдельно взятых функций или элементов, например, относящиеся к одной или более функциям конвейера, а не выполняющие функции полной обработки для этого конвейера на этих данных. Следовательно, полезная стратегия может заключаться в выявлении одной или более критических функций для ресурсоемких вычислений в любой данной операции и затем реализовать эту подфункцию в заказной логике FPGA (аппаратное ускорение), например, для ресурсоемких подфункций, а остальную часть операции, и в идеале большую или значительную часть алгоритмической сложности, реализовать в программном обеспечении для выполнения в ЦПУ/ГПУ/КПУ, как описано в настоящем документе, например, в соответствии с ФИГ. 39.
[00545] Как правило, многие операции обработки геномных данных отличаются именно тем, что на небольшой процент алгоритмической сложности приходится большой процент общей вычислительной нагрузки. Вот типичный пример: на 20% алгоритмической сложности для выполнения данной функции могут приходиться 90% вычислительной нагрузки, тогда как на остальные 80% алгоритмической сложности может приходиться только 10% вычислительной нагрузки. Следовательно, в различных случаях компоненты системы, описанной в настоящем документе, могут быть выполнены с возможностью реализации большой, например, 20% или более, части сложности для осуществления с высокой эффективностью в заказной логике FPGA, которая может быть выполнена с возможностью отслеживания и управления в аппаратной конструкции и, таким образом, может быть выполнена с возможностью осуществления этого в FPGA; что, в свою очередь, может снизить вычислительную нагрузку на ЦПУ на 90%, тем самым обеспечив 10-кратное общее ускорение. Другие типичные примеры могут быть даже еще более экстремальными, например, когда на 10% логарифмической сложности может приходиться 98% вычислительной нагрузки, и в таком случае применения ускорения FPGA, как описано в настоящем документе, к составляющей 10% части сложности может быть даже еще проще, но может также обеспечить до 50-кратного чистого ускорения. В различных случаях, где требуется предельно ускоренная обработки, одна или более функций могут выполняться квантовым вычислительным устройством.
[00546] Однако такие подходы к ускорению на основе «раздробленной» или распределенной обработки могут более практичными при реализации на тесно интегрированной платформе ЦПУ/ГПУ+FPGA, а не на слабо интегрированной платформе ЦПУ/ГПУ+FPGA. В частности, на слабо интегрированной платформе часть, например, функции, подлежащие реализации в логике FPGA, могут быть выбраны таким образом, чтобы свести к минимуму ввод данных в движки FPGA и свести к минимуму вывода данных из движков FPGA, например, для каждой единицы обработанных данных, и дополнительно можно было выполнить их с возможностью поддержания границы между программным/аппаратным обеспечением, способной выдерживать большие задержки. В таких случаях граница между аппаратной и программной частями может усиливаться, например, на слабо интегрированной платформе, для протаскивания через определенные точки стыка узкой полосы пропускания/широкой полосы пропускания, причем эти разделения могут быть в противном случае нежелательны в других отношениях при оптимизации разбиения на части алгоритмической сложности и вычислительной нагрузки. Этом может зачастую приводить к удлинению границ аппаратной части, охватывающих нежелательно большую часть алгоритмической сложности в жестко смонтированном формате, или к сжатию границ аппаратной части с нежелательным исключением частей с плотной вычислительной нагрузкой.
[00547] В отличие от этого на жестко связанной платформе ЦПУ/ГПУ+FPGA благодаря совестно используемой памяти с поддержанием когерентности кэша и широкополосному межсоединению с малой задержкой ЦПУ/ГПУ/FPGA части операции обработки геномных данных с низкой сложностью/высокой вычислительной нагрузкой могут быть выбраны очень точно для реализации в заказной логике FPGA (например, с помощью аппаратных движков, описанных в настоящем документе), при оптимизированных границах между программным/аппаратным обеспечением. В таком случае, даже если единица данных на желательной границе между программным/аппаратным обеспечением большая, она все равно может быть передана на обслуживание в аппаратный движок FPGA для обработки, просто за счет передачи указателя в конкретную единицу данных. В частности, в случае, который показан на ФИГ. 33В, аппаратный движок 13 FPGA 7 может обойтись без доступа к каждому элементу единицы данных, хранящихся в DRAM 1014; вместо этого он может получать доступ к необходимым элементам, например, в кэше 1014а, с помощью небольших эффективных доступов по межсоединению 3' с малой задержкой, обслуживающему кэш ЦПУ/ГПУ, те самым потребляя меньше совокупной полосы пропускания, чем в случае, если бы нужно было получить доступ ко всей единице данных и/или передать ее на FPGA 7, например, с помощью DMA памяти DRAM 1014 по слабому межсоединению 3, как показано на. 33А.
[00548] В таких случаях аппаратный движок 13 может аннотировать результаты обработки единице данных на месте в памяти 1014 ЦПУ/ГПУ, не передавая в потоковом режиме полную копию единицы данных с помощью DMA в память ЦПУ/ГПУ. Даже если требуемая граница между программным/аппаратным обеспечением не подходит для того, чтобы программный поток 20 выполнял с большой задержкой неблокирующую передачу на обслуживание в порядке очереди в аппаратный движок 13, она потенциально может создать блокирующий вызов функции в аппаратный движок 13, переходя в режим сна на время короткой задержки, пока аппаратные движки не завершат работу, причем эта задержка резко уменьшается с помощью совместной памяти с поддержанием когерентности кэша, высокоскоростного межсоединения с малой задержкой и распределенной модели координации между программным/аппаратным обеспечением, как показано на ФИГ. 33В.
[00549] В конкретных случаях ввиду того, специфические алгоритмы и требования к обработке сигнала/изображения и определению оснований меняются от одной технологии секвенатора к другой, и поскольку количество необработанных данных с датчика секвенатора обычно колоссальное (оно сокращается до огромного после обработки сигнала/изображения и до умеренно большого после определения оснований), такие обработка сигнала/изображения и определение оснований могут эффективно выполняться в самом секвенаторе или на расположенном по соседству вычислительном сервере, соединенном посредством широкополосного канала передачи с секвенатором. Однако пропускная способность секвенаторов ДНК постоянно увеличивалась с темпами роста, превышающими закон Мура, так что существующих основанных на центральном процессорном устройстве («ЦПУ») и/или графическом процессорном устройстве («ГПУ») обработок сигнала/изображения и определения оснований, реализуемых по отдельности и каждый сам по себе, стало все больше и больше не хватать для выполнения этой задачи. Тем не менее, поскольку жестко интегрированные платформы ЦПУ+FPGA и/или ЦПУ+FPGA и/или ГПУ/ЦПУ+FPGA могут быть выполнены компактными и легко реализуемыми в таком секвенаторе, например, в виде микросхемы ЦПУ, и/или ГПУ, и/или FPGA, помещенной на материнскую плату секвенатора, или легко устанавливаемое в сервер возле секвенатора, или облачную серверную систему с дистанционным доступом из секвенатора, такой секвенатор может быть идеальной платформой для обеспечения ускорения громоздких вычислений, оказываемого аппаратными движками FPGA/ASIC, описанными в настоящем документе.
[00550] Например, система, предложенная в настоящем документе, может быть выполнена с возможностью осуществления первичной, вторичной и/или третичной обработки, или ее части таким образом, чтобы реализовывать ее с помощью ускоренной платформы ЦПУ, ГПУ и/или FPGA; ЦПУ+FPGA; ГПУ+FPGA; ГПУ/ЦПУ+FPGA; КПУ; ЦПУ/КПУ; ГПУ/КПУ; ЦПУ и/или, ГПУ, и/или КПУ+FPGA. Кроме того, такие ускоренные платформы, например, содержащие один или более аппаратных движков FPGA и/или КПУ, полезны для реализации в облачных системах, как описано в настоящем документе. Например, обработка сигнала/изображения, алгоритмы определения оснований, картирования, выравнивания, сортировки, удаления дубликатов и/или определения вариантов, или их части, обычно требуют большого количества математических операций с плавающей запятой и/или фиксированной запятой, в особенности сложений и умножений. Эти функции могут быть также выполнены с возможностью осуществления одной или более схем квантовой обработки, например, реализованы на квантовой платформе обработки.
[00551] В частности, большие современные FPGA/квантовые схемы содержат тысячи высокоскоростных ресурсов умножения и сложения. Более конкретно, эти схемы могут содержать заказные движки, которые могут быть реализованы в них или с их помощью, причем заказные движки могут быть выполнены с возможностью осуществления параллельных арифметических операций со скоростями далеко превышающими возможности простых ЦПУ общего назначения. Аналогичным образом простые ГПУ имеют более сравнимые ресурсы для параллельных арифметических операций. Тем не менее, ГПУ часто имеют неудобные ограничения в отношении архитектуры и программирования, которые могут сделать невозможным использование их в полной мере. Соответственно, эти арифметические ресурсы FPGA, и/или квантовой обработки, и/или ГПУ могут быть собраны в схему или иным образом сконфигурированную конструкцию для работы в точности предусмотренным образом с эффективностью почти 100%, например, для осуществления расчетов, необходимых функций, описанных в настоящем документе. Соответственно, можно добавить плату ГПУ в гнезда расширения на материнской плате с жестко интегрированными ЦПУ и/или FPGA, тем самым обеспечив возможность взаимодействия всех трех типов процессоров, хотя ГПУ может все же взаимодействовать со всеми своими собственным ограничениями и ограничениями слабой интеграции.
[00552] Более конкретно, что касается графических процессорных устройств (ГПУ), в различных случаях ГПУ может быть выполнено с возможностью реализации одной или более функций, как описано в настоящем документе, для ускорения скорости обработки основополагающих расчетов, необходимых для выполнения данной функции, полностью или частично. Более конкретно, ГПУ может быть выполнено с возможностью осуществления одной или более задач в протоколе картирования, выравнивания, сортировки, удаления дубликатов и/или определения вариантов, например, для ускорения одного или более вычислений, например, большого количества математических операций с плавающей запятой и/или фиксированной запятой, например, связанных с ними сложений и умножений, для совместной работы с ЦПУ и/или FPGA сервера с целью ускорения выполнения приложения или обработки и сокращения циклов вычислений, требуемых для осуществления таких функций. Облачные серверы, описанные в настоящем документе, с платами ГПУ/ЦПУ/FPGA могут быть выполнены с возможностью решения без труда ресурсоемких вычислительных задачам и обеспечения менее проблемного взаимодействия с пользователем при использовании для визуализации. Такие задачи, требующие ресурсоемких вычислений, могут быть также сброшены на облако, например, для выполнения квантовым вычислительным устройством.
[00553] Соответственно, если жестко интегрированные платформы ЦПУ+FPGA или ГПУ+FPGA и/или ЦПУ/ГПУ/FPGA с совместно используемой памятью применяются в секвенаторе или на прикрепленном или облачном сервере, например, для обработки сигнала/изображения, функций определения оснований, картирования, выравнивания, сортировки, удаления дубликатов и/или определения вариантов, то можно добиться выигрыша, например, в процессе инкрементальной разработки. Например, первоначально ограниченную часть вычислительной нагрузки, такую как программирование функции для определения оснований, картирования, выравнивания, сортировки, удаления дубликатов и/или определения вариантов, можно реализовать в одном или более движках FPGA, тогда как остальная работа может выполняться в платах расширения ЦПУ и/или ГПУ, Однако, модель с жесткой интеграцией ЦПУ/ГПУ/FPGA совместно используемой памятью, представленная в настоящем документе, может быть позже дополнительно сконфигурирована, чтобы облегчить инкрементальный выбор дополнительных требующих ресурсоемких вычислений функций для ускорения с помощью ГПУ, FPGA и/или квантового ускорения, которые могут быть затем реализованы в виде движков обработки, и различные их функции могут быть сброшены для выполнения в FPGA и/или в некоторых случаях могут быть сброшены на облако, например, для выполнения с помощью КПУ, тем самым ускоряя обработку сигнала/изображения/определения оснований/картирования/выравнивания/определения вариантов. Такие инкрементальные продвижения могут быть реализованы по мере необходимости, чтобы не отставать от растущей пропускной способности различных технологий первичной, и/или вторичной, и/или третичной обработки.
[00554] Следовательно, картирование и выравнивание ридов, например, одного или более ридов, на референсный геном, как и сортировка, удаление дубликатов и/или определение вариантов, могут выиграть от такого ускорения с помощью ГПУ и/или FPGA, или КПУ. А именно, картирование и выравнивание и/или определение вариантов, или их части, могут быть реализованы частично или полностью виде заказной логики FPGA, например, с помощью потоковой передачи «подлежащих картированию, и/или выравниванию, и/или определению вариантов» ридов из памяти ЦПУ/ГПУ в движки картирования/выравнивания/определения вариантов FPGA и обратной потоковой передачи записей картированных, и/или выровненных, и/или подвергнутых определению вариантов ридов, которые могут быть затем отправлены в потоковом режиме на плату, например, при выполнении сортировки и/или определения вариантов. Ускорение FPGA работает только на слабо связанной платформе ЦПУ/ГПУ+FPGA, и в конфигурациях, описанных в настоящем документе, может быть чрезвычайно быстрым. Тем не менее, существуют некоторые дополнительные преимущества, которые могут быть достигнуты за счет перехода на жестко интегрированную платформу ЦПУ/ГПУ/КПУ+FPGA.
[00555] Соответственно, что касается картирования, выравнивания и определения вариантов, в некоторых вариантах реализации общее преимущество жестко интегрированных ЦПУ/ГПУ+FPGA и/или квантовой платформы обработки, как описано в настоящем документе, состоит в том, что ускорение картирования/выравнивания/определения вариантов, например, аппаратное ускорение, может быть эффективно разбито на несколько дискретных требующих ресурсоемких вычислений операций, таких как формирование и/или картирование затравки, формирование цепочки затравки, восстановительное сканирование спаренных концов, выравнивание без гэпов и выравнивание с гэпами (Смита-Ватермана или Нидлмана-Вунша), формирование графа де Брейна, выполнение вычисления НММ и т.п., например, когда программное обеспечение ЦПУ, и/или ГПУ, и/или квантового вычисления выполняет более легкие (но необязательно менее сложные) задачи и может совершать вызовы ускорения из дискретных аппаратных и/или других движков квантового вычисления по мере надобности. Такая модель может быть менее эффективной на типичной слабо интегрированной платформе ЦПУ/ГПУ+FPGA, например, вследствие больших объемов данных, подлежащих передаче туда и обратно между этапами, и больших задержек, но могут быть более эффективными на жестко интегрированной платформе ЦПУ+FPGA, ГПУ+FPGA и/или квантового вычисления с совместно используемой памятью с поддержание когерентности кэша, широкополосным межсоединением с малой задержкой и распределенной моделью координации программного/аппаратного обеспечения. Кроме того, например, в том, что касается определения вариантов, алгоритмы скрытой марковской модели (НММ) и/или динамического программирования (ДП), включая алгоритмы Витерби и алгоритм прямого хода, могут быть реализованы совместно с операцией определения оснований/картирования/выравнивания/сортировки/удаления дубликатов, например, для сравнения наиболее вероятной исходной последовательности, объясняющей наблюдаемые измерения датчика, в конфигурации, например, хорошо подходящей для параллельной ячеистых схем FPGA и/или квантовых схем, описанных в настоящем документе.
[00556] А именно, эффективное использование аппаратных и/или программных ресурсов в распределенной конфигурации обработки может быть результатом сокращения ускорения с помощью аппаратного обеспечения и/или квантового вычисления для дискретных требующих ресурсоемких вычислений функций. В таких случаях несколько функций, описанных в настоящем документе, могут выполняться в монолитном строго аппаратном движке, чтобы требовать меньше ресурсоемких вычислений, но могут, несмотря на это, оставаться алгоритмически сложными и, следовательно, могут потреблять значительные количества физических ресурсов FPGA (таблицы подстановки, триггеры, блочные ОЗУ и т.д.). В таких случаях переход части или всех различных дискретных функций на программное обеспечение взял бы на себя имеющиеся циклы ЦПУ взамен на освобождение площади FPGA существенного размера. В определенных подобных случаях освобожденная площадь FPGA может быть использована для организации большей параллельности требующих ресурсоемких вычислений подфункций картирования/выравнивания/определения вариантов и таким образом усиления ускорения, или для других геномных функций ускорения. Таких преимуществ можно также достичь за счет реализации требующих ресурсоемких вычислений функций в одной или более специализированных квантовых схем для реализации квантовой вычислительной платформы.
[00557] Следовательно, в различных вариантах реализации алгоритмическая сложность одной или более функций, описанных в настоящем документе, может быть несколько снижена путем выполнения их строго в аппаратном обеспечении или строго в реализации квантовых вычислений. Однако, некоторые операции, такие как сравнение пар возможных выравниваний для ридов со спаренными концами и/или выполнения едва различимых оценок качества картирования (MAPQ), представляют очень низкие вычислительные нагрузки, и поэтому могли бы выиграть от более сложной и точной обработки в программном обеспечении ЦПУ/ГПУ и/или квантового вычисления. Поэтому, как правило, сокращение аппаратной обработки до специфических требующих ресурсоемких вычислений операций позволит использовать более сложные и точные алгоритмы в частях ЦПУ/ГПУ,
[00558] Кроме того, в различных вариантах реализации все или часть операций картирования/выравнивания/сортировки/удаления дубликатов/определения вариантов, описанные в настоящем документе, могут быть выполнены таким образом, чтобы более сложные алгоритмически вычисления могли выполняться на высоких уровнях в аппаратном обеспечении и/или в одной или более квантовых схем, например, когда вызываемые требующие ресурсоемких вычислений аппаратные и/или квантовые функции выполнены с возможностью осуществления в динамическом или итеративном порядке. В частности, монолитная конструкция строго аппаратной/квантовой обработки может быть реализована с возможностью более эффективного функционирования в линейном конвейере. Например, если во время обработки одно отображаемое выравнивание Смита-Ватермана свидетельствует о том, что истинный путь выравнивания выходит за пределы полосы оценки, например, полосы захвата, как описано выше, для исправления этого нужно вызвать еще одно выравнивание Смита-Ватермана. Следовательно, эти конфигурации могут по существу свести ускорение с помощью аппаратного обеспечения FPGA/квантовое ускорение к дискретным функциям, таким как формирование процедурных абстракций, которые сделают возможным более легкое создание сложности более высокого уровня поверх них.
[00559] Кроме того, в различных случаях гибкость в пределах алгоритмов картирования/выравнивания/определения вариантов и их функций может быть улучшена путем сведения программного и/или квантового ускорения к дискретным требующим ресурсоемких вычислений функциям и выполнения системы с возможностью осуществления других, например, менее ресурсоемких, частей, в программном обеспечении ЦПУ и/или ГПУ, Например, хотя аппаратные алгоритмы могут быть модифицированы и реконфигурированы в FPGA, как правило, такие изменения в аппаратных конструкциях, например посредством прошивки, могут потребовать в несколько раз больших усилий, чем подобные изменения в программном обеспечении. В таких случаях требующие ресурсоемких вычислений части картирования, и выравнивания, и сортировки, и удаления дубликатов и/или определения вариантов, такие как картирования затравки, формирование цепочки затравки, восстановительное сканирование спаренных концов, выравнивание без гэпов, выравнивание с гэпам и НММ, которые относительно хорошо определены, являются поэтому стабильными функциями и не требуют частых алгоритмических изменений. Следовательно, эти функции могут быть соответствующим образом оптимизированы в аппаратном оборудовании, тогда как другие функции, которые могут быть выполнены программным обеспечением ЦПУ/ГПУ, больше подходят для инкрементального улучшения алгоритмов, что значительно проще в программном обеспечении. Однако после полной отработки они могут быть реализованы в аппаратном обеспечении. Одна или более из этих функций могут быть также выполнены с возможностью реализации в одной или более квантовых схем машины квантовой обработки.
[00560] Соответственно, в различных случаях определение вариантов (по отношению к ДНК или РНК, одного образца или совместной, генеративной или соматической и т.д.) тоже может выиграть от ускорения с помощью FPGA и/или квантового ускорения, например, в отношении его различных требующих ресурсоемких вычислений функций. Например, определители на основе гаплотипов, которые определяют основания на основе подтверждающих данных, полученных из контекста, обеспечиваемого в пределах окна вокруг потенциального варианта, как описано в выше, частот являются наиболее требовательными к ресурсоемким вычислениям. Эти операции, включая сравнение гаплотипа-кандидата (например, однонитевой нуклеотидной последовательности, представляющей гипотезу истинности последовательности по меньшей мере одной из нитей образца в исследуемом локусе генома) с каждым ридом секвенатора, например, для оценки условной вероятности наблюдения рида при условии истинности данного гаплотипа.
[00561] Такую операцию можно выполнить с помощью одного или более расчетов MRJD, парной скрытой марковской модели (парная-НММ) и/или частично определенной марковской модели (PD-HMM), которое суммирует вероятности возможных комбинаций ошибок при секвенировании или приготовлении образца (ПЦР и т.д.) с помощью алгоритма динамического программирования. Следовательно, в подобных случаях система может быть выполнена с возможностью ускорения расчета парной-НММ или PD-HMM с помощью одного или более, например, параллельных, аппаратных движков FPGA или движков квантовой обработки, где программное обеспечение ЦПУ/ГПУ/КПУ может быть выполнено с возможностью исполнения остальной части родительского алгоритма определения вариантов на основе гаплотипов, либо на слабо интегрированной платформе, либо на жестко интегрированной платформе ЦПУ+FPGA, или ГПУ+FPGA, или ЦПУ и/или ГПУ+FPGA, и/или КПУ. Например, при слабой интеграции программные потоки могут строить и подготавливать граф де Брейна и/или граф сборки из ридов, перекрывающих выбранную активную область (окно или непрерывное подмножество референсного генома), выделять гаплотипы-кандидаты из графа и выстраивать в очередь пары гаплотип-рид для передачи с помощью DMA в аппаратные движки FPGA, например, для сравнения парной-НММ или PD-HMM. Те же самые или другие программные потоки могут затем принимать результаты парной-НММ, поставленные в очередь и переданные с помощью DMA обратно из FPGA в память ЦПУ/ГПУ и выполнять генотипирование и байесовское вычисление вероятностей для осуществления окончательного определения вариантов. Конечно, одна или более из этих функций могут быть выполнены с возможностью выполнения на одной или более квантовых вычислительных платформ.
[00562] Например, как показано на ФИГ. 38, ЦПУ/ГПУ 1000 может включать в себя один или более, например, множество, потоков 20а, 20b и 20с, каждый из которых может иметь доступ к связанному DRAM 1014, причем DRAM имеет рабочие пространства 1014а, 1014b и 1014с, в пределах которых каждый поток 20а, 20b и 20с может иметь доступ, соответственно, для выполнения одной или более операций на одной или более структур данных, таких как большие структуры данных. Эти части памяти и их структуры данных могут быть доступны, например, через соответствующие части 1014а' кэша, например, для одного или более движков 13а, 13b, 13с обработки FPGA 7, причем движки обработки могут получать доступ к структурам референсных данных, например, при выполнении одной или более операций, описанных в настоящем документе, таких как картирование, выравнивание, сортировка и/или поиск вариантов. Благодаря широкополосному тесно связывающему межсоединению 3 данные, относящиеся к структурам данных и/или связанные с результатами обработки, могут по существу беспрепятственно совместно использоваться ЦПУ, и/или ГПУ, и/или КПУ, и/или связанной FPGA, например, с поддержанием когерентности кэша, для оптимизации эффективности обработки.
[00563] Соответственно, согласно одному аспекту может быть предусмотрена система, которая может быть выполнена с возможностью совместного использования ресурсов памяти среди ее составных частей, например, при выполнении некоторых вычислительных задач или подфункций посредством программного обеспечения, такого как выполняемое с помощью ЦПУ, и/или ГПУ, и/или КПУ, и/или выполнения других вычислительных задач или подпрограмм посредством прошивки, например посредством аппаратного обеспечения связанной интегральной схемы, такой как FPGA, ASIC и/или структурированная ASIC. Этого можно достичь различными путями, например посредством прямого слабого или жесткого связывания между ЦПУ/ГПУ/КПУ и микросхемой, например FPGA. Такие конфигурации могут быть особенно полезны при распределении операций, относящихся к обработке больших структур данных, как описано в настоящем документе, которые используют трудоемкие функции или подфункции, предназначенные для использования и доступа, как ЦПУ, и/или ГПУ и/или КПУ, так и интегральной схемой. В частности, в различных вариантах реализации при обработке данных посредством геномного конвейера, как описано в настоящем документе, например, для ускорения общей функции обработки, синхронизации и эффективности, на данных могут выполняться ряд различных операций, причем эти операции могут вовлекать как программные, так и аппаратные компоненты обработки.
[00564] Следовательно, может потребоваться совместное использование данных или иной обмен ими между программным компонентом, выполняющимися на ЦПУ, и/или ГПУ, и/или КПУ и аппаратным компонентом, встроенным в микросхему, например FPGA или ASIC. Соответственно, один или более из различных этапов в конвейере обработки или его части, могут быть выполнены одним устройством, например, ЦПУ/ГПУ/КПУ, а один или более из различных этапов могут быть выполнены другим устройством, например FPGA или ASIC. В таком случае ЦПУ и FPGA должны быть соединены с возможностью обмена данными, например, с помощью двухточечного межсоединения, таким образом, чтобы обеспечивать возможность эффективной передачи таких данных, причем сопряжение может включать совместное использование ресурсов памяти. Чтобы добиться такого распределения задач и совместного использования информации для выполнения таких задач, ЦПУ, и/или ГПУ, и/или КПУ могут быть слабо или жестко связаны друг с другом и/или FPGA или другим набором микросхем, и может быть включена система управления рабочими потоками для эффективного распределения рабочей нагрузки.
[00565] Поэтому в конкретных вариантах реализации предложена платформа геномного анализа. Например, платформа может включать в себя материнскую плату, память, множество интегральных схем, например формирующих один или более из ЦПУ/ГПУ/КПУ, модуль картирования, модуль выравнивания, модуль сортировки и/или модуль определения вариантов. А именно, в конкретных вариантах реализации платформа может включать в себя первую интегральную схему, такую как интегральная схема, формирующая центральное процессорное устройство (ЦПУ) или графическое процессорное устройство (ГПУ), которое реагирует на один или более программных алгоритмов, которые выполнены с возможностью подачи ЦПУ/ГПУ инструкции на выполнение одного или более наборов функций геномного анализа, как описано в настоящем документе, например, где ЦПУ/ГПУ включает в себя первый набор физических электронных межсоединений для соединения с материнской платой. В других вариантах реализации предложено квантовое процессорное устройство, причем КПУ содержит одну или более квантовых схем, которые выполнены с возможностью осуществления одной или более функций, описанных в настоящем документе. В различных случаях предусмотрена память, которая может быть также присоединена к материнской плате и может быть также электронно соединена с ЦПУ и/или ГПУ, и/или КПУ, например посредством по меньшей мере части первого набора физических электронных межсоединений. В таких случаях память может быть выполнена с возможностью хранения множества ридов геномных данных, и/или по меньшей мере одной или более генетических референсных последовательностей, и/или индекса, например, в хэш-таблице, одной или более генетических референсных последовательностей.
[00566] Кроме того, платформа может включать в себя одну или более вторых интегральных схем, например, где каждая из вторых интегральных схем формирует программируемую пользователем вентильную матрицу (FPGA), или ASIC, или структурированную ASIC, имеющую второй набор физических электронных межсоединений для соединения с ЦПУ и памятью, например посредством протокола двухточечного соединения. В таком случае FPGA (или структурированная ASIC) может быть выполнена с возможностью программирования с помощью прошивки для конфигурирования набора жестко смонтированных цифровых логических схем, которые взаимно соединены множеством физических межсоединений для выполнения второго набора функций геномного анализа, например, картирования, выравнивания, сортировки, удаления дубликатов, определения вариантов и т.д., функции НММ и т.д. В частности, жестко смонтированные цифровые логические схемы FPGA могут быть выполнены в виде набора движков обработки для осуществления одного или более предварительно сконфигурированных этапов в конвейере анализа последовательностей платформы геномного анализа, например, где наборы движков обработки включают в себя один или более из модулей картирования, и/или выравнивания, и/или сортировки, и/или удаления дубликатов, и/или определения вариантов, причем модули могут быть сформированы из отдельных или одних и тех же подмножеств движков обработки.
[00567] Например, что касается определения вариантов, расчет парной-НММ или PD-HMM является одним из самых требующих ресурсоемких вычислений этапов протокола определения вариантов на основе гаплотипов. Следовательно, скорость определения вариантов может быть сильно улучшена путем ускорения данного этапа в одном или более движков FPGA или движков квантовой обработки. Однако можно получить дополнительную выгоду путем ускорения других требующих ресурсоемких вычислений этапов в дополнительных движках FPGA и/или КП QP, чтобы достичь более сильного ускорения определения вариантов или его части, или сокращения нагрузки на ЦПУ/ГПУ и количества необходимых ядер СПУ/ГПУ, или и того, и другого, как показано на ФИГ. 38.
[00568] В число дополнительных требующих ресурсоемких вычислений функций, имеющих отношение к определению вариантов, которые могут быть реализованы в движках FPGA и/или квантовой обработки, входят: обнаружение области, пригодной для определения, где выбирают для обработки области референсного генома, покрываемые выровненными ридами достаточной глубины и/или качества; обнаружение активной области, где выявляют локусы референсного генома с нетривиальными подтверждающими данными возможных вариантов и окна с достаточным контекстом вокруг этих локусов выбирают в качестве активных областей для дальнейшего анализа; построение графа де Брейна или другого графа сборки, где риды, перекрывающие активную область и/или K-меры из этих ридов собирают в граф; подготовка графа сборки, например, обрезание путей с низким покрытием или низким качеством, восстановление висящих начальных и конечных участков путей путем соединения их на референсном остове в графе, преобразование представления графа из K-меров в последовательность, объединение подобных ветвей и иное упрощение графа; выделение гаплотипов-кандидатов из собранного графа; а также выравнивание гаплотипов-кандидатов на референсный гном, например, с помощью выравнивания Смита-Ватермана, например, для определения вариантов (ОНП и/или инделов) в референсе, представляемом гаплотипом, и синхронизация их нуклеотидных позиций с референсом.
[00569] Все эти функции могут быть реализованы в виде высокопроизводительных аппаратных движков в FPGA и/или с помощью одной или более квантовых схем квантовой вычислительной платформы. Однако вызов такого разнообразия аппаратных функций ускорения из множества точек интеграции в программном обеспечении определения вариантов может стать неэффективным на слабо связанной платформе ЦПУ/ГПУ/КПУ+FPGA, и поэтому, возможно, целесообразной будет жестко интегрированная платформа ЦПУ/ГПУ/КПУ+FPGA. Например, различные способы пошаговой обработки, такие как построение, приготовление графа де Брейна или другого графа сборки и выделение из него гаплотипов может сильно выиграть от жестко связанной платформы ЦПУ/ГПУ/КПУ+FPGA. Кроме того, графы сборки представляют собой большие и сложные структуры данных, и многократная передача их между ЦПУ и/или ГПУ и FPGA может стать ресурсоемкой и препятствовать значительному ускорению.
[00570] Следовательно, идеальная модель для такой обработки графа с использованием жестко интегрированной платформы ЦПУ/ГПУ/КПУ и FPGA представляет собой хранение таких графов в совместно используемой памяти с поддержанием когерентности кэша для попеременной обработки с помощью ЦПУ, и/или ГПУ, и/или КПУ и аппаратных функций FPGA. В таком случае программный поток, обрабатывающий данных граф, может итеративно подавать команды на выполнение различных требующих ресурсоемких вычислений этапов обработки графа аппаратным движком, а затем программное обеспечение может проверять результаты и определять следующие этапы между вызовами аппаратного обеспечения, например, как в приведенном в качестве примера процессе, изображенном на ФИГ. 39. Управление этой моделью обработки может осуществляться соответствующим образом сконфигурированной системой управления рабочими потоками и/или может быть выполнена с возможностью соответствия парадигмам программирования, таким как API структуры данных или объектно-ориентированный интерфейс способа, но с ускорением требующих ресурсоемких вычислений функций с помощью заказных аппаратных движков и/или движков квантовой обработки, которые на практике осуществляются за счет реализации на жестко связанной платформе ЦПУ, и/или ГПУ, и/или КПУ+FPGA с совместно используемой памятью, поддерживающей когерентность кэша и широкополосными межсоединениями ЦПУ/ГПУ/КПУ/FPGA с малой задержкой.
[00571] Соответственно, в дополнение к картированию и выравниванию ридов на референсный геном рида могут быть «de novo» собраны, например, без референсного генома, например, путем обнаружения явных перекрытий между ридами, например в скоплении, где они полностью или в основном согласуются, и объединения их в более длинные последовательности, контиги, каркасы или графы. Эту сборку можно также выполнять локально, например, с помощью всех ридов, для которых определено, что они картируются на данную хромосому или ее часть. При сборке таким образом возможно включение референсного генома или его сегмент в собираемую структуру.
[00572] В таком случае ввиду сложности соединения вместе последовательностей рида, которые неполностью согласуются, можно использовать структуру графа, например, когда перекрывающиеся риды могут согласовываться на одной последовательности в одном сегменте, но разветвляться на множество последовательностей в примыкающем сегменте, как объяснено выше. Поэтому такой граф сборки может быть графом последовательности, где каждые ребро или узел представляют один нуклеотид или последовательность нуклеотидов, которые, как считается, примыкают без зазора к последовательностям в соединенных ребрах или узлах. В конкретных случаях такой граф сборки может быть графом k-меров, где каждый узел представляет k-мер или нуклеотидную последовательность (как правило) фиксированной длины к, и где считается, что соединенные узлы перекрывают друг друга в более длинных наблюдаемых последовательностях, обычно перекрывающихся k-1 нуклеотидами. В различных способах возможны одно или более преобразований между одним или более графами последовательности и графами k-меров.
[00573] Хотя графы сборки используют при определении вариантов на основе гаплотипов и некоторые используемые способы обработки графов похожи, существуют важные отличия. Графы de novo сборки обычно намного больше и используют более длинные k-меры. Тогда как графы сборки для определения вариантов ограничены довольно структурированными и относительно простыми графами, например, не имеющими циклов и проходящих от источника до стока вдоль остова референсной последовательности, графы de novo сборки обычно менее структурированные и более сложные, с циклами, висящими путями и другими аномалиями, не только разрешенными, но и подвергаемыми специальному анализу. Иногда используют окрашивание графа de novo сборки, назначая узлам и ребрам «цвета», означающие, например, из какого биологического образца они взяты, или совпадающую референсную последовательность. Следовательно, для графов de novo сборки требуется использовать более широкий выбор функций анализа и обработки графов, часто итеративно или рекурсивно, и, в частности, ввиду размера и сложности графов de novo сборки функции обработки, как правило, чрезвычайно требовательные к ресурсоемким вычислениям.
[00574] Следовательно, как указано выше, идеальная модель для такой обработки графа на жестко интегрированной пла