アデニン、シトシン、グアニン、およびチミンの塩基のシーケンス(としてエンコードACGT
)を指定すると、対応するDNAの2本鎖のASCIIアート表現を生成することになります。
ストランドは垂直に伸びます。左側のストランドは、入力として指定されたストランドです。右側の鎖はその補数になります。DNAに精通していないものについては、A
と対になっているT
とC
して対になっていますG
。さらに、すべての塩基で同一である二本鎖の両側に骨格構造があります。したがって、入力が与えられた場合TAGCAT
、ASCIIアートの大規模な構造は次のようになります。
BTAB
BATB
BGCB
BCGB
BATB
BTAB
ここでB
バックボーンを表します。これらの文字はそれぞれ分子全体を表していて、実際の分子構造を再現しています。
拠点
各塩基に対して次のテンプレート1を使用します(各塩基は、相補的な塩基と2つの骨格分子とともに表示されます)。
1 ASCIIレイアウトを手伝ってくれたPeter Taylorの功績。
アデニン
O O
\\ /
P
/ \
--O O
/ |
< N NH2 ..... O * |
\ // \ / \\ / |
+--O // ---- ---- |
| \ | // \\ / \\ |
| >--N--< N ...... HN > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| // \ |
| O O--+
| \
| >
| /
O O--
\ /
P
/ \\
O O
シトシン
O O
\\ /
P
/ \
--O O NH2 ..... O N
/ / \\ / \\ |
< ---- ---- \\ ---+
\ // \\ / \\ | / |
+--O < N ...... HN >--N--< |
| \ \ / \ / \ |
| >--N--- ===N O--+
| / \\ / \
+--- O ..... H2N >
| /
O O--
\ /
P
/ \\
O O
グアニン
O O
\\ /
P
/ \
--O O
/ |
< N O ..... H2N |
\ // \ // \ |
+--O // ---- ---- |
| \ | // \ // \\ |
| >--N--< NH ...... N > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| \ // \ |
| NH2 ..... O O--+
| \
| >
| /
O O--
\ /
P
/ \\
O O
チミン
O O
\\ /
P
/ \
--O O * O ..... H2N N
/ \ // \ / \\ |
< ---- ---- \\ ---+
\ // \ // \\ | / |
+--O < NH ...... N >--N--< |
| \ \ / \ / \ |
| >--N--- ===N O--+
| / \\ \
+--- O >
| /
O O--
\ /
P
/ \\
O O
二本鎖の構築
これらは垂直に繰り返され、バックボーン構造にギャップはありません。これは、これら4つのテンプレートの境界ボックスが重複することを意味します。
右背骨の左側と上端の下端がに接続するO
のOH
。
自由O
権バックボーンの左と下の端の上部端では、無料の結合は内側に行く必要があります、で示されます--
。
例 ATG
O O--
\\ /
P
/ \
--O O OH
/ |
< N NH2 ..... O * |
\ // \ / \\ / |
+--O // ---- ---- |
| \ | // \\ / \\ |
| >--N--< N ...... HN > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| // \ |
| O O--+
| \
| >
| /
O O O O--
\\ / \ /
P P
/ \ / \\
--O O * O ..... H2N N O O
/ \ // \ / \\ |
< ---- ---- \\ ---+
\ // \ // \\ | / |
+--O < NH ...... N >--N--< |
| \ \ / \ / \ |
| >--N--- ===N O--+
| / \\ \
+--- O >
| /
O O O O--
\\ / \ /
P P
/ \ / \\
--O O O O
/ |
< N O ..... H2N |
\ // \ // \ |
+--O // ---- ---- |
| \ | // \ // \\ |
| >--N--< NH ...... N > ---+
| / \ / \ / / |
+--- N=== ---N--< |
| \ // \ |
| NH2 ..... O O--+
| \
| >
| /
OH O O--
\ /
P
/ \\
--O O
その他の例:
以下に、さらにいくつかの例のMD5ハッシュを示します(余分な先頭または末尾のスペースなし)。
ATG 2e4a906c44a96fe84134bf4346adf11c (this is the above example)
C e3648b8960967463784818c3eee57246
TTT 6028a90b05775905ef1a00e7a45463c5
TAGCAT 3b834d2b7b9adc4113ffabd52d354c41
GATTACA a19463f965c641d071e07da59d64a418
これらのいずれかが間違っていると思われる場合はお知らせください。
結果のハッシュを確実にチェックする方法がわからない場合は、このオンラインMD5ジェネレーターを試してください。後続の改行がないことを確認してください。
さらなる注記
あなたはありますが合うように先頭または末尾のスペースを使用しています。もちろん、先頭のスペースを使用する場合、各行で同じ量にする必要があります。
私が化学構造のコピーに誤りを犯した場合、上記のテンプレートはこの課題の目的のためにまだ規範的です。
入力文字列をパラメーターとして受け取る関数またはプログラム、STDINを介したコマンドライン引数を作成するか、変数に格納することを想定することができます。結果のASCIIアートをSTDOUTに書き込みます。
これはコードゴルフなので、最短の回答(バイト単位)が勝ちです。
TTT
文字列に末尾の改行が含まれていたため、ハッシュも修正しました。
ATG
出力をコピーし、異なるチェックサムを取得しました。また、異なるOSは異なるチェックサムを取得します。これらを試すことができunix2dos, unix2mac...
ます。