第4回富士フイルムコンペ参加記録(Q3: 6位)
第4回目となる富士フイルム主催データ分析コンペ(Brain(s))に参加したので、忘れないうちに細々したことを記録しておこうと思います。
本やらウェブテキストやらでデータ分析の勉強しただけで実践はまだだったのですが、Kaggleは画像コンペばっかでとっつき辛いし、ツヨツヨデータサイエンティストとまともに戦える気もしませんでした。
そんなとき学生限定*1の富士フイルムテーブルコンペを知って参加しました。
コンペはathleticsというプログラミングスキルチャレンジプラットフォームで行われました。
エンジニア用の就活用コーディングテストみたいな側面もあるらしく、競プロに近いチャレンジから分析系チャレンジまで幅広く扱っているみたいです。
今回参加したのは富士フイルムが主催するテーブルデータコンペで、低分子化合物の化学式(SMILES)から各種物性(記述子)を計算し、溶解度や変異原性を予測するというケモインフォマティクス分析のお題でした。
記述子や分子情報の計算には有名なRDKitというライブラリを主に使いました。
提出モデル(Q3)
記述子テーブル → ランダムフォレスト、NN ...①
Morgan FingerPrint テーブル → ランダムフォレスト、NN ...②
記述子テーブル、①、 ②、①+② → ランダムフォレストStacking

