TIM Labs

fujiによるエントリー一覧

Unix(Linux,...)では、lsは最もよく使用するコマンドではないだろうか。
ls は、ファイルとか、フォルダ(ディレクトリ)についての情報が分かる。

最近は、周辺機器をUSBで繋ぐのが一般的だ。
そして、何でも繋いでいるので、何がつながっているのか調べるのに困るくらいだ。
そうなると、lsコマンドと同じように、USBについてlsできないかと思うのが自然だろう。

実は、存在する。

lsusb(8)                                          Linux USB Utilities                                          lsusb(8)

NAME
       lsusb - list USB devices

SYNOPSIS
       lsusb [ options ]

DESCRIPTION
       lsusb is a utility for displaying information about USB buses in the system and the devices connected to them.

OPTIONS
       -v, --verbose
              Tells  lsusb  to be verbose and display detailed information about the devices shown.  This includes con‐
              figuration descriptors for the device's current speed.  Class descriptors will be shown, when  available,
              for USB device classes including hub, audio, HID, communications, and chipcard.

       -s [[bus]:][devnum]
              Show only devices in specified bus and/or devnum.  Both ID's are given in decimal and may be omitted.

以下省略
ということで、さっそく使ってみよう。
fuji$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 003: ID 03f0:134a Hewlett-Packard Optical Mouse
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
fuji$ lsusb -t
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
    |__ Port 7: Dev 3, If 0, Class=Human Interface Device, Driver=usbhid, 1.5M
fuji$ 
マウスは見えるが、キーボードが見えない。
実は、キーボードは、USBではなく、PS2でHHK(Happy Hacking Keyboard)をつないでいるからである。
ナンプレブームが今も続いていて、今年もMATH POWER 2018 に巨大合体ナンプレ世界一(?)を提供することになった。
去年は国政選挙に邪魔されて、六本木のニコファーレが使えず、会場が青山になったが、今年はニコファーレの予定である。
巨大合体ナンプレは現在鋭意制作中であり、世界一になるかどうかはまだ分からない。

さて今回は、合体ナンプレの話ではなく、サイズが9x9の単体のナンプレ問題の話をしよう。

NPSame1.png NPSame2.png
さて、この2つの問題、何が違うだろうか?

ナンプレでは、数字の1から9の値には、数値的な意味はなく、単に9種類の異なるものの意味しかない。
だから、数字ではなく、漢数字の壱弐参四五六七八九でもよいし、鮃鮎鯛鰯鰍鰆鰻鯨鮭でも構わないし、マンガのキャラクタ9人でも何でもよい。

さて、上の2つだが、上の問題から、ナンプレの問題としての性質を変えずに、見かけだけ違うようにする変換(インチキ変換)を施して下の問題を作っている。

よく知られている手法は、

  • 数字を入れ替える。いわゆる置換。
  • 回転、反転などの対称移動。
  • 問題の数字(ヒント)の位置に依存するが、入れ替え可能な縦列の組、横列の組がある。
である。

実は、上の2つの問題は、この手法を使って変形しただけであり、見かけだけを変えたものである。

それでも、見た目がこれだけ違うと、同じ問題と思わない人がほとんどではないかと思う。

さて、今回は、質問を投げて終わりにしょう。

  1. 上側の問題に、どのような変換を施せば下側の問題になるであろうか?
  2. 2つのナンプレ問題の同一性は、どういうアルゴリズムで効率的に検証できるか?

これは、ナンプレ、あるいはパズルに限ったことではなく、プログラミングにおいても時々遭遇する問題である。

秋の夜長に、じっくりと考えてみよう。

数学の祭典 MATH POWER が今年も開催される。
時期は、10月最初にある連休の最初の2日間に行われる。
今年の場合、10月6日昼から7日夜まで、31時間連続で夜を徹して数学を愛でるイベントだ。
場所は、六本木のニコファーレだ。

既に MATH POWER 2018 のサイトが公開されていて、参加申し込みも受け付けている。


MathPower2018SiteHeadImage.png

サイトは、まだまだ情報不足だが、どんなことが行われるかは、去年のサイト MATH POWER 2017 を見ると良いだろう。
去年は、イベントの最初から最後まで、多人数でやっと解ける程度の合体ナンプレを作って欲しいというので、247合体ナンプレを作った。
フィナーレまでには終わらなかったが、若干の延長で解き終えると思われたので、イベントをちょっと延長し、完成したのであった。
その問題がこれだ。

