public static double CalculateFeature(EspFeatureDb.FeatureDef feature, Target target) { var seq = target.Sequence ?? string.Empty; switch (feature) { case EspFeatureDb.FeatureDef.length: return(seq.Length); case EspFeatureDb.FeatureDef.mass: return(MASS_CALC.GetPrecursorMass(seq)); case EspFeatureDb.FeatureDef.pI: return(PiCalc.Calculate(seq)); case EspFeatureDb.FeatureDef.AVG_Gas_phase_basicity: return(GasPhaseBasicityCalc.Calculate(seq).Average()); case EspFeatureDb.FeatureDef.nAcidic: return(AminoAcid.Count(seq, 'D', 'E')); // Amino acid case EspFeatureDb.FeatureDef.nBasic: return(AminoAcid.Count(seq, 'R', 'H', 'K')); // Amino acid default: return(EspFeatureDb.CalculateFeature(feature, seq)); } }