Bag of ML Words

ML = Machine Learning, Music Love, and Miscellaneous things in daily Livings

書評:ブルーバックス「量子とはなんだろう」 (1/n) 期待高まる

講談社サイエンティフィックの中の人からも推薦してもらった「量子とはなんだろう」

まえがきからして秀逸で非常に期待高まりますね。

 

 

量子という直観に反する「難しいもの」を理解するためには、何度も正しいストロークで素振りを繰り返してフォームを獲得するように、何度も正しい知識を学習して直観をはぐくむしかない。

この本は、直観をはぐくむために古典物理から一歩ずつ正しい同定での理解を促進していくらしい。目次みてもワクワクしてくる

 

 

 

書評:ブルーバックスの「分子レベルで見た薬の働き」 これいいよ for 論文読むことに慣れている人は

タイトル通りですが。

 

平山令明先生の本です。

実用化されている薬はだいたいターゲットや機序にパターンがあるので、有名著名な薬に絞ってそれらの効能などを順次解説していくものです。

 

ブルーバックスっていっても幅広くて、完全に気楽な読み物として読めるものもあれば、装丁文体が教科書の体をとっていないだけで、かなり技術的な専門家を想定しているのもあります。

この本はその中間ですかね・・・

 

想定される読者に薬学部の学生が入っていることから、それぞれの薬の詳細な機序まで読み込もうとするとかなり化学薬学の知識が必要に思います。

そこまで踏み込まずに、たとえば東大の理系教養課程+αくらいの知識量を持った職業研究者(私だ)くらいにはすごくちょうどよいです。有名な薬の名前は知っていてもどう作用するかは知らない。これを(詳細部分を読み飛ばすことで)ふわっとした形で解決してくれるので、知識欲みたいなのがすごく満たされます。

たとえば、標的分子として病原体に薬を改変されないようにするために、「なんかでっかい立体構造をもった修飾をすると物理的にポケットにはいらないよね」、ぐらいの。

 

とりあえず、分子の立体構造がこんなに重要だったのか!とか、水素結合一本消えるだけで薬にならなくなるのか!とか、そういうので知的興奮が味わえます。

 

 

 

Python: print(f) (formated 文字列)

知りませんでした。いろいろな変数型が混在した文字列をprintするのが簡単になるっぽい。

 

Pythonのf文字列(フォーマット済み文字列リテラル)の使い方 | note.nkmk.me

 

やってみる。

 

>>> a = 123
>>> a
123
>>> b = "abc"
>>> b
'abc'
>>> c = "あいう"
>>> c
'あいう'
>>> type(c)
<class 'str'>
>>> print('{} and {} and {}'.format(a, b, c))
123 and abc and あいう
>>> print('{first} and {second} and {third}'.format(first=a, second=b, third=c))
123 and abc and あいう
>>> print(f'{a} and {b} and {c}')
123 and abc and あいう

 

なので、str()でcastしたり、 + でつないだり、それによってlintで改行が強要されたり、みたいのが減ってすっきりかけるようになる

pipevnももう古くてpoetryらしいよ・・・

pipenvですごい!新世代!快適!!

と思ってたらもうpoetryの時代らしい。

cocoatomo.github.io

【Python】Poetry始めてみた & Pipenv から poetry へ移行した所感 - Qiita

 

早速導入してみたんですが、確かにほぼほぼpipenvと同等のことはできて、あと初期プロジェクト設定とかが(testとかも込みで)作れてよいっぽい。

インストール、アンインストールもシステム全体に依存しないで $HOME/.poetryに保存されるだけっぽいし。実によろしそう。

ということで乗り換えたので、以下使い方コマンドのメモ書き

 

導入

$ curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py | python
$ source .zshrc

 

仮想環境をつくる

まず、pyenvで元となるpythonを決めて、pyenv localでそのディレクトリ専用の設定にする。

そののち、空のディレクトリにpoetry環境つくるときは new, 既存ディレクトリに設定するときは init.

$ poetry new new-package  # カレントディレクトリの下にnew-packageディレクトリができる

 

$ poetry init # カレントディレクトリに仮想環境が追加される

newすると、pyproject.tomlという依存関係をまとめるhuman readable fileとReadMe, パッケージディレクトリ(my-package)、テストディレクトリが作成される。

initの場合は対話的にpyprojectl.tomlを作れるみたい。

 

そのあと、installでpyprojectltomlに書いてある依存ライブラリをインストールする。

$ poetry install

 

仮想環境シェルを起動する

$ poetry  shell

 終わるときは単純に  $ exit

仮想環境にライブラリ足す

$ poetry add numpy

--dry-runで、実際にインストールしないでアップデートの状況を見ることもできる

VS code: 便利なプラグイン(自分用メモ)

マシン取り換えるときとかにVSCodeで入れておきたいやつをメモしていくよ

 

環境整備 

- emacs keymap improved

- japanese language pack for visual studio code

- vscode-icons これは超おすすめ!

  - なんというか、快適度?が段違い。

 

リモート・仮想環境

- Remote Development これは(今の仕事環境的に)最強に近い。

  - kubernetes podにも直接つなげてVS Code内でファイル編集もterminalも立ち上がっちゃう。

  - Remote - WSL, SSH, ...などが入る

- Kubernetes

 

プログラミング支援

 

- YAML

- Bracket Pair Colorizer

- Rainbow CSV

- Python

- Python Docstring Generator 便利

  - ""書いて補完される。べんり。

- Jupyter

  - X環境立ち上げなくてもVSCodeの中で絵が見れるのは助かる。特にRemote/Podと組み合わせると最 of 高

 

 

VS CodeでGUIなjuyputer notebook + WSL interpreter


が使えるよっていう。なんと、WSL2のターミナルからVSCodeを起動できる。そして、VSCodeがjupyter notebookをサポートしてる。

 

参考

aadojo.alterbooth.com

 

前提

 

VSCode: python plugin, remote development pluginをインストールしておく(普通してる)

WSL2: ubutu 18をいれてます。pipenvもいれておきます

 

WSL2上の作業

 

作業ディレクトリでpipenv環境を作ります

$ pipenv --python 3

あるいは

$ pipenv shell でもよさげ

jupyterと、ipykernelっていうのが必要になります

$ pipenv install jupyter ipykernel

 

終わったらvscodeをコール。

$ code .

 

VSCode側の作業

 

新規windowsがWSLにremoteでつないでpython interpreterを使える状態にあることを確認します。左下の部分が緑色に光ってWSL:ubutu-18.04ってなれば多分つながってる

 

Ctrl + shit + pでコマンド窓を立てて、jupyterとかするとjupyter notebookを新規作成みたいなのが補完されるので選択すると動きます、簡単だな。。。。

 

f:id:Dr_KayAi:20201103022925p:plain



 

 

 

 

 

Texの章の出方をかえる

\appendix

\def\thesection{Appendix~\Alph{section}}
\def\thesubsection{\Alph{section}.\arabic{subsection}} 

 

こうすると、sectionは Appendix A, Appendix B, ...ってなって

subsectionは A.1, A.2,..., B.1, B.2, ...ってなるってtexじいさんが言ってた!