MP247Q.png
MATH POWER 2017 のサイトを見れば、ExcelとPDFで問題があるので、興味のある場合は解いてみよう。

さて、今年のMATH POWERでは、もうちょっとグレードアップした問題を提供することになっていて、現在鋭意製作中である。

去年は「世界最大級」というふうに級をつけていたが、今年はそんなに遠慮せずに、「世界最大」とすることにした。
そのために、去年よりもさらに大きくなってしまった。

去年のデザインは、美しいけれども単純な繰り返しなので、解き筋もモノトーンになってしまう。もっと色々な手筋が現れるように、もうちょっとデザインを頑張ってみた。
その他にも、色々なことにチャレンジしている。

しかし、そんなことをすると、どうやっても問題ができなくなることがある。

それに、いきなり巨大なものを作るのは危険だ。何時間、いや何日も連続でコンピュータを走らせても、何の結果も得られないことが多くなる。
そのため、小さい問題、といっても148合体とかなのだが、その程度の小ぶりな問題(?)で試作をしてみる。
この程度のサイズですんなり出来ない場合には、今年の問題サイズでは絶対に無理なのだ。

コンピュータ、ネットワークなど何でも同じなのだが、小さい場合にうまくいっても、そのまま拡大したら破綻することが多い。
サイズが2倍になったら、計算時間は10倍、100倍どころか永久に終わらなくなる。

ということで、色々な小さな問題を作っては問題生成の調子をみて、スケールアウトできそうだったら本番サイズで試すというのを繰り返している。
使っているアルゴリズムは、進化計算の一種である。
デタラメに問題をつくっては解き、どのくらい酷いかを判定し、ちょっと問題をいじっては酷さを判定している。
どんどんひどくない方向にヒントの数字をいじるのを繰り返しているだけである。
要するに、仕組みは簡単至極である。

問題の難易度はポイントで示される。
これを元に解くのにかかる時間が予想できる。
しかし、それだけでは十分ではない。
極端に易しい場所や、極端に難しい場所がないか、コンピュータに計算させている。
その結果を見て、ざっと判定し、良さそうな問題ができたら、実際に解いてみて、解き心地を調べる。

こういうのを繰り返して、イベントで解いてもらう問題を1問選定するのだ。
とても時間のかかる作業だ。

去年うまくいったので、さらにレベルアップして、来場者が驚くような、印象的なイベントにしようとしているのだ。
どんなサプライズがあるかは、イベントに参加して体感してみよう。

コピーの基礎的なことから書くので、話が無駄に長くなるのを最初に断っておく。 最後に、a[...] のような記述について書くので、そこだけ読みたい場合は最後から読もう。
まず、Pythonでの浅いコピーを示す。
>>> a = [[1,2,3],[4,5,6]]
>>> b = a
>>> a[0][0],a[1][1] = 100,200
>>> a
[[100, 2, 3], [4, 200, 6]]
>>> b
[[100, 2, 3], [4, 200, 6]]
aの要素だけを変更しようとしても、 b = a の代入により浅いコピーが行われているので、bの対応する要素も変わってしまう。

これを避けるためには、b=aの代わりに、copyのdeepcopy()を使う。
>>> import copy
>>> a = [[1,2,3],[4,5,6]]
>>> b = copy.deepcopy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
[[100, 2, 3], [4, 200, 6]]
>>> b
[[1, 2, 3], [4, 5, 6]]
さて、Pythonで色々計算しようとすると、Pythonではやってられなくて、NumPyを使うのが普通だ。 そもそも、Pythonには配列がなく、Deep Learningで必須の行列計算に困る。
では、numpyの配列で同じことをやってみよう。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[2,4,6],[3,6,9]])
>>> b = a
>>> a[0][0],a[1][1] = 100,200
>>> a
array([[100,   2,   3],
       [  4, 200,   6]])
>>> b
array([[100,   2,   3],
       [  4, 200,   6]])
単に代入ではコピーにならないようだ。
次に、numpyで用意されているcopy()を使ってみよう。


深いコピーができたようだが、念の為、サイズが歪なarrayでやってみよう。
>>> a = np.array([[1,2,3],[4,5]])
>>> b = np.array([[2,4,6],[3,6]])
>>> b = np.copy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
array([list([100, 2, 3]), list([4, 200])], dtype=object)
>>> b
array([list([100, 2, 3]), list([4, 200])], dtype=object)
歪んだarrayでやったら、元のaがリストの配列になってしまい、失敗したようだ。
numpyには、copy()はあるようだが、deepcopy()が存在しない。 それで、ここはやむなく、copy.deepcopy()でやるとどうなるか試してみよう。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[2,4,6],[3,6,9]])
>>> b = copy.deepcopy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
array([[100,   2,   3],
       [  4, 200,   6]])
