private void Normalize()
 {
     foreach (var groupParameter in GroupParameter.GetAllFragmentGroupParameters(_maxCharge))
     {
         if (!IsotopeIntensityCorrProbDictionary.ContainsKey(groupParameter))
         {
             IsotopeIntensityCorrProbDictionary[groupParameter] = new Dictionary <IonType, Dictionary <int, double> >();
         }
         var si = IsotopeIntensityCorrProbDictionary[groupParameter];
         foreach (var ionType in _ionTypes[groupParameter])
         {
             if (!si.ContainsKey(ionType))
             {
                 si[ionType] = new Dictionary <int, double>();
             }
             var ssi = si[ionType];
             var sum = 0.0;
             foreach (var score in SubScoreFactory.GetAllCorrIntScore())
             {
                 if (!ssi.ContainsKey(score))
                 {
                     ssi[score] = 1.0;
                 }
                 sum = sum + ssi[score];
             }
             var keys = new List <int>(ssi.Keys);
             foreach (var score in keys)
             {
                 ssi[score] = Math.Max(double.MinValue, ssi[score] / sum);
             }
         }
     }
 }
Beispiel #2
0
        public ValueParameter <T> CreateValueParameter <T>(string label = "", GroupParameter group = null)
        {
            var datatype = TypeDefinition.GetDatatype(typeof(T));
            var param    = CreateParameter(datatype, label, group) as ValueParameter <T>;

            return(AddAndReturn(param, label, group));
        }
Beispiel #3
0
        public ArrayParameter <T> CreateArrayParameter <T>(string label = "", GroupParameter group = null, int[] structure = null)
        {
            var elementType = TypeDefinition.GetDatatype(typeof(T));
            var param       = Parameter.Create(this, FIdCounter++, RcpTypes.Datatype.Array, elementType, structure) as ArrayParameter <T>;

            return(AddAndReturn(param, label, group));
        }
Beispiel #4
0
        public NumberParameter <T> CreateNumberParameter <T>(string label = "", GroupParameter group = null) /*where T : struct*/
        {
            var datatype = TypeDefinition.GetDatatype(typeof(T));
            var param    = (NumberParameter <T>)CreateParameter(datatype, label, group);

            return(AddAndReturn(param, label, group));
        }
 private void GetIonTypes()
 {
     foreach (var groupParameter in GroupParameter.GetAllFragmentGroupParameters(_maxCharge))
     {
         IonTypes[groupParameter] = new List <IonType>();
         if (!_ionFrequencyFunction.ContainsKey(groupParameter))
         {
             continue;
         }
         var subIonFrequencyFunction = _ionFrequencyFunction[groupParameter];
         var subIonTypes             = IonTypes[groupParameter];
         var offsets = new List <double>(subIonFrequencyFunction.Values);
         offsets.Sort();//ascending
         foreach (var ionType in subIonFrequencyFunction.Keys)
         {
             if (offsets.Count <= NumberPerGroup || subIonFrequencyFunction[ionType] < offsets[offsets.Count - NumberPerGroup])
             {
                 continue;
             }
             if (subIonTypes.Count < NumberPerGroup)
             {
                 subIonTypes.Add(ionType);
             }
         }
     }
 }
Beispiel #6
0
        public void AddParameter(Parameter param, GroupParameter group)
        {
            base.AddParameter(param);

            if (group == null)
            {
                group = Root;
            }

            group.AddParameter(param);
        }
        private void Normalize()
        {
            foreach (var groupParameter in GroupParameter.GetAllFragmentGroupParameters(_maxCharge))
            {
                if (!RatioProbDictionary.ContainsKey(groupParameter))
                {
                    RatioProbDictionary[groupParameter] = new Dictionary <Tuple <IonType, IonType>, Dictionary <int, double> >();
                }
                if (!_allNumberDictionary.ContainsKey(groupParameter))
                {
                    _allNumberDictionary[groupParameter] = 1.0;
                }
                if (!NoIonProbDictionary.ContainsKey(groupParameter))
                {
                    NoIonProbDictionary[groupParameter] = 1.0;
                }

                NoIonProbDictionary[groupParameter] = NoIonProbDictionary[groupParameter] /
                                                      Math.Max(_allNumberDictionary[groupParameter], 1.0);

                var sr = RatioProbDictionary[groupParameter];

                foreach (var ionType in _ionTypes[groupParameter])
                {
                    foreach (var ionType2 in _ionTypes[groupParameter])
                    {
                        var sum      = 0.0;
                        var ionTypes = new Tuple <IonType, IonType> (ionType, ionType2);
                        if (!sr.ContainsKey(ionTypes))
                        {
                            sr[ionTypes] = new Dictionary <int, double>();
                        }
                        var ssr = sr[ionTypes];
                        foreach (var ratio in FeatureEdge.GetAllRatioIndices())
                        {
                            if (!ssr.ContainsKey(ratio))
                            {
                                ssr[ratio] = 1.0;
                            }
                            sum = sum + ssr[ratio];
                        }
                        var keys = new List <int> (ssr.Keys);
                        foreach (var ratio in keys)
                        {
                            ssr[ratio] = Math.Max(Double.MinValue, ssr[ratio] / sum);
                        }
                    }
                }
            }
        }
Beispiel #8
0
        public UriParameter CreateUriParameter(string label = "", GroupParameter group = null)
        {
            var param = CreateParameter(RcpTypes.Datatype.Uri, label, group) as UriParameter;

            return(AddAndReturn(param, label, group));
        }
Beispiel #9
0
        public Parameter CreateRangeParameter(RcpTypes.Datatype elementType, string label = "", GroupParameter group = null)
        {
            var param = Parameter.Create(this, FIdCounter++, RcpTypes.Datatype.Range, elementType);

            return(AddAndReturn(param, label, group));
        }
Beispiel #10
0
        public Parameter CreateBangParameter(string label = "", GroupParameter group = null)
        {
            var param = Parameter.Create(this, FIdCounter++, RcpTypes.Datatype.Bang);

            return(AddAndReturn(param, label, group));
        }
Beispiel #11
0
 TParameter AddAndReturn <TParameter>(TParameter param, string label, GroupParameter group) where TParameter : Parameter
 {
     param.Label = label;
     AddParameter(param, group);
     return(param);
 }
Beispiel #12
0
 public PrecursorFeatureNode(IsotopomerFeatures isotopomerFeatures, GroupParameter parameter, SubScoreFactory scoringParams)
     : base(isotopomerFeatures, null, isotopomerFeatures.GetMostAbundantFeature(), parameter)
 {
     _scoringParams = scoringParams;
     Score          = GetScore();
 }
Beispiel #13
0
 public PrecursorFeatureNode(IsotopomerFeatures isotopomerFeatures, GroupParameter parameter, SubScoreFactory scoringParams)
     : base(isotopomerFeatures, null, isotopomerFeatures.GetMostAbundantFeature(), parameter)
 {
     _scoringParams = scoringParams;
     Score = GetScore();
 }
Beispiel #14
0
 public ClientServerBase()
 {
     FContext = SynchronizationContext.Current;
     Root     = new GroupParameter(0, this, new GroupDefinition());
 }