private List <IsobaricIndex> GetReferenceFuncs()
        {
            var usedChannels = IsobaricScanXmlUtils.GetUsedChannels(iTraqFile.FullName);
            var result       = refChannels.GetFuncs();

            foreach (var refFunc in result)
            {
                bool bFound = false;
                for (int i = 0; i < usedChannels.Count; i++)
                {
                    if (usedChannels[i].Name.Equals(refFunc.Name))
                    {
                        refFunc.Index = i;
                        bFound        = true;
                        break;
                    }
                }

                if (!bFound)
                {
                    throw new Exception(string.Format("Channel {0} was not used in sample and cannot be used as reference, valid channels are {1}",
                                                      refFunc.Name,
                                                      usedChannels.ConvertAll(l => l.Name).Merge("/")));
                }
            }

            return(result);
        }