>>> b
array([[1, 2, 3],
       [4, 5, 6]])
>>> a = np.array([[1,2,3],[4,5]])
>>> b = np.array([[2,4,6],[3,6]])
>>> b = copy.deepcopy(a)
>>> a[0][0],a[1][1] = 100,200
>>> a
array([list([100, 2, 3]), list([4, 200])], dtype=object)
>>> b
array([list([1, 2, 3]), list([4, 5])], dtype=object)
これで深いコピーができたわけだが、元の配列aは2次元配列ではなくて、リストの配列になっているので深いコピーができなかったようだ。
さて、配列の深いコピーをするのに、copy.deepcopy()を使えば問題ない。 しかし、普通のnumpyの配列なら、numpyのcopy()で深いコピーができる。


ごちゃごちゃ書いてきたが、最後に ...(3点)の使い方について書いておく。
>>> a = np.array([[1,2,3],[4,5,6]])
>>> a
array([[1, 2, 3],
       [4, 5, 6]])
>>> a[...]
array([[1, 2, 3],
       [4, 5, 6]])
配列aを表示するのに、単にaと書けば済むのだが、a[...]と書くこともできる。
ならば、a[...]に代入するとどうなるだろうか?
>>> a = np.array([[1,2,3],[4,5,6]])
>>> b = np.array([[2,4,6],[3,6,9]])
>>> b[...]=a
>>> a[0][0],a[1][1] = 100,200
>>> a
array([[100,   2,   3],
       [  4, 200,   6]])
>>> b
array([[1, 2, 3],
       [4, 5, 6]])
同じサイズの配列の場合、これで配列の深いコピーができている。 copy.deepcopy()やnumpy.copy()を使わなくてもできるのだが、事前に同じサイズの配列が存在していないといけない。

最後に、...が何者か示しておく。
>>> ...
Ellipsis
>>> type(...)

...はオブジェクトなので、引数として渡すなどもできる。
日本でも、大学の講義がビデオで公開されるようになったとはいうものの、通常行われている講義がそのまま公開されるのではなく、かなり短い特別な講義だけが公開される感じで、とても世界と比較てきるようなオープン性は見られない。

まあ、そんなことを言っても仕方がない、ここは日本だ。
それよりも、世界の大学でどんな講義が公開されているのか、探して勉強したほうが良い。

MITOPENCOURSEWAREでは、MITの実際の講義がそのままビデオでじゃんじゃん公開されている。
現在、2400コースあり、3億人が見たそうだ。
この数字は、MITだけでの数字である。

実際の正規のコース授業がそのまま公開されているようで、形態もいろいろあるようだが、VIDEOが一番気楽でよい。
VIDEOだけではなく、資料、問題、なども用意されていて、とても親切である。

日本の大学だと、あれこれ登録しないと見せてくれないケチな根性のところが多いが、ここは何の登録をしなくても、見せてくれる。
ちゃんと授業を受けて、試験も受けて、サーティフィケイトを貰いたいとかの場合は、登録などが必要みたいだ。

さて、最近、MITでパズルの授業を行っているというのを伝え聞いた。
それで、さっそく調べて見つけたのが、Programming for the Puzzled というコースだ。

レベルは学部生向けで、パズルでアルゴリズムを考えることで、プログラミング能力の基礎を鍛えようという意図らしい。
実際、この授業だけではなく、パズルやゲームを授業に使っている例は簡単に見つかる。

先生は、Srini Devadas教授で、インド人である。
あのIITマドラス校出身で、バークレーで学位を取得し、MITのFull Professorになっている。
ということで、ちょっと英語にインド訛りがあるが、そんなに気にしなくて良い感じだ。
そもそも、MITとかでコンピュータ関係を勉強しようとしたら、インド英語は必須科目だろう。
この講義には、トランスクリプション(発言内容を全部文字にしたもの)が用意されているので、聞き取りにくければ、テキストとして読むこともできる。

講義は全部で11本のビデオになっている。
毎回、色々なパズルを取り上げて、アルゴリズムについて細かく解説し、Pythonのプログラムを示しながら講義は進む。
Pythonのプログラムや、課題の解答プログラムも用意されていて、懇切丁寧だ。

