emen2client.py

emen2client.py is the point-of-entry for EMEN2 clients. It has a number of actions available, including bulk upload and download from an EMEN2 database, and uploading EMAN/EMAN2 processing data (e.g. CTF parameters, box coordinates...)

The program is a relatively recent development, and replaces a number of older programs (uploadclient, downloadclient, libemen2client, etc.) that performed similar functions in the past.

Download emen2client.py

The easiest way to install emen2client, and other EMEN2 programs (database, server, emdash, etc.) is with Python easy_install:

sudo easy_install emdash

This will download the current EMEN2 release from our server, install it into your system's Python package directory, and place EMEN2 executable scripts in a $PATH directory.

Alternatively, you can visit the EMEN2 download page and select a release version, or the nightly build:

EMEN2 Download

For source releases, download the archive, untar, and run "sudo python ./setup.py install"

I try to thoroughly test each version before publishing, but there is always the possibility of bugs, edge cases, or other issues. If you find any problems, please contact Ian Rees, ian.rees@bcm.edu, and include the command you ran, how it failed, and the complete program output.

emen2client.py performs a version check against the database each time it is run. If your version is significantly out of date, it will show a warning and suggest upgrading.

Usage

emen2client.py <action>
Actions available: upload, download, sync
For detailed help: ./emen2client.py <action> --help

When run from the command line, emen2client.py offers several utility "actions" that can be taken. You invoke an action by specifying it as the first command line argument.

The "upload" action is used for uploading data (ccd frames, volumes, etc.) to the database. Similarly, "download" transfers files from the database to your local machine. These two actions are documented below.

The "sync" action is new, and provides some support for uploading EMAN/EMAN2 image processing data to database records, e.g. CTF parameters. This is documented on a separate page: EMAN2 Integration

Download Usage

The "download" action is used to batch download files from the database. A Record ID is required; in most cases, this will be the Record ID of a grid_imaging session containing CCD frames. There are a number of options, detailed below, although in most cases the default options are fine. You can optionally specify a filename or pattern to filter the list of files that will be downloaded.

Usage: emen2client.py download [options] <recid>

Options:
  -h, --help            show this help message and exit
  -U USERNAME, --username=USERNAME
                        Username
  -P PASSWORD, --password=PASSWORD
                        Password (Note: specifying passwords in shell commands
                        is not secure)
  -H HOST, --host=HOST  Host endpoint URI
  -C CTXID, --ctxid=CTXID
                        Valid Context ID
  --recurse=RECURSE     Recursion level
  -o, --overwrite       Overwrite existing files (default is to skip)
  -r, --rename          If a file already exists, save with format
                        'duplicate.recid:original_filename.dm3'
  -s, --sidecar         Include sidecar file with EMEN2 metadata in JSON
                        format

Example:

[irees@mbp ~/data]$ emen2client.py download 123456

Username: ianrees
Password: 

1 of 1: 123456
        Checking for items to download
        Found 92 items in 93 records

        1 of 92: 2009110400033
                Downloading frame1.dm3.gz -> frame1.dm3...

        2 of 92: 2009110400032
                Downloading frame2.dm3.gz -> frame2.dm3...

        3 of 92: 2009110400031
                Downloading frame3.dm3.gz -> frame3.dm3...

.... snip ....

Upload Usage

The "upload" action will upload files into the database. A record type, record ID, and list of files must be specified. If you are uploading CCD frames, use "ccd", if you are uploading SerielEM tomography stacks, use "stack." Other types are also available, e.g. "volume" to upload a number of density maps.

Usage: emen2client.py upload [options] <record type> <recid> <files to upload>

        Record type can be any valid database protocol.
        Some record types have special, application-specific handlers, e.g.:
        
                ccd                     CCD Frames
                scan            Scanned micrographs
                stack           Tomograms

        Other values, e.g. "volume", will create child records of that type, with 1 file per child record.

        Alternatively, you can use "none" for record type and the files will be attached directly to the specified record ID.
        
                

Options:
  -h, --help            show this help message and exit
  -U USERNAME, --username=USERNAME
                        Username
  -P PASSWORD, --password=PASSWORD
                        Password (Note: specifying passwords in shell commands
                        is not secure)
  -H HOST, --host=HOST  Host endpoint URI

Example:

[irees@mbp ~/data]$ emen2client.py upload ccd 123456 *.dm3

Username: ianrees
Password: 

3 Files to upload:
        1.dm3
        2.dm3
        3.dm3

----- tem_magnification_set -----
        Description: Magnification set on microscope
        Units: K

        Common values:
                0) 60.0
                1) 50.0
                2) 40.0
                3) 20.0
                4) 80.0
                5) 100.0
                6) 15.0
                7) 30.0
                8) 25.0

                10) None or N/A
                11) Enter a different not listed above

        Selection (0-11): 0

----- ctf_defocus_set -----
        Description: Intended defocus while imaging, underfocus positive
        Units: um

        Common values:
                0) 1.0
                1) -2.0
                2) 2.0
                3) 1.5
                4) 3.0
                5) 2.5
                6) -3.0
                7) -1.5
                8) -2.5
                9) 0.8

                10) None or N/A
                11) Enter a different not listed above

        Selection (0-11): 0


... snip: additional prompts ommitted for clarity ...


1 of 3: 1.dm3
        Preparing for upload
        Checking and committing records

        1.dm3
                Done. Uploaded 1.dm3 to record 417171 @ 15210.92 kb/sec

2 of 3: 2.dm3
        Preparing for upload
        Checking and committing records

        2.dm3
                Done. Uploaded 2.dm3 to record 417172 @ 15080.45 kb/sec

3 of 3: 3.dm3
        Preparing for upload
        Checking and committing records

        3.dm3
                Done. Uploaded 3.dm3 to record 417173 @ 14253.12 kb/sec

EMAN Synchronization

emen2client.py provides growing support for uploading processed image data back into the database. See EMAN2 Integration for details.