docs: def parameters(self, sequence, value_means, value_ranges, arrangement):
          """Relates the individual to be evolved to the full parameter string.
  
          Parameters
          ----------
          sequence: str
              Full amino acid sequence for specification object to be
              optimized. Must be equal to the number of residues in the
              model.
          value_means: list
              List containing mean values for parameters to be optimized.
          value_ranges: list
              List containing ranges for parameters to be optimized.
              Values must be positive.
          arrangement: list
              Full list of fixed and variable parameters for model
              building. Fixed values are the appropriate value. Values
              to be varied should be listed as 'var0', 'var1' etc,
              and must be in ascending numerical order.
              Variables can be repeated if required.
          """
          self._params['sequence'] = sequence
          self._params['value_means'] = value_means
          self._params['value_ranges'] = value_ranges
          self._params['arrangement'] = arrangement
          if any(x <= 0 for x in self._params['value_ranges']):
              raise ValueError("range values must be greater than zero")
          self._params['variable_parameters'] = []
          for i in range(len(self._params['value_means'])):
              self._params['variable_parameters'].append(
                  "".join(['var', str(i)]))
          if len(set(arrangement).intersection(
                  self._params['variable_parameters'])) != len(
                      self._params['value_means']):
              raise ValueError("argument mismatch!")
          if len(self._params['value_ranges']) != len(
                  self._params['value_means']):
              raise ValueError("argument mismatch!")