mailr15206 - in /1.3: ./ auto_analyses/ data/ generic_fns/ gui/user_functions/ maths_fns/ opendx/ prompt/ sample_scripts/ sample...


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by edward on January 20, 2012 - 14:42:
Author: bugman
Date: Fri Jan 20 14:42:30 2012
New Revision: 15206

URL: http://svn.gna.org/viewcvs/relax?rev=15206&view=rev
Log:
Merged revisions 15168-15203 via svnmerge from 
svn+ssh://bugman@xxxxxxxxxxx/svn/relax/branches/spec_api

........
  r15168 | bugman | 2012-01-18 15:17:34 +0100 (Wed, 18 Jan 2012) | 9 lines
  
  Created a special specific API object called SPIN_PARAMS.
  
  This will be used to handle all operations to do with model parameters.  
This is initialised in the
  base class, and can be set up in the specific __init__() methods.  The 
object Param_list has methods
  for parameter initialisation (where all info is specified such as Grace 
string, units, default
  value, etc) and for determining if a parameter exists.  More methods will 
be added in the future to
  expand the usability of this object and to simplify the specific API 
methods.
........
  r15169 | bugman | 2012-01-18 15:36:59 +0100 (Wed, 18 Jan 2012) | 3 lines
  
  Created the Param_list.get_grace_string() method for returning the Grace 
string.
........
  r15170 | bugman | 2012-01-18 15:38:17 +0100 (Wed, 18 Jan 2012) | 6 lines
  
  Some of the specific API common methods now use the new SPIN_PARAM 
structure.
  
  Some are now spin specific, and a few new spin specific methods have been 
added for the specific
  code to alias.
........
  r15171 | bugman | 2012-01-18 15:40:06 +0100 (Wed, 18 Jan 2012) | 5 lines
  
  Fix for the frame order analysis as one of the common API methods has been 
renamed.
  
  _return_data_name() is now _return_data_name_spin().
........
  r15172 | bugman | 2012-01-18 15:40:42 +0100 (Wed, 18 Jan 2012) | 3 lines
  
  The reduced spectral density analysis code now uses the SPIN_PARAMS API 
object.
........
  r15173 | bugman | 2012-01-18 16:00:27 +0100 (Wed, 18 Jan 2012) | 3 lines
  
  Updated the consistency testing code to use the new SPIN_PARAMS specific 
API structure.
........
  r15174 | bugman | 2012-01-18 16:43:54 +0100 (Wed, 18 Jan 2012) | 3 lines
  
  Created the Param_list.get_units() method for returning the units 
corresponding to the parameter.
........
  r15175 | bugman | 2012-01-18 16:44:42 +0100 (Wed, 18 Jan 2012) | 3 lines
  
  The internal objects of the Param_list object are now private.
........
  r15176 | bugman | 2012-01-18 16:46:00 +0100 (Wed, 18 Jan 2012) | 5 lines
  
  Created the structural API GLOBAL_PARAMS structure.
  
  This is also based on the Param_list object and is initialised in the base 
class for all analyses.
........
  r15177 | bugman | 2012-01-18 17:02:34 +0100 (Wed, 18 Jan 2012) | 8 lines
  
  Created a few additional specific API common methods.
  
  These include:
      _return_data_name()
      _return_data_name_global()
      _return_units_global()
........
  r15178 | bugman | 2012-01-18 17:09:59 +0100 (Wed, 18 Jan 2012) | 3 lines
  
  Started to migrate the frame order analysis to use the SPIN_PARAMS and 
GLOBAL_PARAMS specific API objects.
........
  r15179 | bugman | 2012-01-18 17:13:00 +0100 (Wed, 18 Jan 2012) | 5 lines
  
  Removed the spin_id set to None check in the _set_param_values_global() 
specific API common method.
  
  This check was not functioning correctly.
........
  r15180 | bugman | 2012-01-18 18:15:26 +0100 (Wed, 18 Jan 2012) | 6 lines
  
  Removed the spin and spin_id args from the specific API return_units() 
method.
  
  This was needed for the model-free Rex parameter where the first field 
strength was part of the
  units.  This has been replaced by the first global frequency value.
........
  r15181 | bugman | 2012-01-19 09:24:04 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Removed the spin arg from the return_data_desc() specific function API 
method.
........
  r15182 | bugman | 2012-01-19 09:25:04 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Created the Param_list.get_desc() method for returning the parameter 
description.
........
  r15183 | bugman | 2012-01-19 09:30:22 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Created the specific function API common method _return_data_desc_spin().
........
  r15184 | bugman | 2012-01-19 09:46:45 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  The Param_list.get_desc() method now returns None rather than a RelaxError 
if the param is missing.
........
  r15185 | bugman | 2012-01-19 09:48:14 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Added the 'select' and 'fixed' objects to the base SPIN_PARAM list.
