2D SDFファイルを3D SDFファイルへ変換するサンプル・マクロを作成しました.
ShowWinコマンドを使用しているのでコンソールモードでは動作しません.
YASARA GUIのOptions > Macro&Movie > Play macroから保存したマクロを読み込んでください.
一度に複数の2D SDFファイルを読み込むことができ,マクロ終了後は"*_3D.sdf"として3D SDFfileが保存されます.
2D SDFファイルではなく,SMILESファイルを入力とする場合,ユーザーマニュアルのBuildSMILESコマンドの説明を参照してください.
# Example Macro : convert3D.mcr
# Convert SDF from 2D to 3D, with Experiment Minimization
Clear
Console off
files,filelist() =
ShowWin Type=FileSelection,Title="Select 2D SDF files converting to 3D",
MultipleSelections=Yes,Filename="*.sdf"
#Print 'These are the (files) selected files:'
#if files
# Print (filelist)
for file in filelist
LoadSDF (file)
MacroTarget (file), Remove=Extension
objlist() = ListObj all
RemoveAll
for i in objlist
AddObj (i)
name = CompoundMol all Obj (i)
CompoundMol all Obj (i), '(name)'
InflateObj (i)
CleanObj (i)
Cell Auto,Extension=10
ForceField NOVA,SetPar=yes
Experiment Minimization
Experiment On
Wait ExpEnd
# Optimize with MOPAC to fine-tune geometry
OptimizeObj (i)
RemoveObj (i)
AddObj all
SaveSDF (join objlist), (MacroTarget)_3D.sdf
Clear
実行例