(57)【要約】遺伝子製造システムによるヌクレオチド配列の産生を制御する製造指示の生成は、それぞれ少なくとも１つのヌクレオチド配列部分を表す配列オペランドの演算を示す式を受け取るステップ、配列仕様に対して式を評価するステップであって、配列仕様が１つもしくは複数の第１レベルの演算と、１つもしくは複数の第２レベルの演算とを含むデータ構造を含むステップ、および１つもしくは複数の第１レベルの演算と１つもしくは複数の第２レベルの演算の実行に基づく製造指示を生成するステップを含む。反復的な形で、１つもしくは複数の第１レベルの演算が少なくとも１つの第１レベルの配列オペランドを演算し、その値は１つもしくは複数の第２レベルの演算の実行によって解決される。次いで、製造指示を遺伝子製造システムに提供して、配列部分を配列仕様によって表されたヌクレオチド配列にアセンブルすることができる。【特許請求の範囲】
【請求項１】
遺伝子製造システムによるヌクレオチド配列の産生を制御する製造指示を生成するためのコンピュータ実行方法であって、
第１の配列オペランドおよび第２の配列オペランドの演算を示す式を計算デバイスにおいて受け取るステップであって、配列オペランドがヌクレオチド配列部分を表し、前記第１の配列オペランドおよび前記第２の配列オペランドがそれぞれ少なくとも１つのヌクレオチド配列部分を表す、ステップ；
配列仕様に対して前記式を評価する命令を計算デバイスによって実行するステップであって、前記配列仕様が、（ａ）前記第１の配列オペランドおよび前記第２の配列オペランドと、（ｂ）少なくとも１つの第１レベルの配列オペランドに実施される１つもしくは複数の第１レベルの演算と、（ｃ）１つもしくは複数の第２レベルの演算とを含むデータ構造を含み、その実行が、前記少なくとも１つの第１レベルの配列オペランドの値を解決する、ステップ；ならびに
前記第１レベルの演算の１つもしくは複数および前記第２レベルの演算の１つもしくは複数の計算デバイスによる実行に基づく製造指示であって、配列部分を少なくとも１つのヌクレオチド配列にアセンブルする前記遺伝子製造システムによる使用のための製造指示を生成するステップ
を含む、コンピュータ実行方法。
【請求項２】
前記データ構造が、前記１つもしくは複数の第１レベルの演算の少なくとも１つまたは前記１つもしくは複数の第２レベルの演算の少なくとも１つが前記遺伝子製造システムによってどのように具体化されるかに関する複数のパラメーターをさらに含み、
製造指示を生成するステップは、前記複数のパラメーターにさらに基づく、
請求項１に記載の方法。
【請求項３】
前記複数のパラメーターが、
前記１つもしくは複数の第２レベルの演算の最初の第２レベルの演算の具体化において前記遺伝子製造システムにより使用される第１のパラメーター、および
前記１つもしくは複数の第２レベルの演算の２番目の第２レベルの演算の具体化において前記遺伝子製造システムにより使用される、前記第１のパラメーターと異なりかつ前記第１のパラメーターと同じカテゴリーのパラメーターを表す第２のパラメーター
を含む、請求項２に記載の方法。
【請求項４】
前記データ構造が１つもしくは複数の第２レベルの配列仕様を含み、各第２レベルの配列仕様が１つもしくは複数の第２レベルの配列演算を含み、
製造指示を生成するステップが、前記１つもしくは複数の第２レベルの配列仕様から第２レベルの配列仕様のサブセットを実行するために選択することを含む、
請求項１から３のいずれか一項に記載の方法。
【請求項５】
第２レベルの配列仕様を選択することが第２レベルの配列オペランドの重みづけに基づく、請求項４に記載の方法。
【請求項６】
前記第２レベルの配列仕様が、前記製造指示より以前に生成された少なくとも１つの先行製造指示の結果としてアセンブルされたヌクレオチド配列の表現型特性とのそれらの関連に基づく実行のために、重みづけられる、請求項４または５に記載の方法。
【請求項７】
有向グラフが前記製造指示の生成に使用される、請求項１から６のいずれか一項に記載の方法。
【請求項８】
遺伝子製造システムによってヌクレオチド配列の産生を制御する製造指示を生成するためのシステムであって、
１つもしくは複数のプロセッサと；
前記１つもしくは複数のプロセッサの少なくとも１つに動作可能に接続されている１つもしくは複数のメモリであって、前記１つもしくは複数のプロセッサの少なくとも１つによって実行される場合、前記システムに、以下：
第１の配列オペランドおよび第２の配列オペランドの演算を示す式を受け取らせることであって、配列オペランドがヌクレオチド配列部分を表し、前記第１の配列オペランドおよび前記第２の配列オペランドがそれぞれ少なくとも１つのヌクレオチド配列部分を表す、受け取らせること；
配列仕様に対して前記式を評価させることであって、前記配列仕様が、（ａ）前記第１の配列オペランドおよび前記第２の配列オペランドと、（ｂ）少なくとも１つの第１レベルの配列オペランドへ実施される１つもしくは複数の第１レベルの演算と、（ｃ）１つもしくは複数の第２レベルの演算とを含むデータ構造を含み、その実行が、前記少なくとも１つの第１レベルの配列オペランドの値を解決する、評価させること；ならびに
前記第１レベルの演算の１つもしくは複数および前記第２レベルの演算の１つもしくは複数の実行に基づく製造指示であって、配列部分を少なくとも１つのヌクレオチド配列にアセンブルする前記遺伝子製造システムによる使用のための製造指示を生成させること、
を行わせる命令が保存されているメモリと
を含む、システム。
【請求項９】
前記データ構造が、前記１つもしくは複数の第１レベルの演算の少なくとも１つまたは前記１つもしくは複数の第２レベルの演算の少なくとも１つが前記遺伝子製造システムによってどのように具体化されるかに関する複数のパラメーターをさらに含み、
製造指示を生成するステップが前記複数のパラメーターにさらに基づく、
請求項８に記載のシステム。
【請求項１０】
前記複数のパラメーターが、
前記１つもしくは複数の第２レベルの演算の最初の第２レベルの演算の具体化において前記遺伝子製造システムにより使用される第１のパラメーター、および
前記１つもしくは複数の第２レベルの演算の２番目の第２レベルの演算の具体化において前記遺伝子製造システムにより使用される前記第１のパラメーターと異なりかつ前記第１のパラメーターと同じカテゴリーのパラメーターを表す第２のパラメーター
を含む、請求項９に記載のシステム。
【請求項１１】
前記データ構造が１つもしくは複数の第２レベルの配列仕様を含み、各第２レベルの配列仕様が１つもしくは複数の第２レベルの配列演算を含み、
製造指示を生成するステップが、前記１つもしくは複数の第２レベルの配列仕様から第２レベルの配列仕様のサブセットを実行するために選択することを含む、
請求項８から１０のいずれか一項に記載のシステム。
【請求項１２】
第２レベルの配列仕様の前記サブセットを選択することが第２レベルの配列オペランドの重みづけに基づく、請求項１１に記載のシステム。
【請求項１３】
前記第２レベルの配列仕様が、前記製造指示より以前に生成された少なくとも１つの先行製造指示の結果としてアセンブルされたヌクレオチド配列の表現型特性とのそれらの関連に基づく実行のために、重みづけられる、請求項１１または１２に記載のシステム。
【請求項１４】
前記システムに製造指示を生成させる前記命令が、有向グラフを使用する命令を含む、請求項８から１３のいずれか一項に記載のシステム。
【請求項１５】
遺伝子製造システムによるヌクレオチド配列の産生を制御する製造指示を生成するための命令を保存する１つもしくは複数のコンピュータ読み取り可能媒体であって、
１つもしくは複数の計算デバイスによって実行される場合、前記命令が、前記１つもしくは複数の計算デバイスの少なくとも１つに、以下：
第１の配列オペランドおよび第２の配列オペランドの演算を示す式を受け取らせることであって、配列オペランドがヌクレオチド配列部分を表し、前記第１の配列オペランドおよび前記第２の配列オペランドがそれぞれ少なくとも１つのヌクレオチド配列部分を表す、受け取らせること；
配列仕様に対して前記式を評価させることであって、前記配列仕様が、（ａ）前記第１の配列オペランドおよび前記第２の配列オペランド、（ｂ）少なくとも１つの第１レベルの配列オペランドに実施される１つもしくは複数の第１レベルの演算、ならびに（ｃ）１つもしくは複数の第２レベルの演算を含むデータ構造を含み、その実行が前記少なくとも１つの第１レベルの配列オペランドの値を解決する、評価させること；ならびに
前記第１レベルの演算の１つもしくは複数および前記第２レベルの演算の１つもしくは複数の実行に基づく製造指示であって、配列部分を少なくとも１つのヌクレオチド配列にアセンブルする前記遺伝子製造システムによる使用のための製造指示を生成させること、を行わせる、
コンピュータ読み取り可能媒体。
【請求項１６】
前記データ構造が、前記１つもしくは複数の第１レベルの演算の少なくとも１つまたは前記１つもしくは複数の第２レベルの演算の少なくとも１つが前記遺伝子製造システムによってどのように具体化されるかに関する複数のパラメーターをさらに含み、
製造指示を生成するステップが前記複数のパラメーターにさらに基づく、
請求項１５に記載のコンピュータ読み取り可能媒体。
【請求項１７】
前記複数のパラメーターが、
前記１つもしくは複数の第２レベルの演算の最初の第２レベルの演算の具体化において前記遺伝子製造システムにより使用される第１のパラメーター、および
前記１つもしくは複数の第２レベルの演算の２番目の第２レベルの演算の具体化において前記遺伝子製造システムにより使用される前記第１のパラメーターと異なりかつ前記第１のパラメーターと同じカテゴリーのパラメーターを表す第２のパラメーター
を含む、請求項１６に記載のコンピュータ読み取り可能媒体。
【請求項１８】
前記データ構造が１つもしくは複数の第２レベルの配列仕様を含み、各第２レベルの配列仕様が１つもしくは複数の第２レベルの配列演算を含み、
製造指示を生成するステップが、前記１つもしくは複数の第２レベルの配列仕様から第２レベルの配列仕様のサブセットを実行するために選択することを含む、
請求項１５から１７のいずれか一項に記載のコンピュータ読み取り可能媒体。
【請求項１９】
第２レベルの配列仕様の前記サブセットを選択することが第２レベルの配列オペランドの重みづけに基づく、請求項１８に記載のコンピュータ読み取り可能媒体。
【請求項２０】
前記第２レベルの配列仕様が、前記製造指示より以前に生成された少なくとも１つの先行製造指示の結果としてアセンブルされたヌクレオチド配列の表現型特性とのそれらの関連に基づく実行のために、重みづけられる、請求項１８または１９に記載のコンピュータ読み取り可能媒体。
【請求項２１】
前記少なくとも１つの計算デバイスに製造指示を生成させる前記命令が、有向グラフを使用する命令を含む、請求項１５から２０のいずれか一項に記載のコンピュータ読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この出願は、２０１６年４月２７日に出願された米国仮出願第１５／１４０，２９６号（これは、全ての目的のために、全記載、参考文献、図面および特許請求の範囲を含めたその全体が参考として本明細書に援用される）に対する優先権の利益を主張する。
【０００２】
本開示は、一般に、ハイスループット微生物ゲノム工学、より詳細には、遺伝子製造システムによるヌクレオチド配列の産生を制御する製造指示（factory  order）を生成するためのプロセス、システム、およびデータ構造を対象とする。
【背景技術】
【０００３】
微生物工学は、新規化学物質、先端材料、および医薬品の作成を可能にする。１つのビジネスモデルでは、株設計会社は、代わりにまたは第三者が、先に記載したＤＮＡセグメントを改変し、出力特性、例えば収量、生産性、最適な増殖温度、増殖速度、および力価などを改善することにより、微生物宿主の代謝的産生を増強することができる。多くの従来の試みは、小バッチの研究収量に注目されてきた。しかしながら、工業規模での微生物工学を達成するためには、膨大な量のＤＮＡ配列情報の保管および共有が必要である。複数のチームが設計案を共有できなければならず、科学者らは生産技術者と意思疎通できなければならず、プロジェクトマネージャーは概念の早い段階から評価の最終段階まで詳細を追跡できなければならない。
【０００４】
改変微生物のハイスループット産生にはハイスループット株設計が必要である。ロボットは数百から数千個の株を一度に構成することができ、設計ツールがこの能力に合っていなければならない。数種の同じ要素の異なる組み合わせを探索することにより、または基本的な設計に多くの小さな変更を試みることにより、大規模な実験が想像できる。理想的な保存および交換フォーマットは、これらの関係が維持され、設計、構築、または評価の範囲で他のソフトウェアツールによって解釈され得るような構造データである。
【０００５】
特に、開発者らはＤＮＡ部分、ＤＮＡアセンブリー、および工学的に作成した細胞系のレベルでの設計概念を意思疎通する課題に直面する：（１）株設計会社とビジネスパートナーの間、ならびに（２）株設計会社内の開発部門と運用部門の間。
【０００６】
以前の試みは、ＤＮＡ部分の標準化した記載法の提案をもたらした。例えば、合成生物学オープンランゲージビジュアル（ＳＢＯＬ  Ｖｉｓｕａｌ）は、遺伝部分、装置、モジュール、およびシステムを指定する概略「図」を使用するオープンソースのグラフィカル表記である。その全体が参照により本明細書に組み込まれる、BBF  RFC  108:  Synthetic  Biology  Open  Language  (SBOL)  Version  2.0.0、編集者Bartleyら、２０１５年７月３１日も参照。
【０００７】
ＳＢＯＬ標準機構は、ＤＮＡレベル設計の仕様についての「コアデータモデル」である。このＳＢＯＬコアは生物学的構成単位をＤＮＡ成分として定義し、それらの階層的な組成の各設計成分の下部構造および構築の仕様を可能にする。ＤＮＡ成分は、ＤＮＡの領域を記載する実体である。根本的な情報は、根底にあるＤＮＡ配列である。その配列の装飾は、配列アノテーション（メタデータ）である。配列アノテーションは、例えばプロモーターおよび配向など、その配列におけるヌクレオチドの領域を記載する。各配列アノテーションは、ＤＮＡ成分としても表すことができる。
【０００８】
ＳＢＯＬコアは、「コレクション」データ構造も提示し、ＤＮＡ成分をライブラリーおよびカタログへとグループ分けする。例えば、Bartleyら、BBF  RFC  108：Synthetic  Biology  Open  Language  (SBOL)  Version  2.0.0、５．２、６、７．１０節参照。
【０００９】
ＳＢＯＬは視覚的な記号のセットおよび遺伝子配列の構造および機能に相当するデータフォーマットを提供する。その目的は、新規の合成設計の通信のための標準化フォーマットを提供することである。しかしながら、ＳＢＯＬそれ自体は所与のゲノムまたは遺伝子配列に特定の変更を実行するためのプログラミングモデルではない。ＳＢＯＬはＤＮＡセグメントの構造および成分部分の機能的挙動を記載するが、ＤＮＡ配列に実施される演算を記載するための圧縮表記を提供しない。演算は、ＤＮＡ配列自体のアノテーションによって、またはＳＢＯＬのＸＭＬ言語内の拡張データモデル要素によって定義されるべきである。いずれの場合でも、これらのアノテーションまたは拡張データモデル要素は、それらを定義および挿入する各組織またはユーザーの所有であり、いずれにせよそれらを非標準拡張とする。これらのアノテーションまたはデータ構造は、最終ＤＮＡ出力配列に置かれ、その配列を生じる入力を区別する。この構造のため、配列の産生と関連する演算の論理的または物理的順序は、データ自体の構造に本質的に取り込まれない。
【００１０】
さらに、ＳＢＯＬは、Ｇｅｎｂａｎｋおよび明示的なＤＮＡ配列の通信用の他のファイルフォーマットのように、作成または提案される各ＤＮＡ配列の別々のＳＢＯＬ記載をユーザーが提供することを必要とする。例えば、１０００個のゲノム編集は、１０００個のバリアントＤＮＡ配列を数え上げることによって記載され；編集のコレクションは、その根底にある部分およびそれらの様々な組み合わせに関して記載されない。このフォーマットは、ユーザーが特化したツールを使わずに直接編集するには扱いにくく、他のシリアル化フォーマット（例えば、Ａｖｒｏなどのバイナリフォーマット）と比較して保存スペースが非効率的である。
【００１１】
ＴｅｓｅｌａＧｅｎ  Ｂｉｏｔｅｃｈｎｏｌｏｇｙによって提供されるｊ５ソフトウェアパッケージは、他の特徴の中でも、どのＤＮＡ部分がＤＮＡ構築物を構成するために必要か確定するための自動化方法を提供する多くのＤＮＡ編集パッケージの１例である。典型的には、これらのツールは、入力として、各行が構成される１つの構築物を表し、各列がその構成に組み入れるべきピースを含有する情報の表を用いる。次いで、ツールは、これらの配列が一般的な研究所のプロトコールでどのように使用されるべきかについての情報と共にＤＮＡ配列のリストを出力する。
【００１２】
ｊ５システムは、いくつかのＣＳＶ（スプレッドシート）ファイルに依存し、その出力を構築する。これらのスプレッドシートにおいて、各行はＤＮＡ部分（配列と名付ける）または他の出力に相当する。ＳＢＯＬ、ＧＨＳまたは他のシステムとは異なり、ｊ５は、その標的部分指示リストファイルにおける「コンビナトリアルビン」を参照することにより、簡潔なコンビナトリアルアセンブリーを可能にする。しかしながら、ｊ５は、アセンブリー方法（ＬＨＲ、Ｇｉｂｓｏｎ等）に特有の形で部分を使用する、ならびにコードおよびアレンジするためのアセンブリー方法の特定の知識を科学者が有することを必要とする。ｊ５は、その変更を達成する物理的手段からＤＮＡへの論理的（構文的）変更のデカップリングを許可しない。
【００１３】
さらに、ｊ５は、その厳正なスプレッドシートベースの入力フォーマットによって制限される。ｊ５「スクリプト」は、互いに連結する項目のリストを指定するスプレッドシートのコレクションである。ユーザーが、一連の個々の部分として完全なアセンブリーを指定することが必要である。ｊ５は、任意の様式（挿入、欠失、置換等）で既存のＤＮＡ配列を改変する方法により、任意のフレキシブルな編集（例えば個々の塩基対を変更するなど）を許可しない。
【００１４】
最終的に、ｊ５は、アセンブリー技術のためのパラメーターの一定のセットが使用されることを必要とする。単一の「パラメーターファイル」スプレッドシートは、完全なアセンブリーを達成する反応のためのグローバルなパラメーター（融解温度、ＰＣＲ産物サイズ等）を提供する。ｊ５は、全体的なアセンブリープロセスのサブアセンブリーを仲介する、パラメーターまたは異なるアセンブリー技術の適用を企図しない。
【００１５】
ＧＳＬは、新しい株の定義を生じる編集のコレクションを指定する目的のためのＡｍｙｒｉｓ，Ｉｎｃによって開発された所有権のある言語である。ＧＳＬは、ユーザーが高および低レベル配列編集演算子の両方を提供する言語を使用する編集を定義することを可能にする。各場合において、ユーザーは、組み合わされるサブ配列の組み合わせを明確に記載しなければならない。ＧＳＬは、ユーザーがコンビナトリアル様式で入力引数またはＤＮＡ要素を組み合わせるスクリプトを記載することを可能にする、リストまたはループ構築物を提供しない；スクリプト自体は、所望の出力配列の数に関してはＯ（ｎ）である。さらに、ＧＳＬは、Ａｍｙｒｉｓによって使用される特定の宿主生物と関連する編集部位に作用する編集技術の特定のコレクションを使用して編集が実施されることを予期し、宿主ＤＮＡ配列の公知の部位に挿入される連結する要素に優先的に集中する。ＧＳＬは、株、プラスミド、または宿主非依存的な任意のＤＮＡ配列もしくはサブ配列にわたり、ユーザーが将来的に実施することを望み得る様々なＤＮＡ改変パターンに拡張可能ではない。
【００１６】
Ｅｕｇｅｎｅ言語は、そのｐｅｒｍｕｔｅ（）関数の使用により、コンビナトリアルＤＮＡ設計を可能にする。L.  Bilitchenkoら、Eugene  -  A  Domain  Specific  Language  for  Specifying  and  Constraining  Synthetic  Biological  Parts,  Devices,  and  Systems、PLoS  ONE、６巻、４号、２０１１年４月２９日、(http://iournals.plos.org/plosone/article?id=10.1371/journal.pone.0018882)参照。これは、出力の数よりも、入力部分および結合子の数に関してサイズがＯ（ｎ）である、より簡潔なスクリプトを可能にする。したがって、それは、ＧＳＬまたは他のシステム（例えばＳＢＯＬ）よりも多くの配列の生成を可能にする。Ｅｕｇｅｎｅは、ユーザーに、様々な特性のフィルタリングを可能にするＲｕｌｅ述語を提供する。さらに、複数のＤｅｖｉｃｅが、ＤＮＡの特徴（アノテーション）にアラインメントを使用してまたは他の特性に基づく様々な順序で共に連結され得る。Ｒｕｌｅ構文は論理的プログラミング構造を使用して、ＰＲＯＬＯＧのような証明言語と同じようなやり方で制約充足言語を使用する、全ての規則を満たすだけの順序でまとめてＤｅｖｉｃｅを共に結合する様々な制約を定義する。それらを定義するために使用する規則および特定の構文の数は、ソフトウェア開発経験のない科学的なユーザーには厄介である。特に、述語論理的な構文は、命令型言語、例えばＰｅｒｌまたはＰｙｔｈｏｎ（多くの微生物学者に予想され得る）にわずかに精通しているだけであるユーザーが、コンピュータ科学において以前に正式な訓練を受けずに非常に異質であるプログラミングスタイルで考え、入力を入れることを必要とする。
Ｅｕｇｅｎｅは基本的に遺伝子製造プロセスへの入力として、製造されるヌクレオチド配列を提供する。その情報から、ゲノムのアセンブラーは、最良のヌクレオチド部分および配列を製造するためのワークフローの決定を任される。大規模演算では、何千もの配列がＥｕｇｅｎｅのようなゲノム設計プログラムによって生成され得る。例えば、プログラムは１００００個の改変ゲノムを生成することができ、それは保存スペースのおよそ５０〜１００ＧＢを占める。この情報は現時点での典型的なメモリに合わず、代わりに例えば、より遅いディスクベースのアクセスを必要とする。実施形態は、例えばＳＢＯＬを用い、出力ＤＮＡ成分を表すことができる。現在の市販のコンピュータシステムは、５０〜１００ＧＢのＳＢＯＬファイルを効率よくロードおよび演算できない。そのような演算は処理において、破損または容認できない遅延を起こし得る。したがって、コンピュータシステムにおいて大規模配列設計を実行する場合、コンピュータ技術に根付いた課題を克服する手段の開発が望まれる。
【先行技術文献】
【非特許文献】
【００１７】
【非特許文献１】Bartleyら、BBF  RFC  108：Synthetic  Biology  Open  Language  (SBOL)  Version  2.0.0、５．２、６、７．１０節
【非特許文献２】L.  Bilitchenkoら、Eugene  -  A  Domain  Specific  Language  for  Specifying  and  Constraining  Synthetic  Biological  Parts,  Devices,  and  Systems、PLoS  ONE、６巻、４号、２０１１年４月２９日、(http://iournals.plos.org/plosone/article?id=10.1371/journal.pone.0018882)
【発明の概要】
【課題を解決するための手段】
【００１８】
本発明の実施形態は、複数の変異を複数の親ヌクレオチド配列に同時に導入し、それらを変異配列の大きなセットへとトランスフォームするためのプロセス、システム、およびデータ構造を提供する。本発明の実施形態は、例えばヌクレオチド配列の設計および構成の時間および複雑さの削減により、工業規模のゲノム設計および製造を改善する。
【００１９】
しかしながら、ゲノム設計および製造へのデータ科学の適用は、背景技術節に上述したような課題を生じる。特に、ハイスループットヌクレオチド配列設計は、管理不可能な数の出力配列の生成をもたらし、単一のコンピュータメモリには多すぎるデータを作成し、より複雑なメモリ管理システムの使用を必要とし、例えば、ディスクベースの保存を組み入れる。さらに、そのような多数の出力配列の処理は、容認できないほど遅い処理時間または処理の失敗さえももたらし得る。本発明の実施形態は、設計および製造の間の、複雑なメモリ管理スキームおよび容認できないほど遅い配列データの処理の必要性を避ける、管理可能な量の配列データを生成する能力を提供することによって部分的にこれらの技術的な障害を克服する。
【００２０】
本発明の実施形態はまた、開始および中間ヌクレオチド部分の遺伝子製造プロセス、他のヌクレオチド配列合成入力（例えば、プライマー、酵素、試薬）、および環境因子（例えば、温度）を伝える反復データ構造も提供する。データ構造はまた、所望の遺伝子製造プロセスにおいて、開始および中間ステップのワークフローも指定し得る。この情報の検討は、製造プロセスをよりよく伝え、それによりいくつかの条件（例えば、部分およびプロモーターの価格および入手可能性、ワークフロー選択の効率）にわたる製造の最適化を可能にし、すなわち大規模コンピュータ支援設計ならびに微生物株および他の宿主細胞におけるゲノムの製造によりもたらされる課題を克服するため、収量、スケーラビリティ、処理時間、および他の因子の改善をもたらす。
【００２１】
本明細書の実施形態のいくつかのまたはすべての特徴を使用して、科学者らは非常に大きなセットのヌクレオチド配列（例えば、１００万またはそれよりも大きい桁）を簡潔なプログラミングフォーマットにおいて定義することができるが、直観に反した方法で、アセンブリープロセスの低レベルのより細かく細分された詳細も効率的に制御できる。この制御の一部は、配列のより管理可能なサブセットの生成を提供し、そうでなければゲノム設計および製造システムにおいて保存および処理能力にかかる負荷を避ける。
【００２２】
特に、本発明の実施形態は、遺伝子製造システムによるヌクレオチド配列の産生を制御する製造指示の生成を含む。それぞれ少なくとも１つのヌクレオチド配列部分を表している、配列オペランドの演算を示す式を受け取る；１つもしくは複数の第１レベルの演算と、１つもしくは複数の第２レベルの演算とを含むデータ構造を含む配列仕様に対して式を評価する；ならびに１つもしくは複数の第１レベルの演算および１つもしくは複数の第２レベルの演算の実行に基づく製造指示を生成するシステム、方法、コンピュータ読み取り可能媒体が本明細書に記載される。反復的な形で、１つもしくは複数の第１レベルの演算が少なくとも１つの第１レベルの配列オペランドに作用し、その値は１つもしくは複数の第２レベルの演算の実行によって解決される。次いで、製造指示を遺伝子製造システムに提供して、配列部分を配列仕様によって表されるヌクレオチド配列にアセンブルすることができる。
【００２３】
本発明の実施形態では、製造指示は、１つもしくは複数の第１レベルの演算または１つもしくは複数の第２レベルの演算が、遺伝子製造システムによってどのように具体化される（物理的に達成される）かに関する、仕様データ構造に含まれるパラメーターに基づき得る。いくつかの実施形態では、パラメーターは、１つもしくは複数の第２レベルの演算の最初の第２レベルの演算の具体化において遺伝子製造システムにより使用される第１のパラメーター、および１つもしくは複数の第２レベルの演算の２番目の第２レベルの演算の具体化において遺伝子製造システムにより使用される第１のパラメーターと異なり、第１のパラメーターと同じカテゴリーのパラメーターを表す第２のパラメーターを含み得る。例として、それぞれ第１のパラメーターは、第１のアセンブリー法、温度、配列部分ソース、またはプライマーソースを示し、第２のパラメーターは第２の、異なるアセンブリー法、温度、配列部分ソース、またはプライマーソースを示し得る。
【００２４】
本発明の実施形態では、サンプリングは配列仕様、例えば、データ構造が１レベル高い配列仕様のための入力／オペランドとして作用する反復データ構造における中間または低レベルでの「子」配列仕様のサブセットのみの実行のための選択による大きな保存能力および重い処理力の必要性を低減するために用いられ得る。（本明細書の上記および他に記載される配列仕様における「第１レベルの演算」は、データ構造階層のトップレベルに属する必要は必ずしもないが、代わりにトップレベルの下の子配列仕様に属し得ることに留意されたい。）実行のための配列仕様のサブセットの選択は、例えば無作為化サンプリング、ｆｉｒｓｔＫまたはｌａｓｔＫ仕様のみの選択、または仕様の重みづけに基づき得る。重みづけは、先の製造指示の結果としてアセンブルされたヌクレオチド配列の表現型特性に基づき得る。先の工場生産中にアセンブルした配列は、程度の高い所望の表現型特性を示すことが観察され得る。それらの配列は、例えば、特定のプロモーターを指定する子配列仕様から生成され得る。この情報は、それらのプロモーターを指定する子仕様を有利に重みづけするために使用され、それらが実行され、現行の製造指示に組み込まれる機会を増加し得る。
【００２５】
本発明の実施形態では、反復データ構造は、プロモーター−遺伝子−ターミネーター配列における遺伝子と関連するプロモーターの置換のような有用な演算を指定するために使用され得る。例えば、第１レベル関数は、配列中にプロモーターを配置する第２レベルの位置−解決関数の実行によって解決されるオペランドを有する置換関数であり得る。特にこの例では、置換／位置−解決式の評価は、第２の配列オペランドによって表される置換プロモーターを有する第１の配列オペランドによって表される複数のプロモーター−遺伝子−ターミネーター配列を含む配列の置換可能なプロモーター領域の置換を表す配列仕様の作成を含む。第１の配列オペランドの実行は置換可能な領域を識別する。
【００２６】
製造指示を生成するプロセスでは、反復データ構造は、これらの設計の構築に使用されるであろう入力および中間部とともに出力株またはＤＮＡ設計のコレクションを抽出するために横断され得る。本発明の実施形態では、これらの入力、中間、および最終ＤＮＡ配列を持つデータ構造は、「工場ビルドグラフ（ｆactory  build  graph）」と示される。この工場ビルドグラフ（以降、「ビルドグラフ」と交換可能に呼ぶ）は、物理的形態の所望の出力設計を産生する、ＤＮＡ配列アセンブリーワークを実施するための事前に定義されているワークフローとともに使用され得る。
【００２７】
これらおよび他の実施形態は、以下により完全に記載する。
【図面の簡単な説明】
【００２８】
【図１】図１は、ヌクレオチド配列の設計、構成、試験、および分析のための本発明の実施形態の研究所情報管理システムを示す。
【００２９】
【図２】図２は、本発明の実施形態による、ヌクレオチド配列の設計および構成のためのプロセスを示すフローチャートである。
【００３０】
【図３】図３は、本発明の実施形態により可能な反復連結関数の例を示す。
【００３１】
【図４】図４は、本発明の実施形態による、プロモーター、遺伝子、およびターミネーターの２つのセットを含む、アノテーションしたＤＮＡ配列の例を示す。
【００３２】
【図５】図５は、本発明の実施形態による、図４の配列に適用されるプロモータースワップ演算を示す。
【００３３】
【図６】図６は、本発明の実施形態による、置換−位置クロス乗積関数（replace-locate  cross-product  function）のＤＮＡ仕様のグラフ表示を示す。
【００３４】
【図７】図７は、本発明の実施形態を実行するために使用され得るコンピュータシステムの例を示す。
【００３５】
【図８】図８は、本発明の実施形態による、工場ビルドグラフの例を示す。
【発明を実施するための形態】
【００３６】
本記載は、添付の図面を参照し、ここでは様々な例の実施形態が示される。しかしながら、多くの異なる例の実施形態が使用でき、したがって本記載は本明細書に記載の例の実施形態に限定されると考えられるべきではない。むしろ、これらの例の実施形態は、本開示が完全および完璧であるように提供される。例示的な実施形態への様々な改変は、当業者には容易に明らかであり、本明細書で定義した一般原理は他の実施形態および出願に、本開示の精神および範囲から逸脱することなく適用され得る。したがって、本開示は示した実施形態に限定されることを意図しないが、本明細書に開示した原理および特徴と一貫する最大の範囲と一致する。
【００３７】
システム概要
【００３８】
図１は、ＤＮＡ配列の設計、構成、試験、および分析のための本発明の実施形態の実験室情報管理システム（ＬＩＭＳ）２００の体系図である。図２は、対応する流れ図である。ＬＩＭＳの実施形態では、１つもしくは複数の変更が同時に入力ＤＮＡ配列になされ、各変更または変更のセットの単一の出力配列を生じる。株を最適化するため（例えば、高収量で有機化合物を効率的に産生する微生物を製造）、ＬＩＭＳは多くのそのようなＤＮＡ出力配列を同時に産生し、それらは同じ時間枠内で分析され、どの宿主細胞が、したがって入力配列へのどの改変が所望の特性を最良に達成するか決定され得る。以下に示されるように、本発明の実施形態のゲノム設計言語は、簡潔な、ヒト−読み取り可能式を提供し、平行して多くのゲノム設計を生成する。
【００３９】
いくつかの実施形態では、システムは複数のヌクレオチド配列構築物（例えば、プロモーター、コドン、または遺伝子のようなＤＮＡ構築物）の設計を可能にし、それぞれ１つもしくは複数の変更を伴い、作業指示（概して、本明細書では「製造指示」と呼ぶ）を作成し、遺伝子製造システムまたは工場２１０に指示して構築物を担持する微生物の形態でヌクレオチド配列構築物を構成する。本発明の実施形態により、製造指示は事前に定義されている製造実行ワークフローにそって工場ビルドグラフに具体化され得る。構成され得る微生物の例としては、限定はされないが、細菌、真菌、および酵母などの宿主が挙げられる。システムにより、微生物は次いでそれらの特性を試験される（例えば収量、力価）。フィードバックループ様式で、結果を分析し、先の世代の設計を反復して改善し、より最適な微生物の性能を達成する。
【００４０】
本開示は主にＤＮＡ構築物について言及するが、当業者は、本明細書の実施形態が任意のヌクレオチド配列／核酸配列（例えば、メッセンジャーＲＮＡ、ＩＵＰＡＣアルファベットでの任意のそのような配列）に容易に拡張され得ること、およびＤＮＡ配列だけに限定されないことを認識する。さらに、設計、構成、試験、および分析プロセスは、主に微生物ゲノム改変の文脈で本明細書に記載されるが、当業者は、このプロセスが所望の遺伝子改変および任意の型の宿主細胞における発現目的のために使用され得ることを認識する。
【００４１】
図１および２をより詳細に参照すると、入力インターフェース２０２、例えばプログラムエディターを実行するコンピュータは、１つもしくは複数のＤＮＡ出力配列（図２の３０２参照）の設計を開発するために使用されるプログラム／スクリプトの文を受け取る。そのようなゲノム設計プログラム言語は、本発明の出願人によって開発された「Ｃｏｄｏｎ」プログラミング言語と本明細書では呼ばれ得る。本発明の実施形態の強力な特徴は、同じプログラム内でほんのわずかな手続き文により非常に大量のＤＮＡ配列の設計を開発できることである（例えば、微生物株、プラスミド）。
【００４２】
プログラム文は、キーワード、演算の指定、および少なくとも１つの引数、ゼロまたはそれよりも大きい引数の前に呼び出す関数名によって指定される関数呼び出し（その戻り値は、次いで評価時に破棄される）、または変数名によって後続の式に含まれ得る変数への式または値の割り当てを含み得る。式は、値へと評価（解決）され得る記号のコレクションである。関数呼び出しは、文または式として使用され得る。
【００４３】
ここで、例えば、図７に関して記載したように、計算デバイスのキーボードおよびマウスを使用して、グラフィカルもしくはテキスト入力により、またはメニューもしくはフォームによって、エディターはユーザーがプログラムに入力および編集するのを可能にする。当業者らは、他の入力インターフェース２０２がユーザーの直接入力の必要性なく用いられ得ることを認識し、例えば、入力インターフェース２０２はアプリケーションプログラミングインターフェース（ＡＰＩ）を用い、別の計算デバイスからのプログラムを含むファイル中の文を受け取ることができる。入力インターフェース２０２は、ローカルまたはリモート接続によりシステムの他の要素と通信し得る。
【００４４】
インタープリタまたはコンパイラ／実行ユニット２０４は、本発明の実施形態の新規のＤＮＡ仕様データ構造へのプログラム文を評価する（３０４）。データ構造の詳細を以下に記載する。（「ＤＮＡ仕様（ＤＮＡ  ｓｐｅｃｉｆｉｃａｔｉｏｎ）」は、そのデータ型により「ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎ」とも本明細書において呼ばれる。さらに用語「ＤＮＡ仕様」は、ＤＮＡ配列だけに限定されず、むしろ任意のヌクレオチド配列に適用される。本明細書で使用する場合、「ＤＮＡ仕様」は、入力引数から１つもしくは複数のＤＮＡ／ヌクレオチド配列を作成する方法の仕様および「連結する」などの命令を指す。ＤＮＡ仕様が評価される場合、それは以下に記載するように、その出力配列も記録し得る。）
【００４５】
本発明がインタープリタまたはコンパイラのいずれかによって実行され得る場合；プログラム文が解釈またはコンパイルされ得るため、用語「インタープリタ」および「コンパイラ／実行ユニット」は、本明細書において交換可能に使用されるべきである。コンパイラが用いられる場合、本発明のシステムにおいて実行ユニットが続く。
【００４６】
典型的には、最後には、プログラムスクリプトは、「設計キャンペーン」に含まれるプログラムの最終出力を表すＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎを識別する「ｃｒｅａｔｅ」文を含む。設計キャンペーン自体は、ＤＮＡ配列の産生のための製造指示の前身であり、以下に記載する。１つもしくは複数のｃｒｅａｔｅ文が提供され得る；複数のそのような文が使用される場合、ＤＮＡ仕様のコレクションは、トップレベルの「ｌｉｓｔ」仕様に一緒に保持される。
【００４７】
インタープリタ２０４は、ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎデータ型によって表される設計キャンペーンへのｃｒｅａｔｅ文のＤＮＡ仕様引数を評価する。ｃｒｅａｔｅ文自体は、ｃｒｅａｔｅ文の引数が、引数によって識別される配列を産生するための製造指示を生成するために使用されることを示す発注エンジン２０８によって読み取るインジケーター（例えば、フラグまたは他のインジケーター）を含み得る。
【００４８】
本発明の実施形態では、この段階では、インタープリタ２０４は、そのデータ構造が解決した出力を含むようなＤＮＡ仕様によって指定される演算を実行し得る。しかしながら、他の実施形態では、インタープリタ２０４はそれらの演算を実行せず、出力ＤＮＡ仕様データ構造は解決された任意の出力を含まない。代わりに、以下に記載したように、実行エンジン２０７は出力を解決する。
【００４９】
式の評価において、インタープリタ２０４は、例えば、カスタム／ローカルデータベース、公共データベース、またはユーザー提供のファイル（利便性のため、本明細書では「ライブラリー」と総称して呼ぶ）など、ＤＮＡ配列データの１つもしくは複数のソースを指し得る。電子回路の設計と同様に、合成生物学設計は、再利用できる成分のライブラリーから階層的に構成され得る。ライブラリー２０６はＤＮＡ配列および微生物の特性を反映するデータ（例えば、アノテーション）を含み得る。例えば、ライブラリーは、Ｅ．ｃｏｌｉの異なる株のＤＮＡ配列、公知のＤＮＡ配列内のプロモーターおよびターミネーターの位置、ならびに微生物株内の遺伝子の位置を表すデータを含み得る。例えば、ライブラリーは、数千のＤＮＡ成分を含有するデータベースを含み得る−そのいくつかは微生物株ゲノム全体、そのいくつかはより小さい遺伝子部分である。Ｃｏｄｏｎ文は、固有ＩＤによってこれらのいずれかを指し得る。ライブラリー２０６は、先のＣｏｄｏｎ評価の実行の出力−設計キャンペーンまたは製造指示−も指し、その両方ともＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎデータ型に具体化され得る。特に、ライブラリー２０６は、本明細書に記載の分析段階から生じる遺伝子型−表現型相関データの「ライブラリー」を保存し、新しい工場生産のための所望の表現型特性を達成する候補としてベース株および遺伝子改変の選択を可能にし得る。
【００５０】
ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎはＩＤによっても示され得る。本発明の実施形態により、ＩＤはＤｎａＣｏｍｐｏｎｅｎｔおよびＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎに同じように非オーバーラップの配列においてインタープリタ２０４によって発行され、それらはライブラリー内の入力として交換可能に使用され得る。しかしながら、ＤｎａＣｏｍｐｏｎｅｎｔおよびＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎに別々のルックアップ関数を使用することにより、同じＩＤが各型のコレクション内でＤｎａＣｏｍｐｏｎｅｎｔまたはＤｎａＳｐｃｉｆｉｃａｔｉｏｎのいずれかに有効な識別子である場合でさえも、システムおよびユーザーはＤｎａＣｏｍｐｏｎｅｎｔとＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎの間を区別できる。さらに、ライブラリーはＤＮＡ配列を、Ｃｏｄｏｎスクリプトに使用され得るファイルに保存できる（典型的には、ＦＡＳＴＡまたはｇｅｎｂａｎｋフォーマットで）。
【００５１】
実施形態では、インタープリタ２０４の代わりに、実行エンジン２０７がＤＮＡ仕様を実行し得る（３０７）。例えば、実行エンジン２０７は、ＤＮＡ仕様によって指定された１つもしくは複数の演算子を実行でき、ＤＮＡ仕様によって指定された適切な入力に演算子を適用する。この時点で、ＤＮＡ仕様データ構造は生じる解決された出力、ならびに１つもしくは複数の演算子および入力（および以下で議論するパラメーター）を含む。これらの出力はＤＮＡ成分の順序リストとして表され得る（例えば、以下の実施例に記載のクロス乗積要素）。
【００５２】
実施形態では、発注エンジン（あるいは、仕様／キャンペーンインタープリタまたは工場発注装置と呼ばれる）２０８は、設計キャンペーンを表すＤＮＡ仕様を解釈し、どの中間ＤＮＡ部分が産生され、または工場２１０への入力として必要とされるか決定する（３０８）。一般に、いくつかの実施形態では、工場発注装置２０８は２つの入力：ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎおよびワークフロー情報を必要とし、何が構成され（ＤｎａＳｐｅｃ）、どのようにユーザーがそれを構成しようと意図しているかを示す（ワークフロー）。それに基づき、工場発注装置２０８は、既知のヒューリスティックおよび他の特性に従う既知のアルゴリズムを使用する（例えば、一般的な装置での実行に最適な融解温度）ワークフロープロセスに必要とされる中間部分を計算できる。本発明の実施形態では、配列仕様自体は中間入力ならびにワークフローを示すパラメーターならびに開始、中間、および最終演算のための特性を指定し得る。
【００５３】
工場ビルドグラフにより、発注エンジン２０８はＤＮＡ仕様を論理的仕様から物理的製造プロセスへと変換する。上記の形で発注エンジン２０８によって識別された場合、ワークフロープロセスに必要とされる前駆および中間部分は、実行されたＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎにおいて識別された出力とともに、工場ビルドグラフと呼ばれるデータ構造に発注エンジン２０８によって記録される。（前駆ヌクレオチド配列部分、例えばプライマーは、ヌクレオチド配列アセンブリープロセスの開始部分−中間部分／アセンブリーまたは最終部分／株以外の部分−であり、ビルドグラフ中の他の配列に依存しない。）実施形態では、これは有向非巡回グラフ（ＤＡＧ）であり、ここで：各ノードはヌクレオチド配列部分、例えば前駆配列部分、中間配列部分、または最終配列部分、または最終株を表し；エッジは特定のさらなる中間または出力部分を作成するプロセスへどの成分が入力であるか通信するために使用される。その後続物の産生における各前駆または中間部分の特定の「役割」は、発注エンジン２０８によるビルドグラフの各エッジにも記録される（すなわちエッジを表すデータ構造の部分）。ビルドグラフの特定の形は、ユーザー提供のワークフローによって定義され、一連の変更により最終的な所望の設計を産生する特定の実験室プロトコールにおいて実施される実際の物理的なステップの表示である。発注エンジン２０８は、ワークフローに必要な役割の先験的知識からの各役割を決定し得る。
【００５４】
結果生じる製造指示は、ステップの規定のセット、ならびに構築される各ＤＮＡ配列のそれらのステップのそれぞれのパラメーター、入力、および出力、の組み合わせを含み得る。製造指示は、開始微生物ベース株を含むＤＮＡ部分リスト、プライマーのリスト、ガイドＲＮＡ配列、または他の鋳型成分もしくはワークフローへ作用するのに必要な試薬仕様を、以下にさらに議論するように、ＤＮＡ仕様内の異なる演算のための１つもしくは複数の製造ワークフロー仕様とともに含み得る。これらの初期、中間、および最終部分または株は、工場ビルドグラフに具体化され得る；ワークフローステップは、様々な役割のビルドグラフの要素を指す。発注エンジン２０８は、上記の情報のためのライブラリー２０６を指し得る。この情報は、ヌクレオチド配列合成の従来技術ならびにユーザーまたはその他によって開発されたカスタム技術に基づき工場２１０において物理的（ｉｎ  ｓｉｌｉｃｏと対照的に）形態で設計キャンペーン演算を具体化するために使用される。
【００５５】
例えば、反復ＤＮＡ仕様が環状のトップレベル関数を有し、その入力が連結仕様の鎖であると仮定する。工場発注装置２０８は、従来技術またはユーザーによって開発されたカスタム／改善した技術により、実験室のヒトまたはロボットがＰＣＲ反応を実施し、それぞれの入力を増幅し、次いで環状プラスミドにそれらをアセンブルするように一連の入力を解釈し得る。製造指示は、アセンブリーを行うために作成されるべきＰＣＲ産物を特定し得る。製造指示は、ＰＣＲを実施するために購入されるべきプライマーも提供し得る。
【００５６】
別の例では、ＤＮＡ仕様は置換のトップレベル関数を指定すると仮定する。工場発注装置２０８は、これを細胞の形質転換と解釈し得る（ゲノムの１つのセクションを、生細胞中の別のものと置換するプロセス）。さらに、置換関数への入力はＤＮＡのソースを示すパラメーターを含み得る（例えば、いくつかの他の株から増幅された別のプラスミドの除外）。
【００５７】
発注エンジン２０８は、ローカルまたはリモート接続にわたり製造指示を工場２１０に通信し得る。製造指示に基づき、工場２１０は、外部業者および内部記憶装置から短いＤＮＡ部分を獲得し、ＧｉｂｓｏｎアセンブリープロトコールまたはＧｏｌｄｅｎ  Ｇａｔｅアセンブリープロトコールなど当技術分野で公知の技術を用いて、入力設計に相当するＤＮＡ配列をアセンブルできる（３１０）。工場ビルドグラフに関して以下により詳細に議論したように、グラフのエッジに与えられた役割は、様々な技術に使用される（例えば、Ｇｉｂｓｏｎアセンブリー）ビルドグラフの要素およびどのようにそれらが多重化操作に組み合わされるか（９６ウェルプレートで起こるなど）を指定する。製造指示自体は、製造の開始、中間、および最終段階中にどの技術を用いるか指定し得る。例えば、多くの実験室プロトコールは、鋳型配列および２つのプライマー配列を必要とするＰＣＲ増幅ステップを含む。工場２１０は部分的にまたは完全にロボットの自動化を使用して実行され得る。
【００５８】
本発明の実施形態により、製造指示は工場２１０においてそれぞれ異なる遺伝子構造を伴う数百または数千のＤＮＡ構築物の産生を指定し得る。ＤＮＡ構築物は、典型的にはベース株への挿入のために環状にしてプラスミドを形成する。工場２１０において、ベース株はアセンブルしたプラスミドを受け取るために調製され、次いで挿入される。
【００５９】
工場２１０でアセンブルした結果生じるＤＮＡ配列は、試験装置２１２を使用して試験される（３１２）。試験の間、微生物株は、サイズおよびシークエンシング法に基づく品質管理（ＱＣ）評価に供される。生じる、ＱＣを合格した改変株は、次いで液体またはコロニー培養からプレート上に移され得る。産生条件をモデルとする環境条件下で、株を増殖し、次いで試験性能をアッセイする（例えば、所望の産物濃度）。同じ試験プロセスはフラスコまたはタンクで実施され得る。
【００６０】
フィードバックループ様式で、結果は分析装置２１４によって分析され、どの微生物が所望の表現型特性を示すか決定し得る（３１４）。分析段階の間、改変株培養はそれらの性能、すなわち工業規模で産生される能力を含む、所望の表現型特性のそれらの発現を決定するために評価される。分析段階は、とりわけ、コロニーの健康の指標として微生物コロニーの増殖を測定するため、プレートの画像データを使用する。分析装置２１４は、遺伝的変更を表現型性能と相関させるために使用され、生じる遺伝型表現型相関データ（ライブラリー２０６で保管され得る）をライブラリーに保存し、将来の微生物産生を伝える。
【００６１】
ＬＩＭＳは、先の工場生産から開発された相関に基づく設計／構成／試験／分析サイクルを繰り返す。続くサイクル中、分析装置２１４は、単独でまたはヒト操作者と併せて、より微細な粒度（granularity）で、より良い表現型性能を達成するために遺伝的改変を微調整する相関データを使用して入力インターフェース２０２に入力し戻すためのベース株として最良の候補を選択し得る。この形で、本発明の実施形態の実験室情報管理システムは、品質改善フィードバックループを実行する。
【００６２】
データ構造
【００６３】
ヌクレオチド配列アセンブリーのいくつかの従来の技術とは違い、本発明の実施形態は、所望の配列を直接表すリテラル文字列（literal  string）の入力を必要としない。エディターまたは他の入力インターフェースは、代わりに、または加えて、本発明の実施形態の高位のゲノム記載言語で表される文を受け取る。上記に示したように、本発明の実施形態において、各高位の文は、データ型ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎを有する「ＤＮＡ仕様」を評価する。ＤＮＡ仕様は、少なくとも１つのＤＮＡオペランド（データ型ＤｎａＩｎｐｕｔの）によって表される少なくとも１つのＤＮＡ部分における少なくとも１つの演算を示すデータ構造である。（本明細書のＤＮＡ「部分」は、ＤＮＡ配列、例えばプロモーター、遺伝子、ターミネーター、またはそれらの任意の組み合わせを指す。より一般的に、本発明は任意のヌクレオチド配列部分に適用する。）ＤｎａＩｎｐｕｔは、ＤｎａＣｏｍｐｏｎｅｎｔ（単一のＤＮＡ配列の一義的な表現）または別のＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎのいずれかであり得る。入力自体は、スクリプト内の先のＣｏｄｏｎ文の出力またはスクリプトの先の実行／評価からのＣｏｄｏｎスクリプト出力であってよく、ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎへの引数として指定される他のＤｎａＩｎｐｕｔに実施する演算の順序セットを記載する反復データ構造を生じる。
【００６４】
いくつかの実施形態では、ＤＮＡ仕様は、ＤＮＡ部分に実施される単項の演算（例えば、環状化）、または２つもしくはそれよりも多いＤＮＡ部分に実施される２項演算（例えば、連結、置換）を示し得る。いくつかの実施形態では、ＤＮＡ仕様はＤＮＡ配列のコンビナトリアルアセンブリーを記載する。
【００６５】
要するに、ＤＮＡ仕様は：
・ＤＮＡ成分の構築されたコレクション
・ＤＮＡ配列関係の簡潔な表現
・コンビナトリアル設計の簡潔な記載
・詳細および抽象の変化する層の入れ子型組織化
・ＤＮＡアセンブリーの設計者および製造業者の間の交換フォーマット
を提供し得る。
【００６６】
ＤＮＡ仕様は、いくつかの実施形態では、３つの部分：
・１つもしくは複数の順序入力のセット
・１つもしくは複数の改変動作
・１セットの順序出力
を有する。
【００６７】
ｃｉｒｃｕｌａｒｉｚｅ関数など、「単項」入力を扱う関数の場合でさえも、「単項」入力はそれ自体入力のリストであり得ることに留意されたい。この場合、関数の実行は環状ＤＮＡ配列のリストを送り、それぞれリストからの単一線状入力配列から作成される。バイナリ関数（例えば、ｃｏｎｃａｔｅｎａｔｅ）は２つのそのようなリストを演算し、２つのリストの要素が「ジッパー」（内積）演算（入力リストＬおよびＲ、全「ｉ」について、Ｌ［ｉ］  ＯＰ  Ｒ［ｉ］、ここで「ＯＰ」は内積演算を表す）により、または「クロス乗積」演算（入力リストＬおよびＲ、全「ｉ」、全「ｊ」について、Ｌ［ｉ］  ＯＰ  Ｒ［ｊ］、ここで「ＯＰ」はクロス乗積演算を表す）により組み合わされるかどうか示す関数モディファイアー（ＤＯＴ（内積）またはＣＲＯＳＳ（クロス乗積））によって指定される各リストの要素を組み合わせ得る。各リストの結果は、それぞれベクターまたはマトリクスと見なされ得る。
【００６８】
いくつかの実施形態では、ＤＮＡ仕様内のＤＮＡオペランドは、ＤＮＡ仕様自体またはＤＮＡ成分としてのいずれかとして表され、ＤＮＡ成分はヌクレオチドの配列を直接表すリテラル英数字文字列の列によりＤＮＡ部分を表し得る。いくつかの実施形態では、上記のように、ＤＮＡ成分は、例えば識別番号、ソース、分子形態（例えば、線状、環状）などのＤＮＡ部分の特性を記載するメタデータアノテーションも含み得る。
【００６９】
とりわけ、上記のように、いくつかの実施形態では、ＤＮＡ仕様のＤＮＡオペランドはＤＮＡ部分のリストを表し得る。部分のこれらのリストはＤＮＡ成分のリスト、ＤＮＡ仕様、またはＤＮＡ仕様のリストであり得る。
【００７０】
ＤＮＡ成分
【００７１】
ＤＮＡ仕様の議論の前置きとして、ＤＮＡ成分の例は、以下のｄｎａ（）関数を使用する：
【数１】
2019520622.tif 000002
この例では、インタープリタは：
【数２】
2019520622.tif 000003
を返す。
【００７２】
ＤＮＡ成分を使用して、インタープリタ２０４は、スクリプト内で直接、またはライブラリーからそれをロードすることによりＤＮＡ配列を指定することを可能にする。例えば、ユーザーはｄｎａ（）関数自体、例えば
【数３】
2019520622.tif 000004
内の短いＤＮＡ配列を直接指定できる。
【００７３】
代わりに、ユーザーは、ｄｎａＣｏｍｐｏｎｅｎｔ（）関数を使用して、そのＩＤまたはその名称によりＤＮＡ成分をライブラリーからロードし得る：
【数４−１】
2019520622.tif 000005
【数４−２】
2019520622.tif 000006
【００７４】
別の代替策として、ユーザーは、ｄｎａＦｏｒＳｔｒａｉｎ（）関数を使用して、微生物株の配列を表すＤＮＡ成分をライブラリーからロードし得る：
【数５】
2019520622.tif 000007
【００７５】
より一般的に、ローカルソース（ファイル、データベース）からまたは公共ソース（例えばＮＣＢＩ）から、ＤＮＡ配列は明確に識別され得る（すなわち文字列から）。
【００７６】
ＤＮＡ仕様
【００７７】
ＤＮＡ仕様に関して、インタープリタ２０４はまた、例えばｄｎａＳｐｅｃｉｆｉｃａｔｉｏｎ（）関数を使用して、ライブラリーからロードすることにより、全ＤＮＡ仕様を含むＤＮＡ仕様をユーザーに識別させることを可能にする：
【数６】
2019520622.tif 000008
【００７８】
この最後の例はＤＮＡ仕様を返すが、先の例はＤＮＡ成分を返した。これらの両方ともがＤｎａＩｎｐｕｔ型のデータを表すため（これら２つの型の「上位型」）、これらはＤＮＡ改変関数に交換可能であることが多い。すなわち、引数としてＤＮＡ成分またはＤＮＡ仕様のいずれかを参照することにより、プログラムはキャンペーンのためのより複雑なＤＮＡ仕様を作成し得る。本明細書で議論するように、複雑な仕様でさえも、ＤＮＡ仕様は多くの配列の取り扱いおよび作成を可能にする簡潔な、ヒト読み取り可能データ構造を提供する。
【００７９】
ＤｎａＩｎｐｕｔ値は、ＤｎａＣｏｍｐ（ＤＮＡ成分；「ＤｎａＣｏｍｐ」および「ＤｎａＣｏｍｐｏｎｅｎｔ」は本明細書において交換可能に使用され、「ＤｎａＣｏｍｐｏｎｅｎｔ」型の変数または値を指す）、ＤｎａＳｐｅｃ（ＤＮＡ仕様；「ＤｎａＳｐｅｃ」および「ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎ」は本明細書において交換可能に使用され、「ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎ」型の変数または値を指す）、ＬｏｃａｔｅｄＤｎａＳｐｅｃ、Ｌｉｓｔ［ＤｎａＣｏｍｐ］（ＤＮＡ成分のリスト）、またはＬｉｓｔ［ＤｎａＳｐｅｃ］（ＤＮＡ仕様のリスト）であり得ることに留意されたい。）
【００８０】
連結関数
【００８１】
ゲノム設計プログラミング言語および本発明の実施形態の演算は多くの異なる関数を支持する。例としては、ＣｏｄｏｎはＤＮＡ部分を連結し大きなアセンブリーの作成を可能にする。Ｃｏｄｏｎは、ｄｎａ（）、ｄｎａＦｏｒＳｔｒａｉｎ（）、およびｄｎａＣｏｍｐｏｎｅｎｔ（）などのＤＮＡ成分関数による個々の配列の仕様を可能にする。個々の（スカラー）値によって作業する場合の例としては、Ｃｏｄｏｎは２つのスカラー文字列（「＋」連結関数を使用する）を以下のように連結することができる：
【数７】
2019520622.tif 000009
【００８２】
しかしながら、ＬＩＭＳは、同時に複数のＤＮＡ配列を設計、構成、試験、および分析するように具体的に設計される。したがって、Ｃｏｄｏｎは、例えば、ｄｎａＳｐｅｃｉｆｉｃａｔｉｏｎ（）関数で複数のＤＮＡ配列を表すＤＮＡ仕様（ＤｎａＳｐｅｃ）をロードすることにより、ユーザーがＤＮＡ配列のリストで作業することを可能にする。プログラムは、例えば、公知のＧｅｎｂａｎｋまたはＣＳＶフォーマットのファイルをライブラリーにアップロードすることにより、配列のリストを表すＤＮＡ仕様（ＤｎａＳｐｅｃ）を作成し得る。
【００８３】
配列のリストの連結は、少なくとも２つの方法で実施され得る。リストが同じ長さの場合、ＤＮＡ仕様は、要素ごとの項目の連結を指定し得る。インタープリタ２０４によるＤＮＡ仕様の実行（または他の実施形態では、実行エンジン２０７）は［ａ，ｂ，ｃ］および［ｄ，ｅ，ｆ］を、ａｄ、ｂｅ、ｃｆのように連結する。この関数は、「内積」を意味する。代わりに、ＤＮＡ仕様は、それらのデカルトクロス乗積産物による任意の長さのリストの連結を指定し、全ての可能な対を連結し得る。同じ例のリストを使用して、インタープリタ２０４（または他の実施形態では、実行エンジン２０７）はクロス乗積出力を、ａｄ、ａｅ、ａｆ、ｂｄ、ｂｅ、ｂｆ、ｃｄ、ｃｅ、およびｃｆとして連結する。これらの出力は、ＤＮＡ成分として表され得る。本明細書に記載のように、クロス乗積が、メモリ容量に対して非常に多くの出力をもたらす場合、システム２００はサンプリングを用い、産生された出力の数を減らす。以下にさらに記載するように、試料セットの重みづけを含む異なるサンプリング技術が用いられ、有益な表現型特性を産生するまたは影響する構成前および試験サイクルの間に決定された遺伝子部分を含み得る。発注エンジン２０８は、次いで出力に基づく製造指示を作成する。
【００８４】
Ｃｏｄｏｎは、異なる方法で連結関数を表す。ｃｏｎｃａｔ（）関数は、２つのＤｎａＩｎｐｕｔ引数をとり、要素を連結する。関数は、関数名および引数リストの間に関数モディファイアー［＊］または［ｘ］を含み、以下の例のようにそれが内積またはクロス乗積であるかどうか示す：
【数８】
2019520622.tif 000010
【００８５】
ＤＮＡ連結は文字列連結（典型的には現在のプログラミング言語において数学様２項演算子を使用して行われるもの）に非常に類似しているため、Ｃｏｄｏｎは連結の省略表現を提供する：以下の例に示すように連結を示すために＊またはｘを直接使用する。
【数９】
2019520622.tif 000011
【００８６】
反復
【００８７】
図３を参照すると、以下は、本発明の実施形態によって可能な反復的連結関数の実行の例である。ここで、反復は情報の組織化またはレベルもしくは層の関数を指し、ここではオブジェクトは他の類似のオブジェクトを含有し、または関数の評価は他の、類似のサブ関数の評価に依存する。この例では、連結関数、ならびにＤＮＡ仕様は、反復的である。
【００８８】
以下の出力「ｔｏｔａｌ」のプラスミド形態への「環状化」前に、線状形態の例示的な関数は：
【数１０】
2019520622.tif 000012
ここでａｌｐｈａ＝ｐ１ｘｐ２およびｂｅｔａ＝ｐ３ｘｐ４、ならびにｐ１、ｐ２、ｐ３およびｐ４はプロモーターを表す
として表され得る。
【００８９】
ここで、ａｌｐｈａおよびｂｅｔａのクロス乗積連結は外関数（outer  function）であり、ここで各ａｌｐｈａおよびｂｅｔａは２つのプロモーターの内クロス乗積（inner  cross  product）を表す。クロス乗積関数へのいずれの入力も、入力のリストであり、単に単一の入力ではないことに留意されたい。
【００９０】
本発明の実施形態のプログラミング言語におけるこの機能性を実行するため、入力インターフェース２０２は、ユーザーまたは別の計算デバイスから以下のスクリプトを受け取り得る。（以下のコードでは、環状化後、ｔｏｔａｌは「ｍｙｐｌａｓｍｉｄ」と改称され、ａｌｐｈａおよびｂｅｔａはそれぞれ、「ｌｅｆｔ  ｓｉｄｅ」および「ｒｉｇｈｔ  ｓｉｄｅ」と改称される。したがって、ｍｙ  ｐｌａｓｍｉｄ＝ｃｉｒｃｕｌａｒｉｚｅｄ（ｌｅｆｔ  ｓｉｄｅ  ｘ  ｒｉｇｈｔ  ｓｉｄｅ）である。）また、プログラムコード中のコメントは、ここでは「／／」または「＃」のいずれかによって表され得ることに留意されたい。
【数１１−１】
2019520622.tif 000013
【数１１−２】
2019520622.tif 000014
【００９１】
この例では、インタープリタ２０４は関数／演算子、入力およびパラメーターによってＤＮＡ仕様を事前設定する（populate）が、出力を解決する関数を実行しない。生じるＤＮＡ仕様「ｍｙ  ｐｌａｓｍｉｄ」は以下に従い、図３のツリーデータ構造３５０として示される。ｍｙｐｌａｓｍｉｄ  ＤＮＡ仕様データ構造は反復的であり、子ＤＮＡ仕様（「Ｃｈｉｌｄ  ＤｎａＳｐｅｃ」）を含み、子ＤＮＡ仕様はこの例では、入力配列オペランドを表すＤＮＡ成分を含むことに留意されたい。
【数１２−１】
2019520622.tif 000015
【数１２−２】
2019520622.tif 000016
【数１２−３】
2019520622.tif 000017
【数１２−４】
2019520622.tif 000018
【００９２】
サンプリングがないと仮定して、実行エンジン２０７は、以下の１６の配列（ＤＮＡ成分として表され得る）を産生するオペランドに対してＤＮＡ仕様クロス乗積演算子を実行する。配列リストは本開示の他の場所に提供される。
【表１】
2019520622.tif 000019
【００９３】
本発明の実施形態の有利な特徴は、発注エンジン２０８が上記のようなＤＮＡ仕様データ構造を用い、工場２１０が産生する出力ヌクレオチド配列を単に提供するだけでなく製造指示の生成を伝え得ることである。上記のように、データ構造は図３に示すようなツリー形態である。発注エンジン２０８は、葉（例えば３５６、３５８に相当する）から枝へ、開始の根ノード（例えば３５２に相当する）へツリー構造を上方へ横断し、実行の各段階で実施される演算、ならびに入力、工場ワークフロー、および各段階で用いられる他のパラメーターを決定する。発注エンジン２０８は、この情報を製造指示に組み入れ得る。（本明細書における演算の「性能」は、実行エンジン２０７またはインタープリタ２０４（実施形態に依存する）による演算のｉｎ  ｓｉｌｉｃｏでの実行、または当業者によって認識されるように、本明細書において議論した文脈に依存して、遺伝子製造システムにおける演算の相当する物理的なｉｎ  ｖｉｖｏまたはｉｎ  ｖｉｔｒｏでの物理的具体化を交互に指し得ることに留意されたい。例えば、２つのヌクレオチド配列への連結演算は、コンピュータデバイスによって論理的に実施されるが、工場で２つの物理的な配列を一緒に合わせることによって物理的に具体化される。）
【００９４】
したがって、従来の配列設計実行とは異なり、本発明の実施形態は、単に最終配列出力だけでなく、同様に設計開発の開始、中間、および終了段階での演算および文脈上の情報の工場発注装置（ここでは発注エンジン２０８）に伝える配列設計のためのデータ構造を提供する。この情報の進展は、工場２１０への負荷を軽減し、開始および中間部分、ワークフローおよび他のパラメーター全てを決定し、したがって、所望の配列の産生効率を改善する。例えば、ＤＮＡ仕様におけるこの情報に基づき、発注エンジン２０８は、改変される最初のベース株、ならびに最終の、所望のヌクレオチド配列をアセンブルするプロセスの異なる中間段階で、工場２１０において使用される、可能性のある異なるプロモーター、ワークフロー、温度設定およびプライマーを決定し得る。例えば、アニーリング温度の許容範囲は、プラスミドＤＮＡから増幅するよりも、ゲノムＤＮＡから増幅するために異なり得る。
【００９５】
ＤＮＡ仕様のｓｅｔｐａｒａｍキーワードは、任意の作成されたＤＮＡ仕様ならびにどのように工場稼働が実施されるかを管理する他の属性の名称および説明をセットするために使用され得る。ｓｅｔｐａｒａｍ文は、２つの引数、パラメーター名およびそれに割り当てられた値を取る。いくつかのパラメーターは、単一の文字列値を使用し、その他は単一の文字列または文字列のリストを使用し得る。「ｎａｍｅ」および「ｄｅｓｃｒｉｐｔｉｏｎ」パラメーターは、ＤｎａＳｐｅｃの最も明らかにユーザーが理解できる特性をセットする。以下は、ｓｅｔｐａｒａｍを使用して指定され得るパラメーターの、非網羅的リストである：
ａｍｐｌｉｆｙＰａｒｔ−その部分が増幅されるべきかどうか指定する「ｔｒｕｅ」または「ｆａｌｓｅ」のブール値。
ａｓｓｅｍｂｌｙＭｅｔｈｏｄ−構築物をアセンブルするために工場で使用する構築方法。例えば、「酵母相同組換え」、「ｇｉｂｓｏｎ」、または「ＬＣＲ」の１つ
ｄｅｓｃｒｉｐｔｉｏｎ−ＤｎａＳｐｅｃ／キャンペーンに割り当てる説明
ｇｒｏｕｐＮａｍｅ−特定のＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎによって産生されたアセンブリー部分のコレクションに割り当てる名称。ａｍｐｌｉｆｙＰａｒｔと併せて使用され得る。
ｌｅｆｔＴａｉｌＬｅｎおよびｒｉｇｈｔＴａｉｌＬｅｎ−増幅のために生成する最大テール長を指定する整数値
ｎａｍｅ−ＤｎａＳｐｅｃ／キャンペーンに割り当てる名称
ｎｏｔｅｓ−ヒト参照のキャンペーンについての注記の長いフリーフォームセット。これは文字列のリストであり得る。
ｏｕｔｐｕｔＮａｍｅ−このパラメーター名で作成されるＤｎａＳｐｅｃによって生成されるＤｎａＣｏｍｐｏｎｅｎｔを割り当てる名称を指定する文字列または文字列のリスト。（例えば、入力のセットを環状化する場合、「ｏｕｔｐｕｔＮａｍｅ」、［「ｍｙＣｉｒｃｕｌａｒ１」、「ｍｙＣｉｒｃｕｌａｒ２」、．．．］をｓｅｔｐａｒａｍし、異なる環状化構築物を名付けることができる。
ｐｒｉｍｅｒＳｏｕｒｃｅ−例えば、キャンペーンのためのプライマーのソースを指定する「ＩＤＴ」（Ｉｎｔｅｇｒａｔｅｄ  ＤＮＡ  Ｔｅｃｈｎｏｌｏｇｉｅｓ，Ｉｎｃ.）または「ｌｉｂｒａｒｙ」の１つ
ｐｌａｓｍｉｄＳｏｕｒｃｅ−例えば、キャンペーンのためのプラスミドのソースを指定する「ｂｕｉｌｄ」または「ｌｉｂｒａｒｙ」の１つ
ｔａｒｇｅｔＡｎｎｅａｌｉｎｇＴｅｍｐｅｒａｔｕｒｅ−構築物を増幅する工場で用いられる所望の温度
【００９６】
置換関数
【００９７】
別の特に適切な関数は、置換関数である。微生物株のＤＮＡ配列の遺伝子の前に位置するプロモーターを置換するプログラムの例としては、まず図４のＤＮＡ成分を指す。図４は、プロモーター４０２Ａ、４０２Ｂ、遺伝子４０４Ａ、４０４Ｂ、およびターミネーター４０６Ａ、４０６Ｂ（一般的に「ｐ−ｇ−ｔ」配列）の２つのセットを含むアノテートしたＤＮＡ配列４００、それぞれｐ１（配列番号１７）−ＹＦＧ１（配列番号１８）−ｔ１およびｐ２−ＹＦＧ２−ｔ２の例を示す。（アノテーションはプロモーターｐ１（配列番号１７）および遺伝子ＹＦＧ１（配列番号１８）に関して示される。）
【００９８】
図５は、図４のｐ−ｇ−ｔ配列に適用されるプロモータースワップ演算５００を示す。コンビナトリアルクロス乗積（「ｘ」）演算を使用して、プログラムは、ｐ１’、ｐ２’、およびｐ３’と１つずつ置換したオリジナルのｐ−ｇ−ｔ配列中のプロモーターとの全てのｐ−ｇ−ｔ配列の全ての組み合わせを生成し、設計キャンペーンへと変換される６つの出力配列を生じる。（最初の４つの出力配列５０２を図に示す。）
【００９９】
この演算を実施するためのプログラムコードは以下の通りである。関数の説明はコメント中に与える。
【数１３】
2019520622.tif 000020
【０１００】
ｒｅｐｌａｃｅＰｒｏｍｏｔｅｒ（）関数は、所与の遺伝子を制御するとアノテートしたプロモーターを置換する。モディファイアー「ｘ」を呼び出すクロス乗積関数によって示されるように、ここではｒｅｐｌａｃｅＰｒｏｍｏｔｅｒ（）は、「ｐｒｏｍｏｔｅｒｓ」によって識別されたプロモーター配列の表示によって置換された遺伝子のアノテートしたプロモーターの表示による「ｇｅｎｅｓ」によって識別される全てのアノテーション（ゲノム内の位置）の表示を生成する。このｃｒｅａｔｅ関数は、「ｒｅｐｌａｃｅ」関数を伴うＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎを生成し、パラメーターは「ｒｅｐｌａｃｅ−ｐｒｏｍｏｔｅｒ」モードで実施されるべきであることを示しており、１つの引数リストはプロモーターであり、その他の引数リストはＬｏｃａｔｅｄ  ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎ（ここでは「ｇｅｎｅｓ」）、すなわち１つもしくは複数のＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎであり、その関数は「ｌｏｃａｔｅ」であり、そのプロモーターがスワップされるべきである名称によって遺伝子のコレクションを示す。「ｃｒｅａｔｅ」関数は、ＤＮＡ配列の生成のための工場への入力のための設計キャンペーンを作成する。
【０１０１】
本発明の実施形態の１つの特徴は、ゲノム設計言語がゲノムアウェア（genome-aware）編集演算を含むことである。例えば、インタープリタ２０４（またはいくつかの実施形態では、実行エンジン２０７）はｒｅｐｌａｃｅＰｒｏｍｏｔｅｒ（）を実行し、ｐ−ｇ−ｔ配列の遺伝子を制御するとアノテートされたプロモーターの位置の知識を得る。ライブラリー中のｐ−ｇ−ｔ配列を読み取ることにより、インタープリタ２０４（またはいくつかの実施形態では、実行エンジン２０７）は、そのＤＮＡ成分アノテーションから各遺伝子の適切なプロモーターを識別し、次いでプロモーターの置換を可能にする。BBF  RFC  108:  Synthetic  Biology  Open  Language  (SBOL)  Version  2.0.0,  editors  Bartleyら、２０１５年７月３１日（アノテーション）参照。
【０１０２】
ｒｅｐｌａｃｅＰｒｏｍｏｔｅｒ（）は、プロモーターアノテーションを使用して、遺伝子を制御するプロモーターを配置するだけではないことに留意されたい。それは、アノテートしたプロモーターの上流端から遺伝子の開始コドンまでの全配列を置換する。目的の遺伝子のプロモーターアノテーションが存在しない場合、新しいプロモーターが遺伝子の前に挿入される。プロモーターの領域にオーバーラップするアノテーションがある場合、方法はユーザーに警告する、または衝突の修正を試みることがある。
【０１０３】
図６は、指定した遺伝子６０２Ａ、６０２Ｂ、６０２Ｃによって置換されるその挿入領域を有するプラスミドの３つの組み合わせ６０６全てを示すことにより、遺伝子（ｎｅｗＧｅｎｅｓ）６０２Ａ、６０２Ｂ、６０２Ｃをプラスミド６０４に挿入するため、ｒｅｐｌａｃｅ［ｘ］（ｌｏｃａｔｅＴｅｒｍ［ｘ］（ｐｌａｓｍｉｄｓ，”ｉｎｓｅｒｔｉｏｎ−ｓｉｔｅ”），ｎｅｗＧｅｎｅｓ）クロス乗積関数のＤＮＡ仕様のグラフィカル表示を提供する。関数は、プラスミド挿入領域を有する遺伝子のリストのクロス乗積を用い（スカラーＤＮＡ成分によって表され得る）、改変プラスミドを表すＤＮＡ仕様を出力する。代わりに、プラスミドはＤＮＡ成分として表され得る。関数はまず、ｌｏｃａｔｅＴｅｒｍ［ｘ］（ｐｌａｓｍｉｄｓ，”ｉｎｓｅｒｔｉｏｎ−ｓｉｔｅ”）を呼び出すことによって置換される配列のプラスミド内の位置を指定する。代わりに、挿入部位は部位の位置の名称を識別することにより配置され得る、例えばｌｏｃａｔｅＮａｍｅ［ｘ］（ｐｌａｓｍｉｄ，”ＭｓｅＩ  ｃｕｔ  ｓｉｔｅ”）。これらの関数は、ＬｏｃａｔｅｄＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎｓを返す。置換関数は次いで、ＬｏｃａｔｅｄＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎｓによって指定される位置へとｎｅｗＧｅｎｅｓのリストのクロス乗積置換を実施する。
【０１０４】
上記の例は、本発明の実施形態のプログラミング言語およびデータ構造の反復的能力の別の利点を実証する。言語は、演算、入力、および製造の各段階で使用される条件を指定することにより、配列製造プロセス（開始、中間、および最終）の全ての段階をユーザーが独立して制御することを可能にする。上記の例では、仕様は、ＤＮＡ仕様のツリー構造の異なるレベル（ノード）でのクロス乗積演算を指定する：位置解決内部関数ならびに置換関数外側関数でのクロス乗積演算はさらにツリー構造を生じる。同様に、異なる段階／レベルで、点およびクロス演算子の異なる組み合わせ、異なるパラメーター（例えば温度および他の環境条件）、ならびに異なる入力（例えばプロモーター）をユーザーは指定し得る。
【０１０５】
非決定的関数
【０１０６】
本発明の実施形態は、確率的、非決定的関数を提供し、そのいくつかは、確率的な結果を作成する実験室法の実在の結果を反映する。一般に、確率的な関数は、非決定的な形でヌクレオチド配列への変更をもたらす。例は、配列の無作為な位置への転移因子の挿入、配列のいずれかの場所で１つもしくは複数の単一のヌクレオチド変化（例えば、化学またはＵＶ変異を反映する）、コード配列中の任意の１つのコドンの３番目の位置での１つの単一のヌクレオチド変化（例えば、ＮＮＫライブラリーの産生による）、公知の位置での１つまたは２つのヌクレオチド変化（例えば、縮重プライマーによるＰＣＲから）、または定向進化による変化の未知のセットである。
【０１０７】
以下の２つの例は、ヌクレオチド配列の生成において条件付き無作為化を可能にする確率的関数を実行する。
【数１４−１】
2019520622.tif 000021
【数１４−２】
2019520622.tif 000022
【０１０８】
プラスミドの作成
【０１０９】
別の例としては、以下のプログラムはいくつかのプロモーター、いくつかの遺伝子、ターミネーター、およびプラスミド骨格をロードする。クロス乗積連結関数を使用して、プログラムはプロモーターおよび遺伝子（およびターミネーター）の全ての可能な組み合わせを作成し、それらをそれぞれ骨格に取り付け、それらをプラスミドへと環状化し、全てのこれらの設計を示すキャンペーンを作成する：
【数１５−１】
2019520622.tif 000023
【数１５−２】
2019520622.tif 000024
【０１１０】
サンプリング
【０１１１】
上述したように、本発明の実施形態のもののような合成生物学システムは、複数の演算を、複数のＤＮＡオペランドによって表される複数のＤＮＡ部分に実施することを可能にする。したがって、生じる設計キャンペーンは何千ものＤＮＡ配列の表示を含み得る。例えば、プログラムは１００００個の改変ゲノムを生成でき、それは保存スペースのおよそ５０〜１００ＧＢを占める。この情報は現時点での典型的な従来のメモリにおいて効率的に管理できず、代わりに例えば、より遅いディスクベースのアクセスを必要とする。現在の市販のコンピュータシステムは、ゲノムを表示する５０〜１００ＧＢのＳＢＯＬファイルを効率よくロードおよび演算できない。そのような演算は処理において、破損または容認できない遅延を起こし得る。
【０１１２】
本発明の実施形態は、サンプリングによるこれらの保管および処理の問題の可能性を回避する。いくつかの実施形態では、発注エンジン２０８は、製造指示への組み入れのための出力のサブセットのみを選択し得る。この演算は、多くの異なる技術、例えばＮ構築物を産生する無作為サンプリング、または最初もしくは最後のＫ  ＤＮＡ構築物のサンプリングを用いることができる。保存の要件を減らすため、この手法は製造指示への組み入れのためのサンプリングした出力のみを保存し得る。
【０１１３】
代わりに、実行エンジン２０７がＤＮＡ仕様を実行し、ＤＮＡ仕様を事前設定する出力を生成する実施形態では、実行エンジン２０７自体がインタープリタ２０４からＤＮＡ仕様を任意選択によりサンプリングし、実行のためのＤＮＡ仕様のサブセットを選択し得る。この手法は、インタープリタ２０４のより大きく、反復的なＤＮＡ仕様出力データ構造内の、中間の演算（例えば、子ＤＮＡ仕様）を表すＤＮＡ仕様に特に適用可能である。結果として、実行エンジン２０７は、選択され、実行されたＤＮＡ仕様のためのみの出力を産生する。実行エンジン２０７による実行からのインタープリタ２０４による解釈のデカップリングは、実行のためのサンプリングの出力のサイズを何桁も低減し、それにより非常に大きな保存能力および重い処理の必要性を減らすことができる。
【０１１４】
直前の実施形態のサンプリング演算は、多くの異なる技術、例えば無作為サンプリング、または実行のための最初もしくは最後のＫ  ＤＮＡ仕様のサンプリングを用いることができる。さらに、実行エンジン２０７は、実行の前により賢明にＤＮＡ仕様をサンプリングできる。１つの手法は、実行のためのＤＮＡ仕様を重みづけすることである。例えば、ＤＮＡ仕様データ構造内で、プロモーターおよび他のパラメーター化因子は、例えば、それらのコスト、入手可能性、または公知の有効性に依存して異なる重みに割り当てられ得る。例えば、ＤＮＡ仕様データ構造が連結クロス乗積関数を２つの入力オペランド−遺伝子のリストおよびプロモーターのリストに適用すると仮定する。この例では、各プロモーターは、実行のためのＤＮＡ仕様のその選択において、実行エンジン２０７に伝える０と１の間の重みづけパラメーター（ｐａｒａｍｓ）を割り当てられ得る。リスト中のプロモーターの重みが高いほど、実行エンジン２０７は（連結クロス乗積演算子を適用する）そのようなプロモーターのためにＤＮＡ仕様を実行する可能性がより高い。
【０１１５】
重み自体は、ＤＮＡ仕様のパラメーターとして加えられ、他のパラメーターを重みづけする。例えば、子ＤＮＡ仕様（すなわちトップレベルＤＮＡ仕様より下位）は、子ＤＮＡ仕様内の単一のプロモーターのｗｅｉｇｈｔＰｒｏｍｏｔｅｒ＝ｐｉ、または同じ子ＤＮＡ仕様内のプロモーターのリストのｗｅｉｇｈｔＰｒｏｍｏｔｅｒ＝［ｐ１，ｐ２，．．．ｐＮ］として表される確率的な重みを割り当てた重みづけパラメーターを含み得る。パラメーター（例えばプロモーター）、特に反復的ＤＮＡ仕様の階層ツリー構造内の同じレベルの演算でのパラメーターの重みの合計は、値１まで加えられ得る。
【０１１６】
別の戦略は、実験方法の設計を用い、各々の効率を学習するためにプロモーター−遺伝子の可能な組み合わせを指定した数だけ賢明に選択することである。この実施の一部として、実行エンジン２０７は、一実施形態では、適切な仕様を実行し、組み合わせにおいて各プロモーターが少なくとも一度は使用されることを確かめ得るが、組み合わせの総数は制限される。
【０１１７】
ＤＮＡ成分さえも重みづけされ、ＤＮＡ成分へのその演算子の実行において実行エンジン２０７を誘導し得る。例えば、入力としてＤＮＡ成分のリストを有するＤＮＡ仕様は、ＤＮＡ成分のリストのための重みベクトルｗｅｉｇｈｔＶｅｃｔｏｒ＝［ｐ１，ｐ２，．．．ｐＮ］を含み得る。
【０１１８】
キャッシング
【０１１９】
本発明の実施形態では、実行エンジン２０７（またはインタープリタがＤＮＡ仕様を実行する実施形態ではインタープリタ２０４）は、キャッシングを用い、ＤＮＡ仕様の実行の間に再使用され得る結果の再計算を避けることができる。例えば、仕様はクロス乗積連結Ａｘ（ＢｘＣ）を指定でき、ここではＡ、Ｂ、Ｃはヌクレオチド配列の長いリストである。実行エンジン２０７は、Ａの各要素と、クロス乗積ＢｘＣから生じる全ての要素とを連結する。Ａの各項目との各連結のためのＢｘＣ出力を再計算することは冗長であり、時間がかかるため、実行エンジン２０７は、ＢｘＣの最初の計算後、それらのＢｘＣの結果を代わりにキャッシュし、次いでそれらの結果を使用してＡの要素とのにクロス乗積計算をもたらす。したがって、キャッシングは処理時間を減らし、処理速度を上げる。
【０１２０】
キャッシングは、同じ実行内だけでなく（例えば指示の生成）、異なる実行に渡って使用が見出される。例えば、ユーザーは、以前の指示から生成された配列と比較してより良いまたは異なる結果が望まれることを決定し得る。したがって、ユーザーは、プログラムを再実行し、別の製造指示を置き、おそらく今度はサンプリングを、実行するＤＮＡ仕様の異なるサブセットの選択に向ける。しかしながら、そうすることで、スクリプトは先の指示生成実行と同じ中間演算のいくつかの実行を依然として必要とし得る。右側および左側プロモーターの入れ子型連結の本明細書における例を参照して、ユーザーは、より高レベル（トータル）連結関数を再実行し、異なる右側配列出力を得るが左側演算は変更しないことを望み得る。したがって、システムは、高レベル関数の再実行の間に、低レベルの、後で使用するための左側の中間結果をキャッシュし得る。一般に、低レベル演算の出力（例えば階層ツリー構造の葉において）は、より高いレベルの演算よりも繰り返し必要とされ、実行エンジン２０７は、保存が条件付きである場合、高レベルからのものよりも低レベル出力のキャッシングを好み得る。前述のものに基づき、本発明の実施形態の実行エンジン２０７は、ツリー構造内の異なるレベルの演算からのＤＮＡ仕様結果をキャッシュし、続く実行中の再実行を回避し、したがって処理時間を減らし、処理スピードを上げる。
【０１２１】
工場ビルドグラフ
【０１２２】
工場ビルドグラフは、事前に定義されている工場製造ワークフローと共に、製造指示の実施形態である。工場発注エンジン２０８は、要約の形態で、１つもしくは複数の所望のＤＮＡ設計を作成する論理命令のコレクションを記載するＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎを受け取ることができ、これは、典型的には微生物または他の宿主細胞内で具体化される。特定の所望のアセンブリー技術、または出力設計もしくは細胞宿主の制約によって必要とされるアセンブリー技術に依存して、特定の製造ワークフローが選択され（発注エンジン２０８により、またはユーザーによって供給された場合）、作業を実施する。ＤＮＡ仕様においてまだ指定されていないワークフロー、ならびに製造パラメーター（例えばプライマー）は、産業界では公知の、または開発者に所有権のある、物理的なワークフローに基づき決定され、所与の入力配列に基づく中間または最終のヌクレオチド配列を合成する実験により開発された。このワークフローは、各特定の出力設計を製造する各ステップにおいて実施する作業を記載する入力のセットと対になる。
【０１２３】
工場ビルドグラフは、有向非巡回グラフ（ＤＡＧ）を持つデータ構造（補遺２を参照）の形態をとり得る。グラフは、ゼロまたはそれよりも多くの性質とともに、２つの型、ノードおよびエッジの記録のコレクションである。各ノードは、ノードＩＤを有し、それから発するエッジを追跡する。各ノードは、本発明の実施形態によりヌクレオチド配列（例えばＤＮＡ）部分、または細胞株を表す。これらの部分は、前駆体（例えば、第三者の業者から指示されたプライマー）、中間部分（例えば、連結の結果であるより長いＤＮＡセグメント、または最終株のＤＮＡ配列に変更を組み入れるために使用されるプラスミド）、または最終ＤＮＡ配列、株、またはその生物自体であり得る。
【０１２４】
発注エンジン２０８は、上方の葉からのＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎを横断し（上記のように）、どのようにツリーのレベルでの中間、または最終結果が先の従属部分から作成されるか計算する機会として各接合部を使用する。発注装置２０８は、この情報をＤＡＧのデータ構造に記載する。この情報は、演算を物理的に実施するために使用される特定のワークフローステップの文脈で記録され、したがってビルドグラフのノードにおけるステップの入力および出力の記録に加えて、各エッジは、ソースノードが特定の標的の構築において果たす「役割」によってもアノテートされる。グラフのデータ構造におけるノードおよびエッジは、ワークフローをパラメーター化するために必要とされるであろう他のパラメーターも保持する（例えば、ＰＣＲ反応で使用されるサーモサイクラーの温度設定）。
【０１２５】
工場ビルドグラフの要素は、ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎに文字通りに記載される配列またはサブ配列の組み合わせ、ならびに工場発注エンジン２０８自体によって算出される他の配列、例えば図８に示すようにＰＣＲプロセスにおいてより長い鋳型配列の特定のサブ配列を増幅するために使用されるプライマーである。この場合、発注装置２０８は、グラフのノードによってより長い鋳型配列を表し得る。発注装置２０８は、この鋳型配列ノードから、「鋳型配列」などの役割を有するＰＣＲ産物を表すノードへエッジをアノテートし得る。発注装置２０８は、他のノードで算出したプライマーを保管し、「増幅プライマー」などの役割を有するＰＣＲ産物にそれらのエッジをアノテートし得る。これらのノードの全ては、ＰＣＲ増幅サブ配列を表す４番目のノードにアウトバウンドエッジを有する。
【０１２６】
特に、図８は、工場ビルドグラフ例の図である。簡単のために、この例は部分ビルドグラフである；完全なグラフは全ての根の前駆体から全ての最終設計までの全ての情報を含有するであろう。図８において、ノード９０２はＤＮＡ配列を表す。エッジ９０４は、ノード９０６の出力ＤＮＡ配列への工場ワークフロープロセスを通してノード９０２の入力ＤＮＡ配列に連結し、特定の出力９０６の産生において特定の入力９０２の役割（９０４では「プライマー」）を指定する。ノード９０６の出力配列はＰＣＲプロセスの増幅配列を含む。ノード９０８のような他のノード（発注エンジン２０８によって計算されるまたはユーザーによって提供される）は、ノード９０８の配列の物理的またはメタデータ処理に必要なさらなるパラメーターおよび情報を含有し得る。補遺２は、図８に示す上位５つのノードのデータ構造表示の例を提供する（ＪＳＯＮシリアル化形態で、ノード１  ９０２、ノード２  ９１４、ノード３  ９１６、ノード４  ９０６、ノード５  ９１２）。
【０１２７】
図８では、グラフはプラスミド骨格の役割に作用することが示されている、ノード９１０の配列と連結される、ノード９０６から発するエッジに示されるように、ペイロード領域の役割に作用するノード９０６の配列を表す。発注装置２０８は、ノード９１２に示されるように、これら２つの入力を、「ペイロード領域をプラスミド骨格と連結し、結果を環状化する」の物理的な製造ワークフローと関連させる。発注エンジン２０８によって支持される演算は、特定の前駆体または中間配列が同じ指示の部分として産生される複数の所望の出力配列の製造に使用され得る場合を認識する能力である。発注エンジン２０８は、それに直接依存するすべての中間または最終配列をもたらす複数の出力エッジで、グラフの単一のノードによってそのような配列（例えば、共通のプラスミド骨格９１０）を表し得る。発注エンジン２０８は、この情報を使用して容積、濃度、または完全な指示に相当するサブワークフローの製造を実施するのに必要な他の量を計算し得る。ノードのアウトバウンドエッジの数も発注エンジン２０８によって使用され、異なるサブワークフローの相当する配列の処理を指定することができる。例えば、高頻度使用のアンプリコンは、１度だけ現れるアンプリコンとは異なる手段によって処理され得る。また、ビルドグラフの各パスは一意的に索引づけられ、異なる製造指示ビルドグラフからの他のパスと独立して組み合わされ得る。この構築は、遺伝子製造システムが、単一の製造指示で指定されるヌクレオチド配列の特定のセットからデカップリングされる形で複数のヌクレオチド配列の配列部分をアセンブルすることを可能にする。
【０１２８】
コンピュータシステム
【０１２９】
図７は、本発明の実施形態により、固定コンピュータ読み取り可能媒体（例えばメモリ）に保管されるプログラムコードを実行するために使用され得るコンピュータシステム８００の例を示す。コンピュータシステムは、入力／出力サブシステム８０２を含み、これは、入力インターフェース２０２を実行するために使用されて、ヒトユーザーおよび／またはアプリケーションに依存的な他のコンピュータシステムとインターフェースで接続し得る。例えば、本発明の実施形態のエディターは、使用されるＩ／Ｏサブシステム８０２によるシステム８００におけるプログラムコードで実行され、ヒトユーザーからの入力プログラム文を受け取る（例えば、ＧＵＩまたはキーボードにより）およびそれらをユーザーに戻すことを示すことができる。Ｉ／Ｏサブシステム８０２は、例えば、キーボード、マウス、グラフィカルユーザーインターフェース、タッチスクリーン、または他の入力のためのインターフェース、および例えばＬＥＤもしくは他のフラットスクリーンディスプレイ、または出力のための他のインターフェースを含み得る。本発明の実施形態の他の要素、例えば発注エンジン２０８は、しかしながらおそらくＩ／Ｏ無しのコンピュータシステム８００のようなコンピュータシステムにより実行され得る。
【０１３０】
プログラムコードは、持続保存装置８１０もしくはメモリ８０８または両方など固定媒体に保存され得る。プロセッサ８０４は、１つもしくは複数の固定媒体からプログラムコードを読み取り、コードを実行して、コンピュータシステムに図２のフローチャートによって表されるものなど、本明細書の実施形態によって実施される方法を達成させる。当業者は、プロセッサが、例えば本発明の実施形態の高レベルゲノム設計言語で示される文などのソースコードを取り入れ、プロセッサのハードウェアゲートレベルで理解可能な機械コードへとソースコードを解釈またはコンパイルし得ることを理解する。バスはＩ／Ｏサブシステム８０２、プロセッサ８０４、周辺デバイス８０６、メモリ８０８、および持続保存装置８１０を連結する。
【０１３１】
当業者は、図１に示すような本発明の実施形態の要素のいくつかまたはすべて（例えば、インタープリタ、実行エンジン、発注エンジン、工場、試験装置、分析装置）、および図２に示すようなそれらの付随的な演算が、コンピュータシステム８００のもののような１つもしくは複数のプロセッサおよび１つもしくは複数のメモリシステムを含む１つもしくは複数のコンピュータシステムに完全にまたは部分的に実行され得ることを理解する。いくつかの要素および機能性は局所的に実行され、その他は異なるサーバ、例えばクライアントサーバ様式によるネットワークに渡る分配様式で実行され得る。
【０１３２】
本発明は、例示的な実施形態に関して特に記載してきたが、様々な変更、改変および適合が本開示に基づいてなされ、本発明の範囲内であることが意図されることが認識されるだろう。本発明は開示した実施形態に関して記載されるが、本発明は開示される実施形態に限定されないと理解されるが、反対に、請求項の範囲内に含まれる様々な改変および等価な並び替えもカバーすることを意図する。
補遺１：関数参照
この補遺はＬＩＭＳのＣｏｄｏｎ言語のための組み込みライブラリーにおいていくつかの利用可能な関数を記載する。
【数１６−１】
2019520622.tif 000025
【数１６−２】
2019520622.tif 000026
ベース株の指定した位置において、その位置で識別されたサブ配列を、「ｉｎｓｅｒｔｉｏｎｓ」によって指定された新しい配列で置換する。
「ｉｎｓｅｒｔｉｏｎｓ」において、複数の挿入を指定し得る。クロス（「［ｘ］」）または点（「［＊］」）演算子のどちらが選択されるかにより、「ｂａｓｅＳｔｒａｉｎ」でそれぞれの生じた位置に１つの挿入を置き、またはそれぞれの挿入をそれぞれの可能な位置に適用する。
置換演算は、置換配列部分「ｉｎｓｅｒｔｉｏｎｓ」で空の置換可能領域を置換する厳密な挿入演算を指定し得る。代わりに、置換演算は、空の置換配列部分で置換可能領域を置換する厳密な欠失演算を指定し得る。
【数１７】
2019520622.tif 000027
いくつかのＤｎａＩｎｐｕｔを考慮して、その周りを取り囲むＬｏｃａｔｅｄＤｎａＳｐｅｃを返す。ＬｏｃａｔｅｄＤｎａＳｐｅｃは同じ出力を含有するが、識別した領域についての位置情報により、出力パラメーターに返される。ＬｏｃａｔｅｄＤｎａＳｐｅｃは、その関数がＬＯＣＡＴＥであるＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎである。領域の識別は、ＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎ内のパラメーターマップによって行われる。
位置は単一の塩基または多くの塩基にわたって伸びる領域のいずれかであり得る。
位置は単一のオフセット、または「ｏｆｆｓｅｔ」から「ｏｆｆｓｅｔ＋ｌｅｎｇｔｈ」、または「ｏｆｆｓｅｔ＋ｌｅｎ（ｓｕｂｓｅｑ）」に伸長する領域のいずれかとして指定される。後者の場合、「ｓｕｂｓｅｑ」は、「ｏｆｆｓｅｔ」で開始する確実にマッチングするＤＮＡ配列でなければならない。
位置は、各ベース株要素においてアノテートした領域の（一意的な）名称としても与えられ得る。位置領域はアノテーションの全範囲である。
複数のアノテーションまたはｏｆｆｓｅｔ／ｏｆｆｓｅｔ＋ｌｅｎｇｔｈ／ｏｆｆｓｅｔ＋ｓｕｂｓｅｑ値が与えられる場合、それぞれ点（「［＊］」）またはクロス（「［ｘ］」）演算子が選択されるかどうかによって、これらは、「ｂａｓｅＳｔｒａｉｎ」の個々の要素に一時に一つ適用される、または全てが「ｂａｓｅＳｔｒａｉｎ」の全ての要素に適用される。
アノテーションベースの位置は、返すための特定のアノテーション名（この場合、それらは入力ゲノム当たり１つの位置に返されるべきである）またはアノテーションの配列特徴項名（この場合、入力ゲノム当たり多くの位置が返され得る）のいずれかとして指定され得る。
ＬｏｃａｔｅｄＤｎａＳｐｅｃは、「ｉｎｓｅｒｔ」、「ｒｅｐｌａｃｅ」、および「ｄｅｌｅｔｅ」など関数への入力として使用され得る。ＤＮＡ配列から塩基を取り除く場合（例えば、「ｒｅｐｌａｃｅ」および「ｄｅｌｅｔｅ」として）、塩基対の数、または取り除かれる特定のサブ配列のいずれかにおいて、取り除かれる量は「ｌｏｃａｔｅ（）」へのパラメーターとして指定される。すなわち、配置された領域全体が「ｒｅｐｌａｃｅ」または「ｄｅｌｅｔｅ」によって取り除かれる。
空のサブ配列または０の長さを指定し、欠失がないことを示し得る。（例えば、「ｒｅｐｌａｃｅ（）」関数は純粋な挿入に使用される）。
オフセットは１で開始し、「｜ｔｈｅ  ＤＮＡ  ｓｅｑｕｅｎｃｅ｜」に達するおよび含む。以下の例を検討する：
【数１８】
2019520622.tif 000028
【数１９】
2019520622.tif 000029
ベース株の指定した位置において、指定した挿入を挿入する
「ｂａｓｅＳｔｒａｉｎ」または「ｉｎｓｅｒｔｉｏｎｓ」が複数の入力である場合、挿入は、関数呼び出しモディファイアーにつき「ｂａｓｅＳｔｒａｉｎ」の要素での内積またはクロス乗積において実施される。
【数２０】
2019520622.tif 000030
アノテーションの方向に対して、ベース株において指定したアノテーションの直後に「ｉｎｓｅｒｔｉｏｎｓ」によって指定したＤＮＡを挿入する。すなわち、「順方向」アノテーションでは、アノテートした配列の右に挿入し（５’から３’へ読み取る）；逆方向のアノテーションでは、左に挿入する。
「ｂａｓｅＳｔｒａｉｎ」または「ｉｎｓｅｒｔｉｏｎｓ」ＤｎａＩｎｐｕｔｓが複数の入力を表す場合、挿入は、関数呼び出しモディファイアーにつき全ての「ｉｎｓｅｒｔｉｏｎｓ」例と全ての「ｂａｓｅＳｔｒａｉｎ」例の内積またはクロス乗積としてなされる。
【数２１】
2019520622.tif 000031
アノテーションの方向に対して、ベース株において指定したアノテーションの直前に「ｉｎｓｅｒｔｉｏｎｓ」によって指定したＤＮＡを挿入する。すなわち、「順方向」アノテーションでは、アノテートした配列の左に挿入し（５’から３’へ読み取る）；逆方向のアノテーションでは、右に挿入する。
「ｂａｓｅＳｔｒａｉｎ」または「ｉｎｓｅｒｔｉｏｎｓ」ＤｎａＩｎｐｕｔｓが複数の入力を表す場合、挿入は、関数呼び出しモディファイアーにつき全ての「ｉｎｓｅｒｔｉｏｎｓ」例と全ての「ｂａｓｅＳｔｒａｉｎ」例の内積またはクロス乗積としてなされる。
補遺２：データ構造
この補遺は、本発明の実施形態によって用いられ得るデータ構造の例を提供する。それはＤｎａＳｐｅｃｉｆｉｃａｔｉｏｎおよびＤｎａＣｏｍｐｏｎｅｎｔ、Ａｖｒｏ仕様フォーマットで以下によって指定およびシリアル化され得るデータ構造を参照する：（http://avro.apache.org/docs/current/spec.htmlを参照）
【数２２−１】
2019520622.tif 000032
【数２２−２】
2019520622.tif 000033
【数２２−３】
2019520622.tif 000034
【数２２−４】
2019520622.tif 000035
【数２２−５】
2019520622.tif 000036
【数２２−６】
2019520622.tif 000037
【数２２−７】
2019520622.tif 000038
【数２２−８】
2019520622.tif 000039
【数２２−９】
2019520622.tif 000040
【数２２−１０】
2019520622.tif 000041
以下は図８に示す上位５つのノードのデータ構造表示の例である（ＪＳＯＮシリアル化形態で、ノード１  ９０２、ノード２  ９１４、ノード３  ９１６、ノード４  ９０６、ノード５  ９１２）：
【数２３−１】
2019520622.tif 000042
【数２３−２】
2019520622.tif 000043
【数２３−３】
2019520622.tif 000044
【図１】
2019520622.tif 000045
【図２】
2019520622.tif 000046
【図３】
2019520622.tif 000047
【図４】
2019520622.tif 000048
【図５】
2019520622.tif 000049
【図６】
2019520622.tif 000050
【図７】
2019520622.tif 000051
【図８】
2019520622.tif 000052
【配列表】
2019520622000001.app
【国際調査報告】
2019520622.tif 000053
2019520622.tif 000054
2019520622.tif 000055