Example #1
0
        /// <summary>
        /// 输出每次条件下,每个fraction的protein group文件
        /// </summary>
        protected override void ExportIndividualFractionFile()
        {
            DirectoryInfo individualDir = new DirectoryInfo(resultDir.FullName + "\\individual");
            FileInfo      sourceFile    = new FileInfo(option.SourceFileName);

            SequestResultTextFormat writeFormat = GetWriteFormat();

            for (int iMinCount = option.FilterFrom; iMinCount <= option.FilterTo; iMinCount += option.FilterStep)
            {
                List <CalculationItem> currentItems = GetFilteredItems(iMinCount);

                if (!individualDir.Exists)
                {
                    individualDir.Create();
                }

                foreach (string keptClassifiedName in option.GetClassifiedNames())
                {
                    string result_file = MyConvert.Format(@"{0}\{1}.{2}.{3}{4}",
                                                          individualDir.FullName,
                                                          FileUtils.ChangeExtension(sourceFile.Name, ""),
                                                          GetOptionCondition(iMinCount),
                                                          keptClassifiedName,
                                                          sourceFile.Extension);

                    List <IIdentifiedProteinGroup> groups = new List <IIdentifiedProteinGroup>();
                    foreach (var item in currentItems)
                    {
                        if (item.GetClassifiedCount(keptClassifiedName) >= iMinCount)
                        {
                            IIdentifiedProteinGroup group = (IIdentifiedProteinGroup)item.Key;

                            IIdentifiedProteinGroup clonedGroup = GetGroupContainClassifiedPeptideHitOnly(keptClassifiedName, group);

                            groups.Add(clonedGroup);
                        }
                    }

                    IdentifiedResult curResult = new IdentifiedResult();
                    curResult.AddRange(groups);
                    curResult.Sort();

                    writeFormat.WriteToFile(result_file, curResult);
                }
            }
        }