本ブログでは、プログラミング初心者がChatGPTだけで作った、研究便利ツールについて紹介する。
電気泳動とは
「電気泳動」それは生化学の実験で欠かすことのできない実験である。
生化学を知らない方向けに簡単に説明すると、DNAを電気によって動かす。そのことで、DNAの長さおよび濃度の大まかな推定を行うことができる。ある種のクロマトグラムである。
実際の実験では、PCR法によって遺伝子を増幅させたのちに、電気泳動をするわけだが、可視光ではDNAのバンドを見ることができないので、UVライトを当てて写真を撮る必要がある。
この写真は、Westan blottingや電気泳動後のゲルの写真をとる機械で有名なFusion というゲルイメージャーを使って、写真を撮っている。
ここで、私が欲しい写真は、ゲルだけの部分が切り出された写真である。
ChatGPTでコーディング
そこで、ChatGPTにコーディングをお願いした。
電気泳動画像の解析は、実は「認識の難しい画像処理」の一つで、
明るさ・背景・ノイズの量・ゲルの傾きなどが写真によってバラバラです。
なので、ChatGPT と一緒にかなり高度な画像処理を組み込みました。
1. ゲルだけを賢く探し出す(自動トリミング)
電気泳動の写真には、「ラップのしわ」「余白」「反射光」「光の暗さ」など、ゲル以外のノイズが大量に含まれます。
そのままでは何度撮り直しても「毎回どの範囲を切り取ればいいかわからない」状態になります。
そこでこのツールでは、AI ではなく OpenCV の画像処理技術をフル活用して、
・明るさを補正する(γ補正)
・コントラストを強調する(CLAHE)
・背景だけをぼかして差し引く(背景差分)
・エッジを抽出して輪郭を認識する(Canny)
という 複数の処理を重ねたうえで、ゲル領域を推定しています。
特に面白いポイントは、「1回の検出で判断しない」こと。
少し条件を変えてあえて複数の画像を作り、
それぞれの検出結果を集めて中央値を取ることで、
ゲルが暗くても、枠が白くても、多少ノイズがあってもほぼ失敗しない
という安定性を実現しています。
ChatGPTはすごいです
2. ゲルの傾きを自動で直す(Hough 変換)
電気泳動のゲルって、写真にすると微妙に斜めになっていることが多いですよね。
そこで取り入れたのが Hough 変換(ライン検出)。
ChatGPT 曰く:
「ゲルには“横方向のまっすぐなライン”があるので、そこを見れば角度がわかるはず!」
なるほど…ということで、
・直線を検出(HoughLines)
・さらに別の方法でも直線を検出(HoughLinesP)
・ノイズで変な角度が混ざるので統計処理(IQR で外れ値除外)
最後は中央値を採用して安定化という処理を作ってくれました。
これにより、どんなゲルでもほぼ自動で水平に補正できます。
傾き補正のために写真編集ソフトを開く必要がなくなりました。
長々と説明してもわかりにくいと思うので、ぜひ使ってみてください。以下に説明を載せます
その名も「Gel Image Changer」🙌
コードおよびexeは以下のGitHubで公開している。
簡単に使い方を説明する。
これだけで完成!
あとは、「保存」を押せば完成です。
アウトプットファイル名は、自動入力でインプット名を入れているので、OKを押すだけで保存できますし、名前を変えたい場合はお好きな名前を入れていただければ決められます。
例えば、傾きが気に食わない場合は、下のスライダーをいじれば傾きを変えることができますし、切り出す範囲を変えたい場合は、左クリック長押しで選んだ場所が切り出されます。
まとめ: 初心者でも ChatGPT を使えば研究ツールが作れる!
このツールに搭載されている処理はどれも高度ですが、
実は"すべて ChatGPT に指示を出して書いてもらっただけ"です。
自分はプログラミング初心者ですが、
ChatGPT と対話しながら
・便利機能の追加
・バグの修正
・GUI の調整
を繰り返していくことで、
研究で実際に使えるレベルのツールが完成しました。
Download
一度使ってみてください!
https://github.com/n-thai0930/Gel-Image-Chenger


