Ejemplo n.º 1
0
        public override string GetValue(string fieldName)
        {
            switch (fieldName)
            {
            case Fields.Accession:
                return(Accession);

            case Fields.Description:
                return(Description);

            case Fields.Database:
                return(Database);

            case Fields.DatabaseVersion:
                return(DatabaseVersion);

            case Fields.SearchEngine:
                return(SearchEngines == null ? MzTab.NullFieldText : string.Join("|", SearchEngines));

            case Fields.TaxID:
                return(TaxID.ToString());

            case Fields.Species:
                return(Species);

            case Fields.Modifications:
                return(Modificiations);

            case Fields.AmbiguityMembers:
                return(AmbiguityMembers == null ? MzTab.NullFieldText : string.Join(",", AmbiguityMembers));

            case Fields.Reliability:
                if (Reliability == MzTab.ReliabilityScore.NotSet)
                {
                    return(MzTab.NullFieldText);
                }
                return(((int)Reliability).ToString());

            case Fields.Coverage:
                return(Coverage.ToString());

            case Fields.Uri:
                return(Uri != null?Uri.ToString() : MzTab.NullFieldText);

            case Fields.GoTerms:
                return(GoTerms == null ? MzTab.NullFieldText : string.Join("|", GoTerms));
            }

            if (fieldName.Contains("["))
            {
                string     condensedFieldName;
                List <int> indices = MzTab.GetFieldIndicies(fieldName, out condensedFieldName);

                switch (condensedFieldName)
                {
                case Fields.SearchEngine:
                    return(GetListValue(_searchEngines, indices[0]));

                case Fields.BestSearchEngineScore:
                    return(GetListValue(_bestSearchEngineScores, indices[0]));

                case Fields.AbundancePerAssay:
                    return(GetListValue(_abundanceAssays, indices[0]));

                case Fields.AbundanceStudyVariables:
                    return(GetListValue(_abundanceStudyVariables, indices[0]));

                case Fields.AbundanceStdevStudyVariables:
                    return(GetListValue(_abundanceStdevStudyVariables, indices[0]));

                case Fields.AbundanceStandardErrorStudyVariables:
                    return(GetListValue(_abundanceStandardErrorStudyVariables, indices[0]));

                case Fields.SearchEngineScoreMsRun:
                    return(GetListValue(_searchEngineScoreMsRun, indices[0], indices[1]));

                case Fields.NumberOfPsmsPerMsRun:
                    return(GetListValue(_numberOfPsmsPerMsRun, indices[0]));

                case Fields.NumberOfDistinctPeptidesPerMsRun:
                    return(GetListValue(_numberOfDistinctPeptidesPerMsRun, indices[0]));

                case Fields.NumberOfUniquePeptidesPerMsRun:
                    return(GetListValue(_numberOfUniquePeptidesPerMsRun, indices[0]));
                }
            }

            if (fieldName.StartsWith(MzTab.OptionalColumnPrefix))
            {
                return(GetOptionalData(fieldName));
            }

            throw new ArgumentException("Unexpected field name: " + fieldName);
        }