accuracy
Final score: 0.848
Final PublicLB: 0.87096
Final PrivateLB: 0.6574
モデル作成までの道のり(Q3)
- データ取得*2*3*4
複数のデータセットをまとめた後で一度は精度が落ちたが、Molオブジェクトへの変換時にMolStandardizeモジュールによって標準化・脱塩・中和処理を行うことで逆に精度は向上した(+0.03くらい) - 特徴量作成
RDKitから200カラムの記述子と2048カラムのMorgan FingerPrintを、Mordredから1800カラムくらいの記述子を計算*5
Q2で作成した溶解度予測モデルの値を追加
他の特徴量エンジニアリングはLeaderBoardが非公開になった後の数日で急いで行った(後述) - 特徴量選択
Borutaで記述子テーブルを706カラムまで削減
FingerPrintは特にいじらなかった - Train
記述子テーブルとFingerPrintテーブルから、ランダムフォレストとNNで予測(計4列)
モデルはBayesianOptimizationでハイパラチューニングした
単独モデルの精度はそれぞれ0.8超えたあたりくらい - Stacking
記述子テーブルに、4列の予測結果(0 or 1)とその合計値(最大4)を追加し、ランダムフォレストで予測*6
記述子テーブルを付け足す必要があったかどうかは謎
情報多い方がモデル君も嬉しいだろうと思ってつけた
過誤を起こしやすい構造を学んでほしかった
スコア推移
RDKit記述子のみ、ランダムフォレスト単独モデル
CV score, 0.816; PublicLB, 0.58くらい; 1回目PrivateLB, 0.51852
↓
アンサンブルモデル追加・データ追加・ハイパラ調整(パラメータ設定のエラーやSMILESの重複が残っていたので、それも除去)
score, 0.810; PublicLB, 0.8387
↓
データ追加
score, 0.841; PublicLB, 0.77419
↓
標準化・脱塩・中和
score, 0.840; PublicLB, 0.87097; 2回目PrivateLB, 0.62037
↓
特徴量作成
score, 0.848; PublicLB, 0.87097; 最終PrivateLB, 0.6574
LeaderBoard非公開後に以下の特徴量を追加したことで+0.034
1. Q2溶解度とMordredのLogS予測値との差分
2. 5次元にPCA圧縮した結果
3. kmeansでクラスタリングした結果(n=5)*7
4. base estimatorsのクラスラベル合計値(大きい値ほど陽性っぽいと予測)
所感
- Q1–Q3まで3問あり、ケモインフォマティクスに慣れない人もステップアップして取り組める内容で優しさを感じた。
- Q2はPublicLBが最終スコアとなるため高度な過学習抑制は要求されておらず、俺の考えた最強モデルバトル!みたいな様相。
- Q3はビジネスタスク寄りで、手法やデータセットの制限も特になかったのでしっかり取り組めば実力が確実に付けられる内容だった。
- モデルとソースコードをアップロードして採点する方式で(10MB制限)、普段メモリや環境に気を使っていないツケが回ってきたため、これは今後の課題。
全体を通してコードがぐちゃぐちゃになったり勘違い実装があったりしたので、Kaggleで勝つ本の購入検討中です。
が、Stackingのリークなどは自分で実装しないと実感しなかったと思うので、勉強と実装のバランスはこれからも大事にしていきたいと思いました。
あらためてスコア推移を整理してみると手持ちデータの検証精度・PublicLB・PrivateLBの乖離が非常に大きく、如何にモデルを汎化させられるかが鍵だったと思います。
また、Brain(s) slackで日々情報交換が行われており、PublicLBに使用されるデータ数が少ないことが予想されていました。
コンペ最終日付近はスコアが伸びなくても手元のスコア伸びるのを信じてチマチマ頑張ったのが効いてくれて報われました。
入賞するとは思わずにzoom開催の表彰式をぼけーっと聞いてたら自分の名前が挙がっており、めちゃくちゃに慌ててしまいました。
頭が真っ白になってしまって、自分の最後のPrivateスコアと順位と賞品を覚えていないです。すみません。確か6位でした。いいカメラが貰えるらしいです。
初参加コンペで初入賞で嬉しいです。
これをきっかけに、これから色々なコンペに出てみようと思いました。
参考
コンペ後に公開された他の参加者の取り組み例
- Chem Infomatics系の基礎事項まとめ(富士フィルム Brain(s)コンテスト参加記) - MosaasoMの日記
- 富士フィルムコンペ総合1位解法・アプローチ(化合物の溶解度予測2位、変異性予測2位) : んごんごブログ
何かと便利なサイト
*1:年齢制限ギリギリでした。なんか申し訳ない。
*2:http://doc.ml.tu-berlin.de/toxbenchmark/ 参加者全員に渡されたデータ
*3:https://pubs.acs.org/doi/abs/10.1021/ci300400a
*4:https://www.sciencedirect.com/science/article/pii/S1383571820300693
*6:このとき学習データ全体を使ってしまったので、リークしてしまった。あとからOut-of-FoldやHoldoutTSの手法を知ったので、以後気を付けたい。
*7:testはtrainで作成したモデルからの予測値を用いた
pyenvからminiconda環境を構築
普段はpipを使うのですが、condaを使う機会があったので備忘録として残します。
バイオインフォマティクス系の分析はcondaにしかパッケージがないことがあるので、pipできないとconda競合に気をつけないといけません。
pyenvからconda環境を入れることで、なにか困っても再構築が楽になります。
ついでにcookiecutterも使って分析しやすいディレクトリを構成します。
# $ pip install cookiecutter $ pyenv install miniconda3-latest $ pyenv shell miniconda3-latest $ condo create -n [env_name] python=[python_version] $ condo activate [env_name] $ conda install jupyter $ ipython kernel install --user --name=[env_name] --display-name=[env_name] # if you don’t need this env, type command ‘$ jupyter kernelspec uninstall [env_name]’ $ cookiecutter https:github.com/drivendata/cookiecutter-data-science You've downloaded /Users/YOUR_NAME/.cookiecutters/cookiecutter-data-science before. Is it okay to delete and re-download it? [yes]: yes project_name [project_name]: [env_name] repo_name [ml_project]: author_name [Your name (or your organization/company/team)]: [your_name] description [A short description of the project.]: Select open_source_license: 1 - MIT 2 - BSD-3-Clause 3 - No license file Choose from 1, 2, 3 (1, 2, 3) [1]: 1 s3_bucket [[OPTIONAL] your-bucket-for-syncing-data (do not include 's3://')]: aws_profile [default]: Select python_interpreter: 1 - python3 2 - python Choose from 1, 2 (1, 2) [1]: 1 $ cd [env_name] # if you need requirements file for pip, type command ‘$ conda list --export > requirements.txt’ # if you want to create env from file, type command ‘$ conda env create -f=[env_name.yml]’ $ conda env export -n [env_name] > [env_name.yml] # edit gitignore file ‘$ vim .gitignore’ git init
ただし、この方法だとcondaに存在しないパッケージはsystemを検索して利用する罠があります。
とくに、conda install jupyterせずにjupyterカーネルを追加すると、import *** はsystemを検索してしまいます。
途中でjupyterをinstallしているのはそのため。
新薬の情報を元に、製薬業界を分析する
製薬企業の特徴を新薬から探る
就活を始める方で、どのように業界研究すればよいかわからない人って結構いると思います。
私もその1人で、まずは製薬に絞って就活しようと思い立ったのですが、それでも膨大な数の企業があって時間と労力をかけなければ俯瞰的な視点を持つことは難しそうでした。
製薬企業のセグメントは、資本(内資・外資)と事業領域(新薬・ジェネリック)の軸の上に、疾患領域をどのようにターゲティングするかでさらに細分化されるようです*1。
大まかな分類は調べれば出てきますが、最新のデータを元にした細かな業界研究は見当たらなかったので、自分で分析することにしました。
その際、R&Dの職に就きたいという希望があったので、新薬の情報を元に、製薬企業の分類をすることにしました。
データ集計、処理
概要
KEGG DRUGに2000年以降に上市された新薬が記載されています。
承認日, 薬効, 分類ID, 有効成分, 商品名, 会社名などの列に対して、630個の新薬が列挙されています*2 *3。
有効成分やら商品名だけでは何の薬かぱっと見わからないものも多いので、薬効分類を併記したいです。
そのために、分類IDの対応表を作成しました。
分類IDは4桁数字からなるレコードで、大・中・小・細小と薬品を分類しています*4。
このデータはjsonファイルでダウンロードすることができたので、Pythonで分類IDごとに分類名称を対応させることにしました。
元の表と薬品分類対応表をスプレッドシート上で合体させ、Tableauで可視化することにしました*5。
jsonファイルのパース
jupyter notebookを用いて、次のようなコードでpandas DataFrameに変換しました。
import json file = open('jp08301.json') data = json.load(file) from pandas.io.json import json_normalize df = json_normalize(data=data,record_path=['children','children','children','children'],meta=[['children','children','children','name'],['children','children','name'],['children','name']]) df = df[['children.name','children.children.name','children.children.children.name','name']] df.rename(columns = {'children.name':'first','children.children.name':'second','children.children.children.name':'third','name':'fourth'}, inplace=True) df['first'] = df['first'].str.replace('^[1-9]+', '').str.strip() df['second'] = df['second'].str.replace('^[1-9]+', '').str.strip() df['third'] = df['third'].str.replace('^[1-9]+', '').str.strip() df[['code','fourth']] = df['fourth'].str.split(' ', expand=True)
json_normalizeでパースしました。
ネストされまくっているので、record_pathとmetaで欲しいデータを指定しています。
また、rename後、余計な文字を削除しました。
結果は次のような表になります。
可視化
Google Driveとtableauと繋げれば、わざわざcsvファイルをアップロードしなくてもデータを整形できちゃいます。
企業名に表記揺らぎや今はもう統合された企業があったので、前処理としてグループ化だけしました。
細かい操作もできて、色々痒いところに手が届く仕様にしているようで、こういう趣味のデータを可視化する分には十分な機能を持っている印象です。
最近流行りのtableauの分厚い教本がありますが、買わなくても直感的に操作できるのがいいところだと思います。
可視化するまでもなかったのですが、近年の上市新薬腫瘍用薬, 中秋神経系用薬が多かったです。
薬品分類ごとの企業割合から、一部省略していますが、がん領域だとMSD, 中外, ファイザー, ノバルティス, アストラゼネカが強いことがわかりました。
また、代謝性医薬品(皮下注射用の医療用医薬品など)は、サノフィ, 協和キリン, ジョンソンエンドジョンソンなども強そうです。
また、企業ごとの新薬承認数も可視化しました。
MSD, ファイザー, グラクソ, ノバルティスなど、外資が強いようです*6。
有効成分がモノクローナル抗体の薬品は、分子標的薬です。
名前が〜〜マブとなっている薬を列挙しました。
腫瘍用薬で分子標的薬は圧倒的にMSD, 中外が強いみたいです。聞いたことある名前がちらほら入ってますね。
一例として、中外製薬が出している新薬を列挙しました。
少し前は領域横断的に新薬を出していましたが、近年でがん領域に特化し始めたことがわかります。
一番新しい新薬のロズリートレクはつい最近販売が開始されたので、ニュースになりましたね。
www.chugai-pharm.co.jp
pipenvのパッケージがバージョン指定で入らず苦労してる話。
macでpipenvを使いたい
仮想環境とかよくわかんないけど、pipenvは楽そう。
今までの仮想環境は削除する(Qiitaの記事を参考にした)。
いい感じに仮想環境構築して、「Python 機械学習プログラミング 達人データサイエンティストによる理論と実践 」を読み進めたい。
[問題点] pipenvでバージョン指定できない
パッケージの依存関係の問題なのか、最新版のパッケージを入れることはできても、ダウングレードして入れることができていない。
早急に解決したいが、取り急ぎの備忘録として公開する。
[追記]下記オプションで(一部)解決した。
$ pipenv install --sequential
python3を使う
$ pipenv --python 3 Warning: Python 3 was not found on your system… You can specify specific versions of Python with: $ pipenv --python path/to/python
$ brew ls python3 ... /usr/local/Cellar/python/3.7.3/bin/python3.7 ...
$ pipenv --python /usr/local/Cellar/python/3.7.3/bin/python3.7 Removing existing virtualenv… Creating a virtualenv for this project… ... ✔ Successfully created virtual environment! Virtualenv location: /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8
仮想環境構築とパッケージのインストール
パッケージのバージョンを指定するとPipfile.lockでエラーがでたので、取り急ぎ最新バージョンで(190402)。
$ pipenv install NumPy SciPy scikit-learn matplotlib pandas Creating a virtualenv for this project… Pipfile: /Users/myname/python-machine-learning-book-2nd-edition/Pipfile Using /usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/python3.7 (3.7.3) to create virtualenv… ⠸ Creating virtual environment...Already using interpreter /usr/local/Cellar/pipenv/2018.11.26_2/libexec/bin/python3.7 Using real prefix '/usr/local/Cellar/python/3.7.3/Frameworks/Python.framework/Versions/3.7' New python executable in /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/python3.7 Not overwriting existing python script /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/python (you must use /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/python3.7) Installing setuptools, pip, wheel... done. ✔ Successfully created virtual environment! Virtualenv location: /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8 Creating a Pipfile for this project… Installing NumPy… Adding NumPy to Pipfile's [packages]… ✔ Installation Succeeded Installing SciPy… Adding SciPy to Pipfile's [packages]… ✔ Installation Succeeded Installing scikit-learn… Adding scikit-learn to Pipfile's [packages]… ✔ Installation Succeeded Installing matplotlib… Adding matplotlib to Pipfile's [packages]… ✔ Installation Succeeded Installing pandas… Adding pandas to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock not found, creating… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✔ Success! Updated Pipfile.lock (46c561)! Installing dependencies from Pipfile.lock (46c561)… 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 11/11 — 00:00:02 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.
仮想環境に入る
$ pipenv shell Launching subshell in virtual environment… bash-3.2$ . /Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8/bin/activate (python-machine-learning-book-2nd-edition) bash-3.2$
(python-machine-learning-book-2nd-edition) bash-3.2$ python --version Python 3.7.3
Pythonのシェルに入る
>>> import numpy as np >>> print(np.arange(10)) [0 1 2 3 4 5 6 7 8 9]
パッケージのバージョンを指定する
$ pipenv run pip freeze cycler==0.10.0 kiwisolver==1.0.1 matplotlib==3.0.3 numpy==1.16.2 pandas==0.24.2 pyparsing==2.3.1 python-dateutil==2.8.0 pytz==2018.9 scikit-learn==0.20.3 scipy==1.2.1 six==1.12.0
実際に欲しいのは下記だが、エラーがでる(解決済み)。
NumPy==1.12.1
SciPy==0.19.0
scikit-learn==0.18.1
matplotlib==2.0.2
pandas==0.20.1
ためしにpandasだけ入れようとしても、
$ pipenv install pandas==0.20.1 Installing pandas==0.20.1… Adding pandas to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock (a71011) out of date, updating to (46c561)… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✔ Success! Updated Pipfile.lock (a71011)! Installing dependencies from Pipfile.lock (a71011)… An error occurred while installing ... Installing initially failed dependencies… ... ERROR: ERROR: Package installation failed... ☤ ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 0/1 — 00:00:05
入らない。
pipenv.exceptions.InstallError
これをどうにかしないといけないようなので、引き続き調べる。
[190403追記] pipenv install --sequentialする
依存関係のエラーらしい。
一部は--sequential optionで一つずつ入れられた。
$ pipenv --rm Removing virtualenv (/Users/myname/.local/share/virtualenvs/python-machine-learning-book-2nd-edition-eAx8UWz8)… python-machine-learning-book-2nd-edition $ rm Pipfile Pipfile.lock
$ pipenv install --sequential SciPy==0.19.0 Installing SciPy==0.19.0… Adding SciPy to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock (0c5e59) out of date, updating to (91cb02)… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✔ Success! Updated Pipfile.lock (0c5e59)! Installing dependencies from Pipfile.lock (0c5e59)… 🐍 ▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ 3/3 — 00:00:11 To activate this project's virtualenv, run pipenv shell. Alternatively, run a command inside the virtualenv with pipenv run.
ただし、入れられないものもあり、それらはエラーがでる。
$ pipenv install --sequential matplotlib==2.0.2 Installing matplotlib==2.0.2… Adding matplotlib to Pipfile's [packages]… ✔ Installation Succeeded Pipfile.lock (a671fc) out of date, updating to (ed87c2)… Locking [dev-packages] dependencies… Locking [packages] dependencies… ✘ Locking Failed! ...
ただし、pipenv run pip freezeでは入っておらず、実際にimportもできない。
[190508追記] numpy errorだった
numpy1.12はpython3.7に未対応らしく、pyenvでpythonのバージョンも管理すれば解決できそう。
この記事を参考にpyenvでpython3.5.7を入れておく。
$ pipenv --python 3.5.7
続いてjupyterにkernelを追加する。
仮想環境に入り
(test) $ pipenv shell
(test) bash-3.2$ ipython3 kernel install --user --name=test --display-name=test
(test) bash-3.2$ jupyter kernelspec list test /Users/myname/Library/Jupyter/kernels/test python3 /usr/local/share/jupyter/kernels/python3
以後はこの仮想環境がjupyter kernelに追加されるので、外からjupyter notebookを開いてもOK。
都内に個人でウェット実験ができるシェア研究室がオープン(Beyond BioLAB TOKYO)
2/5付のニュース記事で紹介されたBeyond BioLAB TOKYO
シェアウェットラボが2月都内にオープンするらしい。
入居予定者数は15ほどで、基本的にはスタートアップやベンチャー向けのようだが、1日限定の個人利用可能も可能とのこと。
ベンチ単位で借りれるらしいが、共通機器やP2設備もあって良さげだね。
PCRはできそうw(ThermoのProFlexかな?)
こういうラボで自分の実験ができるのも良いけど、コミュニティを広げることができるのも魅力的ですね。
特許関係で出入りが難しいベンチャーとかもあるかもだけど。
今までは都内でバイオ実験ができる施設は渋谷のFabLabくらいしかなかったけど、こういう選択肢が今後増えていくに期待。
2/8追記
バイオハッカージャパンで記事になってます。
実際に行ってきた感想記事なので、パワーがあるw
biohacker.jp
Jupyter notebookでMySQL(とMongoDB)の演習をする
東大松尾研のデータサイエンティスト育成講座を以前に紹介しました。
少しずつ進めていると、8章からデータベースのお話に。
ただし、現行のjupyter notebookではプログラムが動かないらしく、初心者が実行環境を設定するのは大変そう。
こちらの記事でも触れられていましたが、解決方法までは載っていなかったので、備忘録として記事にしておきます。
環境
$ sw_vers >ProductName: Mac OS X >ProductVersion: 10.14.1 >BuildVersion: 18B75
$ python3 --version >Python 3.7.0 $ jupyter notebook --version >5.6.0
特にAnacondaとかは入れてないです。
jupyter notebookもpipして入れています。
1. MySQL, PyMySQLのインストール
ターミナルで、次のように打ち込む。
$ brew install mysql
$ pip3 install PyMySQL
以前にMySQLを中途半端に実行していていて色々なエラーが出たので(恨むぞプロ門...)、クリーンインストールしてしまうのが結局早かった。。。
2. MySQLサーバーの立ち上げ
ターミナルで、次のように打ち込む。
$ sudo mysql.server start
MySQLインストール後の初期設定はこちらの記事を参考にしました。
データベースの安全管理上、権限がないです、とエラーが出る場合が多いので、基本sudo付きで実行します。
色々聞かれるy/n質問は、全てyesで良いと思います。
ここまでやったら、jupyter notebookに戻って進めます。
3. jupyter notebookとMySQLを接続する
ターミナルで実行します。
$ jupyter notebook
自動でjupyter notebookが立ち上がるので、松尾研資料(data science)8章と、こちらの記事を参考にしながら接続。
これで、jupyter notebookを用いてMySQLコードを実行することができます。
以上です。
お読みいただきありがとうございました。
自宅でストレプトマイシン(抗生物質)を作る方法
DIYバイオで何かできないか考えて色々検索していた時に、こんな記事を見ました。
自宅でペニシリン(抗生物質)を作る方法 /バイオハッカー・ジャパン
「ペニシリンが作れるなら、他の抗生物質も自作できるんじゃないか?」
そんな安直な考えで、ペニシリンに並んで有名なストレプトマイシンが自作できるかどうか、検討してみました。
ストレプトマイシンはS.griseusが生産するアミノグリコシド系抗生物質で、Waksmanら(1944)によって初めて報告されました*1。
S.griseusの属するストレプトマイセス属は、放線菌分離株の90%を占めるグラム陽性細菌で、様々な形状で落ち葉や土壌中に生息しているらしい。
多種多様な放線菌の中でもストレプトマイセス属は頑強で生育しやすく、抗生物質の大部分を生産するとのこと*2。
今では培地組成や培養条件を調整することで比較的安定してストレプトマイシンを生産することができるらしく、少し調べてみるとそこまで難しい培養プロセスは必要なさそう*3。
だたし、人工的環境に植え継いだ菌種は(抗生物質などの)二次代謝産物の生産能が著しく低下することがあり、これが生産効率のボトルネックっぽい……。
色々調べて、S.griseusの取得、培養、検出、ストレプトマイシン生産までのプロトコルを自力でできるように改変させたものが以下になります。
※ただし、実際には試していないので、条件検討の必要あり。
ストレプトマイシン生産に関する備忘録SCA培地組成 カゼイン, 1g(アミノ酸、ペプチド、ビタミン、微量元素) デンプン, 10g(炭素) 海水, 37g(錯体イオン) 寒天, 15g(固化させるために用いる) 水, 1L (pH = 7.2 +/- 2) YMEM培地組成 酵母抽出物, 3g 麦芽抽出物, 3g 獣肉ペプトン(Bacto peptone), 10g グルコース, 10g スクロース, 170g 水, 1L half-strength YEME培地組成 酵母抽出物, 0.2g 麦芽抽出物, 0.5g グルコース, 0.2g 水, 1L ・培地類やディッシュなどは、いずれもオートクレーブで滅菌状態を保っておく。 ・ストレプトマイシンは10%グリセロールストック中で-20˚C保存可能。
- 土壌を集める(要場所記載)。3–45cmの深さに掘り、2mmフィルター後、湿度を保ったまま家に持ち帰る。
- 100mg/10mLで滅菌生食水に懸濁し、そのうち1mLを滅菌処理し冷却されたSCA培地入りペトリ皿に播種する。
- 37˚Cで24–48時間培養し、灰色がかった白っぽいコロニーが出現することを確認する。
- グラム染色し、陽性の放線菌(菌糸径0.5–1.0 μm)がいることを確認する(菌糸径2–10 μmは糸状菌であるので、フィルタにかけると良い)*4。
- 250mL half-strength YEME培地などの液体培地3日から4日培養する。(ここでストレプトマイシンが生産される)。
- 1mLとり、6000rpmで10分遠心し(あるいはフィルトレーションにより)、菌体を除去する。
- 寒天培地に大腸菌などを播いた後で取得した上清を播き、48–72時間培養後、阻止円を確認する。
- 上清を塩基性条件下で活性炭に通し、ストレプトマイシンを吸着させる*5。
- 酸性条件アルコールでストレプトマイシンを溶出(0.2N 50%メタノールなど)
SCA培地は海水を混ぜると代用できるらしい*6(ホンマかいな)
YEME培地が自力だと調達が難しそうですが、Waksmanも初めは肉汁とコーンスティープリカーで培養しているので、工夫は出来そう。
あとは収率との戦い……。
だれか作って(他力本願)
以上、お読みいただきありがとうございました。
*1:Albert Schatz, Elizabeth Bugle, and Selman A. Waksman, Streptomycin, a Substance Exhibiting Antibiotic Activity Against Gram-Positive and Gram-Negative Bacteria, Experimental Biology and Medicine, 55, p.66-69, 1944
*2:木下浩, 「放線菌・糸状菌に生理活性物質を作らせるには」, 生物工学基礎講座-バイオよもやま話- 89巻 p.408–410, 2011
宮道慎二, 「不思議な微生物, 放線菌」, 生物工学基礎講座-バイオよもやま話- 90巻 p.32–36, 2012
*3:US PATENT OFFICE 2515461, 1946
Lekh Ram, Optimization of Medium for the Production of Streptomycin By
Streptomyces Griseus, International Journal of Pharmaceutical Science Invention, 3, p.1–8, 2014
武市千代子, 「放線菌の分離と同定」, 跡見学園短期大学紀要, 12, A1 - F16, 1976
*4:その他、メチルレッド陽性、アミラーゼ生産、アルコール発酵陽性などでも確かめられる。
*5:有機物が活性炭に吸着する性質を利用している。脱臭効果もコレ。
*6:Starch Casein Agar (SCA)- Composition, Principle, Preparation and Results (https://microbenotes.com/starch-casein-agar-sca-composition-principle-preparation-and-results/)

