Rhythm & Biology

Engineering, Science, et al.

DNAストレージの容量

digital universe(地球上で生成されるデータ全体)は、2017年に16ゼタバイトと予測されている。
一方で、保存可能なキャパシティはすでに生成されるデータに間に合わなくなっている。

http://www.idc.com/downloads/where_is_storage_infographic_243338.pdf

このような背景により、廉価に大容量を保存可能なコールドストレージ(磁気テープとか)が注目されているが、その1技術として研究が進んでいるのがDNAストレージである。

www.technologyreview.jp

newswitch.jp

出回ってる記事の中には「1gあたり1ゼタバイト保存可能」と書かれているものがあるが、どういう計算でこの数字が出てくるか。

1塩基の平均質量は325Da。これをg(グラム)にすると以下の通り。

 { \displaystyle
325 \times (1.66054 \times 10^{-24}) = 5.396755 \times 10^{-22}
}

塩基は4種類(A,T,G,C)あり、2bit/塩基(= 0.25byte/塩基)と考える(あとで書くがこの考えは誤り)。

1gあたりのデータ量を計算すると、約0.46ZBとなる。「1gあたり1ゼタバイト保存可能」は言い過ぎと分かる。

 { \displaystyle
1.0 \div (5.396755 \times 10^{-22}) \times 0.25 \approx 0.4632 \times 10^{21}
}

で、実はこの計算は誤りで、「塩基対」という形で存在するため実際は2bit/塩基"対"。要するに、この半分のデータ量となる。

さらに、実際のDNAは複製時にエラーが発生したりするため、誤り訂正符号を含めたり冗長化して保存したりする。 したがって、実際の情報密度はさらに低くなる。

今年3月にScienceに出たコロンビア大学とニューヨーク・ゲノム・センターによる論文では、DNA Fountainという新しい手法で高密度化を達成したとされるが、この手法で実現可能な情報密度は1gあたり215PBとされている。

DNA Fountain enables a robust and efficient storage architecture | Science

理論値との乖離はまだまだ大きいが、今後が楽しみな技術なので追っていきたいと思う。

loader.ioを試す

loader.ioはWebサイトの負荷テストをしてくれるサービス。
制限つきだが、無料で使えるので試してみる。

f:id:aka_mythosil:20170714225541p:plain:w200

https://loader.io/pricing

ユーザ登録してログインすると、まずこのような画面になっている。

f:id:aka_mythosil:20170715022212p:plain:w400

New Hostで先に進むと次はこのような画面。ここにテスト対象のホスト名を入力する。
今回はこれ用に立ち上げたEC2インスタンスのPublicIPを指定。

f:id:aka_mythosil:20170715022306p:plain:w400

すると今度は「そのホストが本当にあなたのものか確認させてくれ」とくる。
やることは単純で、loader.ioがアクセス可能な場所に指定のファイルを置くこと。
指定された通りのファイル名で、ファイルの内容も指定の通りにして配置しておく。

f:id:aka_mythosil:20170715022426p:plain:w400

確認がとれるとこのような画面になる。

f:id:aka_mythosil:20170715022633p:plain:w400

テスト内容の設定をする。
今回は19秒で100リクエストとした。アクセス先はルート。

f:id:aka_mythosil:20170715023019p:plain:w400

この状態で実行すると、すぐ停止してしまった。
理由は単純で、用意したばかりのサーバだったためindex.htmlさえ置いていなかったから。エラー率が閾値を超えて停止した。

f:id:aka_mythosil:20170715023306p:plain:w400

index.htmlをちゃんと配置して改めて実行すると最後まで実行完了。

f:id:aka_mythosil:20170715023401p:plain:w400

所感としては、やっぱり圧倒的に楽。 とはいえ、無料プランでできる範囲が小さいので、それだったら適当なサーバ1台にjmeterなどのツールを入れてやるほうがいいとも言える。

macにLaTeXiT環境を整える

新しいmacbook proに買い換えてからLaTeXiT環境を整えていなかったので整備。
LaTeXiTがあれば資料に貼る用の綺麗な数式を簡単に作れる。

まず、brew(cask)にLaTeXiTがあるか調べたらあったのでそれを入れてみた。

$ brew search latexit
caskroom/cask/latexit

$ brew cask install latexit

で、これを起動しても動かない。
brewでLaTeXiTを入れても、そもそものTeX環境を自動では入れてくれないので、「pdflatexが無い」などと怒られる。

ではLaTeX環境をbrewで入れてみようとすると、どうやらMacTeXを入れることが推奨されている様子。

$ brew search latex
latex2html                         latex2rtf                          latexila                           latexml                            rtf2latex2e

If you meant "latex" specifically:
Installing TeX from source is weird and gross, requires a lot of patches,
and only builds 32-bit (and thus can't use Homebrew dependencies)

We recommend using a MacTeX distribution: https://www.tug.org/mactex/

You can install it with Homebrew-Cask:
  brew cask install mactex

MacTeXにはLaTeXiTも含まれている。
https://www.tug.org/mactex/mactex-download.html

MacTeX also installs Ghostscript, an open source version of Postscript, and it installs the GUI programs TeXShop, LaTeXiT, TeX Live Utility, BibDesk, and Excalibur, as well as an install package for cocoAspell, a spelling service which does not mark LaTeX commands as misspelled.

先ほどインストールしたLaTeXiTは無駄なので消してしまう。

$ brew cask uninstall latexit
==> Uninstalling Cask latexit
==> Removing App '/Applications/LaTeXiT.app'.

ここでようやくMacTeXをインストールする。ダウンロードにかなりの時間がかかるので気長に待つ。
また途中でsudoパスワードを聞かれるので入力する。

$ brew cask install mactex

以上で環境セットアップが完了。 f:id:aka_mythosil:20170714005920p:plain