Хранение данных на синтетической ДНК – революционный способ архивирования информации.

Беспрецедентный всплеск генерации огромного объёма данных был вызван за последнее десятилетие многими обстоятельствами, от появления смартфонов и развития социальных сетей, до электронной коммерции и научных исследований. Сегодня ежегодно генерируются зеттабайты данных (один зеттабайт равен 1 миллиарду терабайт). Но поскольку требования к хранению этой информации продолжают расти, ёмкость и устойчивость традиционных систем хранения пока с трудом поспевают за этой потребностью. Это побудило учёных исследовать нетрадиционные решения: такие, например, как хранение архивной информации на основе биологических систем последовательности ДНК, но только создавая синтетические её аналоги, которые будут иметь более устойчивую структуру.

С нынешними перезаписываемыми системами у этого подхода есть кардинальные отличия. Во-первых, в традиционном хранилище носитель изготавливается заранее (например, SSD используют ячейки NAND, HDD и стриммерные ленты используют магнитные дорожки/ячейки на диске или полосе ленты, соответственно), куда информация записывается/перезаписывается путём изменения состояния этих ячеек в виде двоичного кода (ноль или единица). Для таких устройств масштабирование ёмкости и пропускной способности требует модификации, как носителя, так и головок записи/считывания.

В наиболее распространённом из разрабатываемых сейчас, методе хранения данных на синтезированной ДНК не использует предварительно изготовленный субстрат носителя. Вместо этого носитель информации — молекулы ДНК — изготавливается во время операций записи. В этом случае универсальная, фиксированная и независимая от считывателя/писатель физическая структура ДНК позволяет повысить пропускную способность без изменения носителя или миграции данных при внедрении/добавлении новой информации.


Во-вторых, поскольку ДНК-носитель отделён от любого субстрата на основе массива, протокольная информация, такая как идентификаторы объектов и индексы сегментов, должна быть встроена в каждую молекулу ДНК в индексном-архиве (можно назвать его загрузочный сектор или раздел содержания), для определения местоположения объектов, их сегментации, обработки, считывания и т. д. Несмотря на эти дополнительные сложности, запись на ДНК может достигать гораздо более высокой объёмной плотности в качестве отделённого носителя заархивированных данных, к которым обращаются не так часто, как к жёстким дискам или твёрдотельным накопителям.


В-третьих, ДНК имеет уникальные характеристики ошибок, если её рассматривать, как среду для сквозного хранения. Например, в дополнение к заменам (сродни битовым переворотам с ноля на единицу или обратно) могут также происходить другие вставки и удаления (так как природная ДНК кодируется не двумя, а четырьмя видами азотистых оснований: аденин, гуанин, тимин и цитозин). Кодировщики пытаются избегать определённых последовательностей, чтобы уменьшить помехи в процессе записи и восстановления. Несмотря на уникальность синтетической ДНК, как носителя данных, существует множество параллелей с традиционными механизмами и интерфейсами для этого процесса. В этой статье мы проводим параллели между моделями хранения данных в ДНК и взаимодействия в открытых системах. Но прежде, чем начать описывать революционный метод для архивирования данных, надо рассказать более подробно о структуре, назначении, функционировании природной ДНК.


Люди больше всего знакомы с этим удивительным элементом, как с «двойной спиралью», или двухцепочечной ДНК (dsDNA), где основание аденозин на одной цепи обладает сродством к химической связи (комплементарности) с основанием тимин на другой цепи, а основание цитозин имеет подобное свойство с основанием гуанин. Комплементарность используется почти во всех методах, применяемых при хранении данных на цепочке последовательностей ДНК, в процессе, называемом гибридизацией. В организмах деление клеток естественным образом реплицирует генетический код. Клеточные механизмы разделяют две нити исходной dsDNA на две одноцепочечные нити ДНК (ssDNA) и создают из них две новые двухцепочечные молекулы dsDNA, эффективно копируя генетическую информацию клетки.


Тут необходимо уточнить, что для разрабатываемых искусственных систем хранения данных не используются никакие организмы или клетки: синтетическая ДНК для хранения создаётся и обрабатывается с помощью хорошо контролируемых химических процессов. Никакого деления клеток или слияния генетической информации не происходит.


Уровни приложений, представлений и сеансов.


Три верхних уровня модели традиционных устройств открытой системы (OSI - Open System Interconnection) соответствуют модели хранения данных в ДНК, фактически не меняя своих функций. На этом уровне абстракции - это просто ещё один носитель данных.