........
  r15186 | bugman | 2012-01-19 09:48:54 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Converted the NOE specific analysis to use the new SPIN_PARAM list API 
structure.
........
  r15187 | bugman | 2012-01-19 10:53:32 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  The relaxation curve-fitting specific analysis now uses the new SPIN_PARAMS 
list API object.
........
  r15188 | bugman | 2012-01-19 11:20:08 +0100 (Thu, 19 Jan 2012) | 5 lines
  
  Added the ability to store and return conversion factors in the Param_list 
specific API object.
  
  This includes accepting functions so that factors requiring user loaded 
data can be supported.
........
  r15189 | bugman | 2012-01-19 11:32:54 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Fix for the Param_list.get_conv_factor() method - the function type was not 
properly handled.
........
  r15190 | bugman | 2012-01-19 11:33:48 +0100 (Thu, 19 Jan 2012) | 5 lines
  
  The Param_list.get_units() method can now handle function type objects.
  
  This is needed for the model-free Rex parameter.
........
  r15191 | bugman | 2012-01-19 11:35:16 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Created the specific function API _return_conversion_factor_spin() method.
........
  r15192 | bugman | 2012-01-19 11:36:30 +0100 (Thu, 19 Jan 2012) | 5 lines
  
  Removed spin args from return_conversion_factor() and added optimisation 
parameters.
  
  The global and spin specific optimisation parameters are now set up for all 
specific analyses.
........
  r15193 | bugman | 2012-01-19 11:37:50 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Fix for the initialisation of the conversion factor storage in Param_list.
........
  r15194 | bugman | 2012-01-19 12:21:06 +0100 (Thu, 19 Jan 2012) | 5 lines
  
  Fix for the specific API _return_conversion_factor_spin() method.
  
  The wrong variable was being used.
........
  r15195 | bugman | 2012-01-19 13:29:47 +0100 (Thu, 19 Jan 2012) | 5 lines
  
  Fix for the function checking in the specific API Param_list objects.
  
  Class methods were not being detected!
........
  r15196 | bugman | 2012-01-19 13:58:04 +0100 (Thu, 19 Jan 2012) | 3 lines
  
  Updated the arg_check.is_func() function for handling class methods.
........
  r15197 | bugman | 2012-01-19 18:06:36 +0100 (Thu, 19 Jan 2012) | 5 lines
  
  Fix for the specific API common method _return_value_general() for when 
spectrum IDs are not present.
  
  Not sure why this change is necessary!  This could introduce future bugs, 
or hide a new bug!
........
  r15198 | bugman | 2012-01-20 11:31:09 +0100 (Fri, 20 Jan 2012) | 15 lines
  
  Mass conversion to the new GLOBAL_PARAMS and SPIN_PARAMS specific API data 
structures.
  
  This involves mainly the conversion of the model-free analysis to these new 
objects, and the
  subsequent changes to how model-free parameters are handled.  The 
parameters are now all lowercase,
  for example ['S2', 'te', 'Rex'] is now ['s2', 'te', 'rex'].  The follow 
parameters are now converted
  throughout relax:
      'bond_length' to 'r', 
      'CSA' to 'csa',
      'heteronucleus' to 'heteronuc_type',
      'proton' to 'proton_type'.
  
  The regularisation of the specific analysis parameters via GLOBAL_PARAMS 
and SPIN_PARAMS has
  significantly simplified the current code and make it much easier to 
introduce new analyses.
........
  r15199 | bugman | 2012-01-20 11:45:13 +0100 (Fri, 20 Jan 2012) | 3 lines
  
  Reintroduced the specific API default_value() method to most of the 
analyses.
........
  r15200 | bugman | 2012-01-20 11:48:39 +0100 (Fri, 20 Jan 2012) | 3 lines
  
  Fix for the model-free specific API default_value() method.
........
  r15201 | bugman | 2012-01-20 11:52:45 +0100 (Fri, 20 Jan 2012) | 5 lines
  
  Fix for the specific API common _default_value_spin() method.
  
  The value is now returned!
........
  r15202 | bugman | 2012-01-20 12:11:59 +0100 (Fri, 20 Jan 2012) | 3 lines
  
  Added the api_objects module to the package __all__ list.
........
  r15203 | bugman | 2012-01-20 13:42:50 +0100 (Fri, 20 Jan 2012) | 5 lines
  
  Fixes for all of the value.set user function back end unit tests.
  
  The parameter names are now regularised.
........

Added:
    1.3/specific_fns/api_objects.py
      - copied unchanged from r15203, 