講義の中に、SUDOKUがあるというので、この講義を知ったわけである。
SUDOKUの回は、再帰呼出しが話の中心であった。
最後の方で、再帰呼出しをしないで解くやりかた(普通にルールや手筋に基づく方法)の説明が簡単にされていた。
SUDOKUの問題を作ることには触れていなかった。
まあ、そこまでやると、さすがにMITでも、学部生向けの入門コースとしては無理があるのだろう。

第3回は、Puzzle 3: You Can Read Minds というタイトルで、トランプ手品が題材であった。
手品を1つ身につけたい場合には、ちょっと聴講するとよいだろう。

その他にも、アルゴリズムを考えないといけない、アルゴリズムによって大差がでてしまう例などが取り上げられている。

といっても、どれも基本的なものばかりだ。
パズルに関する高度な内容ではないので、プログラマなら出来て当然と思われるものばかりである。

去年の夏に、A1プリンタを入手し、幅60cm、長さ2mほどの大きさの印刷を良くしていた。
A1プリンタなのだが、ロングといって、ロール紙を使うことで、A1の標準よりも遥かに長い印刷ができるものだ。
このあたりは、以下の記事を参考にされたし。

通常はポスター程度の印刷なのだが、時々長い長い印刷物を印刷しなくてはならなくなることがあり、今年もそういう時期がやってきた。

それで、ちょっとプリンタの試運転ということで印刷してみた。

HPFalseDriverOutput.jpg

非常に大きなExcelの印刷を試したのだが、なぜか2mのうち、半分くらいが罫線が消えて文字だけになってしまった。
設定をいじっても、同様の現象になってしまう。

これは、大きくなって、ラスター化に失敗したということであろうか。
つまり、インクジェットプリンタに出力するのに、ピクセルにしないといけなくて、その変換途中でメモリ不足かなにかのトラブルで、罫線のラスター化を放棄したように思われる。

ということで、諦めてトボトボと帰っている途中で、原因を思い出した。
Windowsマシンから出力しているのだが、プリンタにインストールされていたドライバに問題があったのをプリンタメーカー(HP)のカスタマサポートから教えてもらったのを思い出した。
去年使っていたパソコンは動かなくなって、パソコンを新しくしたので、また同じ現象が起きてしまったのだ。

自動インストールされるものを使ってはいけないのだが、たぶんA1標準サイズまでなら、それでもとりあえずは動くのではないかと思う。
実際、普通のA1程度までは問題なかったのだ。
でも、勝手に入ってしまうというか、デフォルトのドライバがダメというのは要注意だ、というか酷い話だ。
メーカー提供の正式ドライバ以外が勝手にインストールされるような仕組は止めてもらいたい。

それで、自動でインストールされてしまうプリンタドライバを消去し、メーカー提供のドライバを入れてみた。
何も考えずに、標準、何でもやってくれる万能ドライバみたいなのがあったので、それを入れたら、A1サイズを指定しても、勝手にA4サイズまでしか印刷されない。
どうやら、小型プリンタ対応のドライバを入れたらしいので、また削除し、より機種を限定したドライバを入れてみた。

プリンタは、HPの DesignJet T520 というA1のロール紙も対応しているものだ。

ドライバを入れて、プリンタを確認すると使えるプリンタのリストが出てくるのだが、そのときの表示はこんなものが出てきた。

HPDesignJectT520-24inPCL-single.png
これは正しく動くものである。

PCL(Printer Control Language)は、HP(Hewlett-Packard)社が開発したページ記述言語であり、多くのプリンタで標準サポートされている。

さて、プリンタドライバが正しく動かなかったので、A1サイズ幅のゴミがいっぱいできてしまった。どうしよう。
PythonKivy.jpg
実践Pythonライブラリー

Kivyプログラミング

Pythonでつくるマルチタッチアプリ

監修  久保幹雄
著者  原口和也
発行日  2018年6月10日
サイズ   A5, 200頁  
ISBN  978-4-254-12896-3
価格   3200円(本体) 
発行所  朝倉書店


Pythonが流行っていて、人工知能関連のツール・ライブラリなどは選ぶのに困るくらいある。
しかし、GUIとなると、状況はまるで違って、とても少ない。

Pythonには標準のGUIとしてTkinterがついてくるのだが、ちょっと古いというか、かっこう悪いというか、いけていないのであった。

GUIをPythonのコードでガリガリ書いていくと、プログラムが肥大化するし、デザインがプログラムの中に入ってしまって、ごちゃごちゃしてしまう。
WEBページをHTMLだけで作るのではなく、デザイン部分はCSSで書くというのと同じように、分離できないものだろうか。

