ChatGptで
「Xenonpyを使ったiQSPRコードを生成して」と聞いて生成されたコード。多分違う。
import pandas as pd from xenonpy.descriptor import Compositions from xenonpy.model import XGBRegressor from xenonpy.utils import settings from xenonpy.datatools import preset # データの読み込み data = pd.read_csv('solubility_data.csv') # 分子記述子の生成 comp = Compositions(n_jobs=-1) X = comp.transform(data['smiles']) # モデルの構築 settings.general.seed = 1 model = XGBRegressor() model.fit(X, data['logS']) # モデルの評価 preset.regression(model, X, data['logS'])
これではダメなので、
「Xenonpyを使って、ElasticNetでモデリングして、LogLikelihood関数を作成して、N-gramを生成して、iQSPRで逆解析して、化学構造を得るコードを書いて」
と適当なことを質問してみた。
import pandas as pd from xenonpy.descriptor import Fingerprints from xenonpy.model import ElasticNet from xenonpy.utils import settings from xenonpy.datatools import preset # データの読み込み data = pd.read_csv('solubility_data.csv') # Fingerprintsの生成 fp = Fingerprints(n_jobs=-1, type='morgan', n_bits=512, length=2) X = fp.transform(data['smiles']) # ElasticNetのモデルの構築 settings.general.seed = 1 model = ElasticNet() model.fit(X, data['logS']) # モデルの評価 preset.regression(model, X, data['logS']) # LogLikelihood関数の作成 from xenonpy.inverse.iqsp import LogLikelihood llh = LogLikelihood(model, fp, data['logS'], scale='standard') n_gram = llh.get_ngram(5, 0.1) # iQSPRで逆解析して化学構造を得る from xenonpy.inverse.iqsp import iQSPR iqspr = iQSPR(model, fp, scale='standard') smiles = iqspr.inverse(n_gram) print(smiles)
ChatGpy 3.0くらいなのかな、トライアル版だと。