123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 |
- /**
- * Copyright (c) 2018 mol* contributors, licensed under MIT, See LICENSE file for more info.
- *
- * @author Alexander Rose <alexander.rose@weirdbyte.de>
- * @author David Sehnal <david.sehnal@gmail.com>
- */
- export interface Ccp4Header {
- /** number of columns (fastest changing) */
- NC: number
- /** number of rows */
- NR: number
- /** number of sections (slowest changing) */
- NS: number
- /**
- * 0 image : signed 8-bit bytes range -128 to 127
- * 1 image : 16-bit halfwords
- * 2 image : 32-bit reals
- * 3 transform : complex 16-bit integers
- * 4 transform : complex 32-bit reals
- * 6 image : unsigned 16-bit range 0 to 65535
- * 16 image: unsigned char * 3 (for rgb data, non-standard)
- *
- * Note: Mode 2 is the normal mode used in the CCP4 programs.
- * This parser only supports modes 0 and 2
- */
- MODE: number
- /** first column */
- NCSTART: number
- /** first row */
- NRSTART: number
- /** first section */
- NSSTART: number
- /** intervals along x */
- NX: number
- /** intervals along y */
- NY: number
- /** intervals along z */
- NZ: number
- /** x axis cell length (Angstroms in CCP4) */
- xLength: number
- /** y axis cell length (Angstroms in CCP4) */
- yLength: number
- /** z axis cell length (Angstroms in CCP4) */
- zLength: number
- /** alpha cell angle (Degrees) */
- alpha: number
- /** beta cell angle (Degrees) */
- beta: number
- /** gamma cell angle (Degrees) */
- gamma: number
- /** axis corresponds to columns (1,2,3 for X,Y,Z) */
- MAPC: number
- /** axis corresponds to rows (1,2,3 for X,Y,Z) */
- MAPR: number
- /** axis corresponds to sections (1,2,3 for X,Y,Z) */
- MAPS: number
- /** minimum density value */
- AMIN: number
- /** maximum density value */
- AMAX: number
- /** mean/average density value */
- AMEAN: number
- /** space group number */
- ISPG: number
- /** number of bytes used for storing symmetry operators */
- NSYMBT: number
- /** flag for skew transformation, =0 none, =1 if foll */
- LSKFLG: number
- /**
- * Skew matrix S (in order S11, S12, S13, S21 etc) if LSKFLG .ne. 0
- * May be used in CCP4 but not in MRC
- */
- SKWMAT: number[]
- /**
- * Skew translation t if LSKFLG != 0
- * Skew transformation is from standard orthogonal
- * coordinate frame (as used for atoms) to orthogonal
- * map frame, as Xo(map) = S * (Xo(atoms) - t)
- *
- * May be used in CCP4 but not in MRC
- */
- SKWTRN: number[]
- /** see https://github.com/uglymol/uglymol/blob/master/tools/mapmode2to0#L69 */
- userFlag1: number,
- userFlag2: number,
- /** x axis origin transformation (not used in CCP4) */
- originX: number
- /** y axis origin transformation (not used in CCP4) */
- originY: number
- /** z axis origin transformation (not used in CCP4) */
- originZ: number
- /** Character string 'MAP ' to identify file type */
- MAP: string
- /**
- * Machine stamp indicating machine type which wrote file,
- * 17 and 17 for big-endian or 68 and 65 for little-endian.
- */
- MACHST: number[]
- /** rms deviation of map from mean density */
- ARMS: number
- }
- /**
- * MRC
- * http://ami.scripps.edu/software/mrctools/mrc_specification.php
- * http://www2.mrc-lmb.cam.ac.uk/research/locally-developed-software/image-processing-software/#image
- * http://bio3d.colorado.edu/imod/doc/mrc_format.txt
- *
- * CCP4 (MAP)
- * http://www.ccp4.ac.uk/html/maplib.html
- *
- * MRC format does not use the skew transformation header records (words 25-37)
- * CCP4 format does not use the ORIGIN header records (words 50-52)
- */
- export interface Ccp4File {
- header: Ccp4Header
- values: Float32Array | Int8Array
- }
|