今日の午後、分割データ セットを作成し、同じ親核を持つ分子を csv ファイルに入れました。次に、新しい csv ファイルに親核の名前を付け、分割データ セットと元の未分割の数をデータセットは常に正しくありません。私は言葉を失い、長い間トラブルシューティングを行ってきました。吐きそうになりましたが、最終的に次のコード行にあることがわかりました。
df_match.to_csv('drawimages/data/diffscaffold/{}.csv'.format(csv_name), index=False)
一見大丈夫そうに見えるかもしれませんが、確かにデータを保存することは可能ですが、そこには落とし穴があります。コアに一貫性がありませんが、同じではありません)、そのうちの 1 つだけを格納します (大きな穴) ! [理由: Windows は、大文字と小文字が一致しないこれら 2 つのフォルダーを 1 つのタイプと見なし、存在できるのは 1 つのタイプのみです! 】ということで、必ず全てのデータを格納できず、データの照合に必ず失敗します。. . .
O=C(NCc1ccccc1)c1c(Cc2cccccc2)sc2c1CCOC2
O=C(NCC1CCCCC1)c1c(Cc2cccccc2)sc2c1CCOC2
コードを次のように変更するだけです。
for i, core in enumerate(core_list):
matches = []
for j, smiles in enumerate(smiles_list):
mol = Chem.MolFromSmiles(smiles)
core_mol = Chem.MolFromSmiles(core)
if mol.HasSubstructMatch(core_mol):
matches.append(j)
# 选取包含母核的行,并保存到一个新的csv文件中
df_match = df.iloc[matches]
df_match.to_csv('drawimages/data/diffscaffold/{}.csv'.format(i+1), index=False)
print("{}.csv is done! ".format(i+1))