/**
  * Add {@link CVParamOptionColumn} followed by ms_run into {@link #optionalColumnMapping} and {@link #columnMapping}.
  * The header like: opt_ms_run[1]_cv_{accession}_{parameter name}
  *
  * @param msRun SHOULD NOT empty.
  * @param param SHOULD NOT empty.
  * @param columnType SHOULD NOT empty.
  */
 public string AddOptionalColumn(MsRun msRun, CVParam param, Type columnType)
 {
     MZTabColumn column = new CVParamOptionColumn(msRun, param, columnType,
                                                  ParseColumnOrder(columnMapping.Last().Key));
     return AddOptionColumn(column);
 }
 /**
  * Add {@link CVParamOptionColumn} followed by study variable into {@link #optionalColumnMapping} and {@link #columnMapping}.
  * The header like: opt_study_variable[1]_cv_{accession}_{parameter name}
  *
  * @param studyVariable SHOULD NOT empty.
  * @param param SHOULD NOT empty.
  * @param columnType SHOULD NOT empty.
  */
 public string AddOptionalColumn(StudyVariable studyVariable, CVParam param, Type columnType)
 {
     MZTabColumn column = new CVParamOptionColumn(studyVariable, param, columnType,
                                                  ParseColumnOrder(columnMapping.Last().Key));
     return AddOptionColumn(column);
 }