[Chimera-users] Obtaining the path to a currently loaded model or volume
Eric Pettersen
pett at cgl.ucsf.edu
Fri Apr 12 13:38:34 PDT 2019
Hi Ricardo,
Volume models also have an ‘openedAs’ attribute. For PDB files, if the first component of the openedAs attribute isn’t an existing file, and it’s exactly 4 characters long and the second component of the tuple is ‘PDB’, then it’s probably a fetched PDB file. For that case, use this code to try to get the path:
from chimera.fetch import FETCH_PREFERENCES, FETCH_DIRECTORY
import preferences
cache_dir = preferences.get(FETCH_PREFERENCES, FETCH_DIRECTORY)
id_code = openedAs[0].upper()
if cache_dir:
from OpenSave import tildeExpand
cache_dir = tildeExpand(cache_dir)
from os.path import join, isfile
path = join(cache_dir, ‘PDB’, id_code + “.pdb”)
if not isfile(path):
# PDB fetch falls back to mmCIF fetch, check for that
path = join(cache_dir, ‘PDB’, id_code + ‘.cif’)
if not isfile(path):
path = None
else:
path = None
—Eric
> On Apr 12, 2019, at 9:20 AM, Ricardo Avila <ravila at protonmail.com> wrote:
>
> Thank you Eric.
>
> I was able to implement the feature I wanted for PDBs opened from a single file. I think it would be nice to be able to do it for fetched files too, so I would appreciate some help on that. I was also wondering if opened volumes have the same 'openedAs' attribute.
>
> Best,
>
> Ricardo
>
> ‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐
> On Thursday, April 11, 2019 2:49 PM, Eric Pettersen <pett at cgl.ucsf.edu> wrote:
>
>> Hi Ricardo,
>> Every opened model in Chimera has an ‘openedAs’ attribute which is either None or a 4-tuple. For models that were directly opened from a single file on the file system (rather than fetched to a file for instance), openedAs will be a tuple whose first component is the full path to that file. If you need more that that (e.g. fetched files too, which is more complicated), let me know and I can provide those details.
>>
>> —Eric
>>
>> Eric Pettersen
>> UCSF Computer Graphics Lab
>>
>>> On Apr 10, 2019, at 12:49 PM, Ricardo Avila <ravila at protonmail.com <mailto:ravila at protonmail.com>> wrote:
>>>
>>> Hi,
>>>
>>> I am trying to write an extension for a tool that requires PDB files or MRC structures as input. I would like to be able to pass the model or volume that is currently loaded in Chimera to this separate executable, but for this I need to get the file path to the model's object. Is this possible to do from the Python API?
>>>
>>> Thanks in advance,
>>>
>>> Ricardo Avila
>>> _______________________________________________
>>> Chimera-users mailing list: Chimera-users at cgl.ucsf.edu <mailto:Chimera-users at cgl.ucsf.edu>
>>> Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users <http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users>
>
> _______________________________________________
> Chimera-users mailing list: Chimera-users at cgl.ucsf.edu
> Manage subscription: http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20190412/83203e22/attachment.html>
More information about the Chimera-users
mailing list