それに応えたのが、Kivyで、簡単な言語で記述することができる。
マルチプラットフォームであり、マルチタッチなどにも対応している。
詳細について書くと切りがないので、ネット上の情報を挙げておく。


本日は、電気通信大学、通称電通大の「産学官連携DAY」の日であった。
大学のホームページ内に産学官連携DAYのページが用意されているので、詳しくはそちらを参照されたい。


 20180620175948530_0001-600.jpg 20180620175948530_0002-600.jpg

学外に向けての公開であり、分野ごとの研究室ツアーがあったり、講演、セミナーがあったり、コンテストがあったりする。

さて、いきなり電通大の「産学官連携DAY」の紹介をしたが、実は我々は普段は、電気通信大学の次の建物にいる。
去年できたばかりのピカピカのビルで、1階にはコンビニもあり、とても便利である。
所在地は、京王線調布駅(新宿から特急で2駅)の北、徒歩5分から10分に位置し甲州街道に面する。
本社との距離は、徒歩も含めて約1時間である。

DSCN0473-600.jpg

今年、電通大は創設100年を迎える。
そのための記念事業の1つとして、100周年記念キャンパスを整備し、産学連携を推進すべくベンチャーを中心とした研究系企業が集積するビルを計画して作ったのが写真のビルであり、この中に弊社の人工知能部門が入居している。

電通大は創設以来純粋電波系の大学であり、なかなか特殊な経緯をだどってきた大学であるが、インターネット、IT、IoT、AIなどに特化した、時代にピッタリの大学になっている。電通大に世の中が合ってきたというのが正しいだろう。
また、オタク系大学としても有名であり、地下アイドル仮面女子との連携などもあるユニークな大学である。
コンピュータ将棋やコンピュータ囲碁のメッカでもあった。今でも、コンピュータゲーム系、e-スポーツなども盛んに研究されている。
光科学では非常に有名であるが、電通大はそもそも電磁波関係に強いので、当然のことである。

今日は、研究室や、入居企業なども一緒に、あれこれ行う日であった。

電通大では、学生がものづくりに精を出せるように、工房(工作室)が用意されていたり、小中高生向けのプログラミング教室(教えるのは電通大生)があったりする。

また、企業が支援するコンテストもあり、賞金が出る。

20180620175948530_0003-600.jpg

電通大ではロボットはあちこちにあり、案内するロボットや、説明するロボットもいる。

DSCN3175-600.JPG DSCN3176-600.JPG

小学生向けには、ダンボールで作るロボットがあり、小学生にプログラミングをダンボールロボットが教えている。
以前は、講師が教えていたのだが、ロボットがしゃべる方が小学生がちゃんと聞くので、ダンボールロボットが教壇に陣取り、講師は隅で見守るようになってしまったとのことだ。

秋には学園祭があり、そこでも多数の電波系大学の特徴を見ることができる。
それ以外にも、研究室公開日や、公開講座などが頻繁に開催される開かれた大学であり、無料のものも多い。
イベント屋が行う講習会などは非常に高額なことが多いが、電通大では第一線の研究者から無料か無料に近い金額でセミナー等に参加することができるので、ぜひ利用してみよう。

ということで、今回は、電気通信大学の一面を紹介した。
詳しくは、電気通信大学のホームページを見ていただきたい。
前回、『DNAの98%は謎』で、DNAで遺伝に関係している、つまりタンパク質の生成に関係しているデータは、たった2%程度で、残りの98%は、謎であるという本を紹介した。

AIには、ディープラーニング以外に、進化、遺伝の仕組みを模した方法が存在する。
生物の進化をモデルにした、かなり広範囲なものを進化計算とよび、さまざまな最適化に使われている。
その中でも一番良く知られているのが、遺伝をモデルにした遺伝的アルゴリズムである。
つまり、染色体の交叉や突然変異を利用しているのだが、一般に行われているモデル化は、最適化したいデータを染色体のように長い糸状(配列)に並べ、データの交叉や突然変異を行い、出来たものを淘汰させるのを何世代も繰り返すことで、最適化を進め、満足できるようなデータを求めようとするものである。

つまり、配列の全データが有効データなのである。
ということは、実際のDNAをちゃんとモデル化していないと言えるはずなのだ。

長い長い染色体(配列)の一部に有効なデータを置き、染色体と同様な交叉や突然変異をしていない。

