A.STAR Applications

AXC: ASTAR CIF XML Convert (0.5.5)

Usage: axc command [option]... [file]...
Available commands:
  ciftoxml                convert CIF to XML.
  xmltocif                convert XML to CIF.
  xslt                    XSLT process.
  help                    print help.

Available options:
  -o OUTPUT, --output=OUTPUT
                          the output file.
  -d OUTDIR, --output-dir=OUTDIR
                          the output directory.
  -e MAXERROR, --max-error=MAXERROR
                          the maximum errors before the process aborted.
  -p, --split             split the input into files, each one for a data block.

  -m, --merge             merge all the input into one output file.
  -x XMLSPEC, --xml-spec=XMLSPEC
                          the XML output specification, [LDL|LDS|LDT].
  -l XSLLINK, --xsl-link=XSLLINK
                          write XSL stylesheet link on the XML output.
      

AStarXmlConvert XSLT Extension Functions:


  string axc:StripSu(string measurand)                Strips the associated su of a measurand.
  string axc:RetrieveSu(string measurand)             Retrieve the associated su of a measurand.
  string axc:AttachSu(string val, string su)          Associates the su to a measurand value.
  string axc:CifMarkupToHtml(string text)             Converts the CIF markup to HTML.

      

axc ciftoxml -o output/bt5053.xml ../data/bt5053.cif
      

Converts the CIF file 'bt5053.cif' to an XML file 'bt5053.xml'.

axc xmltocif -o output/bt5053.cif output/bt5053.xml
      

Converts the XML file 'bt5053.xml' back to a CIF file 'bt5053.cif'.

axc xslt -l ../data/xml/jldl.xsl -o output/bt5053.htm output/bt5053.xml
      

Does XSLT on the output XML file 'bt5053.xml' using the XSL stylesheet 'jldl.xsl', generates an HTML file 'bt5053.htm'.

ATrans: ASTAR Template Based CIF Transform (0.5.5)

Usage: atrans [option]... [file]...
  If no file or '-' is specified, read stdin.
Available options:
  -t TEMPLATE, --template=TEMPLATE
                          the template file, '-' for stdin.
  -p PREFIX, --prefix=PREFIX
                          the tag prefix in the template file,
                          default to '_tdl',
                          use '@' for no prefix.
  -o OUTPUT, --output=OUTPUT
                          the output file, '-' for stdout.
  -d OUTDIR, --output-dir=OUTDIR
                          the output directory.
  -x OUTEXT, --output-ext=OUTEXT
                          the output file extension.
  -h, --help              print this help.
      --version           print version information.
      

atrans -t ../data/tdl/report.htm.cif -o output/fa3203.htm ../data/fa3203.cif
      

Converts the CIF file 'fa3203.cif' to an HTML file 'fa3203.htm', using the template file 'report.htm.cif'.

atrans -t ../data/tdl/report.tex.cif -o output/fa3203.tex ../data/fa3203.cif
      

Converts the CIF file 'fa3203.cif' to a LaTeX file 'fa3203.tex', using the template file 'report.tex.cif'.

atrans -t ../data/tdl/report.rtf.cif -o output/fa3203.rtf ../data/fa3203.cif
      

Converts the CIF file 'fa3203.cif' to an RTF file 'fa3203.rtf', using the template file 'report.rtf.cif'.

atrans -t ../data/tdl/report.txt.cif -o output/fa3203.txt ../data/fa3203.cif
      

Converts the CIF file 'fa3203.cif' to a plain text file 'fa3203.txt', using the template file 'report.txt.cif'.

atrans -t ../data/tdl/dic_ddl1.htm.cif -o output/cif_core.htm ../dic/cif_core.dic
      

Converts the DDL1 file 'cif_core.dic' to an HTML file 'cif_core.htm', using the template file 'dic_ddl1.htm.cif'.

atrans -t ../data/tdl/dic_ddl2.htm.cif -o output/cif_mm.htm ../dic/cif_mm.dic
      

Converts the DDL2 file 'cif_mm.dic' to an HTML file 'cif_mm.htm', using the template file 'dic_ddl2.htm.cif'.

AStarTransform Templates (TDL) Syntax:

The templates are CIF files written in TDL (Template/Transform Defining Language).

Here is a brief example:

################################
# Sample TDL (Experimental)    #
# CIF to plain text            #
################################

data_pack
    _tdl_context_type PACK
	  # The root template for the CIF file (PACK) to be transformed.
    loop_ # Defines variables here.
        _tdl_var_name
          # The variable name.
        _tdl_var_value
          # And the value, evaluated in the current context.
          # Accessible in current context and it's sub-contexts.
        'LOGO' '-A-STAR-'
    loop_ # Selects the items and templates.
        _tdl_item_type
          # The type of the item to be selected,
          # '.' for the current context.
        _tdl_item_select
          # The select expression,
          # '*' for each item, or the name of the item to be selected.
        _tdl_item_apply
          # The template text or the name of the template to be applied on the selected item,
          # depends on the item type.
        . .
;
STRUCTURE REPORT
****************

;
        BLOCK * block # Selects each block and applies the template.

data_block # The template for a data block.
    _tdl_context_type BLOCK # The context type.
    loop_ # Tests for the template, apply, abort or choose another template.
        _tdl_test_item_type
        _tdl_test_item_select
        _tdl_test_eval_left
        _tdl_test_eval_right
        _tdl_test_action_success
        _tdl_test_action_failure
        P '_chemical_formula_sum' . . :continue :exit
    loop_
        _tdl_item_type
        _tdl_item_select
        _tdl_item_apply
        P '_chemical_name_systematic' # Selects the primitive field in the current context.
