Ejemplo n.º 1
0
        /*
         * Writes the result database to a file, to make it faster to re-initialize the
         * software
         */
        //public static void writeResultDatabaseToFile(String file_path, ResultDatabase rd)
        //{
        //    log.Debug("Writing Result Database to a file...");
        //    try
        //    {
        //        StreamWriter writer = new StreamWriter(file_path);
        //        log.Debug("File name: " + file_path);
        //        // Get all IDs
        //        List<IDs> ids = new List<IDs>(rd.getIDs());
        //        // Sort by scan number
        //        ids.Sort((IDs x, IDs y) => (x.getScanNum()).CompareTo(y.getScanNum()));

        //        // Write header
        //        String[] header = new String[] { "scan", "scan_t", "peptide_mass", "peptide_sequence", "parent_proteins",
        //            "peptide_evidence", "peptide_reference", "database_sequence_id", "xCorr", "deltaCN", "deltaCNStar",
        //            "spscore", "sprank", "evalue" };
        //        writer.Write(String.Join("\t", header));
        //        foreach (IDs id in ids)
        //        {
        //            writer.Write("\n" + outputIDToTSVFormat(id));
        //            writer.Flush();
        //        }
        //        writer.Flush();
        //        writer.Close();
        //    }
        //    catch (Exception e)
        //    {
        //        Console.WriteLine(e.ToString());
        //        log.Error("Writing file unsuccessful!!!");
        //        Environment.Exit(0);
        //    }
        //    log.Debug("Writing file successful.");
        //}

        /*
         * Write the identification features used for training the logistic regression
         * classifier
         */
        //public static void writeIdentificationFeaturesFile(String file_path,
        //        List<IdentificationFeatures> positiveTrainingSet,
        //        List<IdentificationFeatures> negativeTrainingSet)
        //{
        //    log.Debug("Writing Identification Features to a file...");
        //    try
        //    {
        //        StreamWriter writer = new StreamWriter(file_path);
        //        log.Debug("File name: " + file_path);

        //        // Write header TODO remove
        //        String header = "label," + IdentificationFeatures.getHeader();
        //        writer.Write(header);

        //        // in the first column, 1 indicates positive training set
        //        foreach (IdentificationFeatures i in positiveTrainingSet)
        //        {
        //            writer.Write("\n" + "1," + i.WriteToFile());
        //            writer.Flush();
        //        }
        //        // in the first column, 0 indicates negative training set
        //        foreach (IdentificationFeatures i in negativeTrainingSet)
        //        {
        //            writer.Write("\n" + "0," + i.WriteToFile());
        //            writer.Flush();
        //        }
        //        writer.Flush();
        //        writer.Close();
        //    }
        //    catch (Exception e)
        //    {
        //        e.printStackTrace();
        //        log.Error("Writing file unsuccessful!!!");
        //        System.exit(0);
        //    }
        //    log.Debug("Writing file successful.");
        //}

        /*
         * Useful for outputting the IDs object in the correct order for
         * writeResultDatabaseToFile
         */
        private static String outputIDToTSVFormat(IDs id)
        {
            return(id.getScanNum() + "\t" + id.getScanTime() + "\t" + id.getPeptideMass() + "\t" + id.getPeptideSequence()
                   + "\t" + id.getParentProteinAccessions() + "\t" + id.getPepEvid() + "\t" + id.getPepRef() + "\t"
                   + id.getDBSeqID() + "\t" + id.getXCorr() + "\t" + id.getDeltaCN() + "\t" + id.getDeltaCNStar() + "\t"
                   + id.getSPScore() + "\t" + id.getSPRank() + "\t" + id.getEValue());
        }
Ejemplo n.º 2
0
        /*
         * These are from the experiment and will be removed if you call reset on the
         * graph
         */
        public Peptide addPeptideFromIdentification(IDs id, double currentTime)
        {
            String           peptideSequence         = id.getPeptideSequence();
            double           peptideMass             = id.getPeptideMass();
            HashSet <String> parentProteinAccessions = id.getParentProteinAccessions();
            Peptide          pep;

            if (containsPeptide(peptideSequence))
            {
                return(getPeptide(peptideSequence));
            }
            else
            {
                // Adds the peptide from the identification into the database
                pep = new Peptide(peptideSequence, peptideMass, false);
                // these peptides will be removed if reset() is called
                SequenceToPeptide.Add(peptideSequence, pep);
                peptides.Add(pep);

                if (includeRetentionTime)
                {
                    // TODO right now this takes the current time as the peak retention time...
                    // should we run it through RTCalc so we can better estimate our RT alignment?
                    // 2019-04-29 No, do not. Observed times are better than predicted
                    // pep.setRetentionTime(RetentionTimeUtil.convertDoubleToRetentionTime(rt,
                    // retentionTimeWindow,
                    // retentionTimeWindow));
                    RetentionTime rt = new RetentionTime(currentTime + retentionTimeWindow, retentionTimeWindow,
                                                         retentionTimeWindow, false);
                    pep.setRetentionTime(rt);
                }
            }
            // update its parent proteins
            foreach (String acc in parentProteinAccessions)
            {
                Protein parentProtein = AccesstionToProtein[acc];
                if (parentProtein != null)
                {
                    pep.addProtein(parentProtein);
                }
                else if (acc.Contains(GlobalVar.DecoyPrefix))
                {
                    log.Info("WARNINGin Decoy parent protein for this peptide was not found!!");
                    log.Info(acc);
                }
                else
                {
                    log.Warn("WARNINGin Non-decoy parent protein for this peptide was not found!!");
                    log.Warn(acc);
                }
            }

            return(pep);
        }
Ejemplo n.º 3
0
 public static void WritePSM(IDs id)
 {
     IDWriter.WriteLine(String.Join("\t", id.getScanNum().ToString(), id.getScanTime().ToString(), id.getPeptideSequence().ToString(),
                                    id.getPeptideMass().ToString(), id.getXCorr().ToString(), id.getDeltaCN().ToString(), String.Join(",", id.getParentProteinAccessions())));
 }