branches/spec_api/specific_fns/api_objects.py
Modified:
    1.3/   (props changed)
    1.3/arg_check.py
    1.3/auto_analyses/dauvergne_protocol.py
    1.3/auto_analyses/relax_fit.py
    1.3/auto_analyses/stereochem_analysis.py
    1.3/data/mol_res_spin.py
    1.3/generic_fns/dasha.py
    1.3/generic_fns/diffusion_tensor.py
    1.3/generic_fns/grace.py
    1.3/generic_fns/minimise.py
    1.3/generic_fns/palmer.py
    1.3/generic_fns/pdc.py
    1.3/gui/user_functions/molmol.py
    1.3/gui/user_functions/pymol.py
    1.3/maths_fns/mf.py
    1.3/opendx/base_map.py
    1.3/prompt/dx.py
    1.3/prompt/grace.py
    1.3/prompt/model_free.py
    1.3/prompt/molmol.py
    1.3/prompt/pymol_control.py
    1.3/prompt/value.py
    1.3/sample_scripts/consistency_tests.py
    1.3/sample_scripts/generate_ri.py
    1.3/sample_scripts/jw_mapping.py
    1.3/sample_scripts/model_free/cv.py
    1.3/sample_scripts/model_free/dasha.py
    1.3/sample_scripts/model_free/dauvergne_protocol.py
    1.3/sample_scripts/model_free/diff_min.py
    1.3/sample_scripts/model_free/map.py
    1.3/sample_scripts/model_free/mf_multimodel.py
    1.3/sample_scripts/model_free/molmol_plot.py
    1.3/sample_scripts/model_free/palmer.py
    1.3/sample_scripts/model_free/remap.py
    1.3/sample_scripts/model_free/single_model.py
    1.3/sample_scripts/n_state_model/conformation_analysis_rdc+pcs.py
    1.3/sample_scripts/noe.py
    1.3/sample_scripts/relax_fit.py
    1.3/specific_fns/__init__.py
    1.3/specific_fns/api_base.py
    1.3/specific_fns/api_common.py
    1.3/specific_fns/consistency_tests.py
    1.3/specific_fns/frame_order.py
    1.3/specific_fns/jw_mapping.py
    1.3/specific_fns/model_free/__init__.py
    1.3/specific_fns/model_free/bmrb.py
    1.3/specific_fns/model_free/macro_base.py
    1.3/specific_fns/model_free/main.py
    1.3/specific_fns/model_free/mf_minimise.py
    1.3/specific_fns/model_free/results.py
    1.3/specific_fns/n_state_model.py
    1.3/specific_fns/noe/__init__.py
    1.3/specific_fns/noe/main.py
    1.3/specific_fns/relax_fit.py
    1.3/test_suite/gui_tests/model_free.py
    1.3/test_suite/shared_data/frame_order/free_rotor/back_calc.py
    1.3/test_suite/shared_data/frame_order/free_rotor/tensor_fit.py
    1.3/test_suite/shared_data/frame_order/free_rotor2/back_calc.py
    1.3/test_suite/shared_data/frame_order/free_rotor2/tensor_fit.py
    1.3/test_suite/shared_data/frame_order/iso_cone_free_rotor/back_calc.py
    1.3/test_suite/shared_data/frame_order/iso_cone_free_rotor/tensor_fit.py
    1.3/test_suite/shared_data/frame_order/iso_cone_free_rotor2/back_calc.py
    1.3/test_suite/shared_data/frame_order/iso_cone_free_rotor2/tensor_fit.py
    1.3/test_suite/shared_data/frame_order/rigid/back_calc.py
    1.3/test_suite/shared_data/frame_order/rigid/tensor_fit.py
    1.3/test_suite/shared_data/frame_order/rotor/back_calc.py
    1.3/test_suite/shared_data/frame_order/rotor/tensor_fit.py
    1.3/test_suite/shared_data/frame_order/rotor2/back_calc.py
    1.3/test_suite/shared_data/frame_order/rotor2/tensor_fit.py
    1.3/test_suite/shared_data/frame_order/rotor_2_state/back_calc.py
    1.3/test_suite/shared_data/frame_order/rotor_2_state/tensor_fit.py
    1.3/test_suite/shared_data/model_free/OMP/final_results_trunc_1.3.bz2
    1.3/test_suite/shared_data/model_free/sphere/create_ri.py
    1.3/test_suite/system_tests/consistency_tests.py
    1.3/test_suite/system_tests/dasha.py
    1.3/test_suite/system_tests/generic.py
    1.3/test_suite/system_tests/jw_mapping.py
    1.3/test_suite/system_tests/model_free.py
    1.3/test_suite/system_tests/palmer.py
    1.3/test_suite/system_tests/scripts/1UBQ_relax_fit.py
    1.3/test_suite/system_tests/scripts/bug_17276_peak_lists.py
    1.3/test_suite/system_tests/scripts/consistency_tests.py
    1.3/test_suite/system_tests/scripts/dasha.py
    1.3/test_suite/system_tests/scripts/diff_tensor/ri_back_calc.py
    1.3/test_suite/system_tests/scripts/diff_tensor/tensor_opt.py
    1.3/test_suite/system_tests/scripts/jw_mapping.py
    1.3/test_suite/system_tests/scripts/model_free/bug_15050.py
    1.3/test_suite/system_tests/scripts/model_free/bug_18790_negative_error.py
    1.3/test_suite/system_tests/scripts/model_free/bugs_12582_12591_12607.py
    1.3/test_suite/system_tests/scripts/model_free/create_m4.py
    1.3/test_suite/system_tests/scripts/model_free/dauvergne_protocol.py
    1.3/test_suite/system_tests/scripts/model_free/generate_ri.py
    1.3/test_suite/system_tests/scripts/model_free/omp_model_free.py
    1.3/test_suite/system_tests/scripts/model_free/opendx_s2_te_rex.py
    