Уровень приложений - это интерфейс, наиболее близкий к пользователям. Например, поскольку хранение данных ДНК лучше всего подходит для долгосрочного хранения, уровень приложений, скорее всего, будет определять, как данные логически организованы для архивных целей, включая метаданные, описывающие расположение (индексацию) данных в архиве.


Уровень представления естественным образом отображается на подготовку битовых потоков в качестве входных данных для нижних уровней. Он может включать такие преобразования, как шифрование и сжатие. Как и в случае с другими носителями, такие функции могут быть ускорены специальной (процессорной) аппаратной поддержкой.


Уровень сеанса обеспечивает доступ к интерфейсу. Возможны различные реализации, но наиболее часто обсуждаемая из них — объектная. В этой реализации интерфейс, предоставляемый уровнем сеанса, по сути, представляет собой хранилище объектов со схемой ключ-значение. Он предлагает базовые примитивы, такие, как чтение/запись отдельных объектов или всех объектов, а также функциональность с более сложной семантикой (индексированный поиск). Эти команды преобразуются в логические и физические операции хранения на нижних уровнях.


Уровень канала ДНК принимает в качестве входных данных поток битов (цифровой объект) из уровня сеанса и обрабатывает эти биты, чтобы гарантировать, что последовательности ДНК, записанные и прочитанные физическим уровнем, могут быть успешно декодированы, что позволяет потом восстановить исходные цифровые данные. Уровень канала ДНК реализован, как программный кодек.


Канал имеет общие концептуальные характеристики с более традиционными сетевыми/электрическими каналами, в общих чертах отражая функциональность передачи данных в модели OSI. Он получает поток битов с сеансового уровня, подготавливая его для передачи на нижние уровни (для концептуального эквивалента «передачи»), что в случае с ДНК означает запись, хранение, восстановление и считывание последовательности цепочек с молекул. Поскольку в хранилище данных ДНК нет физического «провода», функциональность канального уровня передачи данных встроена в кодек последовательностей, а не в пару передатчик/приёмник.


Когда поток битов поступает на уровень канала ДНК, выполняются следующие типы операций (не обязательно в указанном порядке):

Пакетирование.


В сети или цифровом устройстве ключевой функцией транспортных и сетевых протоколов передачи является пакетирование, маршрутизация и управление потоком по каналу. Ни маршрутизация, ни управление потоком здесь не имеют значения, а вот пакетирование имеет.


Самая длинная цепочка синтетической ДНК, которая в настоящее время может быть построена основание за основанием с помощью стандартной химии, сохраняя при этом достаточную точность, составляет около 300 оснований. Даже если каждое основание в цепи можно было бы использовать для полезных данных, типичная цепочка будет кодировать десятки байтов. Таким образом, как и в традиционных сетях, где потоки битов должны быть разбиты на более мелкие части, чтобы соответствовать пакетам ограниченного размера, хранение данных ДНК требует разбиения объектов данных на множество сегментов во время кодирования, чтобы соответствовать цепочкам ограниченного размера. Повторная сборка этих сегментов в правильном порядке при секвенировании требует добавления индексов к каждому сегменту перед синтезом. Необходимость в индексах сегментов (и других полях протокола) вводит компромисс между количеством сегментов, используемых для представления объекта в пуле ДНК (то есть максимальный размер объекта), и количеством оснований, используемых для индекса сегмента (то есть накладные расходы индекса).

Исправление ошибок.


При построении сегментов для хранения, ДНК-кодек должен добавлять избыточную информацию для исправления ошибок, поскольку случайные ошибки (вставки, удаления и замены оснований), а также стирания (отсутствующие последовательности) могут влиять на такие сегменты через физический уровень. Исправление ошибок может дополнять сегменты дополнительными данными (внутренний код) или добавлять сегменты, содержащие дополнительные данные (внешний код). После того, как ДНК секвенирована, кодек использует эту избыточную информацию для восстановления потерянных последовательностей, исправления оставшихся ошибок и надёжной доставки исходного потока битов обратно на верхние уровни.

Перевод.


Для хранения цифровых данных в ДНК они должны быть переведены из цифровых (0 или 1) в основания (A, T, C или G). Хотя можно просто отобразить каждые два бита потока в одно из четырёх возможных оснований. Тут начинаются явные преимущества других отображений – то есть возможных комбинаций становится гораздо больше, нежели в двоичной системе. Например, отображения более длинных потоков битов в более длинные последовательности оснований могут лучше соответствовать определённым методам исправления ошибок и быть более эффективными с точки зрения использования пространства (плотности «упакованных» данных).

Преобразования.


