给定碱基序列腺嘌呤,胞嘧啶,鸟嘌呤和胸腺嘧啶(编码为ACGT
),您将产生相应DNA双链的ASCII艺术表示。
股线将垂直延伸。左侧的链是您输入的链。右手链将为其补充。对于不熟悉DNA的人,A
与T
和C
配对G
。此外,双链的每一侧都具有骨架结构,该骨架结构对于所有碱基都是相同的。因此,如果提供输入TAGCAT
,则ASCII艺术的大规模结构将是:
BTAB
BATB
BGCB
BCGB
BATB
BTAB
其中B
代表骨干。现在这些字母代表一个完整的分子,您将重现实际的分子结构。
基地
对每个碱基使用以下模板1(每个碱基与其互补碱基和两个主链分子一起显示):
1感谢Peter Taylor提供的ASCII布局帮助。
腺嘌呤
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
构造双链
这些在垂直方向上重复,因此主干结构中没有间隙。这意味着这四个模板的边界框将重叠。
右骨干的左侧和顶端的底端将连接到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
输出,并得到了不同的校验和。并且不同的操作系统将获得不同的校验和。您可以尝试使用unix2dos, unix2mac...
。
Digest::MD5.hexdigest()
带有Unix样式行尾的Ruby来获取它们。而且,它们都没有尾随换行符。将其粘贴到此处 -此在线MD5生成器同意我的哈希值。