X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=Documents%2Fsrc%2Fdoc_source.html;h=5f9737f2cde9f3a3b279b13c7a58f2b88d260060;hb=874b25b5b7a0ae7dbcfe9c043447273bf7c546f9;hp=25302b0607ca89d9f580b3a16401929144aa8711;hpb=3fba955cc2d5e71b0e818bc84978e022f394ec4b;p=molby%2FMolby.git diff --git a/Documents/src/doc_source.html b/Documents/src/doc_source.html index 25302b0..5f9737f 100644 --- a/Documents/src/doc_source.html +++ b/Documents/src/doc_source.html @@ -10,17 +10,20 @@
@@ -103,7 +106,7 @@ Installation procedures are described below for each of these platforms.
-Download from the official distribution web site, http://sourceforge.jp/projects/molby/. +Download from the official distribution web site, http://en.osdn.jp/projects/molby/.
MolbyWin64.zip
) or a standard setup package (SetupMolbyWin32.exe
, SetupMolbyWin.exe
).
-After installation is finished, you will find the Molby application registered in the "Start" menu under the item "All Programs." +To use the zip archive, expand all contents in your favorite place, and double-click the "Molby" icon.
- -
-The Mac version is provided as a disk image (Molby.dmg
). Double-click the disk image file, and you will find a virtual disk drive mounted on the desktop. Find the Molby application inside it, and drag it to the "Applications" folder in your hard drive.
+To install on your PC, start the setup package, and follow the instructions. After installation is finished, you will find the Molby application registered in the "Start" menu under the item "All Programs."
-Note: The Mac version is provided as a universal binary, which runs natively on both PowerPC and Intel platforms.
+The Mac version is provided as a zip archive (MolbyMac.zip
, MolbyMacLegacy.zip
for MacOS 10.6 to 10.11). Double-click the archive, and you will get a folder including the Molby application. Drag it to the "Applications" folder in your hard drive.
-Use the uninstaller in the Molby folder. You can access the Molby folder from the "Start" menu (Start -> All Programs -> Molby). +If you install Molby, use the uninstaller in the Molby folder. You can access the Molby folder from the "Start" menu (Start -> All Programs -> Molby).
@@ -143,8 +146,8 @@ Trash the Molby application in the "Applications" folder. Molbyã¯ä»¥ä¸ã®ãã©ãããã©ã¼ã ã§åä½ãã¾ãã
@@ -153,7 +156,7 @@ Molbyã¯ä»¥ä¸ã®ãã©ãããã©ã¼ã ã§åä½ãã¾ãã
-å ¬å¼é å¸ãµã¤ã http://sourceforge.jp/projects/molby/ ããææ°çããã¦ã³ãã¼ããã¦ãã ããã +å ¬å¼é å¸ãµã¤ã http://osdn.jp/projects/molby/ ããææ°çããã¦ã³ãã¼ããã¦ãã ããã
-Windowsçã¯ãæ¨æºã®ã»ããã¢ããããã±ã¼ã¸ (SetupMolby.exe
) ã§é
å¸ããã¦ãã¾ããã»ããã¢ããããã±ã¼ã¸ãããã«ã¯ãªãã¯ãã¦ãæ示ã«å¾ã£ã¦ãã ãããã©ãããããããããããªãæã¯ã"OK"ãæ¼ãã¦é²ãã§æ§ãã¾ããã
+Windowsçã¯ãzip ã¢ã¼ã«ã¤ãï¼MolbyWin32.zip
:32 ãããç, MolbyWin64.zip
: 64ãããçï¼ãã¾ãã¯æ¨æºã®ã»ããã¢ããããã±ã¼ã¸ (SetupMolbyWin32.exe
: 32ãããçãSetupMolbyWin64.exe
: 64ãããç) ã§é
å¸ããã¦ãã¾ãã
-ã¤ã³ã¹ãã¼ã«ãçµäºãããããã¹ã¿ã¼ããã¡ãã¥ã¼ã®ããã¹ã¦ã®ããã°ã©ã ãã®ä¸ã« Molby ãå ¥ã£ã¦ããã¯ãã§ãã +Zip ã¢ã¼ã«ã¤ãã使ãæã¯ãæåã«å 容ããã¹ã¦å±éãã¦ãã ãããå±éãããã©ã«ãã®ä¸ã« Molby ã¢ããªã±ã¼ã·ã§ã³ãããã®ã§ãããã«ã¯ãªãã¯ãã¦èµ·åãã¦ãã ããã
- -
-Macçã¯ããã£ã¹ã¯ã¤ã¡ã¼ã¸ (Molby.dmg
) ã§é
å¸ããã¦ãã¾ãããã£ã¹ã¯ã¤ã¡ã¼ã¸ãããã«ã¯ãªãã¯ããã¨ãä»®æ³ãã£ã¹ã¯ããã¹ã¯ãããã«ãã¦ã³ãããã¾ããMolby ã¢ããªã±ã¼ã·ã§ã³ããã®ä¸ã«ããã¾ãã®ã§ããã¼ããã£ã¹ã¯ã®ãã¢ããªã±ã¼ã·ã§ã³ããã©ã«ãã«ãã©ãã°ã³ãã¼ãã¦ãã ããã
+ã»ããã¢ããããã±ã¼ã¸ã使ãæã¯ãããã«ã¯ãªãã¯ãã¦æ示ã«å¾ã£ã¦ãã ãããã¤ã³ã¹ãã¼ã«ãçµäºãããããã¹ã¿ã¼ããã¡ãã¥ã¼ã®ããã¹ã¦ã®ããã°ã©ã ãã®ä¸ã« Molby ãå
¥ã£ã¦ããã¯ãã§ãã
-注: Mac ç㯠universal binary ã§ããPowerPC, Intel ã®ä¸¡æ¹ã®ãã·ã³ã§åä½ãã¾ãã
+Macçã¯ãzip ã¢ã¼ã«ã¤ã (MolbyMac.zip
, MolbyMacLegacy.zip
[10.6ã10.11ç¨]) ã§é
å¸ããã¦ãã¾ããã¢ã¼ã«ã¤ããããã«ã¯ãªãã¯ããã¨ãå
容ãå±éããã¦æ°ãããã©ã«ããã§ãã¾ããMolby ã¢ããªã±ã¼ã·ã§ã³ããã®ä¸ã«ããã¾ãã®ã§ããã¼ããã£ã¹ã¯ã®ãã¢ããªã±ã¼ã·ã§ã³ããã©ã«ãã«ãã©ãã°ã³ãã¼ãã¦ãã ããã
-Molbyãã©ã«ãã®ä¸ã«ã¢ã³ã¤ã³ã¹ãã¼ã©ãããã¾ãããã¹ã¿ã¼ããã¡ãã¥ã¼ã§ããã¹ã¦ã®ããã°ã©ã ã-> Molby ã¨ãã©ã£ã¦ãã ããã +ã¤ã³ã¹ãã¼ã«ãã Molby ã PC ããé¤ãããæã«ã¯ãMolbyãã©ã«ãã®ä¸ã®ã¢ã³ã¤ã³ã¹ãã¼ã©ã使ã£ã¦ãã ããããã¹ã¿ã¼ããã¡ãã¥ã¼ã§ããã¹ã¦ã®ããã°ã©ã ã-> Molby ã¨ãã©ã£ã¦ãã ããã
@@ -200,8 +203,18 @@ Molbyãã©ã«ãã®ä¸ã«ã¢ã³ã¤ã³ã¹ãã¼ã©ãããã¾ãããã¹ã¿ã¼ Molby is a copyrighted product of Toshi Nagata.
-Copyright (C) 2009-2010 Toshi Nagata +Copyright (C) 2008-2022 Toshi Nagata +
++I ask for citation of the following paper in published works that utilize Molby: +
+++Toshi Nagata, "Molby - Graphical Molecular Modeling Software with Integrated Ruby Interpreter," +
+
+Bull. Chem. Soc. Jpn. 2014, 87, 902-904. DOI:10.1246/bcsj.20140093
Molby includes the following softwares, which are copyrighted products as described below:
@@ -210,31 +223,42 @@ Molby includes the following softwares, which are copyrighted products as descri AmberTools 1.3: Copyright (C) Junmei Wang, Ross C. Walker, Michael F. Crowley, Scott Brozell and David A. Case-Molby is distributed under the GNU General Public License (version 2). +Molby is distributed under the GNU General Public License (version 3).
-Molby: An Interactive Molecular Modeling Software with Integrated Ruby Interpreter +Molby: Interactive Molecular Modeling Software with Integrated Ruby Interpreter
-Copyright (C) 2009 Toshi Nagata +Copyright (C) 2008-2022 Toshi Nagata
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +the Free Software Foundation; either version 3 of the License, or (at your option) any later version.
@@ -252,8 +276,17 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the Molby ã®èä½æ¨©ã¯æ°¸ç°ã央ãä¿æãã¦ãã¾ãã
-Copyright (C) 2009-2010 Toshi Nagata +Copyright (C) 2008-2022 Toshi Nagata +
++Molby ãå©ç¨ããææãçºè¡¨ãããéã¯ã以ä¸ã®è«æãå¼ç¨ãã¦ããã ããããé¡ããã¾ãã +
+++Toshi Nagata, "Molby - Graphical Molecular Modeling Software with Integrated Ruby Interpreter,"
+
+Bull. Chem. Soc. Jpn. 2014, 87, 902-904. DOI:10.1246/bcsj.20140093Molby ã¯ä»¥ä¸ã®ã½ããã¦ã§ã¢ãå«ãã§ãã¾ããããããã®èä½æ¨©è¡¨ç¤ºã¯ä¸ã®éãã§ãã
@@ -262,33 +295,47 @@ Molby ã¯ä»¥ä¸ã®ã½ããã¦ã§ã¢ãå«ãã§ãã¾ããããããã®è AmberTools 1.3: Copyright (C) Junmei Wang, Ross C. Walker, Michael F. Crowley, Scott Brozell and David A. Case-wxWidgets 2.8.9: Copyright (C) 1992-2008 Julian Smart, Robert Roebling, Vadim Zeitlin and other members of the wxWidgets team. Portions (c) 1996 Artificial Intelligence Applications Institute +wxWidgets 3.2.0: Copyright (C) 1992-2022 Julian Smart, Robert Roebling, Vadim Zeitlin and other members of the wxWidgets team. Portions (c) 1996 Artificial Intelligence Applications Institute + ++Ruby 2.0.0: Copyright (C) 1993-2013 Yukihiro Matsumoto + ++CLAPACK: Copyright (C) 1992-2008 The University of Tennessee. All rights reserved. + ++FFTW 3.3.2: Copyright (C) 2003, 2007-11 Matteo Frigo and Massachusetts Institute of Technology + ++ORTEP III: The citation is made like below. There are no copyright notice, but it is likely to be put in public domain.
+Burnett, M. N.; Johnson, C. K. ORTEP-III: Oak Ridge Thermal Ellipsoid Plot Program for Crystal Structure Illustrations, Oak Ridge National Laboratory Report ORNL-6895, 1996.-Ruby 1.8.7: Copyright (C) 1993-2009 Yukihiro Matsumoto +JANPA: Copyright (C) 2014, Tymofii Nikolaienko.
+See the software license for JANPA package of programs.2. ã©ã¤ã»ã³ã¹
-Molby 㯠GNU General Public License (GNU ä¸è¬å ¬è¡å©ç¨è¨±è«¾å¥ç´æ¸, version 2) ã«å¾ã£ã¦é å¸ãã¾ãã +Molby 㯠GNU General Public License (GNU ä¸è¬å ¬è¡å©ç¨è¨±è«¾å¥ç´æ¸, version 3) ã«å¾ã£ã¦é å¸ãã¾ãã
Molby: 対話åååã¢ãã«ã½ããã¦ã§ã¢ï¼Ruby ã¤ã³ã¿ããªã¿å èµï¼
-Copyright (C) 2009 Toshi Nagata +Copyright (C) 2008-2022 Toshi Nagata
-ãã®ããã°ã©ã ã¯ããªã¼ã½ããã¦ã§ã¢ã§ããããªãã¯ããããããªã¼ã½ããã¦ã§ã¢è²¡å£ã«ãã£ã¦çºè¡ããã GNU ä¸è¬å ¬è¡å©ç¨è¨±è«¾å¥ç´æ¸(ãã¼ã¸ã§ã³2ããå¸æã«ãã£ã¦ã¯ãã以éã®ãã¼ã¸ã§ã³ã®ãã¡ã©ãã)ã®å®ããæ¡ä»¶ã®ä¸ã§åé å¸ã¾ãã¯æ¹å¤ãããã¨ãã§ãã¾ãã +ãã®ããã°ã©ã ã¯ããªã¼ã½ããã¦ã§ã¢ã§ããããªãã¯ããããããªã¼ã½ããã¦ã§ã¢è²¡å£ã«ãã£ã¦çºè¡ããã GNU ä¸è¬å ¬è¡å©ç¨è¨±è«¾å¥ç´æ¸(ãã¼ã¸ã§ã³3ããå¸æã«ãã£ã¦ã¯ãã以éã®ãã¼ã¸ã§ã³ã®ãã¡ã©ãã)ã®å®ããæ¡ä»¶ã®ä¸ã§åé å¸ã¾ãã¯æ¹å¤ãããã¨ãã§ãã¾ãã
ãã®ããã°ã©ã ã¯æç¨ã§ãããã¨ãé¡ã£ã¦é å¸ããã¾ããã*å ¨ãã®ç¡ä¿è¨¼* ã§ããåæ¥å¯è½æ§ã®ä¿è¨¼ãç¹å®ã®ç®çã¸ã®é©åæ§ã¯ãè¨å¤ã«ç¤ºããããã®ãå«ãå ¨ãåå¨ãã¾ããã詳ããã¯GNU ä¸è¬å ¬è¡å©ç¨è¨±è«¾å¥ç´æ¸ãã覧ãã ããã
-åèã®ãããGNU ä¸è¬å ¬è¡å©ç¨è¨±è«¾å¥ç´æ¸ã®éå ¬å¼æ¥æ¬èªè¨³ãæ·»ä»ãã¾ãããã ããæ£å¼ãªææ¸ã¯è±èªçã®æ¹ã§ãã +åèã®ãããGNU ä¸è¬å ¬è¡å©ç¨è¨±è«¾å¥ç´æ¸ã®éå ¬å¼æ¥æ¬èªè¨³ãæ·»ä»ãã¾ãããã ããæ£å¼ãªææ¸ã¯è±èªçã®æ¹ã§ãã
Start up Molby. You will see a blank window like below. This is the main window to manipulate your molecule.
-Suppose you want a benzene molecule. Double-click on the black area, and you will be asked to "enter formula". Type "C6H6" and hit "OK".
-Then you see a benzene molecule in the black area. The atoms and bonds are drawn in red, which means these atoms and bonds are "selected". On the left to this area, there is a table, which shows in numbers the positions of all atoms, and other useful information. We will get into this part in more details later.
-You can rotate the molecule around by use of the three bars on the both sides and the bottom of the black area. Press the left button of the mouse on one of these bars, and try dragging.
-Note: the functions of the rotation bars do not change.
-Next, press the button "Scale". The window is now in "Scale" mode, and you can expand and shrink the molecule by dragging in the black area.
--The "Fit to Screen" menu command, avaiable under the "Show" menu, is a convenient way to fit the whole molecule to the window. +The "Fit to Screen" menu command, avaiable under the "View" menu, is a convenient way to fit the whole molecule to the window.
-Now you have learned how to move the whole molecule around. In the next chapter, you will learn how to edit the molecule.
@@ -371,20 +418,20 @@ Now you have learned how to move the whole molecule around. In the next chapter,Molbyãç«ã¡ä¸ãã¦ãã ãããä¸ã®ãããªç©ºã®ã¦ã£ã³ãã¦ãç¾ãã¾ãããã®ã¦ã£ã³ãã¦ããååãåãæ±ãããã®ã¡ã¤ã³ã¦ã£ã³ãã¦ã§ãã
-ãã³ã¼ã³ååãä½ã£ã¦ã¿ããã¨ãã¾ããç»é¢ã®é»ãã¨ããï¼ç·¨éã¨ãªã¢ï¼ãããã«ã¯ãªãã¯ããã¨ã"enter formula" ã¨æ示ãåºã¾ãã"C6H6" ã¨ã¿ã¤ããã¦ãOK ãæ¼ãã¾ãã
-ç·¨éã¨ãªã¢ã«ãã³ã¼ã³ååãç¾ãã¾ããååã¨çµåã¯èµ¤è²ã§æããã¦ãã¾ãããããã¯ãé¸æããã¦ãããã¨ãã表示ã§ããå·¦å´ã«ã¯è¡¨ããããååã®ä½ç½®ãªã©ã®æ å ±ãæ°å¤ã§è¡¨ç¤ºãã¦ãã¾ãããã®é¨åã«ã¤ãã¦ã¯ããã¨ã§è©³ãã使ãæ¹ãåºã¦ãã¾ãã
-ç·¨éã¨ãªã¢ã®ä¸¡å´ã¨ä¸ã«ã¯ãååãå転ããããã¼ãããã¾ãããã®ãã¼ã§ãã¦ã¹ãã¿ã³ãæ¼ãããã®ã¾ã¾ãã©ãã°ãã¦ã¿ã¦ãã ããã
-注: å転ãã¼ã®æ©è½ã¯å¤ããã¾ããã
-次ã«ã"Scale" ã¨æ¸ããããã¿ã³ãæ¼ãã¦ãã ãããã¦ã£ã³ãã¦ã¯ãæ¡å¤§ç¸®å° (Scale)ãã¢ã¼ãã«ãªãã¾ããç·¨éã¨ãªã¢ã§ãã¦ã¹ããã©ãã°ããã¨ãååå ¨ä½ãæ¡å¤§ã»ç¸®å°ãããã¨ãã§ãã¾ãã
--"Show" ã¡ãã¥ã¼ã®ä¸ã« "Fit to Screen" ã¡ãã¥ã¼ã³ãã³ããããã¾ãããã®ã³ãã³ãã¯ãååãã¦ã£ã³ãã¦ãµã¤ãºã«åããã¦è¡¨ç¤ºãããã¨ãã«ä¾¿å©ã§ãã +"View" ã¡ãã¥ã¼ã®ä¸ã« "Fit to Screen" ã¡ãã¥ã¼ã³ãã³ããããã¾ãããã®ã³ãã³ãã¯ãååãã¦ã£ã³ãã¦ãµã¤ãºã«åããã¦è¡¨ç¤ºãããã¨ãã«ä¾¿å©ã§ãã
-ååãç»é¢ä¸ã§åããæ¹æ³ããããã¾ããã次ã¯ãç·¨éã®ããæ¹ã説æãã¾ãã
@@ -432,19 +479,19 @@ Suppose you have a benzene molecule now, and want to append a methyl substituentPress the button "Select", and click on the black area where no atom nor bond is present. The selection becomes canceled.
-Select one of the hydrogen atoms. There are two ways to do this. You can click on the target atom, or you can drag to select atoms within a rectangular region.
-
Double-click on the hydrogen atom. This time, be sure to hit the selection! Then you will see the dialog "enter formula" as shown below. Type "CH3" in the text box and hit "OK".
-Now you get toluene.
-You want to save the result to a file. Select "Save as..." from the File menu, choose the file format, enter the filename, and hit "Save".
@@ -458,15 +505,15 @@ After building a molecule, you may want to move some part of a molecule. Here arSelect the methyl group of the toluene, if you have not done so yet (Tip: you can add to the current selection by shift-clicking). Press the left rotation bar (marked "3" in the previous page), and drag up and down. You will see the methyl group rotates to the right and left.
-The same manipulation can be achieved by selecting one bond and dragging the left rotation bar. In this case, you can also rotate the benzene ring (with the methyl group fixed) by pressing Option (Mac) or Alt (Win) key when dragging.
-The selected atoms can be dragged to give a translational move. Use this feature with care, because it may result in a chemically unnatural structure.
-We have already learned one way to add atoms: double-clicking on the selected part of the molecule (or on the black area where nothing is present), and type-in the formula. Actually, this is the most convenient way to add atoms in Molby. However, there are also other ways to add atoms. @@ -478,31 +525,31 @@ Look at our familiar toluene molecule. Suppose we want to convert it to indane.
Rotate the molecule so that its orientation matches the chemical structure. We will start from C3, add two carbons, and then close the ring.
-Press the "Erase" button above the black area. Click on the "H3" hydrogen. The hydrogen atom and the bond between C3 and H3 disappear.
-Press the "Bond" button. Drag from the C3 atom to the right-bottom, and release the mouse button. A new atom and a bond to C3 are created. Drag from the new atom to the right-up, and another atom and bond are created.
-
Press the "Erase" button again, and erase one hydrogen from the methyl group. Press the "Select" button, select the benzene-methylene bond, and rotate the methylene group as appropriate for the five-membered ring, by use of the left rotation bar.
-
Now you can close the ring. Press the "Bond" button, and drag from the methylene carbon. When the mouse cursor comes close enough to the target carbon, the new atom will snap to the target and make a new bond. Then release the mouse button.
-Finally, you want to add hydrogens to the newly created carbons. Press the "Select" button, and select these two carbons. Go to the "Edit" menu, and select the "Add Hydrogen" -> "Tetrahedral sp3" menu command.
-Here is the result.
-A similar result can be achieved by selecting the hydrogen ortho to the methyl group, double-click it, type "CH2CH3" in, erase one hydrogen atom from each of the methyl groups, and make a bond. This is better because the newly created methylenes have reasonable bond lengths and angles as methylene groups. The above example is just for explanation of the editing features.
@@ -516,19 +563,19 @@ A similar result can be achieved by selecting the hydrogen ortho to the methyl g"Select"ãã¿ã³ãæ¼ãã¦ãç·¨éã¨ãªã¢ã®ååãçµåããªãã¨ãããã¯ãªãã¯ãã¾ããé¸æã解é¤ãããååã®è¡¨ç¤ºã赤ããååãã¨ã®è²ã«å¤ããã¾ãã
-æ°´ç´ ååã®ä¸ã¤ãé¸æãã¾ããããæ¹ã¯äºã¤ããã¾ããé¸æãããååãã¯ãªãã¯ããããã¾ãã¯ãã©ãã°ã§ç¾ããåè§ãé åã®ä¸ã®ååãé¸æãã¾ãã
-
æ°´ç´ ååã®ä¸ã§ããã«ã¯ãªãã¯ãã¾ãããã®ã¨ããé¸æé¨åã®ä¸ã§ããã«ã¯ãªãã¯ããããã«æ³¨æãã¦ãã ããã"Enter formula"ã¨ãããã¤ã¢ãã°ãåºã¦ãã¾ãã"CH3"ã¨å ¥åãã"OK"ãæ¼ãã¾ãã
-ãã«ã¨ã³ãã§ãã¾ããã
-ãã¡ã¤ã«ã«ä¿åãã¦ããããæã¯ãé常éã File ã¡ãã¥ã¼ãã "Save as..." ãé¸ã³ããã¡ã¤ã«ãã©ã¼ããããé¸ã³ããã¡ã¤ã«åãã¿ã¤ãã㦠"Save" ãæ¼ãã¾ãã
@@ -543,15 +590,15 @@ Molby ã®æ¨æºãã¡ã¤ã«ãã©ã¼ããã㯠"mbsf" (Molbyãã«ã¨ã³ã®ã¡ãã«åºãé¸æãã¾ãï¼ã³ãï¼ã·ãããã¼ãæ¼ããªããã¯ãªãã¯ããã¨ãç¾å¨ã®é¸æç¯å²ã«ååãä»ãå ãããã¨ãã§ãã¾ãï¼ãå·¦ã®å転ãã¼ï¼åãã¼ã¸ã§â¢ã¨æ¸ããã¦ãããã®ï¼ã§ãã¦ã¹ãã¿ã³ãæ¼ããä¸ä¸ã«ãã©ãã°ãã¦ãã ãããã¡ãã«åºãå³å·¦ã«å転ããã®ããããã¾ãã
-åãæä½ã¯ãçµåãï¼ã¤é¸æãã¦å·¦ã®å転ãã¼ããã©ãã°ãã¦ãã§ãã¾ãããã®å ´åãã¡ãã«åºãåºå®ãã¦ãã³ã¼ã³ç°ã®æ¹ãåããã¨ãã§ãã¾ãããã©ãã°ã®æã«Optionãã¼(Mac)ãAltãã¼(Win)ãæ¼ãã¦ãã ããã
-é¸æããååããã©ãã°ããã¨å¹³è¡ç§»åã§ãã¾ããåå¦çã«ä¸èªç¶ãªæ§é ã«ãªãã¾ãã®ã§ã注æãå¿ è¦ã§ãã
-ååã追å ããæ¹æ³ã¯ãã§ã«ä¸ã¤èª¬æãã¾ãããé¸æé¨åã¾ãã¯ç·¨éã¨ãªã¢ã®ä½ããªãã¨ãããããã«ã¯ãªãã¯ãã¦ãæ§é å¼ãã¿ã¤ãããæ¹æ³ã§ããå®éãMolbyã§ååã追å ããã«ã¯ãããæã便å©ã§ããããããä»ã®æ¹æ³ãããã¾ãã®ã§ããããç´¹ä»ãã¾ãã @@ -563,31 +610,31 @@ Molby ã®æ¨æºãã¡ã¤ã«ãã©ã¼ããã㯠"mbsf" (Molby
ååãå転ããã¦ãåå¦æ§é å¼ã¨åãåãã«ãªãããã«ãã¾ããC3ããå§ãã¦ãçç´ ååãï¼ã¤è¿½å ããç°ãéãããã¨ã«ãã¾ãã
-ç·¨éã¨ãªã¢ã®ä¸ã®"Erase"ãã¿ã³ãæ¼ãã¾ãã"H3"æ°´ç´ ãã¯ãªãã¯ãã¾ãããã®æ°´ç´ ååã¨ãC3-H3ã®çµåãæ¶ãã¾ãã
-"Bond"ãã¿ã³ãæ¼ãã¾ããC3ååããå³ä¸ã«ãã©ãã°ãããã¦ã¹ãã¿ã³ãé¢ãã¾ããæ°ããååã¨ããã®ååã¨C3ã®éã®çµåãæ°ããä½ããã¾ããæ°ããååããå³ä¸ã«ãã©ãã°ããã¨ãããä¸ã¤ã®ååã¨çµåãä½ããã¾ãã
-
"Erase"ãã¿ã³ãããä¸åº¦æ¼ãã¦ãã¡ãã«åºã®ååãä¸ã¤æ¶ãã¾ãã"Select"ãã¿ã³ãæ¼ãã¦ããã³ã¼ã³ç°ã¨ã¡ãã¬ã³çç´ ï¼ä»æ°´ç´ ååãä¸ã¤æ¶ããã¨ããï¼ã®éã®çµåãé¸æãã¾ããå·¦ã®å転ãã¼ã使ã£ã¦ãäºå¡ç°ã«é©åãªåãã«ãªãããã«ã¡ãã¬ã³åºãå転ããã¾ãã
-
ç°ãéãã¾ãã"Bond"ãã¿ã³ãæ¼ããã¡ãã¬ã³çç´ ååããå³ä¸ã®çç´ ååã¸ãã©ãã°ãã¾ãããã¦ã¹ã«ã¼ã½ã«ãç®æ¨ã®çç´ ååã«è¿ã¥ãã¨ããã©ãã°ãã¦ã§ããçµåãçç´ ååã«ãã£ã¤ãã¾ããããã§ãã¦ã¹ãã¿ã³ãé¢ãã¾ãã
-æå¾ã«ãæ°ããä½ã£ãäºã¤ã®çç´ ååã«æ°´ç´ ååãä»å ãã¾ãã"Select"ãã¿ã³ãæ¼ãã¦ããã¦ã¹ã使ã£ã¦äºã¤ã®çç´ ååãé¸æãã¾ãã"Edit"ã¡ãã¥ã¼ããã"Add Hydrogen"->"Tetrahedral sp3"ã³ãã³ããå®è¡ãã¾ãã
-çµæã¯ãã®ããã«ãªãã¾ãã
-ãã«ã¨ã³ããã¤ã³ãã³ã¯æ¬¡ã®ãããªæä½ã§ãä½ããã¨ãã§ãã¾ããã¡ãã«åºã®ãªã«ãä½ã®æ°´ç´ ååãé¸æãããã«ã¯ãªãã¯ããã¤ã¢ãã°ãåºãã"CH2CH3"ã¨å ¥åãäºã¤ã®ã¡ãã«åºããããããæ°´ç´ ååãä¸ã¤åé¤ãçµåå転ã§åãã調æ´ãçµåãä½æããã®æ¹æ³ã®æ¹ããæ°ããä½ã£ãã¡ãã¬ã³åºã®çµåè·é¢ã»çµåè§ãæ£ãããªããããããããçµæã«ãªãã¾ããä¸ã®ä¾ã¯ãç·¨éæä½ã®èª¬æã®ããã®ãã®ã¨èãã¦ãã ããã
@@ -607,57 +654,57 @@ Like any other decent "editing" applications, Molby has a capability of cut/copyWe start from the toluene molecule again. Select the methyl group and do copy.
-Unselect the methyl group, and do paste. Another methyl group appears, with no connection to the existing atoms. This is how "paste" works when nothing is selected beforehand.
-Now we will see what happens when something is selected before pasting. As described above, start with the toluene molecule, select the methyl group, and copy it. Unselect the methyl group, and this time select the hydrogen atom that is "ortho" to the methyl group.
-Do paste. The selected hydrogen atom is replaced with the pasted methyl group. Note that a new bond is created between the pasted methyl carbon and the ortho carbon, with an acceptable bond length and angles.
-The dihedral angle may not be acceptable. In that case, you can rotate the pasted fragment by use of the left rotation bar until the dihedral angle looks good.
+This "select and paste" technique is very useful for building large molecules. Suppose we want to build an oligobenzamide.
-Create a "monomer", i.e. N-methyl-4-acetamidobenzamide. This is done by (1) create a benzene, (2) select H1, double-click, and enter "CONHCH3", (3) select H4, double-click, and enter "NHCOCH3". After entering each formula, you need to rotate the fragment to make the dihedral angle appropriate.
-Select the whole molecule except for the COCH3 group at the left. Do copy.
-Select the NHCH3 group at the right. Do paste.
--The newly created amide bond has a bad dihedral angle. Rotate the pasted fragment by the left rotation bar, so that the amide bond becomes properly trans. +A new amide bond is created and the dimer is formed.
-Select "Fit to Screen" from the "Show" menu, to make the whole molecule visible.
-Repeat these procedures to make the tetramer.
-Make one more iteration to make the octamer.
-ãµããã³ãã«ã¨ã³ååããå§ãã¾ããã¡ãã«åºãé¸æãã¦ãã³ãã¼ãã¾ãã
-ã¡ãã«åºã®é¸æã解é¤ãã¦ããã¼ã¹ããå®è¡ãã¾ããä»ã®ååã¨çµåãã¦ããªãã¡ãã«åºãããä¸ã¤ç¾ãã¾ããååãé¸æããã¦ããªãç¶æ ã§ããã¼ã¹ããããã¨ããã®ãããªåä½ã«ãªãã¾ãã
-ä»åº¦ã¯ããã¼ã¹ãããåã«ååãé¸æããã¦ããã¨ãã«ã©ããªãããè¦ã¦ã¿ã¾ããä¸ã¨åãããã«ããã«ã¨ã³ããå§ãã¦ãã¡ãã«åºãé¸æãã¦ãã³ãã¼ãã¾ããã¡ãã«åºã®é¸æã解é¤ãã¦ãä»åº¦ã¯ã¡ãã«åºã®ãªã«ãä½ã®æ°´ç´ ååãé¸æãã¾ãã
-ãã¼ã¹ããå®è¡ãã¾ããé¸æãããæ°´ç´ ååãã¡ãã«åºã«ç½®ãæããã¾ãããªã«ãä½ã®çç´ ã¨ã¡ãã«åºã®éã«æ°ããçµåãã§ãããã®é·ãã¨çµåè§ãé©åãªãã®ã«ãªã£ã¦ãããã¨ããããã¾ãã
--äºé¢è§ã¯é©åã¨ã¯ãããªãããç¥ãã¾ããããã®å ´åã¯ããã¼ã¹ããããã°ã«ã¼ããå·¦ã®å転ãã¼ã使ã£ã¦å転ããã¦ãé©åãªäºé¢è§ã«ãã¾ãã +äºé¢è§ã¯é©åã§ãªããã¨ãããã¾ãããã®å ´åã¯ããã¼ã¹ããããã°ã«ã¼ããå·¦ã®å転ãã¼ã使ã£ã¦å転ããã¦ãé©åãªäºé¢è§ã«ãã¾ãã
+ãã®ãé¸æãã¦ãã¼ã¹ããã®ãã¯ããã¯ã¯ã大ããªååãä½ãã¨ãã«ããã¸ãå½¹ã«ç«ã¡ã¾ãããã¨ãã°ããªãªã´ãã³ãºã¢ãããä½ãããã¨ãã¾ãã
-ã¾ãããã¢ããã¼ãã¨ãªã N-ã¡ãã«-4-ã¢ã»ãã¢ãããã³ãºã¢ãããä½ãã¾ãã次ã®ããã«ãã¾ãï¼(1) ãã³ã¼ã³ãä½ãã(2) H1 ãé¸æãã¦ããã«ã¯ãªãã¯ãããCONHCH3ãã¨ã¿ã¤ãããã(3) H4 ãé¸æãã¦ããã«ã¯ãªãã¯ãããNHCOCH3ãã¨ã¿ã¤ããããåå¦å¼ãã¿ã¤ããããã¨ã¯ãä½æãããã©ã°ã¡ã³ããå転ããã¦äºé¢è§ã調æ´ãã¦ããã¾ãã
-左端㮠COCH3 以å¤å ¨é¨ãé¸æããã³ãã¼ãã¾ãã
-å³ç«¯ã® NHCH3 ãé¸æããããã¼ã¹ãããå®è¡ãã¾ãã
--æ°ããä½ãããã¢ããçµåã¯äºé¢è§ãä¸é©åã§ããå·¦ã®å転ãã¼ã使ã£ã¦ãã¼ã¹ããããã©ã°ã¡ã³ããå転ããã¢ããçµåãæ£ãã trans ã«ãªãããã«ãã¾ãã +æ°ããã¢ããçµåãä½ãããäºéä½ãã§ãã¾ãã
-"Show" ã¡ãã¥ã¼ãã "Fit to Screen" ãé¸ã³ãååå ¨ä½ãè¦ããããã«ãã¾ãã
-ãã®æä½ãç¹°ãè¿ãã¦ãåéä½ãä½ãã¾ãã
-ããä¸åº¦ç¹°ãè¿ãã¦ãå «éä½ãä½ãã¾ãã
-+Molby has a capability to create a fused ring structure. As an example, here is presented yet another method to make indane. This time, we start from a benzene. +
++Choose "select" mode, and select C1 and C2 by clicking on the C1-C2 bond. +
++Double-click on the selection, and enter "cyclopentane" in the dialog box. +
++After pressing "OK", you will see a five-membered ring fused to the benzene ring. +
++Ring fusion also works when three or more atoms are selected in the original structure. For example, select the consecutive three carbons in indane as follows. +
++Double-click on the selection, and enter "C6H6" (or "benzene"). +
++Now we have acenaphthene...almost. +
++As shown in the above figure, there is an extra, leftover hydrogen atom on one bridgehead carbon. After all, Molby is not so smart --- it just removes one hydrogen from each terminal carbon atoms in the selection, and connect a portion of the fusing fragment ("benzene" in this case) so that the newly created ring has the same number of atoms. Consequently, the stereochemistry may become strange when sp3 carbons are present either in the original structure or in the fusing fragment. You may need to remove/append hydrogen atoms and clean up structures (see "Energy Minimization" for detail). +
++There is another way to make a ring fused structure, which includes copy and paste. Starting again from a benzene. +
++Open the "File" menu, and select "Open Predefined" → "Alicyclic" → "cyclopentane". +
++A new window named "*cyclopentane*" opens with one cyclopentane molecule. Select a portion containing three CH2 groups, and copy it by command-C or ctrl-C. +
++Return to the benzene molecule again, and this time select H1 and H2 (not C1 and C2). +
++Do paste by command-V or ctrl-V. You now get a indane molecule. +
++This "copy-and-paste" actually works in a similar way to previously described example (see "Cut/Copy/Paste"). When both the current selection and the fragment in the pasteboard have two terminals, they are connected and ring fusion takes place. This method of ring fusion is slightly more complicated than the "double-click and type-in" method, but it may be easier to understand. +
++Molby ã¯ç¸®ç°æ§é ãä½ãããã®æ©è½ãæã£ã¦ãã¾ããä¾ã¨ãã¦ãã¤ã³ãã³ãä½ãããä¸ã¤ã®æ¹æ³ãç´¹ä»ãã¾ããä»åã¯ããã³ã¼ã³ããå§ãã¾ãã +
++"Select" ã¢ã¼ãã«ãã¦ãC1-C2 çµåãã¯ãªãã¯ã㦠C1 㨠C2 ãé¸æãã¾ãã +
++é¸æé¨åãããã«ã¯ãªãã¯ãã¦ããã¤ã¢ãã°ããã¯ã¹ã« "cyclopentane" ã¨å ¥åãã¾ãã +
++"OK" ãæ¼ãã¨ãï¼å¡ç°ããã³ã¼ã³ç°ã«ç¸®ç°ãã¾ãã +
++é¸æé¨åãï¼å以ä¸ã®ååãå«ãã§ãã¦ãã縮ç°ã¯å¯è½ã§ããä¾ãã°ãã¤ã³ãã³ã§å³ã®ããã«ï¼ã¤ã®é£ç¶ããçç´ ååãé¸æãã¦ã¿ã¾ãã +
++é¸æé¨åãããã«ã¯ãªãã¯ãã¦ã"C6H6"ï¼ã¾ã㯠"benzene"ï¼ã¨å ¥åãã¾ãã +
++ããããã¨ãã¢ã»ãããã³ãã§ãã¾ã...ã ãããã +
++ä¸ã®å³ã«ç¤ºããããã«ãæ©é ä½ã®çç´ ã«ï¼ã¤ä½åãªæ°´ç´ ååãæ®ã£ã¦ãã¾ãã¾ããå®ã®ã¨ãããMolby ã¯ããã¾ãè³¢ãããã¾ãããé¸æé¨åã®ä¸¡ç«¯ã®ååããæ°´ç´ ååãï¼ã¤ãã¤åãé¤ãã¦ã縮ç°ããååï¼ãã®å ´åã¯ãã³ã¼ã³ï¼ã®ä¸é¨ããããã«çµåãã¦ãçæããç°ã®ååæ°ãä¸è´ããããã«ãã¦ããã ãã§ãããã®ãããå ã®é¸æé¨åã¾ãã¯ç¸®ç°ããååã sp3 çç´ ãå«ãã§ããã¨ãç«ä½åå¦ãå¤ã«ãªããã¨ãããã¾ããæ°´ç´ ååãé¤ãããä»ãå ããããã¦ãããã«æ§é ãæé©åããå¿ è¦ãããã§ãããï¼è©³ããã¯ãã¨ãã«ã®ã¼æå°åããè¦ã¦ãã ããï¼ã +
++縮ç°æ§é ãä½ãã«ã¯ãã³ãã¼ï¼ãã¼ã¹ãã使ã£ãããä¸ã¤ã®æ¹æ³ãããã¾ããã¾ããã³ã¼ã³ããå§ãã¾ãããã +
++"File" ã¡ãã¥ã¼ãéãã"Open Predefined" → "Alicyclic" → "cyclopentane" ãé¸ãã§ãã ããã +
++"*cyclopentane*"ã¨ããååã®æ°ããã¦ã£ã³ãã¦ãéããã·ã¯ããã³ã¿ã³ååãå ¥ã£ã¦ãã¾ããï¼ã¤ã®ã¡ãã¬ã³åºãé¸æãã¦ãã³ãã³ã-C ã¾ãã¯ã³ã³ããã¼ã«-C ã§ã³ãã¼ãã¦ãã ããã +
++ãã³ã¼ã³ååã«æ»ã£ã¦ãä»åº¦ã¯ H1 㨠H2ï¼C1 㨠C2 ã§ã¯ãªãï¼ãé¸æãã¦ãã ããã +
++ã³ãã³ã-V ã¾ãã¯ã³ã³ããã¼ã«-V ã§ãã¼ã¹ããã¦ãã ãããã¤ã³ãã³ãã§ãã¾ãã +
++ãã®ãã³ãã¼ï¼ãã¼ã¹ããã¯ãå®ã¯åã«èª¬æããã®ã¨ (ã«ããï¼ã³ãã¼ï¼ãã¼ã¹ã) åãããã«æ©è½ãã¦ãã¾ããç¾å¨ã®é¸æé¨åã¨ã¯ãªãããã¼ãã®å 容ãã¨ãã«ãï¼ã¤ã®æ«ç«¯ããæã£ã¦ããã¨ããæ«ç«¯å士ãã¤ãªãããããã縮ç°ããããã«è¦ããã®ã§ãããã®æ¹æ³ã«ãã縮ç°ã¯ãããã«ã¯ãªãã¯ï¼å ¥åãã®æ¹æ³ãããå°ãè¤éã§ãããä½ãèµ·ãã¦ãããã¯ãã¡ãã®æ¹ãç解ããããããããã¾ããã +
++A molecule has many properties. It has a set of atoms and bonds. An atom has a name, an atom type, an element, a weight (which can be derived from the element), a charge, coordinates, and so on. According to the custom in the biomolecular modeling, atoms are grouped in "residues." It also has a set of parameters used in molecular mechanics. Molby also has a limited support for quantum chemical calculations. In relation to that, a molecule in Molby can retain extra information such as MO coefficients. +
++Many of these information are accessible via the property table. The table is on the left side of the model window. +
++The table now shows the properties of each atom, namely its name, type, element, "residue" name and index, coordinates and partial charge. The property can be edited by double-clicking on the text. +
++When return (enter) or tab key is pressed, the edited value is finalized, and editing will continue on another cell. Pressing return, shift-return, tab, or shift-tab should cause editing of the bottom, above, right, or left cell, respectively. If you want to finish editing, use option- (or alt-) return key combination. +
++Several points are worth mentioning here. +
++(1) The atom index (the leftmost column) cannot be edited. If you want to change the order of the atoms, try using a "drag-and-drop" feature, as shown in the figure below. +
+
+
+(2) The residue column shows the residue name and index separated by a period. Manual editing of this cell may lead to a surprising result. For example, if you change the residue name of atom 0 from "RES" to "XXX", all atoms having residue index "1" will also have the new residue name "XXX". +
+
+
+This behavior is based on the principle that all residue names and indices should be consistent, i.e. the atoms having the same residue index should have the same residue name. This is sometimes convenient, but in many cases it causes confusion. +
++A more recommended way to change the residue name and index is to use the menu command "Assign Residue...", in the "Script" menu, after selecting atoms you want to assign one residue name and index. +
+
+
+
+
+
+
+
+The property table can also show other information. The type of information can be selected at the popup menu. +
++The bond, angle, dihedral, and improper tables show the indices, names, and types of the constituent atoms. In addition, the quantities (bond lengths, angles, etc.) and the molecular mechanics parameters (only after MM/MD calculation is performed) are also shown. +
++The bonds, angles, etc. are not editable in the property table. At present, the only way to create/delete bonds from GUI is to use the mouse operation "Bond" or "Erase". +
+ ++The parameter table shows the molecular mechanics parameters in one table. +
++The parameters are grouped in several classes, namely "VDWs", "Bonds", "Angles", "Dihedrals", "Impropers", and "VDW Pairs". +
++The "VDWs" parameters are for the van der Waals nonbonding interaction, described by "eps" (the energy at the potential minimum in kcal/mol), "r" (the van der Waals radius in Å, which is half of the interatomic distance at the equilibrium state), "eps14", "r14" (eps and r for the pair of atoms separated by exactly three bonds. In many applications, the same parameters with the ordinary pair are used with a specific factor multiplied), "atomNo" (the atomic number), "weight" (the atomic weight). The last two are usually overridden by the atom parameters. +
++The "Bonds" parameters consist of "k" (the force constant in kcal/mol/Å2) and "r0" (the equilibrium bond length). The "Angles" parameters consist of "k" (the force constant in kcal/mol/radian2) and "a0" (the equilibrium bond angle). The "Dihedrals" and "Impropers" parameters consist of "k" (the force constant in kcal/mol/radian2), "period" (the periodicity), and "phi0" (the equilibrium torsion angle in degree). The "VDW Pairs" parameters are (rarely) used to describe pair-specific van der Waals interactions, and consist of "eps", "r", "eps14", and "r14". +
++There is another important property for each parameter, that is, whether the parameter is taken from the "global" source (i.e. not specific to this molecule), or it is "local" (specific to this molecule), or "undefined". This property is shown by the color of the row. The global parameters are shown in white cells, the local ones in pale yellow, and the undefined ones in red. +
++You can edit the parameters (although you need to be familiar with MM parameters and to know what you are doing!), but only if they are "local" or "undefined" parameters. The "global" parameters cannot be edited because it may be also used in other molecules, where the edited parameters may not be appropriate. If you want to modify some parameters but they are "global", then you can make them "local" by copying the parameters and the pasting. +
++Another way to create a "local" parameter is to use the "Create New Parameter" menu command in the Edit menu. You can choose the parameter type in the submenu. +
+
+
+If some parameters are not to be used for calculation, you can "cut" the parameters from the table. This feature is useful when you have many duplicated parameters having different force constants. (In actual calculation, the parameter appearing later in the table will be used.) +
+ ++ååã¯ãããããªå±æ§ãæã£ã¦ãã¾ããã¾ãååã¨çµåãããã¾ããååã¯ååãååã¿ã¤ããå ç´ ãååéï¼å ç´ ã決ã¾ãã°æ±ºã¾ãï¼ãé»è·ã座æ¨ããªã©ãã¾ããçåå¦ã®ç¿æ £ã«å¾ããååã¯ãæ®åºãã§ã°ã«ã¼ãåããã¦ãã¾ããååã¯ã¾ããåååå¦ã®ãã©ã¡ã¼ã¿ãæã£ã¦ãã¾ããMolby ã¯ã¾ãéååå¦è¨ç®ãé¨åçã«ãµãã¼ããã¾ããããã¨é¢é£ãã¦ãååã«ååè»éä¿æ°ãªã©ã®æ å ±ãæããããã¨ãã§ãã¾ãã +
++ãããã®æ å ±ã®å¤ãã¯ãå±æ§ãã¼ãã«ãã§è¦ããã¨ãã§ãã¾ããå±æ§ãã¼ãã«ã¯ãååã¢ãã«ã®ã¦ã£ã³ãã¦ã®å·¦ååã«ããã¾ãã +
++å³ã§ã¯ããã¼ãã«ã¯ååã®å±æ§ã表示ãã¦ãã¾ããååãååã¿ã¤ããå ç´ ãæ®åºåã¨æ®åºçªå·ã座æ¨ãé¨åé»è·ã§ãããããã®å±æ§ã¯ããã«ã¯ãªãã¯ãã¦ç·¨éãããã¨ãã§ãã¾ãã +
++ãªã¿ã¼ã³ï¼ã¨ã³ã¿ã¼ï¼ã¾ãã¯ã¿ããã¼ãæ¼ãã¨ãç·¨éããå¤ã¯ç¢ºå®ãããå¥ã®ã»ã«ãç·¨éç¶æ ã«ãªãã¾ãããªã¿ã¼ã³ãã·ããï¼ãªã¿ã¼ã³ãã¿ããã·ããï¼ã¿ãã§ããããä¸ã»ä¸ã»å³ã»å·¦ã®ã»ã«ã«ç§»åãã¾ããç·¨éãçµäºãããæã¯ããªãã·ã§ã³ï¼Windows ã§ã¯ Altï¼ï¼ãªã¿ã¼ã³ã使ã£ã¦ãã ããã +
++ããã¤ã注æç¹ãããã¾ãã +
++(1) ååã®ã¤ã³ããã¯ã¹ï¼ä¸çªå·¦ã®åï¼ã¯ç·¨éã§ãã¾ãããååã®é åºãå¤ãããæã¯ãä¸ã®å³ã«ããããã«ããã©ãã°ã»ã¢ã³ãã»ãããããæä½ã使ã£ã¦ãã ããã +
+
+
+(2) æ®åºã®åã«ã¯ãæ®åºã®ååã¨æ®åºçªå·ãããªãªãã§ã¤ãªãã§è¡¨ç¤ºããã¦ãã¾ãããã®ã»ã«ãç·¨éããã¨ãå¦ãªãã¨ãèµ·ãã¦é©ãããããã¾ããããã¨ãã°ãååï¼ã®æ®åºåã "RES" ãã "XXX" ã«å¤ããã¨ãæ®åºçªå·ã "1" ã§ãããã¹ã¦ã®ååã®æ®åºåã "XXX" ã«å¤ããã¾ãã +
+
+
+ãã®æåã¯ããã¹ã¦ã®æ®åºåã¨æ®åºçªå·ã¯çµ±ä¸ããã¦ããªããã°ãªããªããã¨ããåçã«ããã¾ããã¤ã¾ããåãæ®åºçªå·ãæã¤ååã®æ®åºåã¯åãã§ãªããã°ãªãã¾ãããæã«ã¯ãã®æåã便å©ã«ä½¿ãã¾ãããæ··ä¹±ãæããã¨ãå¤ãããã¾ãã +
++æ®åºåã¨æ®åºçªå·ãå¤æ´ãããå§ãã®æ¹æ³ã¯ãå¤æ´ãããååãé¸æã㦠"Script" ã¡ãã¥ã¼ã® "Assign Residue..." ã³ãã³ãã使ããã¨ã§ãã +
+
+
+
+
+
+
+
+å±æ§ãã¼ãã«ã¯ä»ã®æ å ±ã表示ãããã¨ãã§ãã¾ãããã¼ãã«ã®ç¨®é¡ã¯ãããã¢ããã¡ãã¥ã¼ã§é¸æã§ãã¾ãã +
++Bond, angle, dihedral, improper ãã¼ãã«ã¯ãããããçµåã»çµåè§ã»äºé¢è§ã»improper äºé¢è§ã®æ§æååã®ã¤ã³ããã¯ã¹ãååãååã¿ã¤ãã表示ãã¾ããã¾ããç¾å¨ã®å¤ï¼çµåé·ãè§åº¦ããªã©ï¼ã¨ãåååå¦ãã©ã¡ã¼ã¿ï¼MM/MD è¨ç®ãè¡ã£ãç´å¾ã«éããã¾ããï¼ã表示ããã¾ãã +
++ãã®ãã¼ãã«ã§ãçµåãçµåè§ãªã©ãç·¨éãããã¨ã¯ã§ãã¾ãããç¾å¨ãç»é¢ä¸ã®ã¤ã³ã¿ã¼ãã§ã¤ã¹ã使ã£ã¦çµåãä½ã£ããåé¤ãããããå¯ä¸ã®æ¹æ³ã¯ã"Bond", "Erase" ã®ãã¦ã¹æä½ã使ããã¨ã§ãã +
+ ++ãã©ã¡ã¼ã¿ãã¼ãã«ã¯ãåååå¦ãã©ã¡ã¼ã¿ã表示ãã¾ãã +
++ãã©ã¡ã¼ã¿ã¯ããã¤ãã®ç¨®é¡ã«ã°ã«ã¼ãåãããã¦ãã¾ãã"VDWs", "Bonds", "Angles", "Dihedrals", "Impropers", ãã㦠"VDW Pairs" ã§ãã +
++"VDWs" ãã©ã¡ã¼ã¿ã¯ãvan der Waals ç¸äºä½ç¨ã®ããã®ãã®ã§ãå¿ è¦ãªå¤ã¯ "eps"ï¼ããã³ã·ã£ã«æ¥µå°å¤ãkcal/molï¼ã"r"ï¼van der Waals åå¾ãÅãããã³ã·ã£ã«æ¥µå°ç¶æ ã§ã®ååéè·é¢ã® 1/2ï¼ã"eps14", "r14"ï¼çµåï¼ã¤ã§éã¦ãããï¼ã¤ã®ååéã® eps 㨠rãå¤ãã®åååå¦ããã±ã¼ã¸ã§ã¯ãé常ã®ååéã¨åããã©ã¡ã¼ã¿ã«ä¸å®ã®ä¿æ°ãããã¦ç¨ãããã¨ãå¤ãï¼ã"atomNo"ï¼ååçªå·ï¼ã"weight"ï¼ååéï¼ãæå¾ã®ï¼ã¤ã¯ããµã¤ãã¯åååã®ãã©ã¡ã¼ã¿ã§ä¸æ¸ãããã¾ãã +
++"Bonds" ãã©ã¡ã¼ã¿ã¯ã"k"ï¼çµåã®åã®å®æ°ãkcal/mol/Å2ï¼ã"r0"ï¼å¹³è¡¡çµåé·ããÅï¼ããæãã¾ãã"Angles" ãã©ã¡ã¼ã¿ã¯ã"k"ï¼çµåè§ã®åã®å®æ°ãkcal/mol/radian2ï¼ã"a0"ï¼å¹³è¡¡çµåè§ãdegreeï¼ããæãã¾ãã'Dihedrals", "Impropers" ãã©ã¡ã¼ã¿ã¯ã"k"ï¼åã®å®æ°ãkcal/mol/radian2ï¼ã"period"ï¼å¨æï¼ã"phi0"ï¼å¹³è¡¡äºé¢è§ãdegreeï¼ããæãã¾ãã"VDW Pairs" ãã©ã¡ã¼ã¿ã¯æ» å¤ã«ä½¿ããã¾ããããããååã®çµã¿åããã«ç¹æã® van der Waals ç¸äºä½ç¨ãè¨è¿°ãããã®ã§ã"eps", "r", "eps14", "r14" ããæãã¾ãã +
++ããããã®ãã©ã¡ã¼ã¿ã«ã¯ããä¸ã¤éè¦ãªç¹æ§ãããã¾ããããã¯ããã®ãã©ã¡ã¼ã¿ããã°ãã¼ãã«ããªã®ãï¼ã¤ã¾ããä»ã®ååã«ã使ãããå ±éã®å¤ãªã®ãï¼ãã¾ãã¯ããã¼ã«ã«ããªã®ãï¼ãã®ååã«ç¹æï¼ãã¾ãã¯ãæªå®ç¾©ããªã®ããã§ãããã®ç¹æ§ã¯ããã¼ãã«ã®è¡ã®è²ã§åºå¥ã§ãã¾ãããã°ãã¼ãã«ããªãã©ã¡ã¼ã¿ã¯ç½ãããã¼ã«ã«ãã¯ãããé»è²ããæªå®ç¾©ãã¯èµ¤è²ã®ã»ã«ã§ãã +
++ãã©ã¡ã¼ã¿ã¯ç·¨éãããã¨ãã§ãã¾ãï¼ããªããåååå¦ãã©ã¡ã¼ã¿ã«è©³ããã¦ãä½ããã¦ãããããã£ã¦ããã°ã®è©±ã ãã©ï¼ï¼ããã ãããã©ã¡ã¼ã¿ãããã¼ã«ã«ããæªå®ç¾©ãã®å ´åã ãã§ãããã°ãã¼ãã«ããã©ã¡ã¼ã¿ã¯ãä»ã®ååã§ã使ããã¦ããå¯è½æ§ããããããç·¨éã§ãã¾ããããã°ãã¼ãã«ããªãã©ã¡ã¼ã¿ãç·¨éãããæã¯ããã®ãã©ã¡ã¼ã¿ãã³ãã¼ã»ãã¼ã¹ããããã¨ã§ããã¼ã«ã«ããã©ã¡ã¼ã¿ã«ãããã¨ãã§ãã¾ãã +
++ããã¼ã«ã«ããªãã©ã¡ã¼ã¿ãä½ãããï¼ã¤ã®æ¹æ³ã¯ã"Edit" ã¡ãã¥ã¼ã® "Create New Parameter" ã³ãã³ãã使ããã¨ã§ãããã©ã¡ã¼ã¿ã®ç¨®é¡ããµãã¡ãã¥ã¼ããé¸ã¶ãã¨ãã§ãã¾ãã +
+
+
+ãããããã©ã¡ã¼ã¿ã¯è¨ç®ã«ä½¿ããªãã¨ããå ´åã«ã¯ããã®ãã©ã¡ã¼ã¿ããã¼ãã«ããåé¤ãããã¨ãã§ãã¾ãããã®æ©è½ã¯ãåããã©ã¡ã¼ã¿ã§ç°ãªãå¤ãæã¤ãã®ãè¤æ°ããå ´åã«æç¨ã§ããï¼å®éã®è¨ç®ã§ã¯ããã¼ãã«ã®å¾ãã®æ¹ã«ãããã©ã¡ã¼ã¿ãåªå ããã¾ããï¼ +
+The molecular models built by hand generally include unnatural bond lengths, bond angles, van der Waals contacts, and so on. Molecular mechanics is a useful technique to remove such unnatural structures. @@ -748,7 +1106,7 @@ Following are the original papers published by the AMBER team. Please be sure to
Now we try energy minimization. We use 2,2'-dimethoxybiphenyl as an example.
@@ -756,66 +1114,67 @@ Now we try energy minimization. We use 2,2'-dimethoxybiphenyl as an example.Build this molecule. The easiest way is, (1) double-click the empty editing area and type "C6H5C6H5", (2) select one ortho hydrogen, double-click, and type "OCH3", (3) repeat (2) for another ortho hydrogen on the other ring.
--Open the "MM/MD" menu, and select "antechamber/parmchk..." command in the "Tools" submenu. +Open the "MM/MD" menu, and select "Guess MM/MD Parameters..." command.
--A dialog like below shows up. Turn off the first two checkboxes. The "log" directory is used by AmberTools for storing intermediate files; the default value would be acceptable, but you can change it here. +A dialog like below shows up. This is for execution of Antechamber on the current molecule. Turn off the "Calculate partial charges" checkbox, and turn on the "Guess atom types" checkbox. The "log" directory is used by AmberTools for storing intermediate files; the default value would be acceptable, but you can change it here.
-After pressing "OK", two dialog boxes appear in turn. They disappear so quickly that you may not recognize what they are saying; actually, the first one says "Running antechamber" and the second one "Running parmchk." These are programs included in AmberTools. In the present case, both programs complete successfully, and the following dialog appears.
-Press "OK", and you will return to the molecule window. Do you notice what change has been made? It is the atom types that are modified. Specifically, the types of the atoms 0 and 10 are changed from "ca" to "cp".
-If you are wondering what "ca" or "cp" mean, look at the global parameter table (MM/MD â View Global Parameters...), and find comment(s) in the "vdw" record.
-Return to the molecule, and select MM/MD â Minimize.
-A setting dialog opens. "Steps per frame" means the screen is updated every this number of steps. "Number of frames" means the maximum number of "frames" (i.e. screen updates) to calculate. If the minimization completes before this number of frames, the calculation will stop. The numbers 10 and 200 are reasonable choice in many cases.
--Press "OK", and minimization starts. As you expect, the dihedral angle between the two phenyl rings becomes large. The calculation will stop after 200 frames. You can see the number "199" at the right bottom of the window, and the slider at the bottom of the window is now active. Move the slider, and you can see how the molecular structure changed during the minimization. +Press "OK", and minimization starts. As you expect, the dihedral angle between the two phenyl rings becomes large. The calculation will stop after 200 frames. You can see the number "200" at the right bottom of the window, and the slider at the bottom of the window is now active. Move the slider, and you can see how the molecular structure changed during the minimization.
-If you save this molecule at this stage, all the frames will be also saved (when you select the "mbsf" format), and the resulting file may be very large. If you do not want this, then you can remove all the frames by use of "Delete Frames..." command in the "Script" menu.
-The above description is sufficient for initial cleanup of the molecular structure. However, we should go one further step to take electrostatic interaction into consideration. This is particularly important in molecules with polar functional groups (such as carbonyl).
-Continue our study on 2,2'-dimethoxybiphenyl. Open "MM/MD" â "Tools" â "Antechamber/parmchk...", and this time turn on the top checkbox. Also make sure the net molecular charge is correct. +Continue our study on 2,2'-dimethoxybiphenyl. Open "MM/MD" â "Guess MM/MD Parameters...", and this time turn on the top checkbox. Also make sure the net molecular charge is correct.
-Press "OK", and calculation starts. This time the calculation should take much longer than before, because semi-empirical calculation is carried out for optimizing the structure and getting the partial charges.
-When calculation is done, the molecular structure may change, because structure optimization has been done by semi-empirical calculation. However, even more important is the "charge" values. You can see the charge values by scrolling the table to the right. By use of these "charge" values, interaction energies of the polar functional groups can be taken into account.
--Note that the atomic charges given in the above method are derived from semi-empirical quantum chemical calculations. On the other hand, it is generally considered that the charges derived from ab initio calculations are better. Molby does not have capability to perform ab initio calculations, but it can help creating necessary input files for external quantum chemical programs. This will be described elsewhere in this User's Manual (not yet written, but coming soon). +Note that the atomic charges given in the above method are derived from semi-empirical quantum chemical calculations. On the other hand, it is generally considered that the charges derived from ab initio calculations are better. Molby does not have capability to perform ab initio calculations, but it can help creating necessary input files for external quantum chemical programs. This will be described elsewhere in this User's Manual.
æä½æ¥ã§ä½æããååã¢ãã«ã¯ãä¸èªç¶ãªçµåé·ãçµåè§ãvan der Waals æ¥è§¦ãªã©ãå«ãã§ãã¾ãããã®ãããªä¸èªç¶ãªæ§é ãä¿®æ£ããã«ã¯ãåååå¦ã®ãã¯ããã¯ã便å©ã§ãã @@ -836,7 +1195,7 @@ Molby ã®åååå¦è¨ç®ã¯ãåºæ¬çãªåååå ´ï¼çµåã®ä¼¸ç¸®ã
ãã¦ãã¨ãã«ã®ã¼æå°åããã£ã¦ã¿ã¾ããããä¾ã¨ã㦠2,2'-ã¸ã¡ããã·ããã§ãã«ã使ããã¨ã«ãã¾ãã
@@ -844,138 +1203,1684 @@ Molby ã®åååå¦è¨ç®ã¯ãåºæ¬çãªåååå ´ï¼çµåã®ä¼¸ç¸®ããã®ååã®ã¢ãã«ãä½ã£ã¦ãã ãããç°¡åãªããæ¹ã¯ã(1) 空ã®ç·¨éã¨ãªã¢ã§ããã«ã¯ãªãã¯ã㦠"C6H5C6H5" ã¨ã¿ã¤ãããã(2) ãªã«ãä½ã®æ°´ç´ ååãï¼ã¤é¸æããããã«ã¯ãªãã¯ã㦠"OCH3" ã¨ã¿ã¤ãããã(3) ããï¼ã¤ã®ç°ã®ãªã«ãä½ã®æ°´ç´ ååã«ã¤ãã¦ã(2) ãç¹°ãè¿ãã
--"MM/MD"ã¡ãã¥ã¼ãéãã"Tools" ãµãã¡ãã¥ã¼ãã "Antechamber/parmchk..." ã³ãã³ããå®è¡ãã¾ãã +"MM/MD"ã¡ãã¥ã¼ãéãã"Guess MM/MD Parameters..." ã³ãã³ããå®è¡ãã¾ãã
--ä¸ã®ãããªãã¤ã¢ãã°ãç¾ãã¾ããä¸ã®ï¼ã¤ã®ãã§ãã¯ããã¯ã¹ããªãã«ãã¦ãã ããã"Log" ãã£ã¬ã¯ããªã¯ãAmberTools ã®ããã°ã©ã ãä¸éãã¡ã¤ã«ãä¿åããã®ã«ä½¿ãã¾ããããã©ã«ãã®ä½ç½®ã§åé¡ã¯ãªãã§ãããããå¤æ´ãã¦ããã¾ãã¾ããã +ä¸ã®ãããªãã¤ã¢ãã°ãç¾ãã¾ããããã¯ç¾å¨ã®ååã«å¯¾ã㦠Antechamber ãå®è¡ããããã®ãã®ã§ããä¸çªä¸ã®ãã§ãã¯ããã¯ã¹ "Calculate partial charge" ããªãããã®ä¸ã® "Guess Atom Types" ããªã³ã«ãã¦ãã ããã"Log" ãã£ã¬ã¯ããªã¯ãAmberTools ã®ããã°ã©ã ãä¸éãã¡ã¤ã«ãä¿åããã®ã«ä½¿ãã¾ããããã©ã«ãã®ä½ç½®ã§åé¡ã¯ãªãã§ãããããå¤æ´ãã¦ããã¾ãã¾ããã
-"OK"ãæ¼ãã¨ãï¼ã¤ã®ãã¤ã¢ãã°ãé ã«ç¾ãã¾ããããã«æ¶ãã¦ãã¾ãã®ã§ãä½ã¨æ¸ãã¦ãããèªããªãããç¥ãã¾ãããæåã®ãã®ã¯ "Running antechamber", ï¼ã¤ãã®ãã®ã¯ "Running parmchk" ã¨æ¸ãã¦ããã¾ããããã㯠AmberTools ã«å«ã¾ãã¦ããããã°ã©ã ã§ããä»ã®å ´åã¯ã両æ¹ã¨ãæ£ããå®è¡ããã次ã®ãã¤ã¢ãã°ãç¾ãã¾ãã
-"OK"ãæ¼ãã¦ãååã®ã¦ã£ã³ãã¦ã«æ»ã£ã¦ãã ãããä½ãå¤ãã£ãããããã§ããããï¼ãå¤ãã£ãã®ã¯ååã¿ã¤ãã§ããå ·ä½çã«ã¯ãååï¼ã¨ååï¼ï¼ã®ã¿ã¤ãã "ca" ãã "cp" ã«å¤ãã£ã¦ãã¾ãã
-"ca" ã "cp" ãä½ã®æå³ãç¥ããããã°ã"MM/MD" ã¡ãã¥ã¼ãã "View Global Parameters..." ãé¸ãã§ã¿ã¦ãã ãããMolby ã«å梱ããã¦ãããã©ã¡ã¼ã¿ã®ä¸è¦§è¡¨ãåºã¦ãã¾ãã"vdw" ï¼van der Waals ãã©ã¡ã¼ã¿ã®æå³ã§ãããååã¿ã¤ãã®å®ç¾©ãå ¼ãã¦ãã¾ãï¼ã®ä¸ã§ "ca", "cp" ãè¦ã¤ãã¦ã表ã®å³ç«¯ã«ããã³ã¡ã³ããè¦ã¦ã¿ã¦ãã ããã
-ååã®ã¦ã£ã³ãã¦ã«æ»ãã"MM/MD" â "Minimize" ãé¸ãã§ãã ããã
-è¨å®ãã¤ã¢ãã°ãéãã¾ãã"Steps per frame" ã¯ãæ§é æé©åè¨ç®ããã®ã¹ãããæ°é²ãã ã¨ããã§ç»é¢ãæ´æ°ãããã¨ããæå³ã§ãã"Number of frames" ã¯ããã®æ°ã ãç»é¢ãæ´æ°ãããè¨ç®ãæ¢ãããã¨ããæå³ã§ãããã®åã«æ§é æé©åãçµäºããã°ããã®æç¹ã§è¨ç®ã¯æ¢ã¾ãã¾ããä¸ã®å³ã«ãã 10, 200 ãå ¥ãã¦ããã°ãããã¦ãã®å ´åã¯ããã§ãããã
--"OK" ãæ¼ãã¨ãæ§é æé©åãå§ã¾ãã¾ãããã®ååã®å ´åãæå¾ ãããéããï¼ã¤ã®ãã³ã¼ã³ç°ã®éã®äºé¢è§ãã ãã ã大ãããªãã¾ããæå®éãã200åç»é¢ãæ´æ°ãããã¨è¨ç®ã¯æ¢ã¾ãã¾ããã¦ã£ã³ãã¦ã®å³ä¸ã« "199" ã¨ããæ°åããããã¦ã£ã³ãã¦ã®ä¸è¾ºã«ããã¹ã©ã¤ãã¼ãæå¹ã«ãªã£ã¦ãã¾ããæ´æ°ãããç»é¢ã¯ãããããç¬ç«ãããã¬ã¼ã ã¨ãã¦ä¿åããã¦ããããã®ã¹ã©ã¤ãã¼ãåããã¨ãåæç¶æ ããã©ã®ããã«æ§é ãå¤ãã£ã¦è¡ãããåç¾ãããã¨ãã§ãã¾ãã +"OK" ãæ¼ãã¨ãæ§é æé©åãå§ã¾ãã¾ãããã®ååã®å ´åãæå¾ ãããéããï¼ã¤ã®ãã³ã¼ã³ç°ã®éã®äºé¢è§ãã ãã ã大ãããªãã¾ããæå®éãã200åç»é¢ãæ´æ°ãããã¨è¨ç®ã¯æ¢ã¾ãã¾ããã¦ã£ã³ãã¦ã®å³ä¸ã« "200" ã¨ããæ°åããããã¦ã£ã³ãã¦ã®ä¸è¾ºã«ããã¹ã©ã¤ãã¼ãæå¹ã«ãªã£ã¦ãã¾ããæ´æ°ãããç»é¢ã¯ãããããç¬ç«ãããã¬ã¼ã ã¨ãã¦ä¿åããã¦ããããã®ã¹ã©ã¤ãã¼ãåããã¨ãåæç¶æ ããã©ã®ããã«æ§é ãå¤ãã£ã¦è¡ãããåç¾ãããã¨ãã§ãã¾ãã
-ãã®æç¹ã§ååã "mbsf" ãã©ã¼ãããã§ä¿åããã¨ãå ¨é¨ã®ãã¬ã¼ã ã®æ å ±ãä¿åããããã¡ã¤ã«ãã¨ã¦ã大ãããªãã¾ããããã好ã¾ãããªãå ´åã¯ãç¾å¨è¡¨ç¤ºããã¦ãã以å¤ã®ãã¬ã¼ã ãåé¤ãããã¨ãã§ãã¾ãã"Script" ã¡ãã¥ã¼ãã "Delete Frames..." ã³ãã³ãã使ã£ã¦ãã ããã
-ä¸ã®èª¬æã¯ãååæ§é ã®ã²ãã¿ãåãé¤ãæåã®æ®µéã¨ãã¦ã¯ååã§ããããããªããã次ã®æ®µéã¨ãã¦ãéé»ç¸äºä½ç¨ãèæ ®ããªããã°ãªãã¾ãããç¹ã«ãã«ã«ããã«åºãªã©ã®æ¥µæ§å®è½åºãå«ã¾ãã¦ããå ´åã¯ãããã¯éè¦ã§ãã
-2,2'-ã¸ã¡ããã·ããã§ãã«ã«ã¤ãã¦æ¤è¨ãç¶ãã¾ãããã"MM/MD" â "Tools" â "Antechamber/parmchk...", ãéããä»åº¦ã¯ä¸çªä¸ã®ãã§ãã¯ããã¯ã¹ããªã³ã«ãã¾ããããã¦ãååã®ç·é»è·ãæ£ãããã¨ã確èªãã¦ãã ããããã®å ´åã¯ä¸æ§ååãªã®ã§ã"0" ã§çµæ§ã§ãã +2,2'-ã¸ã¡ããã·ããã§ãã«ã«ã¤ãã¦æ¤è¨ãç¶ãã¾ãããã"MM/MD" â "Guess MM/MD Parameters...", ãéããä»åº¦ã¯ä¸çªä¸ã®ãã§ãã¯ããã¯ã¹ããªã³ã«ãã¾ããããã¦ãååã®ç·é»è·ãæ£ãããã¨ã確èªãã¦ãã ããããã®å ´åã¯ä¸æ§ååãªã®ã§ã"0" ã§çµæ§ã§ãã
-"OK" ãæ¼ãã¨ãè¨ç®ãå§ã¾ãã¾ããä»åº¦ã¯ãååããããã£ã¨é·ãè¨ç®æéããããã¾ããåçµé¨çååè»éæ³ã«ãããæ§é æé©åã¨é¨åé»è·ã®è¨ç®ãè¡ãããã§ãã
-è¨ç®ãçµäºããã¨ãååæ§é ã¯å°ãå¤åãããã¨ãããã¾ããåçµé¨çååè»éè¨ç®ã§æ§é æé©åãè¡ãããããã§ããã¾ãã"charge" ã®å¤ãè¨å®ããã¦ãããã¨ããããã¾ãããã¼ãã«ãå³ã«ã¹ã¯ãã¼ã«ããã¨ãä¸ããããé»è·ã®å¤ãè¦ããã¨ãã§ãã¾ãããã®é»è·ã®å¤ãç¨ãã¦éé»ç¸äºä½ç¨ã®è¨ç®ãè¡ããã¨ã«ããã極æ§å®è½åºã®ç¸äºä½ç¨ã¨ãã«ã®ã¼ãããæ£ããè¦ç©ãããã¨ãã§ãã¾ãã
--ä¸ã®æ¹æ³ã§è¨ç®ããé»è·ã¯ãåçµé¨çååè»éè¨ç®ã«ãããã®ã§ããä¸æ¹ãä¸è¬çã«ã¯ ab initio è¨ç®ã§æ±ããé»è·ã®æ¹ãè¯ãã¨èãããã¦ãã¾ããMolby 㯠ab initio è¨ç®ãè¡ãæ©è½ãæã£ã¦ãã¾ããããå¤é¨ã®éååå¦è¨ç®ããã°ã©ã ã¸ã®å ¥åãã¡ã¤ã«ãä½æããæ©è½ãããã¾ããããã¯ããã®ããã¥ã¢ã«ã®å¥ã®ã¨ããã§è§£èª¬ãã¾ãï¼ã¾ã ã§ãã¦ãã¾ããããè¿ããã¡ã«ï¼ã +ä¸ã®æ¹æ³ã§è¨ç®ããé»è·ã¯ãåçµé¨çååè»éè¨ç®ã«ãããã®ã§ããä¸æ¹ãä¸è¬çã«ã¯ ab initio è¨ç®ã§æ±ããé»è·ã®æ¹ãè¯ãã¨èãããã¦ãã¾ããMolby 㯠ab initio è¨ç®ãè¡ãæ©è½ãæã£ã¦ãã¾ããããå¤é¨ã®éååå¦è¨ç®ããã°ã©ã ã¸ã®å ¥åãã¡ã¤ã«ãä½æããæ©è½ãããã¾ããããã¯ããã®ããã¥ã¢ã«ã®å¥ã®ã¨ããã§è§£èª¬ãã¾ãã
+-A molecule has many properties. It has a set of atoms and bonds. An atom has a name, an atom type, an element, a weight (which can be derived from the element), a charge, coordinates, and so on. According to the custom in the biomolecular modeling, atoms are grouped in "residues." It also has a set of parameters used in molecular mechanics. Molby also has a limited support for quantum chemical calculations. In relation to that, a molecule in Molby can retain extra information such as MO coefficients. +Molby implements molecular dynamics (MD) calculation which uses the same force fields as the energy minimization by molecular mechanics (MM). This implementation is suitable only for preliminary calculations (to check parameters quickly, etc.); for production runs, it is strongly recommended that you use one of the established software packages.
-Most of these information are accessible via the property table. The table is on the left side of the model window. +An example of preliminary MD run is presented here. We use 2,2'-dimethoxybiphenyl again. In a similar way as in the step six, create a model and assign MM parameters (including the partial charges on the atoms).
-+Select MM/MD → Molecular Dynamics. A setting dialog opens. Although this dialog resembles that in MM minimization, it shows different parameters that are relevant to the MD calculation. +
++The "timestep" parameter defines the minimum time increment in solving the equation of motions. The "target temperature" defines the temperature of the system. Before running the MD calculation, all atoms are let to have random velocities with the Boltzmann distribution corresponding to the target temperature. In addition, the velocities are modified so that the temperature is kept constant. The "steps per frame" and "number of frames" parameters have the same meaning as in the MM minimization. The screenshot shows 10 as the "steps per frame"; this is an appropriate value for MM minimization, however for MD calculations a larger value would be more appropriate (like 100). +
++Pressing the "Advanced..." button opens another dialog with other parameters. The meanings of the parameters are described in the embedded Ruby document, in the MDArena page. +
++Return to the original MD dialog (by pressing "Close" in the advanced settings dialog), and press "OK". The MD run starts, and new frames are accumulated. If you find something is wrong, or want to stop before getting the specified number of frames, you can stop the MD run by pressing Command-period (Mac) or Control-period (Windows). +
++For production runs, you can create AMBER input files from Molby. More specifically, you can create "prmtop" and "inpcrd" files for the SANDER module. +
++Note: There is no guarantee that Molby creates the exactly same input as the official AMBER modeling tools, nor the generated files are valid inputs for the SANDER module. You may need to modify them by hand. +
++To creat SANDER input files, select "Create SANDER input..." command in the "MM/MD" menu. +
++You will be asked first for the file name for the "prmtop" file. Please be sure to add ".prmtop" extension. The other file, "inpcrd" file, is created as the same name with the ".prmtop" extension replaced by the ".inpcrd" extension. +
++Subsequently, you will be asked to select one of the two versions of the prmtop files. The older one, "AMBER8/NAMD", allows you to use the output file by NAMD (see below). +
++Now you can transfer your files to the workstation running SANDER. To perform the simulation, you still need to create the instruction file for SANDER, which you should already know if you are using AMBER. +
++After the simulation is over, you can get the trajectory file ("mdcrd" file) back and import to Molby. Use "Import..." command in the "File" menu, select "AMBER mdcrd file (*.crd; *.mdcrd)", and specify the file. +
+
+You can also use the NAMD software package for production run. NAMD is developed by the Theoretical Biophysics Group in the University of Illinois at Urbana-Champaign, and the official information is found at their web site (http://www.ks.uiuc.edu/Research/namd/). NAMD can use the AMBER "prmtop" as the input, by use of the instruction amber yes
. See NAMD Users' Guide for details.
+
+You can also import the NAMD output by importing the dcd file. The file format is also listed in the "Import..." file dialog. +
++When you want to perform MD simulations in explicit solvent, you need to build a box of solvent molecules around the target molecule. Molby can help creating solvated structures. +
++To build a solvated structure, you need to open the file containing the predefined box of the desired solvent. The following solvent box is included in the Molby package, and can be accessed from "File" → "Open Predefined" → "Solvent boxes" submenu. The tip3box was taken from the AmberTool package, and other solvent boxes were taken from Amber parameter database. +
+name | solvent | reference |
---|---|---|
tip3pbox | +water | +Jorgensen, W. L.; Chandrasekhar, J.; Madura, J.; Klein, M. L. +J. Chem. Phys. 1983, 79, 926. + |
chcl3box | +chloroform | +Cieplak, P.; Caldwell, J. W.; Kollman, P. A. +J. Comp. Chem. 2001, 22, 1048. + |
dmsobox | +dimethylsulfoxide | +Fox, T.; Kollman, P. A. +J. Phys. Chem. B 1998, 102, 8070. + |
meohbox | +methanol | +Caldwell, J. W.; Kollman, P. A. +J. Phys. Chem. 1995, 99, 6208. + |
nmabox | +N-methylacetamide | +Caldwell, J. W.; Kollman, P. A. +J. Phys. Chem. 1995, 99, 6208. + |
+While keeping the solvent box open, create or open the target (solute) molecule in a separate window. With this solute molecule in the front window, select "Solvate..." command in the "MM/MD" menu. +
++A dialog box opens. +
++In the popup menu "Choose solvent box:", you will find the solvent box you opened earlier. Note that this popup menu lists all open molecules that have the associated periodic box (or unit cell). This can lead to a confusing situation that, if you have another solvated structure also open, that structure will also be listed in this popup menu, because a solvated structure always have a periodic box. Therefore, please take care so that you choose the right solvent box.
++If you open the solvent box from the "Open Predefined" menu, you can easily recognize it in the popup menu, because the name has asterisks at the beginning and the end, like "*CHCl3*". +
++The "Box offset" parameters define the thickness of the solvent layer surrounding the solute molecule. More specifically, the periodic box of the solvated structure is determined as follows: the minimum cuboid that can surround the solute molecule is defined, and all the faces are offset by the "Box offset" distances to the outside direction. On the other hand, it is possible to define the size of the periodic box explicitly for any of the three (x, y, z) directions. If you wish to do this, give a negative number for that direction. (For example, if you want the periodic box to be 40 Å in the x direction, give -40 as the first "Box offset" parameter.) +
++The size of the periodic box can be checked by selecting "Xtal" → "Unit Cell..." menu command, or in the property table (the "unit cell" property). +
++The "Exclusion limit distance" defines the minimum allowed distance between the solvent and solute molecules. The solvent molecule is removed when it has atoms with smaller distances than this parameter from the solute molecule. +
+ ++Molby ã¯ååååå¦ (MD) è¨ç®ãå®è£ ãã¦ãã¾ããããã¯åååå¦ã«ããã¨ãã«ã®ã¼æå°åã¨åãåååå ´ã使ãã¾ãããã®æ©è½ã¯ããã©ã¡ã¼ã¿ã®ãã§ãã¯ãªã©ã®äºåçãªè¨ç®ã«ä½¿ããã¨ãæ³å®ãã¦ãã¾ããæ¬æ ¼çãªè¨ç®ã«ã¯ãå®ç¸¾ã®ããä»ã®ã½ããã¦ã§ã¢ããã±ã¼ã¸ã使ããã¨ãå¼·ããããããã¾ãã +
++äºåç㪠MD è¨ç®ã®ä¾ã示ãã¾ããã¾ã 2,2'-ã¸ã¡ããã·ããã§ãã«ã使ãã¾ãã第å 段éã¨åæ§ã«ãã¢ãã«ãä½æãã¦åååå ´ãã©ã¡ã¼ã¿ã決å®ãã¦ãã ããï¼ååä¸ã®é¨åé»è·ãï¼ã +
++MM/MD ã¡ãã¥ã¼ã® "Molecular Dynamics" ãé¸ã¶ã¨ãè¨å®ãã¤ã¢ãã°ãéãã¾ãããã®ãã¤ã¢ãã°ã¯åååå ´ã«ããã¨ãã«ã®ã¼æå°åã®æã¨ä¼¼ã¦ãã¾ãããMD è¨ç®ã«ä½¿ãä»ã®ãã©ã¡ã¼ã¿ã表示ãã¦ãã¾ãã +
++"Timestep" ãã©ã¡ã¼ã¿ã¯ãéåæ¹ç¨å¼ã解ãã¨ãã®æå°æéå»ã¿ã表ãã¾ãã"Target temperature" ã¯ç³»ã®æ¸©åº¦ã表ãã¾ããMD è¨ç®ãå§ã¾ãéã«ããã¹ã¦ã®ååã¯ãã®æ¸©åº¦ã«å¯¾å¿ãããã«ããã³åå¸ã«å¾ã£ã¦ã©ã³ãã ãªé度ãä¸ãããã¾ããããã«ãMD è¨ç®ä¸ã¯æ¸©åº¦ãä¸å®ã«ä¿ãããããã«é度ã調æ´ããã¾ãã"Steps per frame" 㨠"number of frames" ãã©ã¡ã¼ã¿ã¯åååå¦ã«ããã¨ãã«ã®ã¼æå°åã®æã¨åãæå³ãæã¡ã¾ãããã®ã¹ã¯ãªã¼ã³ã·ã§ããã§ã¯ "steps per frame" ã 10 ã«ãªã£ã¦ãã¾ããããã¯ã¨ãã«ã®ã¼æå°åã§ã¯é©åãªå¤ã§ãããååååå¦ã®å ´åã¯ããå°ã大ããªå¤ï¼ãã¨ãã° 100ï¼ã®æ¹ãããé©åã§ãã +
++"Advanced..." ãã¿ã³ãæ¼ãã¨ãä»ã®ãã©ã¡ã¼ã¿ãæã¤å¥ã®ãã¤ã¢ãã°ãéãã¾ãããããã®ãã©ã¡ã¼ã¿ã®æå³ã¯ãå èµ Ruby ã¤ã³ã¿ããªã¿ã®ãªãã¡ã¬ã³ã¹ã§ MDArena ã®ãã¼ã¸ã«æ¸ããã¦ãã¾ãã +
++å ã® MD è¨å®ãã¤ã¢ãã°ã«æ»ãï¼è©³ç´°è¨å®ãã¤ã¢ãã°ã§ "Close" ãã¿ã³ãæ¼ãï¼ã"OK" ãæ¼ãã¾ããMD è¨ç®ãå§ã¾ããæ°ãããã¬ã¼ã ã追å ããã¦è¡ãã¾ããä½ãåé¡ããã£ãããæå®ãããã¬ã¼ã æ°ãããåã«è¨ç®ãæ¢ãããã¨ãã¯ãã³ãã³ã-ããªãªã (Mac) ãã³ã³ããã¼ã«-ããªãªã (Windows) ã使ã£ã¦ãã ããã +
++æ¬æ ¼çãªè¨ç®ãè¡ãããã«ãMolby 㧠AMBER ã¸ã®å ¥åãã¡ã¤ã«ãä½æãããã¨ãã§ãã¾ããå ·ä½çã«ã¯ãSANDER ã¢ã¸ã¥ã¼ã«ã®å ¥åã¨ãªã "prmtop" 㨠"inpcrd" ãã¡ã¤ã«ãä½ããã¨ãã§ãã¾ãã +
++æ³¨ï¼ Molby ã AMBER ä»å±ã®ã¢ããªã³ã°ãã¼ã«ã¨åãå ¥åãã¡ã¤ã«ãä½æããä¿è¨¼ã¯ããã¾ããããSANDER ã¢ã¸ã¥ã¼ã«ã¸ã®æ£ããå ¥åã«ãªã£ã¦ããä¿è¨¼ãããã¾ãããæä½æ¥ã§ä¿®æ£ãå¿ è¦ãªå ´åãããããããã¾ããã +
++SANDER ã®å ¥åãã¡ã¤ã«ãä½ãã«ã¯ã"MM/MD" ã¡ãã¥ã¼ãã "Create SANDER input..." ã³ãã³ããé¸ãã§ãã ããã +
++æåã« "prmtop" ãã¡ã¤ã«ã®ååãèããã¾ããå¿ ã ".prmtop" æ¡å¼µåãã¤ããããã«ãã¦ãã ãããããä¸ã¤ã® "inpcrd" ãã¡ã¤ã«ã¯ã".prmtop" ã ".inpcrd" ã«ç½®ãæããååã§ä¿åããã¾ãã +
++次ã«ãprmtop ãã¡ã¤ã«ã®ï¼ã¤ã®ãã¼ã¸ã§ã³ã®ãã¡ï¼ã¤ãé¸ã¶ããã«ä¿ããã¾ããå¤ãæ¹ã"AMBER8/NAMD" ã使ãã°ãNAMD ã½ããã¦ã§ã¢ããã±ã¼ã¸ï¼ä¸è¨åç §ï¼ã§ã使ããå ¥åãã¡ã¤ã«ãã§ãã¾ãã +
++ããã§ãSANDER ãèµ°ãã¯ã¼ã¯ã¹ãã¼ã·ã§ã³ã«ãã¡ã¤ã«ã転éãããã¨ãã§ãã¾ããã·ãã¥ã¬ã¼ã·ã§ã³ãå®è¡ããããã«ã¯ãSANDER ã®å½ä»¤ãã¡ã¤ã«ãä½ããªããã°ãªãã¾ããããAMBER ãã使ãã®æ¹ãªãããæ¹ã¯ãããåç¥ã§ãããã +
++è¨ç®ãçµäºãããããã©ã¸ã§ã¯ããªãã¡ã¤ã« ("mdcrd" ãã¡ã¤ã«) ãåå¾ãã¦ãMolby ã«ã¤ã³ãã¼ããããã¨ãã§ãã¾ãã"File" ã¡ãã¥ã¼ã® "Import..." ã³ãã³ããé¸ã³ããã¡ã¤ã«ã¿ã¤ãã¨ã㦠"AMBER mdcrd file (*.crd; *.mdcrd)" ãé¸ãã§ããã¡ã¤ã«ãèªã¿è¾¼ãã§ãã ããã +
+
+æ¬æ ¼çãªè¨ç®ãè¡ãããã« NAMD ã使ããã¨ãã§ãã¾ããNAMD ã¯ã¤ãªãã¤å¤§å¦ã¢ã¼ããã»ã·ã£ã³ãã¼ã³æ ¡ã®çè«çç©ç©çã°ã«ã¼ããéçºããã½ããã¦ã§ã¢ããã±ã¼ã¸ã§ããå
¬å¼ã¦ã§ããµã¤ã㯠http://www.ks.uiuc.edu/Research/namd/ ã§ããNAMD 㯠AMBER ã® "prmtop" ãå
¥åã¨ãã¦ä½¿ããã¨ãã§ãã¾ãï¼amber yes
å½ä»¤ã使ãï¼ã詳ãã㯠NAMD ã®ã¦ã¼ã¶ã¼ãºã¬ã¤ããã覧ãã ããã
+
+NAMD ã®åºåã® dcd ãã¡ã¤ã«ãã¤ã³ãã¼ããå¯è½ã§ãã"Import..." ã³ãã³ãã®ãã¡ã¤ã«ã¿ã¤ãã§é¸æãããã¨ãã§ãã¾ãã +
++æ示çãªæº¶åªä¸ã§ã® MD ã·ãã¥ã¬ã¼ã·ã§ã³ãè¡ãããã«ã¯ãç®çååã®åãã«æº¶åªååã®ç®±ãä½ãå¿ è¦ãããã¾ããMolby ã§ãã®ãããªæº¶åªåæ§é ãä½æãããã¨ãã§ãã¾ãã +
++溶åªåæ§é ãä½ãããã«ã¯ãã¾ã使ç¨ãã溶åªã®ç®±ãèªã¿è¾¼ãå¿ è¦ãããã¾ãã以ä¸ã®æº¶åªã®ç®±ã Molby ã«å梱ããã¦ããã"File" → "Open Predefined" → "Solvent boxes" ãµãã¡ãã¥ã¼ããé¸ã¶ãã¨ãã§ãã¾ããTip3box 㯠AmberTool ããã±ã¼ã¸ããå¾ããã®ã§ãããä»ã®æº¶åªç®±ã¯ Amber parameter database ã§å ¬éããã¦ãããã®ã§ãã +
+name | solvent | reference |
---|---|---|
tip3pbox | +water | +Jorgensen, W. L.; Chandrasekhar, J.; Madura, J.; Klein, M. L. +J. Chem. Phys. 1983, 79, 926. + |
chcl3box | +chloroform | +Cieplak, P.; Caldwell, J. W.; Kollman, P. A. +J. Comp. Chem. 2001, 22, 1048. + |
dmsobox | +dimethylsulfoxide | +Fox, T.; Kollman, P. A. +J. Phys. Chem. B 1998, 102, 8070. + |
meohbox | +methanol | +Caldwell, J. W.; Kollman, P. A. +J. Phys. Chem. 1995, 99, 6208. + |
nmabox | +N-methylacetamide | +Caldwell, J. W.; Kollman, P. A. +J. Phys. Chem. 1995, 99, 6208. + |
+溶åªç®±ãéããã¾ã¾ãç®çã¨ããååï¼æº¶è³ªï¼ãæ°ããã¦ã£ã³ãã¦ã§éããä½æãã¾ãã溶質ååã®ã¦ã£ã³ãã¦ãæåé¢ã«ããç¶æ ã§ã"MM/MD" ã¡ãã¥ã¼ãã "Solvate..." ã³ãã³ããé¸ã³ã¾ãã +
++ãã¤ã¢ãã°ãéãã¾ãã +
++ãããã¢ããã¡ãã¥ã¼ "Choose solvent box:" ã«ã¯ãããã»ã©éãã溶åªç®±ããªã¹ãããã¦ããã¯ãã§ãã注æãã¦ããã ãããã®ã¯ããã®ãããã¢ããã¡ãã¥ã¼ã«ã¯å¨æå¢çï¼ã¾ãã¯åä½æ ¼åï¼ãæã¤ãã¹ã¦ã®ååããªã¹ãããããã¨ã§ãããã®ãããç´ãããããã¨ã«ãå¥ã®æº¶åªåæ§é ãåæã«éãã¦ããã¨ããã®æ§é ããã®ãããã¢ããã¡ãã¥ã¼ã«ç»å ´ãã¦ãã¾ãã¾ãï¼æº¶åªåæ§é ã¯å¿ ãå¨æå¢çãæã£ã¦ãã¾ãããï¼ãã§ããããæ£ãã溶åªç®±ãé¸ã¶ããã«ååã«æ³¨æãã¦ãã ããã +
++"Open Predefined" ã¡ãã¥ã¼ããé¸ãã§éãã溶åªç®±ã¯ããã«åºå¥ã§ãã¾ããååã®åå¾ã« * ãã¤ãã¦ããããã§ã ("*CHCl3*" ã®ããã«ï¼ã +
++"Box offset" ãã©ã¡ã¼ã¿ã¯ã溶質ååã®åããå²ã溶åªå±¤ã®åããæå®ãã¾ããè¨ãæããã¨ãããããä½æãã溶åªåæ§é ã®å¨æå¢çã¯æ¬¡ã®ããã«æ±ºãããã¾ãï¼ã¾ã溶質ãå²ãæå°ã®ç´æ¹ä½ãç®åºããããããã®é¢ãå¤å´ã«åãã£ã¦ Box offsect ãã©ã¡ã¼ã¿åã ã移åããã¾ããä¸æ¹ãx, y, z ã®ããããã®æ¹åã«å¯¾ãã¦ãå¨æå¢çã®å¤§ããã決ãããå ´åãããã¾ãããã®ã¨ãã¯ããã®æ¹åã® Box offset ãã©ã¡ã¼ã¿ã«è² ã®å¤ãæå®ãã¦ãã ãããï¼ãã¨ãã°ãx æ¹åã®å¨æå¢çã大ããã 40 Å ã«ãããæã¯ã"Box offset" ã®æåã®ãã©ã¡ã¼ã¿ã -40 ã«ãã¦ãã ãããï¼ +
++å¨æå¢çã®ç®±ã®å¤§ããã¯ã"Xtal" → "Define Unit Cell" ã¡ãã¥ã¼ãé¸ã¶ã¨è¦ããã¨ãã§ãã¾ããã¾ããå±æ§ãã¼ãã«ã® "unit cell" ã§ãè¦ããã¾ãã
++"Exclusion limit distance" ã¯ã溶質ååã¨æº¶åªååã®ååéè·é¢ã®æå°å¤ãå®ãã¾ãã溶åªååã®ããååã溶質ååãããã®è·é¢ä»¥å ã«è¿ã¥ãã¦ããã¨ãããã®æº¶åªååã¯åãé¤ããã¾ãã +
++Building molecular models of coordination compounds is often problematic. This is mainly due to the lack of appropriate MM parameters for metal atoms. One reasonable approach is to use UFF (universal force field) parameters developed by Rappé and coworkers (J. Am. Chem. Soc. 114, 10024-10035 (1992)). Although estimation of the UFF parameters from the molecular structure is rather complicated, it can be automated by computer programs. In the following, you will see how Molby can help modeling of coordination compounds with the UFF parameters. +
++Suppose we want to build a model of (terpy)PtCl, where terpy is 2,2':6',2"-terpyridine. +
++We need to build the molecular structure first. One approach is to build the organic part (terpy), and put metal atoms afterwards. Here, we will go through another route, namely start from the metal fragment and add ligands afterwards. In general, this approach should be more successful in building models of coordination compounds. +
++Select "Open Predefined..." menu item, and find "MX4 square-planar" like below. +
++A square planar fragment of "CuCl4" appears on the screen. +
++Choose the "Select" tool, double click on one of the chlorine atoms, and type "C6H5". +
++You see now a phenyl group is attached to the metal atom. The orientation of the phenyl ring needs to be fixed. Select the metal-C bond, and rotate the phenyl ring so that the ring is approximately coplanar with the metal-ligand plane. +
++Attach two other phenyl groups in a similay manner. +
++Remove the hydrogen atoms and create C-C bonds. Double-click on the carbon atoms connected to the metal, and change them to "N". Double-click on the metal atom and change it to "Pt". +
++Now the molecular structure is complete. Next we need to assign the MM parameters. To do this, select the "Guess UFF Parameters..." from the "MM/MD" menu. +
++A dialog like below opens up. Here are listed the atoms that are (1) the metal atoms, (2) the ligand atoms that are connected to the metal atoms, and (3) the ligand atoms that are connected to any of the atoms in (2). In other words, the atoms within "two-bonds" distances are shown in this dialog. The Pt atom is shown in red, because it does not have predefined MM parameters. The ligand atoms already have their MM parameters, but if you look closely not all atoms are correctly recognized. For example, the pyridine N atoms are incorrectly assigned as "n3", which is a sp3 nitrogen. +
++The UFF parameter estimation consists of two stages. The first stage is to assign the types of the ligand atoms. This is basically the same as the procedure described in Step 6, but this time we need to run Antechamber for the non-metal part only. By hitting the button "Run Antechamber for Non-Metal Fragment", Antechamber is executed for each non-metal fragments. You may need to assign the charge for each fragment; for example, if you are using catecholato ligand, that fragment should have charge of -2. +
++The fragment that are being assigned by Antechamber is shown in the main window as the selection. In this example, the first fragment contains only the chlorine atom, and the second fragment is the terpyridine ligand. +
++After running Antechamber, the table looks like below. Note that the values in the "type" column have been changed. +
++Next, we need to assign the "UFF types" to each atoms. In fact, the UFF types are already set in the previous stage. We still need to look at them, and correct the types if necessary. You can select the predefined UFF types from the popup menu. +
++Now we need to assign UFF parameters for the metal atoms. Click the button "Guess UFF Parameters for Bonds and Angles Including Metal Atoms". +
++Open the "Bonds" page, and check the columns "k" and "r0". You will find there the proposed values of force constant and equilibrium bond length, according to the UFF force field. If you find, by some reason, the values are not appropriate, then you can change them by hand. +
++You can check the "Angles" page as well. Check the columns "k" and "a0", for the force constant and equilibrium bond angle. Note that, in the case of square planar or octahedral metal center, there are "cis" and "trans" angles. The program will assign "trans" if the current bond angle is larger than 135 degree, and "cis" otherwise. So, if your starting geometry is not quite optimal, be careful to check the angle parameters. +
++Close this dialog, and go into MM/MD calculations as usual. For example, you can perform energy minimization and get the structure like below. +
++Compounds containing metal-Ï bonds are also problematic in molecular mechanics calculations. The implementation of metal-Ï bonds in Molby is based on the proposal by Doman and coworkers (J. Am. Chem. Soc. 114, 7262-7272 (1992)). Herein we will see how to build a molecular model of ferrocene. +
++We start with the predefined structure "cyclopentadienyl." +
++Select the five carbon atoms, and do "Create Pi Anchor" menu command. +
++"Pi anchor" is a virtual atom, whose coordinates are defined as the center of mass of the "parent" atoms. In this case, the parent atoms of the pi anchor is the carbon atoms of the Cp ring. In the main screen, the pi anchor is shown as a green dot, and it is connected to the parent atoms by a green thin bonds. +
++Rotate the ring to show the "side view" of the ring, while keeping the pi anchor barely visible. Create a bond from the pi anchor to a new atom. Change the new atom to Fe. +
++Copy the cyclopentadienyl ring and the pi anchor, and paste in the same window. Place the new ring to the appropriate position, and bond the Fe atom and the new pi anchor. +
++Finally, make a bond between the two pi anchors. This is necessary to describe the barrier for ring rotation. The anchor-anchor bond is shown as a half-transparent green stick. +
+The ring rotation can be described as a dihedral term in the form of "ring atom"-"pi anchor"-"metal"-"X". However, in the case of a linear metallocene, "X" is the other pi anchor. Since the "pi anchor"-"metal"-"pi anchor" angle is always close to 180 degree, the dihedral angle cannot be defined. For this reason, the linear metallocene requires special treatment of the dihedral term in the form of "ring atom"-"pi anchor"-"pi anchor"-"ring atom". That is why we need to make a bond between two pi anchors. This is not the case for the bent metallocenes (like Cp2TiCl2), or half-sandwich complexes. +
++Now we can go on to the UFF dialog as before. This time, we skip the "non-metal fragments" part, because Antechamber cannot handle cyclopentadienyl anion. Our cyclopentadienyl ring already has correct atom types, so we will use them as they are. +
++Change the UFF type of the Fe atom to "Fe2+ octahedral". +
++Click on the "Bonds" label, and change the "r0" parameter of the two bonds of "##-fe" or "fe-##" type ("##" represents the pi anchor). This should be the metal-pi distance, which is 1.66 Å for ferrocene. +
++The "Angle" page should also be edited. The "a0" parameter is set to 90.0 for the "fe-##-ca" type angles (ten lines from the top), and 180.0 for the "##-fe-##" type angle (the last line). +
++Hit the "Guess UFF Parameters..." button to complete the calculation of the UFF parameters. +
++You can now try the MM/MD calculation. Energy minimization results in an eclipsed conformation. MD at 298K shows that the Cp rings freely rotate at this temperature. +
++é ä½ååç©ã®ååã¢ãã«ä½æã«ã¯ããããåé¡ãããã¾ãã主ãªåé¡ã¯ãéå±ååã®åååå¦ãã©ã¡ã¼ã¿ãç¨æããã¦ããªããã¨ã§ããä¸ã¤ã®åççãªæ¹æ³ã¯ãRappéãã«ãã£ã¦ææ¡ããã UFF (universal force field) ãã©ã¡ã¼ã¿ã使ããã¨ã§ã (J. Am. Chem. Soc. 114, 10024-10035 (1992))ã ååæ§é ãã UFF ãã©ã¡ã¼ã¿ãè¦ç©ããã®ã¯ããè¤éãªä½æ¥ã§ãããããã°ã©ã ã«ãã£ã¦èªååãããã¨ã¯å¯è½ã§ãã以ä¸ã«ãUFF ãç¨ããé ä½ååç©ã®ã¢ãã«ã³ã°ã« Molby ãã©ã®ããã«å©ç¨ã§ãããã示ãã¾ãã +
++ä¾ã¨ãã¦ã(terpy)PtCl ã®ååã¢ãã«ãä½ã£ã¦ã¿ã¾ããããterpy 㯠2,2':6',2"-terpyridine ã§ãã +
++æåã«ååæ§é ãä½ããªãã¦ã¯ããã¾ãããä¸ã¤ã®æ¹æ³ã¯ãã¾ãææ©ååã®é¨å (terpy) ãä½æããéå±ãå¾ããä»ãå ãããã¨ã§ããããã§ã¯ãå¥ã®æ¹æ³ã使ã£ã¦ã¿ã¾ããã¤ã¾ããæåã«éå±åãã®é ä½æ§é ããå§ãããã¨ã§é ä½åãä»ãå ãã¾ããä¸è¬çã«ã¯ããã¡ãã®æ¹ãé ä½ååç©ã®ã¢ããªã³ã°ã«ã¯é©ãã¦ãã¾ãã +
++"File" ã¡ãã¥ã¼ãã "Open Predefined..." ãé¸ã³ãä¸ã®ããã« "MX4 square-planar" ãè¦ã¤ãã¦ãã ããã +
++å¹³é¢åé ä½ã® "CuCl4" æ§é ãç¾ãã¾ãã +
++"Select" ãã¼ã«ãé¸ã³ãå¡©ç´ ååã®ï¼ã¤ãããã«ã¯ãªãã¯ãã¦ã"C6H5" ã¨ã¿ã¤ããã¾ãã +
++éå±ååã«ãã§ãã«åºãçµåãã¾ãããç°ã¯ãã®åãã§ã¯ããã¾ããã®ã§ãéå±-çç´ çµåãé¸æãã¦ããã§ãã«åºãå転ãããç°ãéå±ã»é ä½åå¹³é¢ã¨åä¸å¹³é¢ã«ãªãããã«ãã¾ãã +
++ä»ã®ï¼ã¤ã®å¡©ç´ ååãåæ§ã«ãã§ãã«åºã«ç½®ãæãã¾ãã +
++æ°´ç´ ååãåé¤ãã¦çç´ âçç´ çµåãä½æãã¾ãããããããéå±ã«çµåãã¦ããçç´ ååãããã«ã¯ãªãã¯ãã¦ã"N"ååã«å¤ãã¾ããéå±ååãããã«ã¯ãªãã¯ãã¦ã "Pt" ã«å¤ãã¾ãã +
++ããã§ååæ§é ã¯ã§ããããã¾ããã次ã«ãåååå¦ãã©ã¡ã¼ã¿ãè¨å®ãã¾ãã"MM/MD"ã¡ãã¥ã¼ãã "Guess UFF Parameters..." ã³ãã³ããé¸æãã¾ãã +
++ä¸ã®ãããªãã¤ã¢ãã°ãéãã¾ãã表ã«ååã並ãã§ãã¾ããããã®åå㯠(1) éå±ååã(2) éå±ååã«çµåãã¦ããååã(3) (2) ã®ååã®ããããã«çµåãã¦ããååãã®ã©ããã§ããè¨ãæããã°ãéå±ååãããçµåï¼ã¤åã以å ã®ååã表示ããã¦ãã¾ããPt ååã®è¡ã¯èµ¤è²ã§è¡¨ç¤ºããã¦ãã¾ããåååå¦ãã©ã¡ã¼ã¿ãå®ç¾©ããã¦ããªããã¨ã表ãã¦ãã¾ããé ä½åã®ååã¯ãã§ã«åååå¦ãã©ã¡ã¼ã¿ãæã£ã¦ãã¾ãããããè¦ãã¨ãééã£ã¦ãããã®ãããã¾ããä¾ãã°ãããªã¸ã³ã® N åå㯠"n3" ã¿ã¤ãã«ãªã£ã¦ãã¾ããããã㯠sp3 çªç´ ã§ãã +
++UFF ãã©ã¡ã¼ã¿ã®ä½æã¯ããã¤ãã®æ®µéãè¦ãã¾ããæåã«ãé ä½åã®ååã¿ã¤ããæ£ããè¨å®ãã¾ãããã®ä½æ¥ã¯ã第å 段é ã§è¡ã£ãã®ã¨ã»ã¼åãã§ãããä»åã¯éå±ååãé¤ããé¨åæ§é ã«ã¤ã㦠Antechamber ãå®è¡ããå¿ è¦ãããã¾ãã"Run Antechamber for Non-Metal Fragment" ãã¿ã³ãæ¼ãã¨ããã®ä½æ¥ãèªåçã«è¡ããã¾ããåé¨åæ§é ã«ã¤ãã¦ãé»è·ãä¸ããå¿ è¦ãããããç¥ãã¾ãããä¾ãã°ãã«ãã³ã©ãé ä½åã使ã£ã¦ãããªããé»è·ã¯ -2 ã¨ãªãã¾ãã +
++Antechamber ãèµ°ãããé¨åæ§é ã¯ãã¡ã¤ã³ã¦ã£ã³ãã¦ã§é¸æããã¦è¡¨ç¤ºããã¾ããããã®ä¾ã§ã¯ãï¼çªç®ã®é¨åæ§é ã¯å¡©ç´ ååï¼åã ããå«ã¿ãï¼çªç®ã®é¨åæ§é ã¯ã¿ã¼ããªã¸ã³ã«ãªãã¾ãã +
++Antechamber ãèµ°ãããã¨ã表ã¯ä¸ã®ããã«ãªãã¾ãã"type" åã®å¤ãå¤ãã£ã¦ãããã¨ã«æ³¨æãã¦ãã ããã +
++次ã«ãåååã® "UFF type" ãè¨å®ãã¾ããåã®æ®µé㧠UFF type ãä»®ã«è¨å®ãã¦ããã¾ãããä¸éãè¦ç´ãã¦ãå¿ è¦ãªãå¤æ´ãã¦ãã ãããUFF type ã¯ãããã¢ããã¡ãã¥ã¼ã§é¸æãããã¨ãã§ãã¾ãã +
++ä»åº¦ã¯ãéå±ååã®ãã©ã¡ã¼ã¿ãè¨å®ãã¾ãã"Guess UFF Parameters for Bonds and Angles Including Metal Atoms" ãã¿ã³ãæ¼ãã¦ãã ããã +
++"Bonds" ãã¼ã¸ãéãã¦ã"k" 㨠"r0" ã®åãè¦ã¦ãã ãããUFF åååå ´ããäºæ¸¬ããããåã®å®æ°ãã¨ãçµåé·ããå ¥ã£ã¦ããã¯ãã§ããä½ããã®çç±ã§ãå¤ãé©åã§ã¯ãªãã¨èããå ´åã¯ãæåã§å¤æ´ãããã¨ãã§ãã¾ãã +
++"Angles" ãã¼ã¸ãåãããã«ãã§ãã¯ãã¦ãã ããã"k" 㨠"a0" ã®åã«ãåã®å®æ°ãã¨ãçµåè§ããå ¥ã£ã¦ãã¾ããéå±ä¸å¿ããå¹³é¢æ£æ¹å½¢ãã¾ãã¯å «é¢ä½æ§é ã®å ´åã¯ã"cis" 㨠"trans" ã®è§åº¦ãããã¾ããããã°ã©ã ã¯ãç¾å¨ã®çµåè§ã 135度ããã大ãããã° "trans" ã¨ã¿ãªããå°ãããã° "cis" ã¨ã¿ãªãã¾ããç¾å¨ã®æ§é ãçæ³çãªæ§é ããé¢ãã¦ããå ´åã¯ãè§åº¦ã®ãã©ã¡ã¼ã¿ã注ææ·±ããã§ãã¯ãã¦ãã ããã +
++ãã®ãã¤ã¢ãã°ãéãã¦ãMM/MD è¨ç®ãé常ã®ããã«é²ãã¾ããä¾ãã°ãã¨ãã«ã®ã¼æå°åãè¡ãã¨ãä¸ã®ãããªæ§é ãå¾ããã¾ãã +
++åååå¦è¨ç®ã§ã¯ãéå±-Ïçµåãæã¤ååç©ã®åãæ±ããåä»ã§ããMolby ã¯ãDoman ãã®æ¹æ³ (J. Am. Chem. Soc. 114, 7262-7272 (1992)) ã«æºãã¦éå±-Ïçµåã®åååå¦è¨ç®ãå®è£ ãã¦ãã¾ããããã§ã¯ããã§ãã»ã³ã®ååã¢ãã«ãä½æãã¦ã¿ã¾ãã +
++"Open Predefined" ãã "cyclopentadienyl" ãé¸ã³ã¾ãã +
++ï¼ã¤ã®çç´ ååãé¸æãã"Create Pi Anchor" ã¡ãã¥ã¼ã³ãã³ããå®è¡ãã¾ãã +
++"Pi anchor" ã¨ã¯ãã親ãååã®éå¿ã座æ¨ã¨ããä»®æ³çãªååã§ããä»åã¯ãã·ã¯ããã³ã¿ã¸ã¨ãã«ç°ã®ï¼ã¤ã®çç´ ååï¼ä¸ã§é¸æãããã®ï¼ã pi anchor ã®è¦ªã«ãªãã¾ããã¹ã¯ãªã¼ã³ä¸ã§ã¯ãpi anchor ã¯ç·è²ã®å°ããªçã§è¡¨ãã親ååã¨ã¯ç·è²ã®åéæã®æ£ã§ã¤ãªãã§è¡¨ç¤ºããã¾ãã +
++ç°ãå転ããã¦ã横ããè¦ãåãã«ãã¾ããPi anchor ã¯ããããè¦ããããã«ãã¦ããã¾ããPi anchor ããçµåãåºãã¦ãæ°ããååãä½ãã¾ããæ°ããååã Fe ã«å¤ãã¾ãã +
++ã·ã¯ããã³ã¿ã¸ã¨ãã«ç°ã¨ pi anchor ãã³ãã¼ãã¦ãåãã¦ã£ã³ãã¦å ã«ãã¼ã¹ããã¾ããæ°ããç°ã Fe ååãã¯ããã§å対å´ã«ç§»åããæ°ãã pi anchor 㨠Fe ååãçµåããã¾ãã +
++æå¾ã«ãï¼ã¤ã® pi anchor ã®éã«çµåãä½ãã¾ããããã¯ãç°ã®å転éå£ãæ£ããè¦ç©ããããã«å¿ è¦ã«ãªãã¾ããAnchor å士ã®çµåã¯ãåéæã®ç·è²ã§ç¤ºããã¾ãã +
++ç°ã®å転ã¯ãç°ã®åå-pi anchor-éå±-ä»ã®ååãã¨ããäºé¢è§é ã§è¡¨ããã¾ããã¡ã¿ãã»ã³ã®å ´åããä»ã®ååãã¯ããä¸ã¤ã® pi anchor ã«ãªãã¾ããã¨ããããç´ç·åã®ã¡ã¿ãã»ã³ã ã¨ããpi anchor-éå±-pi anchorãã®è§åº¦ã¯å¸¸ã« 180°ä»è¿ã§ãããããäºé¢è§ãæ£ããå®ç¾©ãããã¨ãã§ãã¾ããããã®ãããç´ç·åã¡ã¿ãã»ã³ã§ã¯ãç¹å¥ã«ãç°ã®åå-pi anchor-pi anchor-ç°ã®ååãã¨ããäºé¢è§ã§ç°ã®å転ã表ç¾ãã¾ãããã®çç±ã§ãï¼ã¤ã® pi anchor ã®éã«çµåãä½ãå¿ è¦ãããã®ã§ããæ²ãã£ãã¡ã¿ãã»ã³ (Cp2TiCl2 ãªã©) ãããã¼ããµã³ãã¤ããåã®é¯ä½ã§ã¯ããã®ãããªæ±ãã¯ä¸å¿ è¦ã§ãã +
++ããããã¯ãåã¨åãããã« UFF ã®ãã¤ã¢ãã°ã使ããã¨ãåºæ¥ã¾ããä»åã¯ã"non-metal fragments" ã®è¨ç®ã¯çç¥ãã¾ããAntechamber ã¯ã·ã¯ããã³ã¿ã¸ã¨ãã«ã¢ããªã³ãæ£ããåãæ±ããã¨ãã§ããªãããã§ããç§ãã¡ã®ã·ã¯ããã³ã¿ã¸ã¨ãã«ç°ã¯ãã§ã«æ£ããååã¿ã¤ããæã£ã¦ãã¾ãã®ã§ãããããã®ã¾ã¾ä½¿ãã¾ãã +
++Fe ã® UFF ã¿ã¤ãã "Fe2+ octahedral" ã«å¤æ´ãã¾ãã +
++"Bonds" ã©ãã«ãã¯ãªãã¯ãã"##-fe" ã¾ã㯠"fe-##" ã¿ã¤ãã®çµåã® "r0" ãã©ã¡ã¼ã¿ã®å¤ãå¤æ´ãã¾ãï¼"##" 㯠pi anchor ãæå³ãã¾ãï¼ããã®å¤ã¯éå±-Ïçµåã®è·é¢ã§ãããã§ãã»ã³ã®å ´å㯠1.66 Å ã«ãªãã¾ãã +
++"Angles" ãã¼ã¸ãç·¨éãå¿ è¦ã§ããä»åã¯æåã§éå±ååãä½æãããããè§åº¦ãæ£ãããªã£ã¦ããªãããã§ãã"fe-##-ca" ã¿ã¤ãã®è§åº¦ã¯ 90.0ï¼ä¸ããï¼ï¼è¡åï¼ã"##-fe-##" ã¿ã¤ãã®è§åº¦ã¯ 180.0ï¼ä¸çªä¸ã®è¡ï¼ã«ãã¾ãã +
++"Guess UFF Parameters..." ãã¿ã³ãæ¼ãã¦ãUFF ãã©ã¡ã¼ã¿ã®è¨ç®ãè¡ãã¾ãã +
++ãã㧠MM/MD è¨ç®ã試ããã¨ãã§ãã¾ããã¨ãã«ã®ã¼æå°åãè¡ãã¨ãéãªãåã®é ç½®ãå¾ããã¾ãã298K 㧠MD ãè¡ãã¨ãCp ç°ããã®æ¸©åº¦ã§èªç±å転ãã¦ãããã¨ããããã¾ãã +
++Molby has a capability to export and import files for quantum chemistry softwares, namely Gaussian and GAMESS. At present, the capability is quite limited, and in many cases it would be much better to use other established softwares. Nevertheless, if you are already familiar with Molby, you may want to use Molby for creating input files for Gaussian and GAMESS and processing outputs. Here are instructions how to do it. +
++Needless to say, you need to have access to Gaussian or GAMESS program packages. They can be on the same machine or on other machines (workstations) than Molby. Please learn how to use these packages before using Molby as described in this section. +
++The Gaussian input can be created by selecting "Export..." command in the "File" menu. The file extension is either "gjf" (as is the convention in GaussianW) or "com" (as in UNIX version of Gaussian). +
++The output will look like this. Although Molby can create only one type of Gaussian input (optimize with PM3), it should be relatively easy to modify the generated input file by hand. +
+%Chk=benzene.chk +# PM3 Opt + + unnamed1; created by Molby at Sat Feb 11 00:30:21 +0900 2012 + + 0 1 +C -0.653000 0.585000 -1.068000 +H -1.158000 1.039000 -1.898000 +C 0.729000 0.607000 -1.003000 +H 1.295000 1.076000 -1.783000 +C 1.382000 0.021000 0.069000 +H 2.452000 0.038000 0.119000 +C 0.651000 -0.586000 1.076000 +H 1.156000 -1.039000 1.906000 +C -0.732000 -0.607000 1.012000 +H -1.298000 -1.077000 1.792000 +C -1.384000 -0.021000 -0.060000 +H -2.455000 -0.038000 -0.110000 + +
++When you do geometrical optimization, you may want to examine how the structure changes as the calculation proceeds. This can be done by importing the Gaussian output file. The extention should be either ".out" or ".log". +
++Creating GAMESS input can be more complicated than Gaussian, so that Molby provides a simple dialog to help creating GAMESS input. The dialog is accessible from the "Creating GAMESS input..." command in the "QChem" menu. +
++You can specify various settings in the dialog. +
++When the calculation of GAMESS is complete, you will find two output files, namely *.log and *.dat. Either format can be imported by use of the "Import..." menu command. Some informations are included in both (e.g. coordinates during structural optimization), but other informations are only in one of these files (e.g. the full description of gaussian functions is only in the *.log file, whereas the orbital coefficients with full precision are only in the *.dat file). You need to be familiar with the structure of the GAMESS output files to fully utilize the GAMESS import capability of Molby. +
++We already saw how to assign partial charges for evaluation of electrostatic interactions in MM calculations. There we used semi-empirical calculations, although ab initio calculations will give better results if possible. Here are instructions how to do it using GAMESS. +
++Select "MM/MD" → "GAMESS/RESP...". +
++The following window pops up. As the first step, press the "Create GAMESS Input..." button. +
++The familiar GAMESS dialog opens up. It is most important to turn on the "Calculate electrostatic potential (ESP)" checkbox (it should be turned on if you follow the steps as described here, but please double-check). Also make sure that the charge and multiplicity are correct, and select a suitable basis set (6-31G(d) is recommended). +
++Press OK to create the GAMESS input, and send it to GAMESS. The calculation will take time, so that you can finish Molby (after saving the molecule as a msbf file!), and work on something else at this stage. +
++After the GAMESS calculation is complete, open the same molecule, and select "MM/MD" → "Tools" → "GAMESS/RESP..." again. This time, follow the second step by pressing the "Import GAMESS dat..." button. +
++Select the GAMESS dat file (which should be available when the GAMESS calculation ends successfully), and import it. When the import is complete, the "Run RESP..." button should be enabled. If it does not, the imported dat file does not have the electrostatic potential information. Start over from the step 1, and make sure that the "Calculate electrostatic potential (ESP)" checkbox is on. +
++Press the "Run RESP..." button, and the following dialog opens. This is almost the same as the dialog for Antechamber described before. +
++Press the "OK" button, and the RESP charge will be assigned to the atoms. +
++Molby ã¯éååå¦è¨ç®ã½ããã¦ã§ã¢ GaussianãGAMESS ã®ãã¡ã¤ã«ãä½æï¼èªã¿è¾¼ã¿ããæ©è½ãæã£ã¦ãã¾ããç¾ç¶ã§ã¯ãMolby ã«ã¯æ¥µãã¦å¶éãããæ©è½ãããªããããããããä»ã®å®ç¸¾ããã½ããã¦ã§ã¢ã使ã£ãæ¹ãããã§ããããããããMolby ã®æä½ã«æ £ãã¦ãããªããGaussian ã GAMESS ã®å ¥åãä½æãã¦çµæãèªã¿è¾¼ãã®ã« Molby ã使ããããã¨ãããããããã¾ãããã©ã®ããã«ããã°ãããã説æãã¾ãã +
++å½ç¶ã®ãã¨ãªãããGaussian ã GAMESS ã®ããã°ã©ã ããã±ã¼ã¸ã使ãããã¨ãåæã§ããããããèµ°ãã®ã¯ãMolby ã¨åããã·ã³ä¸ã§ãç°ãªããã·ã³ï¼ã¯ã¼ã¯ã¹ãã¼ã·ã§ã³ï¼ä¸ã§ãæ§ãã¾ããããã®é ã§èª¬æããããæ¹ã§ Molby ã使ãåã«ããããã®ããã°ã©ã ããã±ã¼ã¸ãã©ã®ããã«ä½¿ãããå¦ãã§ããã¦ãã ããã +
++Gaussian ã®å ¥å㯠"File" → "Export..." ã³ãã³ãã使ãã°ä½æãããã¨ãã§ãã¾ãããã¡ã¤ã«ã®æ¡å¼µå㯠"gjf"ï¼GaussianW ã§ã®ç¿æ £ï¼ãã¾ã㯠"com"ï¼UNIX çã§ã®ç¿æ £ï¼ã§ãã +
++ã§ãããã£ããã¡ã¤ã«ã¯æ¬¡ã®ããã«ãªãã¾ããMolby ãä½æã§ããã®ã¯ãä¸ç¨®é¡ã® Gaussian å ¥åãã¡ã¤ã«ï¼PM3 ã«ããæ§é æé©åï¼ã ãã§ãããGaussian ã®å ¥åãã¡ã¤ã«ãæä½æ¥ã§ä¿®æ£ããã®ã¯æ¯è¼çç°¡åã§ãã +
+%Chk=benzene.chk +# PM3 Opt + + unnamed1; created by Molby at Sat Feb 11 00:30:21 +0900 2012 + + 0 1 +C -0.653000 0.585000 -1.068000 +H -1.158000 1.039000 -1.898000 +C 0.729000 0.607000 -1.003000 +H 1.295000 1.076000 -1.783000 +C 1.382000 0.021000 0.069000 +H 2.452000 0.038000 0.119000 +C 0.651000 -0.586000 1.076000 +H 1.156000 -1.039000 1.906000 +C -0.732000 -0.607000 1.012000 +H -1.298000 -1.077000 1.792000 +C -1.384000 -0.021000 -0.060000 +H -2.455000 -0.038000 -0.110000 + +
++æ§é æé©åãè¡ã£ããã¨ã¯ãæ§é ãã©ã®ããã«å¤åãããè¦ã¦ã¿ããã¨æãã§ããããããã¯ãGaussian åºåãã¡ã¤ã«ãèªã¿è¾¼ãã°å®ç¾ã§ãã¾ããæ¡å¼µå㯠".out" ã¾ã㯠".log" ã§ãªãã¦ã¯ãªãã¾ããã +
++GAMESS ã®å ¥åãä½æããã®ã¯ Gaussian ããããã£ã¨è¤éãªã®ã§ãå°ç¨ã®ãã¤ã¢ãã°ãç¨æããã¦ãã¾ãããã®ãã¤ã¢ãã°ã¯ã"QChem" → "Creating GAMESS input..." ã³ãã³ãã§éããã¨ãã§ãã¾ãã +
++ãã®ãã¤ã¢ãã°ã§ã¯ããããããªè¨å®ã決ãããã¨ãã§ãã¾ãã +
++GAMESS ã®è¨ç®ãçµäºããã¨ã*.log 㨠*.dat ã®ï¼ã¤ã®ãã¡ã¤ã«ãã§ãã¾ããã©ã¡ãã "Import..." ã³ãã³ãã§èªã¿è¾¼ããã¨ãã§ãã¾ãããã種ã®æ å ±ï¼ãã¨ãã°æ§é æé©åéä¸ã®åº§æ¨ï¼ã¯ã©ã¡ãã®ãã¡ã¤ã«ã«ãå«ã¾ãã¦ãã¾ããããã®ä»ã®æ å ±ã¯ã©ã¡ããä¸æ¹ã«ããå«ã¾ãã¾ããï¼ãã¨ãã°ãåºåºãæ§æãã Gaussian é¢æ°ã®å®å ¨ãªä¿æ°ã¯ *.log ãã¡ã¤ã«ã«ãããªãã精度ã®é«ãè»éä¿æ°ã¯ *.dat ã«ããããã¾ããï¼ãGAMESS èªã¿è¾¼ã¿æ©è½ãååã«æ´»ç¨ããã«ã¯ãGAMESS ã®åºåãä½ãå«ãã§ããããããç解ããå¿ è¦ãããã¾ãã +
++åååå¦è¨ç®ã§éé»ç¸äºä½ç¨ãè©ä¾¡ããããã®é¨åé»è·ã®è¨ç®ã«ã¤ãã¦ã¯ãã§ã«èª¬æãã¾ãããããã§ã¯åçµé¨çååè»éè¨ç®ãç¨ãã¾ããããå¯è½ãªãã° ab initio è¨ç®ã®æ¹ãããçµæãä¸ãã¾ããGAMESS ã使ã£ã¦è¨ç®ããæ¹æ³ã説æãã¾ãã +
++ã¡ãã¥ã¼ãã "MM/MD" → "GAMESS/RESP..." ãé¸ã³ã¾ãã +
++次ã®ã¦ã£ã³ãã¦ãéãã¾ãã第ï¼ã®ã¹ãããã¨ãã¦ã"Create GAMESS Input..." ãã¿ã³ãæ¼ãã¾ãã +
++GAMESS ã®ãã¤ã¢ãã°ãéãã¾ãã大åãªã®ã¯ã"Calculate electrostatic potential (ESP)" ãã§ãã¯ããã¯ã¹ããªã³ã«ãããã¨ã§ãï¼ããã®æé ã«å¾ãã°ãèªåçã«ãªã³ã«ãªã£ã¦ããã¯ãã§ãããä¸å¿ç¢ºèªãã¦ãã ããï¼ãååã®é»è·ã»ã¹ãã³å¤é度ãæ£ãããã¨ã確ããï¼åºåºé¢æ° (6-31G(d) ããããã) ãæå®ãã¦ãã ããã +
++OK ãã¿ã³ãæ¼ã㦠GAMESS å ¥åãä½æããGAMESS ã§è¨ç®ãå®è¡ãã¦ãã ãããè¨ç®ã«ã¯æéããããã¾ãããããã®æç¹ã§ Molby ãçµäºãã¦ä»ã®ä½æ¥ããã¦ããã ãã¦æ§ãã¾ããï¼ãã ããååãã¡ã¤ã«ã mbsf å½¢å¼ã§ä¿åãããã¨ãå¿ããªãã§ï¼ï¼ã +
++GAMESS è¨ç®ãå®äºããããåãååãã¡ã¤ã«ãéãã"MM/MD" → "Tools" → "GAMESS/RESP..." ãããä¸åº¦é¸æãã¦ãã ãããä»åº¦ã¯ã第ï¼ã¹ãããã® "Import GAMESS dat..." ãã¿ã³ãæ¼ãã¾ãã +
++GAMESS ã® dat ãã¡ã¤ã«ãé¸æãï¼GAMESS ã®è¨ç®ãæåããã°ãããã§ãã¦ããã¯ãã§ãï¼ãèªã¿è¾¼ãã§ãã ãããèªã¿è¾¼ã¿ãå®äºãããã"Run RESP..." ãã¿ã³ãæå¹ã«ãªã£ã¦ããã¯ãã§ãããããããªããªãã£ãããèªã¿è¾¼ãã dat ãã¡ã¤ã«ã«éé»ããã³ã·ã£ã«ã®ãã¼ã¿ãå«ã¾ããªãã£ãã¨ãããã¨ã§ããããä¸åº¦ç¬¬ï¼ã¹ãããããããç´ããç¹ã« "Calculate electrostatic potential (ESP)" ãã§ãã¯ããã¯ã¹ããªã³ã«ãªã£ã¦ãããã¨ã確ããã¦ãã ããã +
++"Run RESP..." ãã¿ã³ãæ¼ãã¨ã次ã®ãã¤ã¢ãã°ãéãã¾ããããã¯ãåã«èª¬æãã Antechamber ã®ãã¤ã¢ãã°ã¨ã»ã¨ãã©åãã§ãã +
++"OK"ãã¿ã³ãæ¼ãã¨ãRESP é¨åé»è·ãåååã«å¯¾ãã¦ã¢ãµã¤ã³ããã¾ãã +
++Information obtained from single-crystal X-ray analysis is a very important source of molecular structure. Molby can import crystallographic information files (CIFs) and handle structural data included in them. Although Molby does not have capability of solving structures from diffraction data, it does provide convenient features for viewing and examining crystal structures. +
++Select "Open..." menu command in the "File" menu, and choose "Crystallographic Information File (CIF)" as the file type. +
++Select a CIF file and hit "Open". If the molecule has crystallographic symmetry, it should have bonds including symmetry related atoms. In this case, a dialog like below is shown and you are asked how to handle such bonds. +
++If the molecule is discrete with an imposed crystallographic symmetry, the default selection (the second one) should work all right. In other cases, where the molecule is an infinite chain, the first choice may make more sense. Expansion by symmetry is also available as a separate command, so it is also safe to ignore extra bonds at this stage (the third choice) and do symmetry expansion later. +
++After expansion, the molecule looks like this. The atoms with darker colors are "expanded atoms." +
++Molby internally handles all atomic positions as cartesian coordinates. However, the fractional coordinates can be calculated "on-the-fly." In the property table, you can choose to display the fractional coordinates (together with the site occupancies and isotropic temperature factors) as below. +
++Commands for examining the crystal structure are available in the "Xtal" menu. +
++The "Unit Cell" command is used to set the unit cell parameters. It is also possible to set the origin and the unit cell axes directly. +
++The "Symmetry Operation" command is used to add/remove the symmetry operation, or change the space group. +
++Hitting the "Select..." button causes another dialog to open, where you can choose one of the predefined space groups. All 230 space groups are included with various origin and axis settings (not all possible choices are covered though). +
++The "Complete by Symmetry" command is used to expand the molecular fragment in the asymmetric unit. It is supposed to work similarly as the "expand fragments" option in loading CIFs, but the result may be different. (This is because, in the "Complete by Symmetry" command, the bonds between different asymmetric units are "guessed" based on interatomic distances instead of being read from the CIF file.) +
++The "Create Packing Diagram" command generates symmetry-related atoms within the given range of the fractional coordinates. +
++The "Show Periodic Image" command does not generate new atoms, but shows the periodic images of the present unit cell. +
++The "Remove Expanded Atoms" command removes the atoms generated by symmetry expansion. There are two options; one is to remove all expanded atoms, and the other is to remove only those atoms that are included in completely expanded fragments (i.e. the fragments containing at least one non-expanded atoms will be kept unchanged). +
++The result looks like below. Note that the periodic images are still shown, because they are not expanded atoms but just images shown on the screen. +
++The "Bonds and Angles with Sigma..." command is used to calculate the interatomic distances and angles with the standard deviations. +
++Hit "Add Bond" or "Add Angle" button to create a new entry, then select the atoms one by one in the main window. After adding one "bond" and one "angle", the window looks like below. Note that you can choose atoms that are not connected via chemical bonds. +
++To use the calculated information in other applications (like pasting into a word processor), select the table rows and hit "Export to Clipboard." The information is copied as a plain text (one line per row) that can be pasted into other applications. +
++The "Best-Fit Planes" command is used for calculating mean planes, angles between the planes, and distances of atoms from the plane. After the dialog is opened, the set of atoms can be assigned by selecting the atoms in the main window and hit one of the "Set Current Selection" buttons. +
++The "Show ORTEP" command open the dialog like below. +
++The ORTEP drawing is created by the bundled ORTEP-III program. The following citation should be made when using the output. +
++On this dialog, you can choose the appearance of the atoms and bonds. The orientation of the drawing is similar (although not completely the same) as in the main window. The drawing can be exported as an ORTEP input file or a graphic file (either as an encapsulated PostScript file, a PNG file or a TIFF file). When exporting to a bitmap file, the drawing is done at resolution of 360 dpi. +
++åçµæ¶ï¼¸ç·æ§é 解æã¯ãååæ§é ã®éè¦ãªæ å ±æºã§ããMolby ã¯ãçµæ¶æ å ±ãã¡ã¤ã« (CIF) ãèªã¿è¾¼ã¿ãæ§é ãã¼ã¿ãåãæ±ããã¨ãã§ãã¾ããåæãã¼ã¿ããæ§é 解æãè¡ããã¨ã¯ã§ãã¾ããããçµæ¶æ§é ã表示ããã調ã¹ããããã®ã«ä¾¿å©ãªæ©è½ãæã£ã¦ãã¾ãã +
++"File" ã¡ãã¥ã¼ãã "Open..." ã³ãã³ããé¸ã³ããã¡ã¤ã«ã¿ã¤ãã¨ã㦠"Crystallographic Information File (CIF)" ãé¸æãã¾ãã +
++CIF ãé¸ã㧠"Open" ãæ¼ãã¾ããCIF ã®ä¸ã®ååã¯ã対称æä½ã§é¢é£ã¥ããããååã¨ã®éã«çµåãæã£ã¦ãããã¨ãããã¾ãããã®ãããªå ´åã¯ãä¸ã®ãã¤ã¢ãã°ã表示ããã¾ãã +
++ååãç¡ééã§ãªããèªåèªèº«ã®ä¸ã«çµæ¶å¦çãªå¯¾ç§°æ§ãæã£ã¦ããå ´åã¯ãï¼çªç®ã®é¸æè¢ï¼ãããæ¨æºã§ãï¼ã§ãã¾ãããã¾ããååãç¡ééã®å ´åã¯ãï¼çªç®ã®é¸æè¢ã®æ¹ãåççã§ããã¾ãã対称æä½ã§ååãæ¡å¤§ããæ©è½ã¯å¾ã§ã使ããã¨ãã§ãã¾ãã®ã§ããã®æ®µéã§ã¯ãå¤ã¨ã®çµåããç¡è¦ããï¼ï¼çªç®ã®é¸æè¢ï¼ãã¨ã«ãã¦ãæ§ãã¾ããã +
++対称æä½ã«ãã£ã¦æ¡å¤§ããã¨ãååã¯ä¸ã®ããã«ãªãã¾ããæãè²ã§è¡¨ç¤ºããã¦ããã®ã¯ã対称æä½ã«ãã£ã¦ä½ãããååã§ãã +
++Molby ã®å é¨ã§ã¯ããã¹ã¦ã®åå座æ¨ã¯ç´äº¤åº§æ¨ã§æ±ããã¦ãã¾ããããããåä½æ ¼åå ã®é¨å座æ¨ãè¨ç®ãããã¨ãã§ãã¾ããå±æ§ãã¼ãã«ã§ "xtal coords" ãé¸ã¶ã¨ãé¨å座æ¨ã¨å ææ°ã»æ¸©åº¦å åã表示ã§ãã¾ãã +
++çµæ¶æ§é ã調ã¹ãããã®ã³ãã³ã㯠"Xtal" ã¡ãã¥ã¼ã«ããã¾ãã +
++"Unit Cell" ã³ãã³ãã¯ãåä½æ ¼åã®ãã©ã¡ã¼ã¿ãè¨å®ããã®ã«ä½¿ãã¾ããåç¹ã¨åä½æ ¼åã®è»¸ãã¯ãã«ãç´æ¥è¨å®ãããã¨ãã§ãã¾ãã +
++"Symmetry Operation" ã³ãã³ãã§ã¯ã対称æä½ã追å ã»åé¤ãããã空é群ãè¨å®ãããã§ãã¾ãã +
++"Select..." ãã¿ã³ãæ¼ãã¨ãããä¸ã¤å¥ã®ãã¤ã¢ãã°ãéãã¾ããããã§ã¯ããããããå®ç¾©ããã空é群ãé¸æãããã¨ãã§ãã¾ãã230 ã®ç©ºé群ãã¹ã¦ããããããªåç¹ã»è»¸ã®è¨å®ã§ç»é²ããã¦ãã¾ãï¼ãã¹ã¦ã®é¸æè¢ãç¶²ç¾ ããã¦ãã訳ã§ã¯ããã¾ãããï¼ã +
++"Complete by Symmetry" ã³ãã³ãã¯ãé対称åä½å ã®ååã®é¨åã対称æä½ã«ãã£ã¦æ¡å¤§ããããã«ä½¿ãã¾ããããã¯ãCIF ãèªã¿è¾¼ãæã®ãªãã·ã§ã³ã¨åæ§ã«æ©è½ãã¾ãããçµæã¯å°ãéããã¨ãããã¾ããï¼ãã®çç±ã¯ã"Complete by Symmetry" ã³ãã³ãã§ã¯ãç°ãªãé対称åä½ä¸ã®ååéã®çµåã®æç¡ããçµåè·é¢ããæ¨æ¸¬ããããã§ããCIF èªã¿è¾¼ã¿ã®å ´åã¯ãCIF ã«æ¸ãããçµåã®æ å ±ã使ãã¾ããï¼ +
++"Create Packing Diagram" ã³ãã³ãã¯ãæå®ããé¨å座æ¨ã®ç¯å²ï¼æ¨æºã¯åä½æ ¼åå ¨ä½ï¼ã«åå¨ããååã対称æä½ã«ãã£ã¦çæãã¾ãã +
++"Show Periodic Image" ã³ãã³ãã¯ãæ°ããååãä½ãã®ã§ã¯ãªããåä½æ ¼åã®ç¹°ãè¿ãã¤ã¡ã¼ã¸ãç»é¢ä¸ã§è¡¨ç¤ºããããã®ãã®ã§ãã +
++"Remove Expanded Atoms" ã³ãã³ãã¯ã対称æä½ã«ãã£ã¦çæãããååãåé¤ãã¾ããï¼ã¤ã®ãªãã·ã§ã³ãããã¾ããï¼ã¤ã¯ããã¹ã¦ã®çæååãåé¤ãããã®ã§ããããï¼ã¤ã¯ãæ¡å¼µååã®ã¿ããæãé¨åååãåé¤ãããã®ã§ãï¼ãã®å ´åãå ã®ååã¨åãååã«å±ããæ¡å¼µååã¯ãã®ã¾ã¾æ®ããã¾ãï¼ã +
++çµæã¯ä¸ã®ããã«ãªãã¾ãã"Show Periodic Image" ã§è¡¨ç¤ºãã¦ããç¹°ãè¿ãã¤ã¡ã¼ã¸ã¯ã¾ã 表示ããã¦ãããã¨ã«æ³¨æãã¦ãã ãããããã¯æ¡å¼µååã§ã¯ãªããããåé¤ã¯ããã¾ãããï¼ãã®ã¤ã¡ã¼ã¸ãæ¶ãã«ã¯ã"Show Periodic Image" ã³ãã³ãã§è¡¨ç¤ºãç¡å¹ã«ãã¦ãã ãããï¼ +
++"Bonds and Angles with Sigma..." ã³ãã³ãã¯ãååéã®è·é¢ã»è§åº¦ãæ¨æºåå·®ä»ãã§è¨ç®ãããã®ã§ãã +
++"Add Bond" ã¾ã㯠"Add Angle" ãã¿ã³ãæ¼ãã¦æ°ããã¨ã³ããªã¼ãä½ããããããã¡ã¤ã³ã¦ã£ã³ãã¦ã§ååãï¼ã¤ãã¤ã¯ãªãã¯ãã¦æå®ãã¾ããä¾ãã°ã"Bond" ãï¼ã¤ã"Angle" ãï¼ã¤ä½ãã¨ãä¸ã®ããã«ãªãã¾ããç´æ¥çµåããã¦ããªãååãæå®ãããã¨ãã§ãã¾ãã +
++è¨ç®çµæãä»ã®ã½ããã¦ã§ã¢ã§ä½¿ãããã«ã¯ï¼ä¾ãã°ã¯ã¼ãããã»ããµã«ãã¼ã¹ãããå ´åï¼ã表ã®è¡ãé¸æã㦠"Export to Clipboard" ãã¿ã³ãæ¼ãã¦ãã ãããè¨ç®çµæã¯ãã¬ã¼ã³ããã¹ãã§ã³ãã¼ãããä»ã®ã¢ããªã±ã¼ã·ã§ã³ã«ãã¼ã¹ãã§ããããã«ãªãã¾ãã +
++"Best-Fit Planes" ã³ãã³ãã¯ãæé©å¹³é¢ãè¨ç®ããäºé¢è§ãååã»å¹³é¢éè·é¢ãè¨ç®ããã®ã«ä½¿ãã¾ãããã¤ã¢ãã°ãéããããæå®ãããååãã¡ã¤ã³ã¦ã£ã³ãã¦ã§é¸æã㦠"Set Current Selection" ãã¿ã³ãæ¼ãã¦ãã ããã +
++"Show ORTEP" ã³ãã³ãã¯ãä¸ã®ãããªã¦ã£ã³ãã¦ãéãã¾ãã +
++ORTEP æç»ã¯ãORTEP-III ããã°ã©ã ã§ä½æãã¦ãã¾ãããã®çµæã使ãæã«ã¯ãä¸ã®ããã«å¼ç¨ãã¦ãã ããã +
++ãã®ã¦ã£ã³ãã¦ã§ãååãçµåã®è¡¨ç¤ºæ¹æ³ãæå®ãããã¨ãã§ãã¾ããååã®åãã¯ãã¡ã¤ã³ã¦ã£ã³ãã¦ã§ã®åãã¨ã ãããåãã§ãï¼å®å ¨ã«åãã¨ã¯è¨ãã¾ãããï¼ãæç»çµæã¯ãORTEP å ¥åãã¡ã¤ã«ã§æ¸ãåºããã¨ãã§ãã¾ããã¾ããã°ã©ãã£ãã¯ãã¡ã¤ã«ï¼EPS, PNG, TIFFï¼ã§æ¸ãåºããã¨ãã§ãã¾ããããããããå (PNG, TIFF) ã§æ¸ãåºãæã«ã¯ã解å度㯠360 dpi ã«ãªãã¾ãã +
++One of the most useful features of Molby is the embedded Ruby interpreter. When working on molecular modeling, it is often necessary to modify the model according to some mathematical relations. It is also convenient if we can extract some molecular information by automated "scripts" (i.e. computer programs), and export as a text file that can be processed by graphing software. The embedded Ruby interpreter is very useful under these circumstances. Actually, many functions of Molby itself are implemented by Ruby scripts. +
++To use the embedded Ruby interpreter in Molby, you need to be familiar with the Ruby programming language. You can find several good on-line tutorials in the Internet. However, you can also get the idea by going through the following sections. +
++The Ruby console window is open when Molby starts up. +
++On this window, you can execute Ruby scripts in an interactive manner. Let us try something on it now. Make the console window active by clicking on it, and type "1+2" followed by hitting the Return key. You will find this: +
+% 1+2 +--> 3 +% +
++The Ruby interpreter calculated "1+2", and displayed the answer (3) in the following line. +
++You can give a longer expression including parenthesis. +
+% (13.0*13.0+7.0*7.0)/1.365 +-->159.70695970696 +% +
++Or use common mathematical functions. +
+% exp(-2.0) * (sin(0.25) + cos(0.25)) +-->0.1646105219232536 +% +
+Usually in Ruby, you need to say Math.exp
or Math.sin
when using these mathematical functions. In Molby, the prefix Math
is not necessary, because Molby automatically "includes" the Math
module on startup.
+You can also use Strings, which is a series of characters. +
+% "C" + "32" +-->"C32" +% +
++The "32" here is not a number but a string, because it is surrounded by quotation marks. If you omit these quotation marks, what happens? +
+% "C" + 32 +
++Molby complains with this error dialog. It says "no implicit conversion of Fixnum into String," which means the integer 32 cannot be added to a string "C". Such kind of "type mismatch" error occurs very often, so please get used to it and learn how to fix it. +
++Another useful feature of Ruby is an Array, which is an ordered collection of other Ruby objects. An array is expressed by comma-separated values surrounded by a pair of brackets. +
+% [1, 2, 3] +-->[1, 2, 3] +% +
++Any Ruby object can be stored in a variable. The name of variables should begin with a lowercase alphabet and should consist of alphabets, number characters and underline "_". +
+% a = ["apple", "orange", "grape"] +-->["apple", "orange", "grape"] +% a[0] # This shows how to access the array elements +-->"apple" +
+ +
+The examples so far used only built-in types (Integer
, String
, Array
) in Ruby, but you will definitely need to handle Molecules from your Molby scripts. Suppose we have a benzene molecule (again).
+
+What if you want to convert it to chlorobenzene? There are two GUI ways; double-click on the H1 atom, and enter "Cl" into the dialog box, or double-click on the "H" text in the "element" column of the property table and change it to "Cl". But there is also a "Ruby" way, as follows: +
+% atoms[1].element = "Cl" +-->"Cl" +% +
+
+This short piece of code implies some important concepts for coding in Molby. First, atoms
denotes the atoms in the current molecule, which is the molecule in the frontmost window (except for the console window). atoms
is not really an Array (as in the Ruby terminology), but can be used in a similar way as Array in many aspects. Specifically, it can be "indexed" to extract a specific atom.
+
atoms[i] # Gives the i-th atom in the current molecule +
+
+Please make sure to say atoms[i]
, not atom[i]
. This may be confusing, but it is because atoms
is a collection of atoms and []
denotes "extraction of the i-th element."
+
+The second point in the above example is .element = "Cl"
. In Ruby, a period (.
) followed by a word (element
) indicates a "method call." Method is a technical term in Ruby programming language; it is a function that is specific to an object. In this case, atoms[1]
is an object, and it has a method named element=
(including the last equal sign) whose meaning is "to change the element as indicated by the string value in the right side." In this way, the script atoms[1].element = "Cl"
causes the element of the atom 1 changed to chlorine.
+
+What if you want to change all hydrogen atoms to chlorine? Here is the code: +
+% natoms.times { |i| if atoms[i].element == "H"; atoms[i].element = "Cl"; end } +-->12 +% +
++This is far more complicated than the previous example. A step-by-step explanation follows. +
+
+natoms
gives the number of atoms in the current molecule as an integer number. This is actually a method call (natoms
is a method of a Molecule
object). Why a method is called even though no period is preceding the word? It is because Ruby has a feature called "implicit method call." This will be explained in more detail later.
+
natoms # Gives 12 +
+
+times
is a method of Integer
(which is a built-in class of Ruby), which causes the following code surrounded by a pair of braces to be repeated the given number of times.
+
natoms.times { ... } # { ... } is executed 12 times +
+The code within the braces is called "block" in Ruby terminology.
++In the repeated code (or "block"), it is very likely that you want to know "how many times have I repeated?" This is achieved by declaring a variable name at the top of the block, surrounded by two vertical bars. +
+natoms.times { |i| ... } # In { ... }, the variable i indicates the number of repeats +
+
+The following piece of codes is often used for testing. (puts
prints the arguments to the console.)
+
% natoms.times { |i| puts i } +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +-->12 +
+
+The "12" in the last line is the "result value" of the method times
, and the numbers 0 to 11 are the outputs from the puts
method. Now you can see the block was executed 12 times with changing the variable i
from 0 to 11.
+
+In the block, there is an if
statement:
+
if atoms[i].element == "H"; atoms[i].element = "Cl"; end +
+
+The if
statement has the following general form:
+
if <condition>; <statements>; end +
++The <condition> is evaluated first, and if it is "true", the <statements> are executed; otherwise the <statements> are skipped. +
+
+Note: Ruby interprets only false
and nil
as non-true values. Other values are all "true". Specifically, the number 0
(zero) and an empty string (""
) are evaluated to "true" (this is unlike other programming language such as Perl). Many Ruby methods returns nil
in case of failure; such methods are suitable for the condition part.
+
+Finally, the element
method in the following code is different from the element=
method that we previously used:
+
atoms[i].element == "H" +
+
+In this case, the following symbol is "==
", which means "are these equal?". This is distinct from the symbol "=
", which means "the right side is assigned to the left side." The element
symbol is interpreted as the element=
method only when it is followed by the assignment symbol "=
". The above code is not the case, so that it is interpreted as the element
method, which returns the present element symbol as a String
.
+
+After execution of the script, the molecule should look like this: +
+
+In the preceding section, we saw that natoms
was a method of a Molecule
object.
+
natoms # 12, in case of benzene +
+
+Why this symbol natoms
is regarded as a method call? Actually, when the Ruby interpreter finds a symbol beginning with a lowercase alphabet, it looks for a (local) variable first, and if none is found, then it assumes that the symbol is a method belonging to the "current object". Since Ruby is an object-oriented language, there is always a "current object", which is denoted as self
. We can see it on our console:
+
% self +-->Molecule["unnamed1"] +% +
+
+This piece of code indicates that the "current object" is a Molecule
object. In fact, the Molecule
object corresponding to the frontmost window becomes the "current object" when a script is executed on the Molby console.
+
When no molecule is open, the "current object" is "main", which is the standard toplevel object in Ruby.
+
+Sometimes you happen to define a variable with the same name as a method of Molecule
. In that case, access to the variable is preferred and the method is no longer called.
+
% natoms = 2 # Define a variable +-->2 +% natoms # Now this is an access to the variable, not a method call +-->2 +% +
+
+In this situation, you can explicitly request a method call by specifying self
.
+
% self.natoms # This is a method call +-->12 +% +
+
+A special case is the methods with the assignment symbol ("=
"). For example, a method show_hydrogens=
can control whether the hydrogen atoms are shown or not. However, without specifying self
, the expression is always regarded as the assignment to a local variable. Therefore, self
should be always explicitly given.
+
% show_hydrogens = false # This does not change the Molecule's state, just changes a local variable +-->false +% self.show_hydrogens = false # This changes the Molecule's state +-->false +% +
++From the Ruby console, you can only execute a one-line script. For more complex scripts, or if you want to use the script many times over, it will be more convenient to store the script in a file and execute it. The "Execute Script..." command in the "Script" menu does this job. +
++There are endless possibilities for the script; here are presented only a few examples. The first script is to create a table of bond lengths including metal atoms (Fe): +
+# Create a bond table including Fe +# Requires Molby +fp = open("bond_table.txt", "w") # Create an output file +atoms.each { |ap| # This is another way to repeat over all atoms; + # ap points to the atom on each iteration + if ap.element == "Fe" + r1 = ap.r # The cartesian coordinate of Fe + ap.connects.each { |n| # ap.connects is an array of atom indices connected to this atom + ap2 = atoms[n] # The atom connected to Fe + r2 = ap2.r # The cartesian coordinate of the atom + d = (r - r2).length # The bond length + fp.printf "%s-%s %.3f\n", ap.name, ap2.name, d # Write a table entry to the file + } # End loop (ap.connects) + end # End if +} # End loop (atoms.each) +fp.close # We are done with this file +
++Save this text to a file, select "Execute Script..." command (be sure that the target molecule is on the front), and choose the script file. After execution, a file named "bond_table.txt" will be generated in the same directory as the script file. +
++Here is another example, which works on a MD trajectory. For each frame, the molecule is reoriented so that the atom 0 is at the origin and atoms 1 and 2 are on the xy plane (with the atom 1 on the x-axis), and calculate the center of mass of the atoms 6 to 11. Such processing is useful to visualize how a particular part of the molecule moves around throughout the MD run. +
+# Reorient the molecule and extract center of some group +# Requires Molby +fp = open("extract_group.txt", "w") # Create an output file +each_frame { |n| # This is an idiom to iterate over all frames + rotate_with_axis(1, 2, 0) # Reorientation of the molecule is so frequently used + # that the Molecule class has a method to do it + r = center_of_mass(6..11) # Also has a method to calculate the center of mass + fp.printf "%d %.6f %.6f %.6f\n", n, r.x, r.y, r.z # Write the coordinates +} +fp.close # We are done with this file +
++The last example generates a model of carbon nanotube with any chirality and length as you like. +
+# Create a model of carbon nanotube +# Requires Molby +r = 1.42 # The C-C bond length +n = 10 # The default chirality index +m = 5 # (ibid) +aspect = 5.0 # The default aspect ratio (length / diameter) + +# Dialog to ask the chirality index and the aspect ratio +h = Dialog.run("Create Carbon Nanotube") { + layout(3, + item(:text, :title=>"Chirality Index"), + item(:textfield, :width=>80, :tag=>"n", :value=>n.to_s), + item(:textfield, :width=>80, :tag=>"m", :value=>m.to_s), + item(:text, :title=>"Aspect Ratio"), + item(:textfield, :width=>160, :tag=>"aspect", :value=>sprintf("%.1f", aspect)), + -1) +} + +exit if h[:status] != 0 +aspect = h["aspect"].to_f +n = h["n"].to_i +m = h["m"].to_i + +k = aspect / (PI * sqrt(3.0)) +points = [] +# The limiting points are (0, 0), (n, m), (k(n+2m), -k(2n+m)), (k(n+2m)+n, -k(2n+m)+n) +# Search for the lattice points that are within the parallelogram +# surrounded by the above points +# det is the determinant of the matrix that converts the unit cell to the above parallelogram +delta = 2 * k * (n * n + m * m + n * m) +(0..(k * (n + 2 * m) + n).ceil).each { |s| + ((-k * (2 * n + m)).floor..m).each { |t| + [0, 2.0/3.0].each { |d| # For two lattice points within the unit cell + ss = (k * (2 * n + m) * (s + d) + k * (n + 2 * m) * (t + d)) / delta + tt = (m * (s + d) - n * (t + d)) / delta + if ss >= 0.0 && ss < 1.0 && tt >= 0.0 && tt <= 1.0 + points.push([ss, tt, s, t]) # This point is within the parallelogram + end + } + } +} +# Create nanotube: line up [ss, tt] into cylindric shape +rad = sqrt(3.0) * r * sqrt(n * n + m * m + n * m) / (2 * PI) +len = rad * 2 * aspect +mol = Molecule.new +points.each { |p| + ap = mol.create_atom + ap.element = "C" + ap.atom_type = "ca" + ap.r = [rad * cos(2 * PI * p[0]), rad * sin(2 * PI * p[0]), len * p[1]] +} +mol.guess_bonds +# Show the result in a new window +mol2 = Molecule.open +mol2.add(mol) +
++The embedded Ruby capability is very strong, and cannot be fully explained in this short tutorial. If you are interested, read carefully the reference of the Ruby extension. There are also many scripts in the Molby application, which you can examine by opening the "Scripts" folder (which is within the Application package in Mac OS X, and in the same folder as the Molby application in Windows). +
++Molby ã®æãæç¨ãªæ©è½ã®ï¼ã¤ã¯ãå èµã® Ruby ã¤ã³ã¿ããªã¿ã§ããååã¢ããªã³ã°ãè¡ãã¨ããããæ°å¦çãªè¦åã«å¾ã£ã¦ã¢ãã«ãå¤æ´ããããã¨ããã°ãã°ããã¾ããã¾ããååã®ãã種ã®æ å ±ãèªååããããã¹ã¯ãªãããï¼ã³ã³ãã¥ã¼ã¿ããã°ã©ã ï¼ã§æ½åºãã¦ããã¹ãã¨ãã¦æ¸ãåºããã°ã©ãæç»ã½ããã¦ã§ã¢ã§å¦çãããã¨ãæç¨ã§ããå èµ Ruby ã¤ã³ã¿ããªã¿ã¯ããã®ãããªå ´åã«å¨åãçºæ®ãã¾ããå®ã¯ãMolby ã®æ©è½ã®å¤ãã®é¨å㯠Ruby ã¹ã¯ãªããã§å®è£ ããã¦ããã®ã§ãã +
++Molby ã®å èµ Ruby ã¤ã³ã¿ããªã¿ã使ãããã«ã¯ãããã°ã©ãã³ã°è¨èª Ruby ã®ç¥èãå¿ è¦ã§ããã¤ã³ã¿ã¼ãããä¸ã§è¯ããªã³ã©ã¤ã³ãã¥ã¼ããªã¢ã«ãè¦ã¤ãã¦ãã ããããã£ã¨ãã以ä¸ã®è§£èª¬ãèªãã°ãããç¨åº¦ã®ã¤ã¡ã¼ã¸ã¯ã¤ãããã§ãããã +
++Molby ãèµ·åããã¨ãRuby ã®ãã³ã³ã½ã¼ã«ã¦ã£ã³ãã¦ããéãã¾ãã +
++ãã®ã¦ã£ã³ãã¦ä¸ã§ãRuby ã¹ã¯ãªããã対話çã«å®è¡ãããã¨ãã§ãã¾ããããã¤ã試ãã¦ã¿ã¾ããããã³ã³ã½ã¼ã«ã¦ã£ã³ãã¦ãã¯ãªãã¯ãã¦ã¢ã¯ãã£ãã«ãã¦ã"1+2"ãç¶ãã¦ãªã¿ã¼ã³ãã¼ãã¿ã¤ããã¦ãã ããã次ã®ããã«ãªãã¾ãã +
+% 1+2 +--> 3 +% +
++Ruby ã¤ã³ã¿ããªã¿ã "1+2" ãè¨ç®ããçã (3) ã次ã®è¡ã«è¡¨ç¤ºããã¨ããã§ãã +
++ã«ãã³ãå«ãé·ãå¼ãè¨ç®ã§ãã¾ãã +
+% (13.0*13.0+7.0*7.0)/1.365 +-->159.70695970696 +% +
++æ°å¦é¢æ°ã使ããã¨ãã§ãã¾ãã +
+% exp(-2.0) * (sin(0.25) + cos(0.25)) +-->0.1646105219232536 +% +
+é常 Ruby ã§ã¯ããããã®æ°å¦é¢æ°ã使ãã¨ãã«ã¯ Math.exp
, Math.sin
ã®ããã«æ¸ããªãã¦ã¯ãªãã¾ãããMolby ã§ã¯ãMath
ã¨ããæ¥é è¾ã¯å¿
è¦ããã¾ããããã㯠Molby ãèµ·åæã« Math
ã¢ã¸ã¥ã¼ã«ã "include" ããããã§ãã
+æåå (Strings) ã使ããã¨ãã§ãã¾ãã +
+% "C" + "32" +-->"C32" +% +
++ããã® "32" ã¯æ°ã§ã¯ãªãæååã§ããå¼ç¨ç¬¦ã§å²ã¾ãã¦ããããã§ããå¼ç¨ç¬¦ãçç¥ããã¨ã©ããªãã§ãããï¼ +
+% "C" + 32 +
++Molby ã¯ã¨ã©ã¼ã¡ãã»ã¼ã¸ "no implicit conversion of Fixnum into String" ã表示ãã¾ããããã¯ããæ´æ°ã32 ããæååã"C" ã«è¶³ããã¨ã¯ã§ããªããã¨ãæå³ãã¦ãã¾ãããã®ãããªãåãéããã¨ã©ã¼ã¯ã¨ã¦ãããèµ·ããã®ã§ãã©ã®ããã«ç´ãã°ããããããç解ãã¦ããã¦ãã ããã +
++Ruby ã®ããï¼ã¤ã®ä¾¿å©ãªæ©è½ã¯ãé åã(Array) ã§ããããã¯ãä»ã® Ruby ãªãã¸ã§ã¯ããé çªã«ä¸¦ã¹ããã®ã§ããé åã¯ãå¤ãã³ã³ãã§åºåã£ã¦è§æ¬å¼§ [] ã§å²ããã¨ã§è¡¨ãã¾ãã +
+% [1, 2, 3] +-->[1, 2, 3] +% +
++Ruby ã®ãªãã¸ã§ã¯ãã¯ãå¤æ°ãã«æ ¼ç´ãããã¨ãã§ãã¾ããå¤æ°ã®ååã¯ãå°æåã®ã¢ã«ãã¡ãããã§å§ã¾ããæ°åã¾ãã¯ã¢ã«ãã¡ããã ("_" ãå«ã) ã®ä¸¦ã³ã§ãªãã¦ã¯ãªãã¾ããã +
+% a = ["apple", "orange", "grape"] +-->["apple", "orange", "grape"] +% a[0] # é åã®è¦ç´ ãæå®ãã +-->"apple" +
+ +
+ããã¾ã§ã®ä¾ã§ã¯ãRuby ã®çµã¿è¾¼ã¿å Integer
, String
, Array
ã使ã£ã¦ãã¾ããããMolby ã¹ã¯ãªããã§ã¯ãååããæ±ããã¨ãå¿
è¦ã«ãªãã¾ãããã³ã¼ã³ååãããã¨ãã¾ãããã
+
+ãããã¯ãããã³ã¼ã³ã«å¤ãããã¨ãã¾ããã°ã©ãã£ãã¯ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ã¯ï¼ã¤ã®ããæ¹ãããã¾ããH1ååãããã«ã¯ãªãã¯ãã¦ãã¤ã¢ãã°ããã¯ã¹ã« "Cl" ã¨å ¥åããããå±æ§ãã¼ãã«ã® "element" ã®ã»ã«ã§ "H" ã "Cl" ã«å¤ãã¾ããããã Ruby ã¹ã¯ãªããã§è¡ãã«ã¯ã次ã®ããã«ãã¾ãã +
+% atoms[1].element = "Cl" +-->"Cl" +% +
+
+ãã®çãã³ã¼ãã«ãMolby ã§ã®ã³ã¼ãã£ã³ã°ã®éè¦ãªææ³ãå«ã¾ãã¦ãã¾ããã¾ããatoms
ã¯ãç¾å¨ã®ååãï¼ã³ã³ã½ã¼ã«ã¦ã£ã³ãã¦ãé¤ãã¦æãæåå´ã«ããã¦ã£ã³ãã¦ã®ååï¼ã«å«ã¾ããååã®ä¸¦ã³ã表ãã¾ããatoms
㯠Ruby ã®é
å (Array
) ã§ã¯ããã¾ããããå¤ãã®ç¹ã§é
åã¨åãããã«ä½¿ããã¨ãã§ãã¾ããç¹ã«ããæ·»åããã¤ãã¦ç¹å®ã®ååãæå®ãããã¨ãã§ãã¾ãã
+
atoms[i] # ç¾å¨ã®ååã® i çªç®ã®åå +
+
+atom[i]
ã§ã¯ãªã atoms[i]
ã§ãããã¨ã«æ³¨æãã¦ãã ãããæ··ä¹±ãã¾ããããã㯠atoms
ãååã®ä¸¦ã³ã§ []
ããâ¦çªç®ã®è¦ç´ ãåãåºããã¨ããæ©è½ã表ãããã§ãã
+
+次㯠.element = "Cl"
ã§ããRuby ã§ã¯ãããªãªã (.
) ã«ç¶ãã¦åèª (element
) ãæ¸ãã¨ããã¡ã½ããå¼ã³åºããã«ãªãã¾ãããã¡ã½ãããã¨ã¯ããã°ã©ãã³ã°è¨èª Ruby ã®ç¨èªã§ããã対象ï¼ãªãã¸ã§ã¯ãï¼ã«åºæã®åä½ãæãã¾ãããã®å ´åã¯ãatoms[1]
ããªãã¸ã§ã¯ãã§ãelement=
ã¨ããååã®ã¡ã½ãããæã£ã¦ãã¾ãï¼æå¾ã® '=' ãå«ã¿ã¾ãï¼ããã®ã¡ã½ããã¯ãããã®ååã®å
ç´ è¨å·ãå³è¾ºã®æååã§è¡¨ããããã®ã«å¤ãããã¨ããåãããã¾ãããã®ããã«ãã¦ãã¹ã¯ãªãã atoms[1].element = "Cl"
ã¯ãååï¼ã®å
ç´ è¨å·ã Cl ã«å¤ãã¾ãã
+
+ãããå ¨é¨ã®æ°´ç´ ååãå¡©ç´ ã«å¤ãããã¨ãããã©ãã§ãããï¼ã次ã®ããã«ãã¾ãã +
+% natoms.times { |i| if atoms[i].element == "H"; atoms[i].element = "Cl"; end } +-->12 +% +
++ããã¯åã®ä¾ãããã£ã¨è¤éã§ããã¹ããããã¨ã«èª¬æãã¦ããã¾ãã +
+
+natoms
ã¯ãç¾å¨ã®ååã®ååæ°ãæ´æ°ã§è¿ãã¾ããããã¯å®ã¯ã¡ã½ããå¼ã³åºãã§ãMolecule
åãªãã¸ã§ã¯ãã®ã¡ã½ãã natoms
ãå¼ãã§ãã¾ããããªãªãããªãã®ã«ã¡ã½ãããå¼ã³åºããã¦ããã®ã¯ãªãã§ãããï¼ããã㯠Ruby è¨èªã®ä»æ§ã«ããæé»ã®ã¡ã½ããå¼ã³åºãããããããã§ãããã¨ã§ããå°ã詳ãã説æãã¾ãã
+
natoms # 12 ã¨ãªã +
+
+times
ã¯ãInteger
ï¼ãã㯠Ruby ã®çµã¿è¾¼ã¿åã§ãï¼ã®ã¡ã½ããã§ãããã®å¾ãã®ä¸æ¬å¼§ {} ã§å²ã¾ããã³ã¼ãããæå®ããåæ°å®è¡ãã¾ãã
+
natoms.times { ... } # { ... } ã 12 åå®è¡ããã +
+ä¸æ¬å¼§ã§å²ãã ã³ã¼ãã Ruby ã®ç¨èªã§ããããã¯ãã¨å¼ã³ã¾ãã
++ç¹°ãè¿ãã³ã¼ãï¼ãããã¯ï¼ã®ä¸ã§ããä»å®è¡ãã¦ããã®ã¯ä½åç®ï¼ãããç¥ããããã¨ãããã¾ãããã®ããã«ã¯ããããã¯ã®å é ã§ãï¼æ¬ã®ç¸¦æ£ "|" ã§å²ãã§å¤æ°ãæå®ãã¾ãã +
+natoms.times { |i| ... } # { ... } ã®ä¸ã§ãå¤æ° i ã¯ç¹°ãè¿ãåæ°ã表ã +
+
+次ã®ãããªã³ã¼ãããã¹ãã®ããã«ãã使ããã¾ãã(puts
ã¯ä¸ãããããªãã¸ã§ã¯ããã³ã³ã½ã¼ã«ã«åºåãã¾ãã)
+
% natoms.times { |i| puts i } +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +-->12 +
+
+æå¾ã®è¡ã® "12" ã¯ãtimes
ã¡ã½ããã®ãæ»ãå¤ãã§ãããã®ä¸ã® 0 ãã 11 ã®æ°ã¯ãputs
ã¡ã½ããããã®åºåã§ãããããã¯ã 12 åå®è¡ãããå¤æ° i
ã 0 ãã 11 ã¾ã§å¤åãããã¨ããããã¾ããã
+
+ãããã¯ã®ä¸ã«ã¯ãif
æãããã¾ãã
+
if atoms[i].element == "H"; atoms[i].element = "Cl"; end +
+
+if
æã®ä¸è¬å½¢ã¯æ¬¡ã®éãã§ãã
+
if <æ¡ä»¶>; <å®è¡æ>; end +
++ã¾ã <æ¡ä»¶> ãè©ä¾¡ããã¾ããããããçããªãã°ã<å®è¡æ> ãå®è¡ããã¾ããæ¡ä»¶ããçãã§ãªããã°ã<å®è¡æ> ã¯ã¹ãããããã¾ãã +
+
+注: Ruby 㯠false
㨠nil
ã ãããçã§ãªããå¤ã¨ãã¾ãããã®ä»ã®å¤ã¯ãã¹ã¦ãçãã§ããç¹ã«ãæ°å¤ã® 0
ï¼ã¼ãï¼ã¨ç©ºã®æåå (""
) ããçãã¨ãªãã¾ãï¼ãã㯠Perl ãªã©ã®ä»ã®ããã°ã©ãã³ã°è¨èªã¨ã¯ç°ãªãã¾ãï¼ãå¤ãã® Ruby ã¡ã½ããã¯ã失æããã¨ãã« nil ãè¿ãã¾ãããããã®ã¡ã½ããã¯æ¡ä»¶é¨åã«ãã®ã¾ã¾ä½¿ãã¾ãã
+
+æå¾ã«åºã¦ãã element
ã¡ã½ããã¯ãå
ã«åºã¦æ¥ã element=
ã¡ã½ããã¨ã¯éãã¾ãã
+
atoms[i].element == "H" +
+
+ãã®å ´åã¯ãelement
ã®æ¬¡ã«æ¥ãè¨å·ã¯ "==
" ã§ãããã¯ãï¼ã¤ã®å¤ã¯çãããï¼ãã¨ããæå³ã§ãããã®è¨å·ã¯ "=
" ã¨ã¯éãã¾ããå¾è
ã¯ãå³è¾ºã左辺ã«ä»£å
¥ãããã¨ããæå³ã§ããelement
ã¨ããè¨å·ã¯ããã®æ¬¡ã« "=
" è¨å·ãæ¥ãã¨ãã«éã£ã¦ã"element=
" ã¡ã½ããã¨ãã¦è§£éããã¾ãããã®å ´åã¯ããã§ã¯ãªãã®ã§ãelement
ã¡ã½ãããå¼ã³åºããã¾ãããã®ã¡ã½ããã¯ãç¾å¨ã®å
ç´ è¨å·ã String
ï¼æååï¼ã¨ãã¦è¿ãã¾ãã
+
+ã¹ã¯ãªãããå®è¡ããããååã¯æ¬¡ã®ããã«ãªãã¯ãã§ãã +
+
+åã®ç¯ã§ãnatoms
㯠Molecule
ãªãã¸ã§ã¯ãã®ã¡ã½ããã§ãããã¨ãå¦ã³ã¾ããã
+
natoms # 12 ï¼ãã³ã¼ã³ã®å ´åï¼ +
+
+ãªããã® natoms
ã¯ã¡ã½ããå¼ã³åºãã¨è¦ãªãããã®ã§ãããï¼ãå®ã¯ãRuby ã¤ã³ã¿ããªã¿ï¼Ruby ã¹ã¯ãªãããå®è¡ããããã°ã©ã ï¼ã¯å°æåã®ã¢ã«ãã¡ãããã§å§ã¾ãåèªãè¦ã¤ããã¨ãã¾ãå¤æ°ï¼ãã¼ã«ã«å¤æ°ï¼ãæ¢ãããããè¦ã¤ãããªããã°ãç¾å¨ã®ãªãã¸ã§ã¯ããã«å±ããã¡ã½ããã§ããã¨è¦ãªãã®ã§ããRuby ã¯ããªãã¸ã§ã¯ãæåè¨èªããªã®ã§ãRuby ã¹ã¯ãªããã®å®è¡ä¸ã¯å¿
ããç¾å¨ã®ãªãã¸ã§ã¯ãããåå¨ãã¦ãã¾ããããã self
ã¨å¼ã³ã¾ããã³ã³ã½ã¼ã«ã§è©¦ãã¦ã¿ã¾ãããï¼
+
% self +-->Molecule["unnamed1"] +% +
+
+ãã®çµæã¯ããç¾å¨ã®ãªãã¸ã§ã¯ããã "unnamed1" ã¨ããååã表ã Molecule
ãªãã¸ã§ã¯ãã§ãããã¨ã示ãã¦ãã¾ããMolby ã³ã³ã½ã¼ã«ã§ã¹ã¯ãªãããå®è¡ããæã¯ãæåé¢ã«ããã¦ã£ã³ãã¦ã®ååã«å¯¾å¿ãã Molecule
ãªãã¸ã§ã¯ãããç¾å¨ã®ãªãã¸ã§ã¯ããã«ãªãã¾ãã
+
ååã®ã¦ã£ã³ãã¦ãï¼ã¤ãéãã¦ããªãæã¯ãç¾å¨ã®ãªãã¸ã§ã¯ã㯠main
ã«ãªãã¾ãããã㯠Ruby èµ·åæã®ãç¾å¨ã®ãªãã¸ã§ã¯ããã¨åããã®ã§ãã
+ã¨ãã©ããMolecule
ãæã¤ã¡ã½ããåã¨åãååã®å¤æ°ãä½ã£ã¦ãã¾ããã¨ãããã¾ãããã®å ´åãå¤æ°ã¸ã®ã¢ã¯ã»ã¹ãåªå
ããã¾ãã®ã§ãã¡ã½ãããå¼ã³åºããã¨ã¯ã§ããªããªãã¾ãã
+
% natoms = 2 # å¤æ° natoms ãå®ç¾© +-->2 +% natoms # ããã¯å¤æ°ã¸ã®ã¢ã¯ã»ã¹ã«ãªããã¡ã½ããå¼ã³åºãã§ã¯ãªã +-->2 +% +
+
+ãã®å ´åã§ããself
ãæå®ããã°ã¡ã½ãããå¼ã³åºããã¨ãã§ãã¾ãã
+
% self.natoms # ããã¯ã¡ã½ããå¼ã³åºã +-->12 +% +
+
+ç¹ã«æ³¨æãå¿
è¦ãªã®ã¯ã代å
¥è¨å· ("=
") ãæã¤ã¡ã½ããã§ããä¾ãã°ãshow_hydrogens=
ã¨ããã¡ã½ããã¯ãæ°´ç´ ååã表示ãããã©ãããæå®ãããã®ã§ããããããself
ã使ããªãã¨ããã¼ã«ã«å¤æ°ã¸ã®ä»£å
¥ã«ãªã£ã¦ãã¾ãã¾ããå¾ã£ã¦ããã®å ´åã¯å¸¸ã« self
ãæå®ããå¿
è¦ãããã¾ãã
+
% show_hydrogens = false # ããã¯ãã¼ã«ã«å¤æ°ã¸ã®ä»£å ¥ã§ãååã®ç¶æ ã¯å¤ãããªã +-->false +% self.show_hydrogens = false # ããã¯ã¡ã½ããå¼ã³åºãã§ãååã®ç¶æ ãå¤ãã +-->false +% +
++Ruby ã³ã³ã½ã¼ã«ä¸ã§ã¯ãï¼è¡ã®ã¹ã¯ãªããããå®è¡ã§ãã¾ããããã£ã¨è¤éãªã¹ã¯ãªãããå®è¡ãããæããåãã¹ã¯ãªãããä½åº¦ãå®è¡ãããæã¯ããã¡ã¤ã«ã«ã¹ã¯ãªãããæ ¼ç´ãã¦å®è¡ããæ¹ã便å©ã§ãã"Script" ã¡ãã¥ã¼ã® "Execute Script..." ã³ãã³ãã§ãããå®ç¾ã§ãã¾ãã +
++ã¹ã¯ãªããã«ã¯ç¡éã®å¯è½æ§ãããã¾ããããã¤ãã®ä¾ãããã«ç¤ºãã¾ããæåã®ãã®ã¯ããéååãå«ãçµåé·ã®ãã¼ãã«ãä½ããã¹ã¯ãªããã§ãã +
+# Create a bond table including Fe +# Requires Molby +fp = open("bond_table.txt", "w") # Create an output file +atoms.each { |ap| # This is another way to repeat over all atoms; + # ap points to the atom on each iteration + if ap.element == "Fe" + r1 = ap.r # The cartesian coordinate of Fe + ap.connects.each { |n| # ap.connects is an array of atom indices connected to this atom + ap2 = atoms[n] # The atom connected to Fe + r2 = ap2.r # The cartesian coordinate of the atom + d = (r - r2).length # The bond length + fp.printf "%s-%s %.3f\n", ap.name, ap2.name, d # Write a table entry to the file + } # End loop (ap.connects) + end # End if +} # End loop (atoms.each) +fp.close # We are done with this file +
++ãã®ããã¹ãããã¡ã¤ã«ã«ä¿åãã"Execute Script..." ã³ãã³ããå®è¡ãï¼ç®çã®ååãä¸çªåã®ã¦ã£ã³ãã¦ã«è¡¨ç¤ºããã¦ãããã¨ã確ããã¦ï¼ãã¹ã¯ãªãããã¡ã¤ã«ãé¸ã³ã¾ããå®è¡å¾ã"bond_table.txt" ã¨ãããã¡ã¤ã«ããã¹ã¯ãªãããã¡ã¤ã«ã¨åããã£ã¬ã¯ããªã«ä½æããã¦ãã¾ãã +
++次ã®ä¾ã¯ãMD ãã©ã¸ã§ã¯ããªãå¦çãããã®ã§ããåãã¬ã¼ã ã«å¯¾ãã¦ãåå 0 ãåç¹ãåå 1, 2 ã xy å¹³é¢ä¸ï¼åå 1 ã x 軸ä¸ï¼ã«æ¥ãããã«ååãåé åãã¦ãåå 6 ãã 11 ã®éå¿ãè¨ç®ãã¾ãããã®ãããªå¦çã¯ãMD ã®çµæååã®ããé¨åãã©ã®ããã«åãããå¯è¦åããã®ã«ä¾¿å©ã§ãã +
+# Reorient the molecule and extract center of some group +# Requires Molby +fp = open("extract_group.txt", "w") # Create an output file +each_frame { |n| # This is an idiom to iterate over all frames + rotate_with_axis(1, 2, 0) # Reorientation of the molecule is so frequently used + # that the Molecule class has a method to do it + r = center_of_mass(6..11) # Also has a method to calculate the center of mass + fp.printf "%d %.6f %.6f %.6f\n", n, r.x, r.y, r.z # Write the coordinates +} +fp.close # We are done with this file +
++æå¾ã®ä¾ã¯ãä»»æã®ãã©ãªãã£ã»é·ãã®ã«ã¼ãã³ãããã¥ã¼ãã®ã¢ãã«ãä½æããã¹ã¯ãªããã§ãã +
+# Create a model of carbon nanotube +# Requires Molby +r = 1.42 # The C-C bond length +n = 10 # The default chirality index +m = 5 # (ibid) +aspect = 5.0 # The default aspect ratio (length / diameter) + +# Dialog to ask the chirality index and the aspect ratio +h = Dialog.run("Create Carbon Nanotube") { + layout(3, + item(:text, :title=>"Chirality Index"), + item(:textfield, :width=>80, :tag=>"n", :value=>n.to_s), + item(:textfield, :width=>80, :tag=>"m", :value=>m.to_s), + item(:text, :title=>"Aspect Ratio"), + item(:textfield, :width=>160, :tag=>"aspect", :value=>sprintf("%.1f", aspect)), + -1) +} + +exit if h[:status] != 0 +aspect = h["aspect"].to_f +n = h["n"].to_i +m = h["m"].to_i + +k = aspect / (PI * sqrt(3.0)) +points = [] +# The limiting points are (0, 0), (n, m), (k(n+2m), -k(2n+m)), (k(n+2m)+n, -k(2n+m)+n) +# Search for the lattice points that are within the parallelogram +# surrounded by the above points +# det is the determinant of the matrix that converts the unit cell to the above parallelogram +delta = 2 * k * (n * n + m * m + n * m) +(0..(k * (n + 2 * m) + n).ceil).each { |s| + ((-k * (2 * n + m)).floor..m).each { |t| + [0, 2.0/3.0].each { |d| # For two lattice points within the unit cell + ss = (k * (2 * n + m) * (s + d) + k * (n + 2 * m) * (t + d)) / delta + tt = (m * (s + d) - n * (t + d)) / delta + if ss >= 0.0 && ss < 1.0 && tt >= 0.0 && tt <= 1.0 + points.push([ss, tt, s, t]) # This point is within the parallelogram + end + } + } +} +# Create nanotube: line up [ss, tt] into cylindric shape +rad = sqrt(3.0) * r * sqrt(n * n + m * m + n * m) / (2 * PI) +len = rad * 2 * aspect +mol = Molecule.new +points.each { |p| + ap = mol.create_atom + ap.element = "C" + ap.atom_type = "ca" + ap.r = [rad * cos(2 * PI * p[0]), rad * sin(2 * PI * p[0]), len * p[1]] +} +mol.guess_bonds +# Show the result in a new window +mol2 = Molecule.open +mol2.add(mol) +
++çµã¿è¾¼ã¿ Ruby ã¤ã³ã¿ããªã¿ã¯é常ã«å¼·åã§ããããããã®çããã¥ã¼ããªã¢ã«ã§ã¯èª¬æãããã¾ãããèå³ããããªããRuby æ¡å¼µã®ãªãã¡ã¬ã³ã¹ ã«ç®ãéãã¦ãã ãããã¾ããMolby ã¢ããªã±ã¼ã·ã§ã³æ¬ä½ã«ã¯ããããã® Ruby ã¹ã¯ãªãããå èµããã¦ãã¾ãã"Scripts" ãã©ã«ããåç §ãã¦ãã ããï¼Mac OS X ã§ã¯ Molby ã¢ããªã±ã¼ã·ã§ã³ããã±ã¼ã¸ã®ä¸ãWindows ã§ã¯ Molby ã¢ããªã±ã¼ã·ã§ã³ã¨åããã©ã«ãã«ããã¾ãï¼ã +
+
The following classes/module/exception are defined in the embedded Ruby interpreter in Molby. The methods defined in the module Kernel
can be used as if they are builtin functions, like in the standard Ruby interpreter. All other classes and MolbyError
exception are defined under the a module Molby
. However, Molby::
prefix is not necessary because include Molby
is invoked on startup.
+On startup, include Math
is also invoked, so that the methods and constants in the Math
module can also be used without prefix.
+
It is recommended for you to read the document of the most important class Molecule. Follow the links as necessary, and you will understand how other classes are defined and used.
@@ -985,6 +2890,7 @@ It is recommended for you to read the document of the most important class DialogKernel
ã¢ã¸ã¥ã¼ã«ã®ã¡ã½ããã¯ãé常㮠Ruby ã¤ã³ã¿ããªã¿ã¨åæ§ã«çµã¿è¾¼ã¿é¢æ°ã®ããã«ä½¿ããã¨ãã§ãã¾ãããã®ä»ã®ã¯ã©ã¹ã¨ MolbyError
ä¾å¤ã¯ Molby
ã¢ã¸ã¥ã¼ã«ã®ä¸ã«å®ç¾©ããã¦ãã¾ãããã ããèµ·åæã« include Molby
ãå¼ã³åºããããããMolby::
æ¥é è¾ã¯å¿
è¦ããã¾ããã
+
+èµ·åæã«ã¯ include Math
ãå¼ã³åºããããããMath
ã¢ã¸ã¥ã¼ã«ã®ã¡ã½ãããå®æ°ãæ¥é è¾ãªãã§ä½¿ããã¨ãã§ãã¾ãã
+
æãéè¦ãªã¯ã©ã¹ã¯ Molecule ãªã®ã§ããã®ããã¥ã¡ã³ããæåã«èªããã¨ããå§ããã¾ããããããå¿ è¦ã«å¿ãã¦ãªã³ã¯ããã©ã£ã¦ããã°ãä»ã®ã¯ã©ã¹ãã©ã®ããã«å®ç¾©ãã使ãããããç解ãããããªãã¾ãã
@@ -1017,6 +2927,7 @@ It is recommended for you to read the document of the most important class Dialog+In the research of chemistry, we sometimes a simple processing of text files. Ruby is particularly suitable for such purposes. To make the use of Ruby easier, Molby provides a special capability called "filter kit" (version 0.6.4 and later). The name originates from the "UNIX" culture, where small programs for text processing are called "filters". +
++Here is a description of making a filter script. As a demonstration, the filter here is a very simple function; it appends a sequential line number on each line. +
+
+To write a filter, we create a new text file, with extention ".rb" or ".mrb". Former is conventional as a Ruby script, but latter may be useful to specify Ruby scripts for Molby. +
++We start from the following line: +
+Dialog.filter_kit("Filter Sample", "This is a sample filter.") { |args| +
+
+The method Dialog.filter_kit
takes two arguments, the window title and the message. It also requires a block, which actually contains the main program.
+
+When the user presses the "Select Files" button and choose files (which can be multiple), the block is executed with the array of the chosen file names as the argument. The block body is written as follows: +
+1 Dialog.filter_kit("Filter Sample", "This is a sample filter.") { |args| + 2 args.each { |fname| + 3 fp = open(fname, "r") + 4 if fp == nil + 5 error_message_box("Cannot open file: #{arg}") + 6 next + 7 end + 8 puts fname + 9 a = fp.readlines + 10 fp.close + 11 File.rename(fname, fname + "~") + 12 fp2 = open(fname, "w") + 13 a.each_with_index { |ln, n| + 14 ln = (n + 1).to_s + " " + ln + 15 fp2.print ln + 16 } + 17 fp2.close + 18 } +
+{}
) is repeated over all files.ln
and n
, respectively.(n + 1)
denotes the line number (because the array index begins with zero), and to_s
generates a String object from an Integer.+The above text is saved as "filter_sample.rb" (the filename can be arbitrary except for the extension). Open it with Molby, and you will get the filter running. +
++åå¦ã®ç 究ã§ã¯ãããã¹ããã¡ã¤ã«ã«ç°¡åãªå¦çãå ããããã¨ãã¨ãã©ãããã¾ããRuby ã¯ãã®ç®çã«ç¹ã«é©ãã¦ãã¾ããRuby ãç°¡åã«ä½¿ããããã«ãããããMolby 㯠"filter kit" ã¨ããç¹å¥ãªæ©è½ãæã£ã¦ãã¾ãï¼ãã¼ã¸ã§ã³ 0.6.4 以éï¼ãFilter ã¨ããåå㯠"UNIX" ã®æåããæ¥ã¦ãããããã¹ããå¦çããå°ããªããã°ã©ã ã®ãã¨ãæãã¾ãã +
++以ä¸ã«ãã£ã«ã¿ã¹ã¯ãªããã®ä½ãæ¹ã解説ãã¾ãã説æã®ãããããåç´ãªæ©è½ãæã£ããã®ãä½ãã¾ãããã¡ã¤ã«ã®åè¡ã«è¡çªå·ãã¤ãããã®ã§ãã +
+
+ãã£ã«ã¿ãæ¸ãããã«ã¯ãæ°ããããã¹ããã¡ã¤ã«ãä½ã£ã¦ãæ¡å¼µåã ".rb" ã ".mrb" ã¨ãã¾ããåè ã Ruby ã¹ã¯ãªããã¨ãã¦ä¸è¬çãªãã®ã§ãããå¾è 㯠Molby å°ç¨ã®ã¹ã¯ãªããã示ãããã«ä½¿ããã¨ãã§ãã¾ãã +
++ã¾ã次ã®è¡ããå§ãã¾ãã +
+Dialog.filter_kit("Filter Sample", "This is a sample filter.") { |args| +
+
+Dialog.filter_kit
ã¨ããã¡ã½ããã¯ï¼ã¤ã®å¼æ°ãã¨ãã¾ããã¦ã£ã³ãã¦ã®ã¿ã¤ãã«ã¨ãã¡ãã»ã¼ã¸ã§ãããã®ä»ã«ãããã¯ãå¿
è¦ã§ããã®ä¸ã«ã¡ã¤ã³ããã°ã©ã ãç½®ãã¾ãã
+
+ãã£ã«ã¿ã®ã¦ã¼ã¶ã¼ã "Select Files" ãã¿ã³ã§ãã¡ã¤ã«ãé¸ã¶ã¨ï¼è¤æ°ã®ãã¡ã¤ã«ãé¸æã§ãã¾ãï¼ããããã¯ãå®è¡ãããé¸æããããã¡ã¤ã«åã®é å (Array) ãå¼æ°ã¨ãã¦æ¸¡ããã¾ãããããã¯ã®æ¬ä½ã¯æ¬¡ã®ããã«æ¸ãã¾ãã +
+1 Dialog.filter_kit("Filter Sample", "This is a sample filter.") { |args| + 2 args.each { |fname| + 3 fp = open(fname, "r") + 4 if fp == nil + 5 error_message_box("Cannot open file: #{arg}") + 6 next + 7 end + 8 puts fname + 9 a = fp.readlines + 10 fp.close + 11 File.rename(fname, fname + "~") + 12 fp2 = open(fname, "w") + 13 a.each_with_index { |ln, n| + 14 ln = (n + 1).to_s + " " + ln + 15 fp2.print ln + 16 } + 17 fp2.close + 18 } +
+{}
) å
ã®ã³ã¼ããåãã¡ã¤ã«ã«å¯¾ãã¦ç¹°ãè¿ãã¾ããln
and n
ã¨ãã¦ãããã¯ã«æ¸¡ããã¾ãã(n + 1)
ãè¡çªå·ã«ãªãã¾ãï¼ã¤ã³ããã¯ã¹ã¯ï¼ããå§ã¾ãããï¼ãto_s
ã¯æ´æ°ãæååã«å¤æãã¾ãã+ä¸ã®ããã¹ãã "filter_sample.rb" ã¨ãã¦ä¿åãã¾ãï¼æ¡å¼µåãæ£ãããã°ããã¡ã¤ã«åã¯ä½ã§ãæ§ãã¾ããï¼ããã®ãã¡ã¤ã«ã Molby ã§éãã°ããã£ã«ã¿ã¨ãã¦ä½¿ããã¨ãã§ãã¾ãã +
+