<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">Hi Pablo,<div class=""><br class=""></div><div class="">  The typical approach is to write a temporary file for the PDB and the map, for example,</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">  </span>from Midas import write</div><div class=""><span class="Apple-tab-span" style="white-space:pre">   </span>write(mol, map, “outfile.pdb”)</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre"> </span>map.write_file(“outfile.mrc”)</div><div class=""><br class=""></div><div class="">The first two lines write out a pdb file.  The map is given as an argument to tell it to write the PDB relative to the map coordinate system (probably what you want for fitting).  The third line writes the map file in MRC format.  Chimera does not write CCP4 format, but MRC and CCP4 are almost identical and can probably be used interchangably by your code.  If you need the file suffix to be ccp4 you can instead use</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">   </span>map.write_file(“outfile.ccp4”, format=“mrc”)</div><div class=""><br class=""></div><div class="">  In some cases you the opened molecule and map may already come from a PDB file and map file and you could use those paths.  But molecules can also come from mmCIF or mol2 and maps can come from many different format files or be produced inside Chimera.  So relying on the original files won’t work in general.  But if you still want to pursue that all models (molecule and map Python objects have an openedAs attribute that has the file path and file type:</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">      </span> mol.openedAs = (file_path, type, default_type, prefixable_type)</div><div class=""><br class=""></div><div class="">When the files are fetched from a database this does not give the local cached copy of the file.  For molecules the cached file path is simply not easy to get at, and for maps you can always get the local file path using map.data.path.</div><div class=""><br class=""></div><div class=""><span class="Apple-tab-span" style="white-space:pre">     </span>Tom</div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">On Feb 24, 2017, at 12:12 AM, Pablo Solar Rodríguez <<a href="mailto:pablo.solar@delogica.com" class="">pablo.solar@delogica.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" class=""><div style="font-size: 10pt; font-family: Helvetica,Arial,sans-serif" class=""><div class=""> <br class="webkit-block-placeholder"></div>
<div class=""><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" class=""></span><span style="font-size: 10pt; font-family: tahoma, arial, helvetica, sans-serif;" class=""><code class=""><span class="pun">Hello again dear mates!<br class=""><br class="">I've been working those days in my extension and the GUI es almost finished. Now I want to fill this skeleton with the process logic. To understand between us, I have an external compiled program that is executed in shell this way:<br class=""><br class="">./bin/myProgram ./dir1/pdbselected.pdb ./dir/mapselected.ccp4 arg3 arg3 arg4<br class=""><br class="">And for sure, in my .py test, it has to be executed as:<br class=""><br class="">import subprocess<br class="">subprocess.call(["./Users/Solar/Desktop/parent/child1/child2/bin/myProgram",<br class=""> "/Users/Solar/Desktop/parent/child1/child2/dir1/pdbselected.pdb", "/Users/Solar/Desktop/parent/child1/child2/dir1/mapselected.ccp4", "arg3", "arg4", "arg5"])<br class=""><br class="">The problem is to execute this in Chimera as an extension. The coding I made for the PDB and the Map it's similar to the FitMap tool (in Volume Data), where I use:<br class=""><br class="">...<br class=""># PDB<br class="">from chimera import Molecule<br class=""> mlist = [m for m in fit_object_models() if isinstance(m, Molecule)]<br class=""> fstart = mlist[0] if mlist else None<br class=""> from chimera.widgets import ModelOptionMenu<br class=""> om = ModelOptionMenu(ff, labelpos = 'w', label_text = 'Fit ',<br class=""> initialitem = fstart,<br class=""> listFunc = fit_object_models,<br class=""> sortFunc = compare_fit_objects,<br class=""> command = self.object_chosen_cb)<br class=""> om.grid(row = 0, column = 0, sticky = 'w')<br class=""> self.object_menu = om<br class=""><br class=""># Map<br class=""> fm = Volume_Menu(ff, ' in map ')<br class=""> fm.frame.grid(row = 0, column = 1, sticky = 'w')<br class=""> self.map_menu = fm<br class="">--<br class=""><br class="">The question is, how can I pass the PDB to the compiled program as it is expected? Or, another possible solution, the paths of the PDB and the Map loaded in Chimera? I didn't found any friendly doc (methods, info and so on) about this and and I'm a mess :/<br class=""><br class="">Thank you in advance dear coworkers!<br class=""><br class="">Pablo<br class=""></span></code></span></div>
<div class=""><span style="font-family: arial, helvetica, sans-serif; font-size: 10pt;" class=""> </span></div>
</div>
_______________________________________________<br class="">Chimera-dev mailing list<br class=""><a href="mailto:Chimera-dev@cgl.ucsf.edu" class="">Chimera-dev@cgl.ucsf.edu</a><br class="">http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-dev<br class=""></div></blockquote></div><br class=""></div></body></html>