1.3/test_suite/system_tests/scripts/model_free/opt_setup_S2_0_970_te_2048_Rex_0_149.py
    
1.3/test_suite/system_tests/scripts/model_free/opt_setup_local_tm_10_S2_0_8_te_40.py
    1.3/test_suite/system_tests/scripts/model_free/opt_tm_fns.py
    1.3/test_suite/system_tests/scripts/n_state_model/align_fit.py
    1.3/test_suite/system_tests/scripts/n_state_model/lactose_n_state.py
    1.3/test_suite/system_tests/scripts/n_state_model/metal_pos_opt.py
    1.3/test_suite/system_tests/scripts/n_state_model/missing_data_test.py
    1.3/test_suite/system_tests/scripts/n_state_model/monte_carlo_testing.py
    1.3/test_suite/system_tests/scripts/n_state_model/paramag_centre_fit.py
    1.3/test_suite/system_tests/scripts/n_state_model/pcs_to_rdc.py
    1.3/test_suite/system_tests/scripts/n_state_model/populations.py
    1.3/test_suite/system_tests/scripts/n_state_model/rdc_tensor.py
    1.3/test_suite/system_tests/scripts/noe.py
    1.3/test_suite/system_tests/scripts/palmer.py
    1.3/test_suite/system_tests/scripts/palmer_omp.py
    1.3/test_suite/system_tests/scripts/relax_fit.py
    1.3/test_suite/unit_tests/_generic_fns/test_value.py
    1.3/test_suite/unit_tests/_prompt/test_value.py
    1.3/test_suite/unit_tests/value_testing_base.py

[This mail would be too long, it was shortened to contain the URLs only.]

Modified: 1.3/arg_check.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/arg_check.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/auto_analyses/dauvergne_protocol.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/auto_analyses/dauvergne_protocol.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/auto_analyses/relax_fit.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/auto_analyses/relax_fit.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/auto_analyses/stereochem_analysis.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/auto_analyses/stereochem_analysis.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/data/mol_res_spin.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/data/mol_res_spin.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/generic_fns/dasha.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/dasha.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/generic_fns/diffusion_tensor.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/diffusion_tensor.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/generic_fns/grace.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/grace.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/generic_fns/minimise.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/minimise.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/generic_fns/palmer.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/palmer.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/generic_fns/pdc.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/generic_fns/pdc.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/gui/user_functions/molmol.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/gui/user_functions/molmol.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/gui/user_functions/pymol.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/gui/user_functions/pymol.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/maths_fns/mf.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/maths_fns/mf.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/opendx/base_map.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/opendx/base_map.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/prompt/dx.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/prompt/dx.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/prompt/grace.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/prompt/grace.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/prompt/model_free.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/prompt/model_free.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/prompt/molmol.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/prompt/molmol.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/prompt/pymol_control.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/prompt/pymol_control.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/prompt/value.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/prompt/value.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/consistency_tests.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/consistency_tests.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/generate_ri.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/generate_ri.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/jw_mapping.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/jw_mapping.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/cv.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/cv.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/dasha.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/dasha.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/dauvergne_protocol.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/dauvergne_protocol.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/diff_min.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/diff_min.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/map.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/map.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/mf_multimodel.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/mf_multimodel.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/molmol_plot.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/molmol_plot.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/palmer.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/palmer.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/remap.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/remap.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/model_free/single_model.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/model_free/single_model.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/n_state_model/conformation_analysis_rdc+pcs.py
URL: 
http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/n_state_model/conformation_analysis_rdc%2Bpcs.py?rev=15206&r1=15205&r2=15206&view=diff

Modified: 1.3/sample_scripts/noe.py

[... 230 lines stripped ...]



Related Messages


Powered by MHonArc, Updated Fri Jan 20 15:00:02 2012