Source code for schrodinger.application.jaguar.autots_keywords

"""
This module documents all possible AutoTS input keywords.
"""

# Contributors: Mark A. Watson

import schrodinger.application.jaguar.autots_constants as autots_constants
import schrodinger.application.jaguar.autots_input_constants as constants
from schrodinger.application.jaguar.workflow_keywords import Choices
from schrodinger.application.jaguar.workflow_keywords import WorkflowKeyword
from schrodinger.utils import mmutil

AUTOTS_KEYWORDS = {}

#------------------------------------------------------------------------------


[docs]def keyword(name, valid_type, default, description): """ Convenience function to create a dictionary of AutoTSKeyword's """ if name.lower() in AUTOTS_KEYWORDS: raise ValueError('keyword %s is duplicated' % name) # Define all keywords in lower case AUTOTS_KEYWORDS[name.lower()] = WorkflowKeyword(name=name.lower(), valid_type=valid_type, default=default, description=description)
[docs]def generate_all_keywords(): #------------------------------------------------------------------------------ # Add new "list of strings" AutoTS keywords here #------------------------------------------------------------------------------ keyword( name=constants.REACTANT, valid_type=[str], default=[], description= 'A list of full paths to Maestro structure files containing individual reactant molecules.' ) keyword( name=constants.PRODUCT, valid_type=[str], default=[], description= 'A list of full paths to Maestro structure files containing individual product molecules.' ) keyword( name=constants.SPECTATORS, valid_type=[str], default=[], description= 'A list of paths to Maestro structure files containing individual spectator molecules.' ) keyword( name='reactant_bond', valid_type=[str], default=[], description='Bond-breaking instructions for reactant molecules which ' 'make reactant and product molecules conformers.' 'The syntax for breaking a bond between atom i in ' 'molecule I and atom j in molecule J is i_I-j_J. ' 'Indexing starts at 1. This setting only needs to be used ' 'if the prediction of active bonds is incorrect.') keyword( name='product_bond', valid_type=[str], default=[], description='Bond-breaking instructions for product molecules which \n' 'make reactant and product molecules conformers.\n' 'The syntax for breaking a bond between atom i in \n' 'molecule I and atom j in molecule J is i_I-j_J.\n' 'Indexing starts at 1. This setting only needs to be used ' 'if the prediction of active bonds is incorrect.') #------------------------------------------------------------------------------ # Add new "boolean" AutoTS keywords here #------------------------------------------------------------------------------ keyword(name='sn2', valid_type=bool, default=True, description='Apply an atom numbering correction to SN2 reactions. ' 'This correction attempts to invert the chirality of ' 'the electrophilic center by renumbering terminal atoms.') keyword( name='sn2_ignore_water', valid_type=bool, default=False, description='Ignore waters when determining atom numbering corrections ' 'for SN2 reactions.') keyword(name='analytic_hessian', valid_type=bool, default=True, description= 'Compute an analytic Hessian when performing frequency analysis.') keyword( name='optimize_inputs', valid_type=bool, default=True, description='If True, optimize initial complexes. This parameter will ' 'be automatically set to False if the parameters reactant_complex ' 'and product_complex are set and use_complex_inputs is True.') keyword( name='optimize_outputs', valid_type=bool, default=True, description= 'If True the final (determined by IRC) minimum energy structures are optimized.' ) keyword(name='exit_after_path', valid_type=bool, default=False, description='Exit job after constructing interpolated path.') keyword(name='relax_path', valid_type=bool, default=False, description='Use the relaxed string method (RSM) to improve path.') keyword(name='check_alignment_stability', valid_type=bool, default=True, description= 'If True, verify that alignment of reactant and product in complex' 'formation is stable.') keyword( name='form_rxn_complex', valid_type=bool, default=True, description= 'Optimally position the geometry of the reactant (entrance) and product (exit) ' 'complexes prior to path interpolation. If this is set to False the geometries ' 'will be the result of the initial geometry optimization. This parameter ' 'is automatically set to False if reactant_complex and product_complex are set ' 'and use_complex_inputs is set to True.') keyword( name='use_complex_inputs', valid_type=bool, default=False, description= 'If the user has specified files for reactant_complex and product_complex, we ' 'will use those complexes rather than generate new ones in the workflow if this ' 'variable is set to True. Otherwise, the workflow will ignore those files and ' 'generate new complexes.') keyword( name='recompute_input_lewis_structure', valid_type=bool, default=False, description= 'Recompute the Lewis structure of input structures for the purposes of ' 'renumbering complexes.') keyword( name='localize_spectators', valid_type=bool, default=True, description= 'If True, localize spectator molecules near the reaction center. Otherwise, ' 'the entire input molecule will be considered for spectator interactions.' ) keyword( name='qst_endpoints_are_min', valid_type=bool, default=False, description='Use minima instead of posed complexes as QST endpoints.') keyword(name='skip_inf_sep', valid_type=bool, default=False, description='Do not perform calculations to compute the ' 'infinitely separated energy.') keyword(name='free_energy', valid_type=bool, default=False, description= 'Compute the Gibbs free energy of infinitely separated complexes.') keyword( name='use_template', valid_type=bool, default=True, description= 'Use a transition state template if one matches the input reaction type.' ) keyword(name='debug_templates', valid_type=bool, default=False, description='Turn on extra printing for debugging template code.') keyword( name='neglect_qst_displacement', valid_type=bool, default=True, description= 'Neglect displacement convergence criterion when optimizing the transition state guess.' ) keyword( name='eliminate_multiple_frequencies', valid_type=bool, default=False, description= 'Employ techniques to remove multiple imaginary frequencies in transition state optimization.' ) keyword(name='exit_on_unexpected_rxn', valid_type=bool, default=True, description= 'Exit the calculation if an unexpected chemical reaction occurs ' 'during the initial optimization. This indicates that the input ' 'structures are not stable at the requested level of theory.') keyword(name='debug', valid_type=bool, default=False, description='Print extra debugging information.') keyword( name='mm_opt_only', valid_type=bool, default=False, description= 'Use molecular mechanics (MM) to perform all geometry optimizations.') keyword( name='mm_relax_path', valid_type=bool, default=False, description= 'Relax path by performing constrained optimizations with MM along interpolated path.' ) keyword( name='relax_ts_guess', valid_type=bool, default=True, description= 'Relax TS guess with constrained optimization before TS optimization.') keyword( name='use_unrelaxed_ts_on_failure', valid_type=bool, default=False, description= 'If relaxing the TS guess leads to a reaction or failure and this keyword is set to True, ' 'use the unrelaxed TS guess as is. Otherwise, a new TS guess method will be used.' ) keyword( name='use_consistently_ordered_conformer_test', valid_type=bool, default=True, description= 'Use a simplified method to determine whether or not two structures are conformers.' ) keyword( name='require_irc_success', valid_type=bool, default=False, description= 'If True we require the IRC to succeed before accepting a transition state.' ) keyword( name='constrained_ts_search', valid_type=bool, default=False, description= 'Freeze the non-reacting part of the molecule when optimizing the transition state. ' 'This can enhance the success rate in large flexible systems.') keyword( name='ts_vet_with_constraints', valid_type=bool, default=True, description= 'Project constraints out of Hessian when applying TS vetting. ' 'This setting only applies when constrained_ts_search=True. ' 'The alternative is to analyze the full Hessian which may contain eigenvectors ' 'corresponding to degrees of freedom that were not optimized.') keyword(name='ts_guess_only', valid_type=bool, default=False, description='Exit job after constructing a transition state guess.') keyword( name='cut_bonds_to_renumber', valid_type=bool, default=False, description= 'Allow cutting of bonds to perform renumbering of atoms by making ' 'the products out of reactants or vice-versa. This is only ' 'possible when all of the active bonds are on the reactant side ' 'or all are on the product side. This setting tends not to conserve ' 'stereochemistry and should not be applied to reactions where ' 'precise stereochemistry is important.') keyword( name='use_default_templates', valid_type=bool, default=True, description="If keyword %s is not set in the input file, use the user's " "default set of templates in the user resources directory." % constants.TEMPLATE_DATABASE_FILE) keyword( name='conf_search_gas_phase', valid_type=bool, default=False, description= 'If True, MacroModel conformational search will be performed in gas phase.' ) keyword(name='conf_search_filter_reactive_optimizations', valid_type=bool, default=True, description= 'If True, remove any structures which undergo a chemical reaction ' 'when performing a Jaguar optimization during the ' 'conformational search workflow.') keyword( name='use_mm_ts_guess', valid_type=bool, default=False, description= 'If True, guess a transition state by performing an MM constrained ' 'optimization using intermediate bond distances. These intermediate ' 'distances are defined by the keywords mm_ts_guess_b and mm_ts_guess_order.' 'The transition state guess which is optimized is the highest energy point along ' 'a path passing through this point.') keyword( name='optimize_raw_complexes', valid_type=bool, default=False, description= 'If True, optimize the initial complexes before computing path. Only for use with Hydrokinetic.' ) keyword(name='generate_raw_path_only', valid_type=bool, default=False, description='If True, do not spline initially generated path') keyword(name='conf_search', valid_type=bool, default=False, description= 'Perform a conformational search after locating transition states.') keyword( name='conf_search_reactants', valid_type=bool, default=True, description='Perform a conformational search on reactant structures. ' 'Requires conf_search to also be set to True.') keyword( name='conf_search_products', valid_type=bool, default=True, description='Perform a conformational search on product structures. ' 'Requires conf_search to also be set to True.') keyword(name='conf_search_intermediates', valid_type=bool, default=True, description= 'Perform a conformational search on intermediate structures. ' 'Requires conf_search to also be set to True.') keyword(name='conf_search_ts', valid_type=bool, default=True, description= 'Perform conformational search on transition state structures. ' 'Requires conf_search to also be set to True.') keyword( name='syn_renumbering', valid_type=bool, default=True, description='Determines whether or not syn renumbering is performed.') keyword(name='final_minimize_path', valid_type=bool, default=True, description= 'Determines whether or not product/reactant realignment is run. ' 'Principally for testing atom numbering.') keyword( name='minimize_indep_only', valid_type=bool, default=True, description='Determines whether or not a non-redundant set of molecular ' 'parameters are used to align the product and reactants.') keyword( name='accept_secondary_afir_path', valid_type=bool, default=True, description='Determines whether or not an afir path is accepted if a ' 'secondary reaction has occured.') keyword(name='afir_minima_to_minima', valid_type=bool, default=bool( mmutil.feature_flag_is_enabled(mmutil.JAGUAR_AUTOTS_WRAPUP)), description='Determines whether or not an afir path from minima to ' 'minima is done if all methods have failed.') keyword( name='store_autots_data', valid_type=bool, default=True, description='Determines whether or not to send data to a server at the ' 'end of the job. Only applicable if AutoTS server hostname and port are given' ) keyword( name='invert_reactive_stereocenters', valid_type=bool, default=False, description= 'Generate an alternate stereochemical outcome of a stereogenic reaction ' 'after locating transition states by inverting the chirality in the reaction ' 'center, leaving all other chiral centers uninverted.') keyword( name='ignore_chirality_mismatch', valid_type=bool, default=False, description= 'Ignore errors in chirality (mismatches) outside of the reaction center.' 'If False, AutoTS will exit if chirality mismatches are found.') keyword( name='repair_ts_guess_stereochem', valid_type=bool, default=True, description= 'If the TS guess was found to be likely to lead to incorrect stereoisomeric ' 'reactants/products, we can try and correct the guess automatically. ' 'If True, AutoTS will attempt to repair the guess.') keyword( name='die_on_bad_ts_guess_stereochem', valid_type=bool, default=False, description= 'If the TS guess was found to be likely to lead to incorrect stereoisomeric ' 'reactants/products and we were unable to automatically repair the guess, ' 'should the calculation proceed. ' 'If True, AutoTS will exit if the TS guess could not be repaired.') keyword(name='flexible_metal_coordination', valid_type=bool, default=False, description= 'If True, ignore zero order bonds to metals during IRC analysis.') keyword( name="conf_search_cluster_conformers", valid_type=bool, default=False, description= 'Choose conformers for QM optimization from different clusters.' ' This setting attempts to diversify the conformers optimized by the QM method' ' by choosing low energy conformers out of different clusters, grouped by' ' cartesian rmsd, requires a Canvas License.') keyword( name="water_wire", valid_type=bool, default=False, description= 'Analyze inputs and attempt to label to encourage water wire formation') keyword( name="allow_disjoint_water_wire", valid_type=bool, default=False, description= 'Adjust automatic water wire formation analysis to allow water wires that may be disjoint' ) #------------------------------------------------------------------------------ # Add new "integer" AutoTS keywords here #------------------------------------------------------------------------------ keyword(name='multiplicity', valid_type=int, default=1, description='Overall spin multiplicity of reaction complex.') keyword(name='charge', valid_type=int, default=0, description='Overall charge of reaction complex.') keyword(name='max_n_active_bonds', valid_type=int, default=5, description='The maximum number of active bonds to consider ' 'in a reaction. If a job fails because it could not find a ' 'valid active bond set, increasing this may help but the job ' 'runtime will be substantially increased.') keyword( name='bond_color', valid_type=int, default=1, description='Color of active bonds. The predicted active bonds will be ' 'colored in the Maestro file ending in _active_bonds.mae. ' 'This is a useful diagnostic when troubleshooting a failing reaction.') keyword(name='afir_min_fc', valid_type=int, default=40, description='Minimum force constant for AFIR paths.') keyword( name='path_npts', valid_type=int, default=31, description= 'Number of points to initially sample the reaction path (before interpolation).' ) keyword(name='max_connections', valid_type=int, default=10, description='Maximum number of connections to search for.') keyword( name='template_order', valid_type=int, default=1, description='Order of the subset of atoms used to make constraints on ' 'template based transition state guess. Order 1 uses only ' 'reaction center atoms. Order 2 uses the reaction center ' 'plus nearest neighbors, etc.') keyword( name='conf_search_max_qm_conformers', valid_type=int, default=10, description= 'Maximum number of conformers to re-optimize with QM level of theory.') keyword( name='conf_search_max_mm_conformers', valid_type=int, default=200, description= 'Maximum number of conformers to request from an initial MM based conformational search.' ) keyword( name='constrained_ts_search_order', valid_type=int, default=3, description= 'Defines the size of the active region when constrained_ts_search=True. ' 'The active region is the reaction center plus (order-1)th neighbors. ' 'Meaningful values are positive integers.') keyword( name='pts_guess_with_ts', valid_type=int, default=0, description='The number of points around each maximum energy point ' 'along the interpolated reaction path used as a transition state guess. ' 'If 0, only one point (the maximum energy) is considered. ' 'Concretely, if there are n maximum points along the path, ' 'then in total n*pts_guess_with_ts of points will be optimized if pts_guess_with is odd, ' 'and n*pts_guess_with_ts + 1 of points will be returned if pts_guess_with_ts is even. ' 'This setting will cause several TS optimizations to be run in parallel.' ) keyword( name='conf_search_numb_clusters', valid_type=int, default=0, description='Number of conformational clusters requested if a value of ' 'zero is requested then the number of clusters is determined automatically. ' 'See also keyword conf_search_cluster_conformers. ') keyword(name='conf_search_conf_per_clusters', valid_type=int, default=1, description= 'Number of conformations to take from each conformational cluster. ' 'See also keyword conf_search_cluster_conformers. ') keyword(name='autots_server_port', valid_type=int, default=constants.AUTOTS_SERVER_DEFAULT_PORT, description="port number for AutoTS server") #------------------------------------------------------------------------------ # Add new "float" AutoTS keywords here #------------------------------------------------------------------------------ keyword( name='loose_opt_scaling', valid_type=float, default=3.0, description= 'Scaling factor for convergence criterion when doing loose optimization. This includes AFIR path construction, initial optimization of reaction complexes and constrained optimization to prepare transition state guess geometries.' ) keyword( name='conf_search_loose_opt_scaling', valid_type=float, default=10.0, description= 'Scaling factor for convergence criterion when doing loose optimization during conformational search stage. This includes constrained optimization used to prepare transition state guess geometries.' ) keyword( name='vdw_scale', valid_type=float, default=1.0, description= 'Scales the vdw radii used to position individual molecules when making complexes.' ) keyword( name='path_dx', valid_type=float, default=0.2, description= 'RMS difference between two structures along the interpolated path. ' 'Increasing this value will increase the number of points along the path.' ) keyword( name='rms_thresh', valid_type=float, default=0.25, description= 'Threshold for RMSD between two structures considered to be different.') keyword( name='irc_rms_thresh', valid_type=float, default=0.02, description= 'RMS threshold for sanity check on IRC. This check ensures that ' 'the IRC endpoints moved sufficiently far away from the transition state.' ) keyword(name='ts_vet_max_freq', valid_type=float, default=0.0, description='Maximum frequency (in cm-1) to consider ' 'when vetting transition vectors of an optimized transition state. ' 'For example, if this parametert is set to -20.0 only vibrational ' 'modes with frequencies less than this value will be considered ' 'as possible transition vectors. Note that this setting is ' 'independent of the requirement that there is only ' 'one negative eigenvalue of the Hessian, this latter requirement ' 'is controlled by the setting ts_acceptance_strictness.') keyword( name='conf_search_energy_window', valid_type=float, default=10.0, description='Energy window (kcal/mol) used in conformational search. ' 'Only conformers with energies within this value of the ' 'minimum energy conformer are kept.') keyword( name='conf_search_qm_energy_window', valid_type=float, default=10.0, description='Energy window (kcal/mol) used in conformational search. ' 'Only conformers with energies within this value of the ' 'minimum energy conformer are kept after constrained optimization of ' 'transition state (TS) geometries and before TS optimization') keyword( name='bond_stretch_fraction', valid_type=float, default=autots_constants.FRACTION_DIFFERENT, description= 'Percent change allowed in a stretching bond before it is considered ' 'broken when determining if two structure are conformers.') keyword(name='mm_ts_guess_b', valid_type=float, default=constants.MM_TS_GUESS_B, description='Value of the parameter b used to compute a guessed TS ' 'bond length = b/((b-1)*o + 1), where o is the bond order. ' 'The bond order is controled by the parameter mm_ts_guess_order.') keyword( name='mm_ts_guess_order', valid_type=float, default=constants.MM_TS_GUESS_ORDER, description='Value of bond order (o) used to compute guess ' 'TS bond length = b/((b-1)*o + 1). The parameter b is controlled by ' 'mm_ts_guess_b.') keyword( name='conf_search_boltzmann_thresh', valid_type=float, default=0.005, # about 3 kcal/mol at room temp description='Threshold on Boltzmann factor used to filter high energy ' 'structures prior to frequency evaluation.') keyword(name='frozen_atoms_rmsd_thresh', valid_type=float, default=0.3, description= 'Threshold for ensuring that frozen atoms are initially aligned') #------------------------------------------------------------------------------ # Add new "string" AutoTS keywords here #------------------------------------------------------------------------------ keyword(name=constants.REACTANT_COMPLEX, valid_type=str, default='', description='Full path to a Maestro structure file containing ' 'the reactant (entrance) complex. If this is defined ' 'the initial optimization and positioning of the reaction ' 'complexes will be skipped.') keyword(name=constants.PRODUCT_COMPLEX, valid_type=str, default='', description='Full path to a Maestro structure file containing ' 'the product (exit) complex. If this is defined ' 'the initial optimization and positioning of the reaction ' 'complexes will be skipped.') keyword( name=constants.REFERENCE_REACTANT_COMPLEX, valid_type=str, default='', description= 'Full path to a Maestro structure file containing a reference reactant complex (for testing only).' ) keyword( name=constants.REFERENCE_PRODUCT_COMPLEX, valid_type=str, default='', description= 'Full path to a Maestro structure file containing a reference product complex (for testing only).' ) keyword(name='complex_formation', valid_type=Choices(*constants.FORMATIONTYPES), default=constants.FORM_TYPE_DISTANCE, description= 'Methodology used to position molecules and orient torsion angles ' 'of rotatable bonds in reactant and product complexes.') keyword( name='spectator_esp', valid_type=Choices(*constants.SPECTATOR_ESPS), default=constants.ESP_JAGUAR, description= 'Methodology used to position spectator molecules in reactant and product complexes.' ) keyword(name='interpolation', valid_type=Choices(*constants.COORDINATE_CHOICES), default=constants.DISTANCE, description= 'Coordinate type used to perform reaction path interpolation.') keyword( name=constants.TEMPLATE_DATABASE_FILE, valid_type=str, default='', description= 'Path to a Maestro structure file containing transition state templates. ' 'This file should be prepared by the utility store_reaction_template.') keyword(name='full_path_file', valid_type=str, default='', description= 'Full path mae file produced by a previous, succesful AutoTS job. ' 'To be used with jobtype=energy_correction or jobtype=conf_search.') keyword(name='units', valid_type=Choices(*constants.SUPPORTED_UNITS), default=constants.UNIT_KCAL, description='Units used for printing summary tables.') keyword( name='comparison_type', valid_type=Choices(*constants.STRUCTURE_COMPARISON_CHOICES), default=constants.COMPARISON_CONFORMERS_ONLY, description='Method used to determine if two structures are different.') keyword(name='irc_type', valid_type=Choices(*constants.IRC_TYPE_CHOICES), default=constants.IRC_TYPE_LQA, description='Methods used to perform IRC.') keyword(name='irc_path_type', valid_type=Choices(*constants.IRC_PATH_TYPE_CHOICES), default=constants.IRC_PATH_TYPE_MEP, description='Type of path computed by IRC (IRC or MEP)') keyword(name='jobtype', valid_type=Choices(*constants.JOB_TYPE_CHOICES), default=constants.JOB_TYPE_FULL, description='Specifies the workflow.') keyword(name='ts_acceptance_strictness', valid_type=Choices(*constants.STRICTNESS_CHOICES), default=constants.STRICTNESS_STD, description= 'Strictness for verification of a candidate transition state.') keyword(name='ts_vetting_type', valid_type=Choices(*constants.VET_CHOICES), default=constants.VET_BOTH, description= 'Methodology used when verifying a candidate transition state.') keyword( name='conf_search_ts_vetting_type', valid_type=Choices(*constants.VET_CHOICES), default=constants.VET_DISTANCE, description= 'Methodology used when verifying a candidate transition state in the conformational search stage.' ) keyword( name='conf_search_constraint_type', valid_type=Choices(*constants.CONF_SEARCH_CONSTRAINT_CHOICES), default=constants.CONF_SEARCH_CONSTRAINT_ATOMS, description= 'Type of constraint to be used when performing MacroModel based conformational search on transition state geometries' ) keyword(name='initial_hessian_type', valid_type=Choices(*constants.HESSIAN_TYPE_CHOICES), default=constants.HESSIAN_TYPE_REFINE, description= 'Type of guess hessian used in transition state optimization.') keyword( name='ts_search_type', valid_type=Choices(*constants.TS_SEARCH_TYPE_CHOICES), default=constants.TS_SEARCH_TYPE_EIGENFOLLOW, description='Algorithm used to perform transition state optimizations.') keyword( name='follow_eigenvector', valid_type=Choices(*constants.FOLLOW_EIGENVECTOR_CHOICES), default=constants.FOLLOW_EIGENVECTOR_ACTIVE, description= 'Method to choose which eigenvector to follow in a transition state optimization step.' ) keyword( name='conf_search_mode', valid_type=Choices(*constants.CONF_SEARCH_MODE_CHOICES), default=constants.CONF_SEARCH_MODE_SEPARATED, description= 'Conformational search can either be applied to reaction complexes or separated molecules.' ) keyword(name='conf_search_accuracy_level', valid_type=Choices(*constants.CONF_SEARCH_ACCURACY_CHOICES), default=constants.CONF_SEARCH_ACCURACY_HIGH, description='MacroModel conformational search accuracy level. ' 'Acceptable values are 0 (low accuracy) and 1 (high accuracy).') keyword( name='irc_ts_vetting_type', valid_type=Choices(*constants.IRC_TS_VETTING_CHOICES), default=constants.IRC_TS_VETTING_RXN_OCCURRED, description='Defines how the results of an IRC are used when verifying a ' 'candidate transition state. Only applied if require_irc_success=True.') keyword(name='ts_ranking_type', valid_type=Choices(*constants.TS_RANKING_CHOICES), default=constants.TS_RANKING_BARRIER, description= 'Defines how to rank transition states when IRC was unsuccessful ' 'or multiple incomplete paths exist.') keyword( name='path_ranking_type', valid_type=Choices(*constants.PATH_RANKING_CHOICES), default=constants.PATH_RANKING_BARRIER, description= 'Defines how to rank paths when no fully connected paths were found.') keyword( name='path_type', valid_type=Choices(*constants.PATH_TYPE_CHOICES), default=constants.PATH_TYPE_AFIR, description= 'Selects a method to compute a reaction path from reactants to products.' ) keyword(name='autots_server_hostname', valid_type=str, default=constants.AUTOTS_SERVER_DEFAULT_HOSTNAME, description="hostname for AutoTS server")