Skip to main content

emtable

Emtable is a STAR file parser originally developed to simplify and speed up metadata conversion between Scipion and Relion. It is available as a small self-contained Python module (https://pypi.org/project/emtable/) and can be used to manipulate STAR files independently from Scipion.

How to cite

Please cite the code repository DOI: 10.5281/zenodo.4303966

Authors

  • Jose Miguel de la Rosa-Trevín, Department of Biochemistry and Biophysics, Science for Life Laboratory, Stockholm University, Stockholm, Sweden

  • Grigory Sharov, MRC Laboratory of Molecular Biology, Cambridge Biomedical Campus, England

Testing

python3 -m unittest discover emtable/tests

Examples

To start using the package, simply do:

from emtable import Table

Each table in STAR file usually has a data_ prefix. You only need to specify the remaining table name:

Table(fileName=modelStar, tableName='perframe_bfactors')

Be aware that from Relion 3.1 particles table name has been changed from “data_Particles” to “data_particles”.

Reading

For example, we want to read the whole rlnMovieFrameNumber column from modelStar file, table data_perframe_bfactors.

The code below will return a list of column values from all rows:

table = Table(fileName=modelStar, tableName='perframe_bfactors')
frame = table.getColumnValues('rlnMovieFrameNumber')

We can also iterate over rows from “data_particles” Table:

table = Table(fileName=dataStar, tableName='particles')
    for row in table:
        print(row.rlnRandomSubset, row.rlnClassNumber)

Alternatively, you can use iterRows method which also supports sorting by a column:

mdIter = Table.iterRows('particles@' + fnStar, key='rlnImageId')

If for some reason you need to clear all rows and keep just the Table structure, use clearRows() method on any table.

Writing

If we want to create a new table with 3 pre-defined columns, add rows to it and save as a new file:

tableShifts = Table(columns=['rlnCoordinateX',
                             'rlnCoordinateY',
                             'rlnAutopickFigureOfMerit',
                             'rlnClassNumber'])
tableShifts.addRow(1024.54, 2944.54, 0.234, 3)
tableShifts.addRow(445.45, 2345.54, 0.266, 3)

tableShifts.write(f, tableName="test", singleRow=False)

singleRow is False by default. If singleRow is True, we don’t write a loop_, just label-value pairs. This is used for “one-column” tables, such as below:

data_general

_rlnImageSizeX                                     3710
_rlnImageSizeY                                     3838
_rlnImageSizeZ                                       24
_rlnMicrographMovieName                    Movies/20170629_00026_frameImage.tiff
_rlnMicrographGainName                     Movies/gain.mrc
_rlnMicrographBinning                          1.000000
_rlnMicrographOriginalPixelSize                0.885000
_rlnMicrographDoseRate                         1.277000
_rlnMicrographPreExposure                      0.000000
_rlnVoltage                                  200.000000
_rlnMicrographStartFrame                              1
_rlnMotionModelVersion                                1

Metadata

Release files for emtable 0.0.14

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for emtable 0.0.14
File Size Uploaded Provenance
emtable-0.0.14.tar.gz 23.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for emtable 0.0.14
File Interpreter ABI Platform
emtable-0.0.14-py3-none-any.whl Python 3 none any Details

Total release size: 45.2 kB

Release files / emtable-0.0.14.tar.gz

Download URL emtable-0.0.14.tar.gz
Size 23.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e531cdfb0fe38c9b81ef2cb71503b69a64309652044538f1f1853b43ed52840f
BLAKE2b-256 checksum
How to use checksums
6a63b92c5914e9e607758a7e3c475e0203c7340e006e9532464cc24d4205ad7c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.13

Release files / emtable-0.0.14-py3-none-any.whl

Download URL emtable-0.0.14-py3-none-any.whl
Size 21.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7847c7c9454f0e491e36491025cc53302ae9e89cd615f1e4abbebfcbc40a9b43
BLAKE2b-256 checksum
How to use checksums
19bae18bc0351a3692339fa335f04cfaf98e738735641bf2191b969557fca1bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.13

Security for emtable 0.0.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page