復習6日目その③_20251128_材料AIアプリをWSL上で作った

IT

復習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)