private IIdentifiedResultTextFormat GetMultipleFileFormat(IIdentifiedSpectrumWriter writer)
        {
            var result = DoGetMultipleFileFormat();

            result.ProteinFormat = format.ProteinFormat.GetLineFormat(proteinColumns.Merge("\t"));
            result.PeptideFormat = format.PeptideFormat.GetLineFormat(peptideColumns.Where(m => !string.IsNullOrWhiteSpace(m)).Merge("\t"));
            result.ScanWriter    = writer;
            return(result);
        }
        private IIdentifiedResultTextFormat GetSingleFileFormat(IIdentifiedSpectrumWriter writer)
        {
            QuantificationResultSingleFileFormat result = new QuantificationResultSingleFileFormat()
            {
                ScanWriter = writer,
            };

            result.ProteinFormat = format.ProteinFormat.GetLineFormat(proteinColumns.Merge("\t"));
            result.PeptideFormat = format.PeptideFormat.GetLineFormat(peptideColumns.Merge("\t"));
            return(result);
        }
        protected virtual IFileWriter <IIdentifiedResult> GetExportFileWriter()
        {
            QuantificationExportForm form = new QuantificationExportForm();

            form.ConfigFileName = GetExportConfigFileName();

            IIdentifiedSpectrumWriter writer = GetScanWriter("");
            var allheaders = (from h in writer.Header.Split('\t')
                              where !string.IsNullOrWhiteSpace(h)
                              select h).ToList();

            form.InitializeScan(allheaders, ExportScanHeaders);

            if (form.MyShowDialog(this) != DialogResult.OK)
            {
                return(null);
            }

            form.SaveOption();

            if (form.IsExportScan)
            {
                var detailDir = new FileInfo(summaryFilename).DirectoryName + "/" + GetDetailDirectoryName();
                ExportScanHeaders = form.GetCheckedScanHeaders();
                writer            = GetScanWriter(detailDir, ExportScanHeaders.Merge("\t"));
            }
            else
            {
                writer = null;
            }

            IIdentifiedResultTextFormat result;

            if (form.IsSingleFile)
            {
                result = GetSingleFileFormat(writer);
            }
            else
            {
                result = GetMultipleFileFormat(writer);
            }

            IIdentifiedProteinGroupWriter groupWriter;

            if (form.IsFilterProteinName)
            {
                string[]      parts    = form.ProteinNamePattern.Split(';');
                List <string> patterns = new List <string>();
                foreach (string part in parts)
                {
                    if (part.Trim().Length > 0)
                    {
                        patterns.Add(part.Trim());
                    }
                }
                groupWriter = new IdentifiedProteinGroupSingleLineWriter(patterns.ToArray());
            }
            else
            {
                groupWriter = new IdentifiedProteinGroupMultipleLineWriter();
            }

            result.GroupWriter = groupWriter;

            result.ValidGroup = (m => m[0].IsEnabled(true) && option.IsProteinRatioValid(m[0]) && !option.IsProteinOutlier(m[0]));

            result.ValidSpectrum = (m => m.IsEnabled(true) && option.IsPeptideRatioValid(m) && !option.IsPeptideOutlier(m));

            return(result);
        }