В случае ДНК, паттерны повторяющихся оснований (гомополимеры), как и некоторые другие специфические паттерны могут вызывать ошибки. Например, некоторые методы секвенирования демонстрируют ошибки с длинными гомополимерами, а высокое содержание GC может влиять на протоколы подготовки секвенирования. Преобразования на уровне канала ДНК позволяют избежать преобразования цифровых потоков битов в такие проблемные паттерны оснований, тем самым уменьшая ошибки в нисходящем направлении и связанные с ними накладные расходы на исправление ошибок, а также повышая общую надёжность данных. Это концептуально похоже на действия в сетевом/электрическом канале для смягчения аналоговых эффектов. Например, последовательная связь поддерживает почти равное количество единиц и нулей на проводе.

Дополнительный протокол пространства.


В дополнение к действиям, описанным выше, кодек может вставлять дополнительные последовательности оснований в уже преобразованные цифровые данные. Цели зависят от конкретного случая использования, но обычно включают произвольный доступ или поиск в архиве ДНК. Примером может служить добавление идентификатора объекта, назначаемого сеансовым уровнем последовательностям, принадлежащим одному и тому же объекту.

После этих этапов полученные последовательности ДНК передаются на физический уровень.

Подводя итог, можно сказать, что уровень канала ДНК кодирует входной поток битов таким образом, чтобы последовательности, отправляемые на физический уровень, могли быть эффективно и успешно декодированы после «передачи» (синтез, хранение, извлечение и секвенирование). При этом канал использует преобразования и этапы обработки, которые хорошо структурированы, а по своей природе похожи на те, которые используются в существующих системах хранения.


Далее начинаются кардинальные отличия от привычных традиционных систем. Физический уровень включает в себя базовую химию ДНК для записи (синтеза), физического сохранения и чтения (секвенирования) молекул ДНК, на основе базовых химических процессов для извлечения. Эти процедуры являются общим подготовительным этапом, как для секвенирования, так и неотъемлемым этапом в том, как системы реализуют запросы операций хранения из верхних слоёв. Извлечение имеет центральное значение для функционирования логических операций хранения.


Синтез


Синтез ДНК раньше осуществлялся посредством применения специальных больших устройств, с использованием патрубков, клапанов и пластиковых контейнеров с лунками (иногда их называют просто пластинами). Однако, достижения в полупроводниковой промышленности сделали возможными реализации на основе кремниевой технологии, которые миниатюризируют устройство синтеза и могут достигать более высокой пропускной способности записи. Происходит это за счёт синтеза большего количества последовательностей параллельно (тысячи в лунках пластин против миллиардов на чипах). Например, чипы, похожие на статические массивы оперативной памяти (RAM), использовались для синтеза последовательностей ДНК, по одной последовательности на позицию массива. Как и в случае с другими технологиями хранения данных, масштабирование основано на миниатюризации носителей, чтобы на чипе поместилось больше информации. Но тут, вместо увеличения ёмкости (уплотнения), большее количество вариантов на пластине с лунками, увеличивает пропускную способность записи, поскольку одновременно можно синтезировать больше последовательностей.


Секвенирование


Сам термин означает целый ряд процедур для извлечения информации о молекулярной структуре ДНК, позволяющий определить последовательность нуклеотидов в геноме. Два основных применяемых метода - это секвенирование путём синтеза (SBS - sequencing-by-synthesis) и секвенирование в нанопорах. Первый метод косвенно идентифицирует основания в исходной цепи одноцепочечной ДНК благодаря реконструкции цепи двуцепочечной (из этого же источника). Поскольку каждое комплементарное основание присоединяется при построении цепи двуцепочечной ДНК, событие присоединения позволяет идентифицировать исходное основание источника, обычно оптическими средствами. Во втором случае, процесс позволяет обнаруживать основания напрямую (без построения двуцепочечной ДНК), посредством измерения нарушений ионного тока, когда цепь ДНК проводится через крошечное отверстие (нанопору).


Нанопоры могут быть биологическими или, в стадии разработки, твердотельными. Главный компромисс между двумя методами заключается в том, что SBS обеспечивает более высокую точность, но обычно требует пакетного процесса, что приводит к высокой задержке, в то время как секвенирование в нанопорах обеспечивает меньшую задержку при обычно более низкой точности. Оба метода требуют физического извлечения и подготовки молекул к процессу, что может увеличить задержку считывания. Как и в случае с синтезом, для того чтобы хранение данных ДНК стало практичным, необходимо дальнейшее масштабирование секвенирования, однако основы (как синтеза, так и секвенирования) теперь реализованы на полупроводниковых платформах, а масштабирование таких платформ - это область, в которой технологическая отрасль имеет впечатляющий послужной список.