;
$value
****************

;
        . . # Selects the current context (a data block here).
;
Structure
----------------

Formula:                $_chemical_formula_sum
Mr =                    $_chemical_formula_weight
Cell:                   $_symmetry_cell_setting ${_symmetry_space_group_name_H-M}
a = ${(pad _cell_length_a -19)} alpha = $_cell_angle_alpha
b = ${(pad _cell_length_b -19)} beta  = $_cell_angle_beta
c = ${(pad _cell_length_c -19)} gamma = $_cell_angle_gamma
V = ${(pad _cell_volume   -19)} Z     = $_cell_formula_units_Z
Radiation:              $_diffrn_radiation_type
mu =                    $_exptl_absorpt_coefficient_mu
...

Geometry
----------------

;
        LOOP '_atom_site_label' tbl_atom # Selects the loop and applies the template.

data_tbl_atom # The template 'tbl_atom'.
    _tdl_context_type LOOP # The context type.
    loop_
        _tdl_item_type
        _tdl_item_select
        _tdl_item_apply
        . .
;
TABLE [Atoms]
----------------
[NO.] [atom] [     x     ] [     y     ] [     z     ] [Uiso / Ueq ] [ADP type] ...
----------------
;
        ROW * row_atom # Selects each row.
        . .
;
----------------

;

data_row_atom # The template 'row_atom'.
    _tdl_context_type LOOPROW # The context type.
    loop_
        _tdl_item_type
        _tdl_item_select
        _tdl_item_apply
        . . '${(pad i1 -5)}'
        FIELD '_atom_site_label' ' ${(pad value -6)}'
        FIELD '_atom_site_fract_x' ' ${(pad value -13)}'
        FIELD '_atom_site_fract_y' ' ${(pad value -13)}'
        FIELD '_atom_site_fract_z' ' ${(pad value -13)}'
        FIELD '_atom_site_U_iso_or_equiv' ' ${(pad value -13)}'
        FIELD '_atom_site_adp_type' ' $value'
        # ...
        . . '$nl'


      

TDL Tags:


  _tdl_context_type                     The context (this item) type.
    PACK (K) / BLOCK (D) / FRAME (S) / LOOP (L) / LOOPROW (R)
  _tdl_item_type                        The child item type.
    BLOCK (D) / FRAME (S) / FIELD (F) / PRIMITIVE (P) / LOOP (L) / LOOPROW (R) / .
  _tdl_item_select                      The select expression.
    item name / * / .
  _tdl_item_apply                       The template text or the name of the template.

      

Evaluating Template Text:


  [$][a-zA-Z][a-zA-Z_0-9]*              Variables. ($foo, $FOO_A, ...)
  Magic variables:
    $name                               The name of the context, BLOCK / FRAME / PRIMITIVE / FIELD.
    $value                              The value of the context, PRIMITIVE / FIELD.
    $i, $i0, $i1                        Item index for the '*' selection, 0-based and 1-based.
    $nl                                 A platform-specific newline.

  [$][_][a-zA-Z_0-9]+                   CIF Tag style variables. ($_foo_bar, ...)
    For retrieving the value of a primitive field in the blocks / frames or a field of the loop rows.

  [$][$]                                A literal '$' char. ($$)
  [$][<][0-9a-fA-F]+[>]                 Hexadecimal escaped char sequence. ($<2324> for #$)

  [$][{][^}]+[}]                        A complex expression.
                                      (${_foo-bar/foo}, ${(foo (bar a b) c)}, ...)
  In complex expressions:
    [a-zA-Z][a-zA-Z_0-9]*               (var)     Variables.
    [_][\x21-\x7e]+                     (tag)     Tag style variables.
    [(][a-zA-Z][a-zA-Z_0-9]*            (fstart)  Function call start.
    [)]                                 (fend)    Function call end.
    ["][^"]*["]                         (val)     String literal, $$ and $<> escaping is supported.
    ['][^']*[']                         (val)     String literal, $$ and $<> escaping is supported.
    [+-]?([0-9]+([.][0-9]*)?|[.][0-9]+)([(][0-9]+[)])?([EeDd][+-]?[0-9]+)?
                                        (val)     Number literal.
    A LISP style function call:
      fcall <- fstart {arg | fcall} fend;
      arg <- var | tag | str | num;
      [e.g.] (function1 arg1 arg2 (function2 arg3))

      

AStarTransform TDL Functions:


  (strip_su measurand)                  Strips the associated su of a measurand.
  (retrieve_su measurand)               Retrieve the associated su of a measurand.
  (attach_su val su)                    Associates the su to a measurand value.
  (pad text width [char])               Pads the text to the specified width,
    using char (optional, default to the space char).
  (html_escape string text)             Escapes the text for HTML.
  (cif_markup_to_html text [level])     Converts the CIF markup to HTML,
    level (optional, 0, 1, 2, default to 1).
    0, no escaping on the HTML special chars ('<', '>' and '&');
    1, escaping the special chars, except the <i></i>, <b></b> tags;
    2, escaping all special chars.
  (latex_escape text)                   Escapes the text for LaTeX.
  (cif_markup_to_latex text)            Converts the CIF markup to LaTeX.