復習6日目その③_20251128_材料AIアプリをWSL上で作った
復習6日目その③_20251128 応用作業として、cifファイルよりバンドギャップを予測するアプリもWSL上で作った
今日は、CIFファイルをアップロードするとバンドギャップを予測し、結晶構造を3Dで表示するWebアプリを WSL(Ubuntu)上で作った。
使ったのは Python / Streamlit / pymatgen / matminer / py3Dmol。
以下に簡単にまとめました。
1. 環境構築(WSL2 + Python)
① 学習データの準備
② 特徴量の生成
matminer・pymatgenで組成・結晶情報から数値特徴量を作成した。
③ 機械学習モデルの作成
④ Webアプリ(Streamlit)の実装
2. ペロブスカイトのCIF(SrTiO₃)を作成
3. Streamlit のアプリ(app.py)を作成
4. Streamlit のアプリ(app.py)を起動
streamlit run app.pyすると以下の2つが表示される。
Local URL: http://localhost:8501
Network URL: http://172.28.xxx.xxx:8501
このURLの違いは?
http://localhost:8501
→ Windows のブラウザからアクセスできる本物のローカルURL
http://172.28.x.x:8501
→ WSL内部の仮想ネットワークのアドレス
インターネットからは見えず、外部の人はアクセスできない
以上より、このアプリは 私のPC内だけで動いているローカルWebアプリ。
6.アプリの画面で、cifファイルをuploadすると以下が表示される。
CIFの化学式
サイト数、格子定数
学習済みモデルによるバンドギャップ予測値
3D構造ビュー(py3Dmol)