Хранение.


Между процедурой «записи» и считыванием, молекулы ДНК необходимо хранить в среде, которая предотвращает их разрушение (деградацию). Хотя в биотехнологии широко распространено множество методов сохранения, ДНК, используемая для хранения данных, обычно хранится в сухом виде и в химически инертной среде. Такой способ идеален для повышения плотности и стабильности. Примечательно, что при таких методах, сама ДНК демонстрирует потенциал для чрезвычайно длительной выносливости при комнатной температуре, поддерживая надёжное долгосрочное хранение, которое является недорогим и устойчивым. Ожидается, что большие пулы молекул ДНК (скажем, терабайты памяти) будут организованы в ещё большие библиотеки, где пулы будут обрабатываться с использованием физической системы координат, как сегодняшние стриммерные библиотеки. Вполне возможно, что скоро мы сможем наблюдать стремительное развитие дата-центров, которые будут специализироваться на синтезе, хранении и извлечении информации из ДНК.


Извлечение.


Извлечение определяет, как молекулы ДНК извлекаются из архива ДНК и подготавливаются к секвенированию. Самая простая операция — это чтение всего архива, что эквивалентно чтению всех данных на ленте от начала до конца. Однако, когда пул ДНК содержит несколько объектов, операции произвольного доступа (например, «поиск» местоположения объекта или поиск наборов объектов) должны выполняться над всем пулом. Существует множество методов реализации таких операций, но два самых популярных - это ПЦР и извлечение ДНК с помощью магнитных наночастиц. В первом случае зонд прикрепляется к целевому месту, так, что во время процедуры копируются только последовательности ДНК с идентификатором объекта. Во втором - зонд прикрепляется к целевому месту последовательностей с идентификатором объекта, а магнитные наночастицы используются для молекулярного вытягивания с помощью магнита.


Методика ПЦР требует, чтобы уровень сеанса назначил набор идентификаторов объектов, которые во время кодирования канальный уровень добавляет в качестве набора предопределённых последовательностей оснований к обоим концам каждой последовательности ДНК, принадлежащей объекту в архиве. Эти последовательности оснований называются целевыми метками. Во время извлечения зонды прикрепляются к целевым молекулам (напомним, что A спаривается с T, а C с G) и вместе со специальными ферментами, называемыми полимеразами, запускают процесс ПЦР. В течение нескольких циклов ПЦР, эти прикреплённые зонды (называемые праймерами, при использовании в ПЦР) позволяют полимеразам копировать только целевые молекулы ДНК, делая их более многочисленными, чем молекулы, представляющие другие объекты. Результатом является пул, в котором большинство молекул ДНК представляют объект(ы), который нужно прочитать.


Извлечение посредством магнитных наночастиц использует тот же принцип прикрепления ДНК, но другой метод, чтобы сделать молекулы, представляющие интересующий объект. При этом процессе канальному слою нужно только добавить идентификаторы объектов в качестве целевых участков на концах каждой последовательности ДНК, принадлежащей объекту. Во время извлечения зонды прикрепляются к магнитным наночастицам. Поскольку зонды связываются только с целевыми молекулами ДНК, они затем могут быть отделены от остальных молекул в пуле с помощью магнита.


Для любого метода случайного доступа могут потребоваться дополнительные этапы подготовки и очистка, в зависимости от секвенатора, используемого для считывания информации. Компромиссы между различными химическими реализациями произвольного доступа к объектам по таким параметрам, как надёжность, подготовка и накладные расходы на чтение, являются активной областью современных исследований/разработок, а также дальнейшей работы по реализации ещё более сложных операций (поиск по схожести контента, предварительный просмотр файлов и им подобных).


Для одного и того же запроса на чтение объекта с сеансового уровня могут использоваться различные механизмы на нижних уровнях канала и физических уровнях, аналогично тому, как два устройства флэш-памяти NAND реализованы по-разному, несмотря на использование одного и того же командного интерфейса.

Хотя ДНК, как носитель данных, имеет фундаментальные отличия от традиционного хранилища, многие преобразования и соображения по обработке ошибок имеют аналогии с передачей потоковой информации через «традиционные» сетевые/электрические каналы с жёстких дисков. С развитием технологий и методов реализации в многоуровневых моделях хранения открытых систем, поможет зарождающейся экосистеме такого типа развиваться в промышленных масштабах.

Ctrl
Enter
Заметили ошЫбку?
Выделите текст и нажмите Ctrl+Enter

Комментарии

Минимальная длина комментария - 50 знаков. комментарии модерируются
Комментариев к этой статье еще нет. Вы можете стать первым!