[Chimera-users] Saving sessions including maps?
Oliver Clarke
olibclarke at gmail.com
Wed Sep 16 13:26:57 PDT 2015
Great, thanks Eric!
Oliver.
On Wed, Sep 16, 2015 at 4:14 PM, Eric Pettersen <pett at cgl.ucsf.edu> wrote:
> Okay, the next daily build will allow the underscore-to-space conversion
> to be escaped by preceding the underscore with a backslash.
>
> —Eric
>
> On Sep 16, 2015, at 12:59 PM, Oliver Clarke <olibclarke at gmail.com> wrote:
>
> Awesome, thanks Eric! I was looking for a chimera command to execute shell
> commands but somehow didn’t find it (even though it is certainly documented
> in the command index).
>
> In that case the following alias works well to create a packaged session
> with all maps saved:
>
> #Save session with maps. saves in home dir with directory name same as
> session.
> # Usage: save_session_dir session-name
> # Don't use spaces or under_scores in session names.
> alias ^save_session_dir cd ~; system mkdir chimera_session_dirs; cd
> chimera_session_dirs; system mkdir $1; volume # save
> ~/chimera_session_dirs/$1/$1%d.mrc; save ~/chimera_session_dirs/$1/$1
>
> The only remaining issue is that Chimera treats underscores in alias
> arguments as special characters, and converts them to spaces. I don’t
> suppose there is some way to avoid that behaviour? E.g. like using a \ to
> escape a special character in a shell script?
>
> Cheers,
> Oli.
>
> On Sep 16, 2015, at 3:51 PM, Eric Pettersen <pett at cgl.ucsf.edu> wrote:
>
> Sorry this reply is kind of tardy. Anyway, your little script has done
> 98% of the work needed to add that command at startup. Look at the “Adding
> Command-line Commands” example in the Chimera Programmer’s Guide:
> http://www.cgl.ucsf.edu/chimera/docs/ProgrammersGuide/Examples/index.html
>
> Basically, you need call the script file “ChimeraExtension.py”, put it
> inside a folder (maybe named “Mkdir”) and then tell Chimera to look for it
> by going to Tools section of Preferences and adding the *parent* folder
> of Mkdir (i.e. the folder that contains Mkdir) to the “Locations” list that
> Chimera will look for tools in (and click the Save button!)
>
> The above is good to know for adding tools in general. However in the
> specific case of your mkdir command, you can do it directly in Chimera
> without making an extension. The “system” command will execute its
> arguments as a shell command, so “system mkdir xyz” will create an xyz
> directory.
>
> —Eric
>
> Eric Pettersen
> UCSF Computer Graphics Lab
>
>
> On Sep 11, 2015, at 2:11 PM, Oliver Clarke <olibclarke at gmail.com> wrote:
>
> Ok, so if I run the following python script at chimera startup (to add a
> mkdir command):
>
> def mkdir(mkdir,dir1):
> import os
> import time
> if not os.path.exists(dir1):
> os.mkdir(dir1)
> from Midas.midas_text import addCommand
> addCommand("mkdir", mkdir, help=False)
>
> And then add the following alias:
>
> #Save session with maps. saves in home dir with directory name same as
> session.
> # Usage: save_session_dir session-name
> # Don't use spaces or under_scores in session names.
> alias ^save_session_dir cd ~; mkdir $1; volume # save ~/$1/$1%d.mrc; save
> ~/$1/$1
>
> This seems to work okay. It will create a sub dir in the user’s home
> directory with maps and a chimera session file.
>
> Incidentally, is there any easy way to add python code snippets to a
> Chimera command file (with aliases etc)? I guess the only ways are to
> either have it in a separate file and use open or runscript, or to make it
> one big python file and wrap all of the aliases in runcommand() calls. But
> then how does one tell Chimera to run a given python file at start up? When
> I add python files to the “Files to read at startup” section of
> preferences, Chimera seems to interpret them as Chimera command files, and
> hence gives an error.
>
> Cheers,
> Oliver.
>
> On Sep 11, 2015, at 9:04 PM, Oliver Clarke <olibclarke at gmail.com> wrote:
>
> Thanks for the quick reply Tom, got it. Looking forward to Chimera 2!
>
> One temporary work around I have thought about is the following alias:
>
> #Save session with maps. saves in home dir with directory name same as
> session.
> # Usage: save_session_dir session-name
> # Don't use spaces or under_scores in session names.
> alias ^save_session_dir volume # save ~/$1/map%d.mrc; save ~/$1/$1
>
> This will save all maps in a subdir of the home directory with the desired
> session name, and then save the session in the same dir - this folder is
> then portable and has all the info needed to restore the session. The only
> caveat to this is that this only works if the directory already exists -
> otherwise it gives an error. Maybe it would be possible to add an option to
> save/write to make the dir if it does not already exist? Otherwise I can do
> it in python I guess. Also, map names are not preserved, but I don’t see
> any easy way to get around that. Only other problem with this is that
> because of the way aliases work in chimera, any underscores in the alias
> arguments will be converted to spaces, but that is not an issue so long as
> one is aware of it.
>
> Cheers,
> Oliver.
>
> On Sep 11, 2015, at 6:54 PM, Tom Goddard <goddard at sonic.net> wrote:
>
> Hi Oliver,
>
> This has long been a requested feature.
>
> http://plato.cgl.ucsf.edu/trac/chimera/ticket/12426
>
> And I agree it would be useful. If Chimera packages up all the needed
> maps and the session file in a zip archive this would be convenient. You
> can of course do this right now by hand, only it isn’t so convenient.
> Unfortunately this has never reached a high enough priority relative to
> other enhancements we are working on, so it has not been implemented. It
> is more likely to get into Chimera 2 than Chimera 1.
>
> Tom
>
>
> On Sep 11, 2015, at 2:05 AM, Oliver Clarke wrote:
>
> Hi all,
>
> Is there any possibility of altering the chimera session format (or adding
> a separate option) such that all maps (including those created during the
> session) are also saved?
>
> This would greatly facilitate sharing data with collaborators, and would
> also allow one to provide chimera sessions with saved scenes as
> supplementary data when publishing.
>
> It would also make saving sessions more practical when many different
> volumes are created during the session - for example, when using a molmap
> low resolution representation for each domain.
>
> This would not necessarily require creating a new format - just creating a
> tarball or folder with all the maps and relative paths specified in the
> python file would work fine I think?
>
> Cheers,
> Oli.
>
>
>
> _______________________________________________
> Chimera-users mailing list
> Chimera-users at cgl.ucsf.edu
> http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
>
>
>
>
> _______________________________________________
> Chimera-users mailing list
> Chimera-users at cgl.ucsf.edu
> 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/20150916/aa170f6d/attachment.html>
More information about the Chimera-users
mailing list