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
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)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| emtable-0.0.14.tar.gz | 23.5 kB | Without provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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.