LoginSignup
4
2

More than 5 years have passed since last update.

DNA相補鎖配列を逆さまに書く

Posted at

DNA配列をゴニョゴニョ・・・のようなプログラミングをしていると、避けて通れないのが相補鎖、すなわちReverse Complementな塩基配列の扱いです。

BioPythonあたり使われている方は、Bio.Seq.reverse_complement()で一撃で求められるのですが、こいつを逆さまに書いて、相補鎖であることを素敵に視覚に訴えるように明示できないかと試してみました。
もちろん画像やらTeXやら使えばいいのですが、テキスト端末で文字を逆さまにしてみたかったので。

実はUnicodeには全アルファベットの逆さま版の文字がある・・・かな、と思って調べている人は世の中に多少はいらっしゃるようですが、残念ながらありません。ただ、果敢にも逆さまにしたアルファベットに似た文字を探し出し、テーブルを作っている人は少なからずいるようで、これら先人の知恵を拝借してやってみます。

In [1]: R = {'A': chr(0x23CA), 'T': chr(0x15C4), 'C': chr(0x2141), 'G': chr(0x2183)}

In [2]: forward = ''.join(random.choice('ATCG') for i in range(50))

In [3]: reverse = ''.join(R[x] for x in forward)

In [4]: print(forward); print(reverse)
CTTAAAGCACTTTGTCTTCTTAGATGGCTAATCTCTCCAAGCGGAGCGGC
ᗄᗄ⏊⏊⏊⅁⏊⅁ᗄᗄᗄↃᗄᗄᗄᗄᗄᗄↃↃ⏊⏊⅁⅁⏊⏊ↃↃↃↃ

・・・微妙・・・フォントによっては上下の位置が合わないし・・・
小文字ならどうだろう。

In [5]: r = {'a': chr(0x0287), 't': chr(0x0250), 'c': chr(0x1d77), 'g': chr(0x0254)}

In [6]: forward = ''.join(random.choice('atcg') for i in range(50))

In [7]: reverse = ''.join(r[x] for x in forward)

In [8]: print(forward); print(reverse)
aggcgtcctcgatggcacttggcgccctatggttcggattggtccgcctc
ʇɔɔᵷɔɐᵷᵷɐᵷɔʇɐɔɔᵷʇᵷɐɐɔɔᵷɔᵷᵷᵷɐʇɐɔɔɐɐᵷɔɔʇɐɐɔɔɐᵷᵷɔᵷᵷɐᵷ

・・・やめといたほうが良さそうです。

4
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2