Python package to parse and provide access to headers and data streams in Amira (R) files
Project description
Overview
ahds is a Python package to parse and handle Amira (R) files. It was developed to facilitate reading of Amira (R) files as part of the EMDB-SFF toolkit.
License
ahds is free software and is provided under the terms of the Apache License, Version 2.0.
Copyright 2017 EMBL - European Bioinformatics Institute Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Use Cases
Detect and parse Amira (R) headers and return structured data
Decode data (HxRLEByte, HxZip)
Easy extensibility to handle previously unencountered data streams
ahds was written and is maintained by Paul K. Korir but there is a list of contributors. Feel free to join this initiative.
Installation
ahds works with Python 2.7, 3.5, 3.6 and 3.7. It requires numpy to build.
pip install numpy
Afterwards you may run
pip install ahds
Getting Started
You can begin playing with ahds out of the box using the provided console command ahds.
me@home ~$ ahds ahds/data/FieldOnTetraMesh.am
********************************************************************************************************************************************
AMIRA (R) HEADER AND DATA STREAMS
--------------------------------------------------------------------------------------------------------------------------------------------
+-ahds/data/FieldOnTetraMesh.am AmiraFile [is_parent? True ]
| +-meta Block [is_parent? False]
| | +-file: ahds/data/FieldOnTetraMesh.am
| | +-header_length: 182
| | +-data_streams: 1
| | +-streams_loaded: False
| +-header AmiraHeader [is_parent? True ]
| | +-filetype: AmiraMesh
| | +-dimension: 3D
| | +-format: BINARY
| | +-endian: BIG
| | +-version: 2.0
| | +-extra_format: None
| | +-Parameters Block [is_parent? False]
| | +-Tetrahedra Block [is_parent? False]
| | | +-length: 23685
| +-data_streams Block [is_parent? False]
********************************************************************************************************************************************
The ahds command takes the following arguments
me@home ~$ ahds -h
usage: ahds [-h] [-s] [-d] [-l] file [file ...]
Python tool to read and display Amira files
positional arguments:
file a valid Amira file with an optional block path
optional arguments:
-h, --help show this help message and exit
-s, --load-streams whether to load data streams or not [default: False]
-d, --debug display debugging information [default: False]
-l, --literal display the literal header [default: False]
You can specify a dotted path after the filename to only render that the content of that field in the header:
me@home ~$ ahds ahds/data/FieldOnTetraMesh.am header
***********************************************************************************************************************************
ahds: Displaying path 'header'
-----------------------------------------------------------------------------------------------------------------------------------
+-header AmiraHeader [is_parent? True ]
| +-filetype: AmiraMesh
| +-dimension: 3D
| +-format: BINARY
| +-endian: BIG
| +-version: 2.0
| +-extra_format: None
| +-Parameters Block [is_parent? False]
| +-Tetrahedra Block [is_parent? False]
| | +-length: 23685
For debugging you can display the literal header (the exact header present in the file) using the -l/--literal flag. Also, you can display the parsed data structure using the -d/--debug flag.
me@home ~$ ahds --literal --debug ahds/data/FieldOnTetraMesh.am
***********************************************************************************************************************************
ahds: Displaying literal header
-----------------------------------------------------------------------------------------------------------------------------------
# AmiraMesh 3D BINARY 2.0
# CreationDate: Tue Nov 2 11:46:31 2004
nTetrahedra 23685
TetrahedronData { float[3] Data } @1
Field { float[3] f } Constant(@1)
# Data section follows
***********************************************************************************************************************************
ahds: Displaying parsed header data
-----------------------------------------------------------------------------------------------------------------------------------
[{'designation': {'dimension': '3D',
'filetype': 'AmiraMesh',
'format': 'BINARY',
'version': '2.0'}},
{'comment': {'date': 'Tue Nov 2 11:46:31 2004'}},
{'array_declarations': [{'array_dimension': 23685,
'array_name': 'Tetrahedra'}]},
{'data_definitions': [{'array_reference': 'Tetrahedra',
'data_dimension': 3,
'data_index': 1,
'data_name': 'Data',
'data_type': 'float'},
{'array_reference': 'Field',
'data_dimension': 3,
'data_index': 1,
'data_name': 'f',
'data_type': 'float',
'interpolation_method': 'Constant'}]}]
********************************************************************************************************************************************
AMIRA (R) HEADER AND DATA STREAMS
--------------------------------------------------------------------------------------------------------------------------------------------
+-ahds/data/FieldOnTetraMesh.am AmiraFile [is_parent? True ]
| +-meta Block [is_parent? False]
| | +-file: ahds/data/FieldOnTetraMesh.am
| | +-header_length: 182
| | +-data_streams: 1
| | +-streams_loaded: False
| +-header AmiraHeader [is_parent? True ]
| | +-filetype: AmiraMesh
| | +-dimension: 3D
| | +-format: BINARY
| | +-endian: BIG
| | +-version: 2.0
| | +-extra_format: None
| | +-Parameters Block [is_parent? False]
| | +-Tetrahedra Block [is_parent? False]
| | | +-length: 23685
| +-data_streams Block [is_parent? False]
********************************************************************************************************************************************
By default, data streams are not read — only the header is parsed. You may obtain the data streams using the -s/--load-streams flag.
me@home ~$ ahds --load-streams ahds/data/FieldOnTetraMesh.am
********************************************************************************************************************************************
AMIRA (R) HEADER AND DATA STREAMS
--------------------------------------------------------------------------------------------------------------------------------------------
+-ahds/data/FieldOnTetraMesh.am AmiraFile [is_parent? True ]
| +-meta Block [is_parent? False]
| | +-file: ahds/data/FieldOnTetraMesh.am
| | +-header_length: 182
| | +-data_streams: 1
| | +-streams_loaded: True
| +-header AmiraHeader [is_parent? True ]
| | +-filetype: AmiraMesh
| | +-dimension: 3D
| | +-format: BINARY
| | +-endian: BIG
| | +-version: 2.0
| | +-extra_format: None
| | +-Parameters Block [is_parent? False]
| | +-Tetrahedra Block [is_parent? False]
| | | +-length: 23685
| +-data_streams Block [is_parent? True ]
| | +-Data AmiraMeshDataStream [is_parent? False]
| | | +-data_index: 1
| | | +-dimension: 3
| | | +-type: float
| | | +-interpolation_method: None
| | | +-shape: 23685
| | | +-format: None
| | | +-data: [ 0.8917308 0.9711809 300. ],...,[ 1.4390504 1.1243758 300. ]
********************************************************************************************************************************************
Future Plans
Write out valid Amira (R) files
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file ahds-0.2.4.tar.gz
.
File metadata
- Download URL: ahds-0.2.4.tar.gz
- Upload date:
- Size: 41.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3356115351f7f6089f44c6f6503daa4985f158b7dfb730ef88ab3c6a7f8cc1a6 |
|
MD5 | c411169fa0978ee26d14f4d11d72d310 |
|
BLAKE2b-256 | c97e689865ae16cfdc3fa9dc6555c4cb96eb11c952567f2aa83b1dbb75ff892f |
File details
Details for the file ahds-0.2.4-cp39-cp39-macosx_10_9_x86_64.whl
.
File metadata
- Download URL: ahds-0.2.4-cp39-cp39-macosx_10_9_x86_64.whl
- Upload date:
- Size: 45.8 kB
- Tags: CPython 3.9, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.9.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc1decf52b7b36d6eecc86787482b1509a43de9d2bfaf4a273347bfab212e11f |
|
MD5 | e537b096bd4c0325ed69debb7515311f |
|
BLAKE2b-256 | ecda52a3b48be7eb0b7b6d39cbe2792211d9287a4c8960288d18b1eb8e98d104 |