public void TestDtaOutZipFile()
    {
      var file = new DtaOutFilenameConverter("d.e.c.zip");
      Assert.IsTrue(file.IsZip);
      Assert.IsFalse(file.IsDtasOutsFile);

      Assert.AreEqual("d.e.c", file.PureName);
      Assert.AreEqual("d.e.c.zip", file.GetDtasFilename());
      Assert.AreEqual("d.e.c.zip", file.GetOutsFilename());
    }
        private void InitDtasFilePathMap(List <string> dtasFiles)
        {
            filePathMap = new Dictionary <string, List <string> >();
            foreach (string dtasFile in dtasFiles)
            {
                string name = new DtaOutFilenameConverter(new FileInfo(dtasFile).Name).PureName;

                if (!filePathMap.ContainsKey(name))
                {
                    filePathMap[name] = new List <string>();
                }
                filePathMap[name].Add(dtasFile);
            }
        }
        private void ExtractMultipleRaw(string raw, List <string> rawFiles, List <IIdentifiedSpectrum> peptides)
        {
            string toDirectory = CreateToDirectory(raw);

            List <string> dtaFilenames = GetDtaFilenames(peptides);
            string        dtasFile     = new DtaOutFilenameConverter(rawFiles[0]).GetDtasFilename();

            using (DtasReader dtas = new DtasReader(dtasFile))
            {
                Progress.SetMessage(0, "Extracting from " + dtasFile + " ...");
                ExtractFile(dtas, dtaFilenames, toDirectory);
            }

            Dictionary <string, IIdentifiedSpectrum> outFilenamePeptideMap = GetOutFilenamePeptideMap(peptides);

            foreach (string rawFile in rawFiles)
            {
                string outsFile = new DtaOutFilenameConverter(rawFiles[0]).GetOutsFilename();
                Progress.SetMessage(0, "Extracting from " + outsFile + " ...");
                using (OutsReader outs = new OutsReader(outsFile))
                {
                    ExtractFileByPeptide(outs, outFilenamePeptideMap, toDirectory);
                }
            }

            if (outFilenamePeptideMap.Count > 0)
            {
                StringBuilder sb;
                if (outFilenamePeptideMap.Count == 1)
                {
                    sb = new StringBuilder("There is a file not found in dtas/outs file");
                }
                else
                {
                    sb = new StringBuilder("There are a few files not found in dtas/outs file");
                }

                foreach (string key in outFilenamePeptideMap.Keys)
                {
                    sb.Append("\n" + key);
                }

                throw new Exception(sb.ToString());
            }
        }
        private void ExtractSingleRaw(string raw, string rawFile, List <IIdentifiedSpectrum> peptides)
        {
            string toDirectory = CreateToDirectory(raw);

            List <string> dtaFilenames = GetDtaFilenames(peptides);
            string        dtasFile     = new DtaOutFilenameConverter(rawFile).GetDtasFilename();

            using (DtasReader dtas = new DtasReader(dtasFile))
            {
                Progress.SetMessage(0, MyConvert.Format("Extracting dta from {0} ...", dtasFile));
                ExtractFile(dtas, dtaFilenames, toDirectory);
            }

            List <string> outFilenames = GetOutFilenames(peptides);
            string        outsFile     = new DtaOutFilenameConverter(rawFile).GetOutsFilename();

            using (OutsReader outs = new OutsReader(outsFile))
            {
                Progress.SetMessage(0, MyConvert.Format("Extracting out from {0} ...", outsFile));
                ExtractFile(outs, outFilenames, toDirectory);
            }
        }