public override void SetValue(string fieldName, string value)
{
if (MzTab.NullFieldText.Equals(value))
return;
switch (fieldName)
{
case Fields.Accession:
Accession = value;
return;
case Fields.Description:
Description = value;
return;
case Fields.Database:
Database = value;
return;
case Fields.DatabaseVersion:
DatabaseVersion = value;
return;
case Fields.TaxID:
TaxID = int.Parse(value);
return;
case Fields.Species:
Species = value;
return;
case Fields.Modifications:
Modificiations = value;
return;
case Fields.SearchEngine:
SearchEngines = value.Split('|').Select(datum => (CVParamater) datum).ToList();
return;
case Fields.Reliability:
Reliability = (MzTab.ReliabilityScore) int.Parse(value);
return;
case Fields.AmbiguityMembers:
AmbiguityMembers = value.Split(',').ToList();
return;
case Fields.Coverage:
Coverage = double.Parse(value, CultureInfo.CurrentCulture);
return;
case Fields.Uri:
Uri = new Uri(value);
return;
case Fields.GoTerms:
GoTerms = value.Split('|').Select(datum => datum).ToList();
return;
}
if (fieldName.Contains("["))
{
string condensedFieldName;
List<int> indices = MzTab.GetFieldIndicies(fieldName, out condensedFieldName);
double tempDbl;
switch (condensedFieldName)
{
case Fields.SearchEngine:
SetListValue(ref _searchEngines, indices[0], new CVParamater(value));
return;
case Fields.BestSearchEngineScore:
SetListValue(ref _bestSearchEngineScores, indices[0], double.Parse(value, CultureInfo.CurrentCulture));
return;
case Fields.AbundancePerAssay:
SetListValue(ref _abundanceAssays, indices[0], double.Parse(value, CultureInfo.CurrentCulture));
return;
case Fields.AbundanceStudyVariables:
SetListValue(ref _abundanceStudyVariables, indices[0], double.Parse(value, CultureInfo.CurrentCulture));
return;
case Fields.AbundanceStdevStudyVariables:
SetListValue(ref _abundanceStdevStudyVariables, indices[0], double.Parse(value, CultureInfo.CurrentCulture));
return;
case Fields.AbundanceStandardErrorStudyVariables:
SetListValue(ref _abundanceStandardErrorStudyVariables, indices[0], double.Parse(value, CultureInfo.CurrentCulture));
return;
case Fields.SearchEngineScoreMsRun:
SetListValue(ref _searchEngineScoreMsRun, indices[0], indices[1], double.TryParse(value, out tempDbl) ? tempDbl : default(double?));
return;
case Fields.NumberOfPsmsPerMsRun:
SetListValue(ref _numberOfPsmsPerMsRun, indices[0], int.Parse(value));
return;
case Fields.NumberOfDistinctPeptidesPerMsRun:
SetListValue(ref _numberOfDistinctPeptidesPerMsRun, indices[0], int.Parse(value));
return;
case Fields.NumberOfUniquePeptidesPerMsRun:
SetListValue(ref _numberOfUniquePeptidesPerMsRun, indices[0], int.Parse(value));
return;
}
}
if (fieldName.StartsWith(MzTab.OptionalColumnPrefix))
{
SetOptionalData(fieldName, value);
return;
}
throw new ArgumentException("Unexpected field name: " + fieldName);
}