人間ではDNAの98%が謎なのだが、高等な生物ほど謎の部分が大きいということだから、現状の遺伝的アルゴリズムは下等生物を真似ているに過ぎないと考えられる。
DNAの98%の謎の部分の意味、意義、効用は今世紀になってから研究が本格化し、まだまだ研究途上のようだ。
だからこそ、この謎の部分を反映した進化計算ができれば、もっと高度なことができるようになるかも知れない。

さて、下等生物であるはずのウイルスがとても賢い(?)ので、対策が難しいことを知っているだろうか。
あるウイルスに対する薬を作っても、ウイルスの遺伝情報が変化するので、新しい薬を作ってもダメになる。
つまり、ウイルスはとても賢いと言えるのではないだろうか。
ウイルスは、DNAまたはRNAを持っており、遺伝の仕組みが異なるために、薬に対抗する能力が高いと言われている。
そのため、ウイルス進化論なる専門用語もあるようだ。

ならば、ウイルス進化論をモデルにしたアルゴリズムは無いかと調べたら、ウイルス進化型遺伝的アルゴリズムというのがあり、論文もかなり存在するようである。
通常の遺伝的アルゴリズムでは進化が停滞してしまうような場合でも、ウイルスの寄生能力をモデル化することで、もっと有効なアルゴリズムにしようというものらしい。
今までの遺伝的アルゴリズムのための染色体以外に、ウイルスを用意し、ウイルスを染色体に感染させることで、進化を促進(?)するらしい。

98%の謎部分をモデルにした遺伝的アルゴリズムはまだないらしいが、ウイルス版は存在する。
といっても、出版されている遺伝的アルゴリズムの本で、ウイルス進化型を説明している本は無いらしいので、ぜひ論文を読もう。
DNA98Mystery.jpg

DNAの98%は謎
生命の鍵を握る「非コードDNA」とは何か
ブルーバックス B-2034

著者  小林武彦
発行日  2017年10月20日
サイズ   新書, 208頁  
ISBN  978-4-06-502034-0
価格   920円(本体) 
発行所  講談社 

前2回に渡って、脳とニューラルネットについて書いた。

前回は脳だったが、今回は遺伝、DNAについて紹介しよう。

1990年に人間のゲノムを全部解読しようというヒトゲノム計画(Human Genome Project)が世界中の協力で始まった。
最初はなかなか解読ペースが上昇しなかったが、ゲノム解読情報を商用化しようとする動きも現れ、その後、解読技術の向上もあり急激に解読ペースが上昇し、2003年に解読作業が終わった。

ゲノムの情報が解読できたことで、治療や新薬の開発に非常に役立つと言われている。
人ゲノムだけでなく、さまざまな生き物のDNAが解読されつつあり、地球上の生命の進化の全体像が徐々に明確になりつつあるようだ。

さて、本書のタイトルによると、DNAの98%は謎とある。
DNAの情報からタンパク質が作られて、その種類は5万種とも10万種とも言われている。
それで、長い長いDNAのどのくらいがタンパク質の生成に関わっているかを調べたら、2%だったと。

遺伝子はDNAの2%の部分に存在し、DNAの残りの98%はタンパク質を作らないことが分かった。
遺伝のことだけ考えれば、2%の部分だけ存在すれば大丈夫なはずだが、そうなっていなかった。
これは、AGTC4種の塩基列の並び情報はほとんどが利用されていないということ。
DNAはゴミだらけであり、無駄だらけであると思われていた。

それが、ゴミと言われているタンパク質の生成に関わらない部分も何か働きがあるのではと研究が進んだ。
それが「ゲノムを支える非コードDNA領域の機能」プロジェクトであり、本書の著者がプロジェクトの代表者で、プロジェクトの成果をわかりやすく説明したのが本書である。

98%は無駄に作られているように見えるが、無駄がほとんどであることで、DNAが放射能から受ける影響を軽減したりすることが分かり、また、高等生物になるほど非コード領域が増えていることが分かった。
どうやら、とても重要な働きをしているらしいのだ。

DNAの非コード領域の働きについての説明は省略するので、本書を読むか、他の書物、ネット情報などを参考に学習されたい。

脳のグリアといい、DNAの非コード領域といい、無用の長物と思われていたものが、とても大切だったことが分かってきたのだ。
よくよく調べると、無駄と思われていたものが非常に大切だった、主要部分だったということはしばしばある。

....ということはAIにも影響するかもという話は次回に書くことにする。


このアーカイブについて

このページには、fujiが最近書いたブログ記事が含まれています。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

月別 アーカイブ