I call it like:
jmolCheckbox(\"crossMeasure('$select_r.ca', '$select_rmodel.ca')\",
\"measure OFF\", \"\");
but nothing seems to happen...

2011/3/28 Daniel Carbajo <daniel.carb...@gmail.com>

> OK obviously better this way:
>
> $JMOL = "<script type=\"text/javascript\">
>                     jmolInitialize(\"Jmol-12new\", true);
>                     jmolSetAppletColor(\"white\");
>                     var jmolcmds = [
>                         \"load $ZIPtoUSE|Models_$code/$pdb.pdb\",
>                         \"set frank off; select all; hbonds off; spin off;
> wireframe off; spacefill off; trace off; set ambient 40; set specpower 40;
> slab off; ribbons off; cartoons off; label off; monitor off\",
>                         \"set showAxes true\",
>                         \"set appendNew true\",
>                         \"frame all\",
>                         \"display all\",
>                         \"select 1.1; cartoon; color white\",
>                         \"select 1.1 and :$cadena; color red\",
>                         \"script myJMOLfunctions.spt\"
>
>                      ];
>                     jmolApplet([580,580], jmolcmds.join(\"; \"));
>                 </script>";
>
>
> 2011/3/28 Daniel Carbajo <daniel.carb...@gmail.com>
>
>> Thanks a lot! Sorry for not answering before, I have been away during the
>> weekend... So this seems it should work. I indeed use Jmol.js, but the atoms
>> are preselected (they are C-alphas from residues known to be catalytic by
>> the Catalytic Site Atlas) and, actually, the corresponding residue number
>> (and even the atom number) might not be the same between the native
>> structure and the homology models (but it will be the same in all homology
>> models), so I modified the function like this:
>>
>> function crossMeasure(atomListN, atomListM){
>>     var n = atomListM.length
>>
>>     measures delete
>>     for (var i = 2; i <= n; i++) {
>>       set measurementUnits angstroms
>>       set measurements 3
>>       font measure 16 serif bold
>>       measure @{atomListN[1]} @{atomListM[i]}
>>     }
>> }
>>
>> So the parameters passed will directly be something like "4:A.ca" and
>> "6:A.ca" ($selectedRES_native and $selectedRES_models).
>> I save the functions in myfunctions.spt, I call it when I launch the
>> applet and it seems to launch properly, but when I try to load the models
>> (that are loaded one by one after launching the applet via a series of
>> checkboxes) I get an alert saying "could not find applet jmolApplet0" and
>> the models do not show up. This is how I launch the applet:
>>
>> $JMOL = "<script type=\"text/javascript\">
>>                     jmolInitialize(\"Jmol-12new\", true);
>>                     jmolSetAppletColor(\"white\");
>>                     var jmolcmds = [
>>                         \"load $ZIPtoUSE|Models_$code/$pdb.pdb\",
>>                         \"set frank off; select all; hbonds off; spin off;
>> wireframe off; spacefill off; trace off; set ambient 40; set specpower 40;
>> slab off; ribbons off; cartoons off; label off; monitor off\",
>>                         \"set showAxes true\",
>>                         \"set appendNew true\",
>>                         \"frame all\",
>>                         \"display all\",
>>                         \"select 1.1; cartoon; color white\",
>>                         \"select 1.1 and :$cadena; color red\"
>>                      ];
>>                     jmolApplet([580,580], jmolcmds.join(\"; \"), \"script
>> myfunctions.spt\");
>>                 </script>";
>>
>> Do I have to place myfunctions.spt in a particular place? What am I doing
>> wrong? Thanks again for all your help Bob and everyone in the list!
>> Cheers,
>>
>> Daniel
>>
>>
>>
>>
>>
>> 2011/3/25 Robert Hanson <hans...@stolaf.edu>
>>
>>> OK, that's Jmol scripting, not JavaScript. Are you using Jmol.js for your
>>> page (I hope)? How are you choosing the atoms -- is it a user click so it is
>>> variable? Usually for that we use a pickCallback, from which you get an atom
>>> index (a unique number for each atom in the full set of loaded atoms). I
>>> would probably keep a set of useful Jmol script functions in a .spt file and
>>> then load that when the applet loads. Like this:
>>>
>>>
>>> jmolApplet(500,"set pickCallback 'myPickCallback'; script
>>> myfunctions.spt")
>>>
>>> and then have a file myfunctions.spt:
>>>
>>> function crossMeasure(iAtom){
>>>
>>>    // find the atom number that is associated with this atom
>>>    // I'm presuming all the measurements are between atoms
>>>    // with the same atom number.
>>>
>>>     var atomNumber = {atomIndex = iAtom}.atomno
>>>     var atomList = {atomno=atomNumber}
>>>     var n = atomList.length
>>>     measures delete
>>>
>>>     for (var i = 2; i <= n; i++) {
>>>         measure @{atomList[1]} @{atomList[i]}
>>>     }
>>> }
>>>
>>>
>>>
>>> Then your pickCallback, which is a JavaScript function in the head of the
>>> page, would look like this:
>>>
>>> function myPickCallback(appletID,atomID, atomIndex) {
>>>    jmolScript("crossMeasure(" + atomIndex + ")")
>>> }
>>>
>>> See how that works? The main scripting is done in Jmol, but we do the
>>> callback to JavaScript. Another option would be to do it all in Jmol:
>>>
>>> jmolApplet(500,"set pickCallback 'jmolScript:crossMeasure(-1)'; script
>>> myfunctions.spt")
>>>
>>> and then have a file myfunctions.spt:
>>>
>>> function crossMeasure(iAtom){
>>>
>>>    // find the atom number that is associated with this atom
>>>    // I'm presuming all the measurements are between atoms
>>>    // with the same atom number.
>>>    // _atomPicked is the atom index of the most recent atom clicked on
>>>
>>>    if (iAtom < 0) { iAtom = _atomPicked }
>>>     var atomNumber = {atomIndex = iAtom}.atomno
>>>     var atomList = {atomno=atomNumber}
>>>     var n = atomList.length
>>>     measures delete
>>>
>>>     for (var i = 2; i <= n; i++) {
>>>         measure @{atomList[1]} @{atomList[i]}
>>>     }
>>> }
>>>
>>> Then you don't need any JavaScript.
>>>
>>> Of course, you might want something on your page to turn this off by
>>> setting pickCallback to ""
>>>
>>>
>>>
>>>
>>> <script type="text/javascript">
>>>>
>>>> </script>
>>>>
>>>> And I would like to call it like:
>>>> jmolCheckbox("crossMeasure($selectedRES.ca)", \"measure OFF\", \"show
>>>> distances\");
>>>> Is it possible?
>>>>
>>>>
>>> How are you assigning selectedRES? If it's really a Jmol selection, then
>>> what you would do is substitute something like this, maybe:
>>>
>>> jmolCheckbox("crossMeasure('selectedRes')", \"measure OFF\", \"show
>>> distances\");
>>>
>>> and then:
>>>
>>> function crossMeasure(iAtom){
>>>
>>>    // find the atom number that is associated with this atom
>>>    // I'm presuming all the measurements are between atoms
>>>    // with the same atom number.
>>>
>>>    if (iAtom == "selectedRes") { iAtom = {selected and *.ca}[1].atomIndex
>>> }
>>>
>>> ...
>>>
>>>
>>>
>>>
>>>
>>>
>>>> Thanks again,
>>>> Daniel
>>>>
>>>>
>>>> 2011/3/25 Robert Hanson <hans...@stolaf.edu>
>>>>
>>>>> Here you  go:
>>>>>
>>>>> var atomList = {46:A.ca}
>>>>> var n = atomList.length
>>>>> for (var i = 2; i <= n; i++) {
>>>>>   measure @{atomList[1]} @{atomList[i]}
>>>>> }
>>>>>
>>>>>
>>>>> Bob
>>>>>
>>>>> --
>>>>> Robert M. Hanson
>>>>> Professor of Chemistry
>>>>> St. Olaf College
>>>>> 1520 St. Olaf Ave.
>>>>> Northfield, MN 55057
>>>>> http://www.stolaf.edu/people/hansonr
>>>>> phone: 507-786-3107
>>>>>
>>>>>
>>>>> If nature does not answer first what we want,
>>>>> it is better to take what answer we get.
>>>>>
>>>>> -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900
>>>>>
>>>>>
>>>>> ------------------------------------------------------------------------------
>>>>> Enable your software for Intel(R) Active Management Technology to meet
>>>>> the
>>>>> growing manageability and security demands of your customers.
>>>>> Businesses
>>>>> are taking advantage of Intel(R) vPro (TM) technology - will your
>>>>> software
>>>>> be a part of the solution? Download the Intel(R) Manageability Checker
>>>>> today! http://p.sf.net/sfu/intel-dev2devmar
>>>>> _______________________________________________
>>>>> Jmol-users mailing list
>>>>> Jmol-users@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/jmol-users
>>>>>
>>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Enable your software for Intel(R) Active Management Technology to meet
>>>> the
>>>> growing manageability and security demands of your customers. Businesses
>>>> are taking advantage of Intel(R) vPro (TM) technology - will your
>>>> software
>>>> be a part of the solution? Download the Intel(R) Manageability Checker
>>>> today! http://p.sf.net/sfu/intel-dev2devmar
>>>> _______________________________________________
>>>> Jmol-users mailing list
>>>> Jmol-users@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/jmol-users
>>>>
>>>>
>>>
>>>
>>> --
>>> Robert M. Hanson
>>> Professor of Chemistry
>>> St. Olaf College
>>> 1520 St. Olaf Ave.
>>> Northfield, MN 55057
>>> http://www.stolaf.edu/people/hansonr
>>> phone: 507-786-3107
>>>
>>>
>>> If nature does not answer first what we want,
>>> it is better to take what answer we get.
>>>
>>> -- Josiah Willard Gibbs, Lecture XXX, Monday, February 5, 1900
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Enable your software for Intel(R) Active Management Technology to meet
>>> the
>>> growing manageability and security demands of your customers. Businesses
>>> are taking advantage of Intel(R) vPro (TM) technology - will your
>>> software
>>> be a part of the solution? Download the Intel(R) Manageability Checker
>>> today! http://p.sf.net/sfu/intel-dev2devmar
>>> _______________________________________________
>>> Jmol-users mailing list
>>> Jmol-users@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/jmol-users
>>>
>>>
>>
>
------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
Jmol-users mailing list
Jmol-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jmol-users

Reply via email to