2007-12-14 chambers - IDPicker * XML format updates make current versions incompatible with files from older versions (bump to 2.1?) * fixes to various filesystem calls to use if(Exists) instead of try/catch * added CompareTo for Map collection * fixed RBTree to work with compare values other than 1, 0, -1 * added real/decoy support to ProteinInfo and ResultInfo * added protein level FDR calculation to ProteinList * major updates to core code to support distinct and indistinct modifications * some fixes to use more efficient iteration allowed by Map collection - IDPickerReport * new columns in cluster page: "Calculated mass" and "Mass error" * new column in per peptide table: "Decoy" (using new real/decoy support) * now reports protein level FDR on summary page * processingEvent parameters are reflected from RunTimeConfig * added preliminary support for an Index By Modification page * some fixes to use more efficient iteration allowed by Map collection - IDPickerAssemble * processingEvent parameters are reflected from RunTimeConfig - IDPickerQonvert * updates to write out new modification format * processingEvent parameters are reflected from RunTimeConfig * SearchTime and SearchEngine parameters are erased from the general parameters list * now prints possible IDs per charge state as well as passing IDs * 2007-12-07 chambers - IDPicker * added RBTree generic binary search tree class to core code; based on downloaded source code * major optimizations: now using new Set and Map classes derived from RBTree; no more testing for not containing before adding! * new container syntax led to changes all over the core and report code * status output while reading input files is more verbose and descriptive - IDPickerAssemble: now writes status output when reading input files - IDPickerReport: hyperlink to cluster page via CID column added to "Per Protein" tables and moved from the peptide to the CID in the "Per Peptide" table 2007-11-28 chambers - GenerateSpectrumSVG: * fixes to CGI mode * new variable ShowErrorsFromCGI controls output to server error log - GenerateSubsetFasta: converted from Absolute/Relative FDRs to single FDR 2007-11-28 chambers - FreiCore * updated readmes to reflect new libmsr dependency for certain applications * fixed peakSpectrum::writeToSvg() to not write fragment charge state labels and to set LoMZ to the first peak that isn't the precursor, or if the spectrum is empty, to 0 - GenerateSpectrumSVG * updated to support filemasks and multiple input files (only one scan number though), which is useful for trying to generate a file from any available format (e.g. RawSourceName.* would find RawSourceName.mzData and RawSourceName.mzXML) * Makefile fixed - IDPickerReport * default RawSourceExtension is now ".*" to support the RawSourceFiles being stored in any supported format 2007-11-28 chambers - FreiCore * added warning when ResidueMap is initialized with residues that are different from the default residue names and masses * peakSpectrum::readPeaks() now relies on getScan() being in ascending sequential order so it stops calling getScan() when the returned scan number is higher than the last desired scan number * finished commenting out pepXML index feature (will re-add this later) and commented out stream modifiers that no longer have an effect due to SimpleXMLWriter::attr() lexical_casting all values before writing them to the stream (may revisit this later) - IDPickerAssemble * added try/catch for I/O exceptions writing output file * fixed regex bug to allow for one or more whitespaces between group and filemask in the batch file - IDPickerQonvert * fixed bug where random_shuffle of permutation set was occurring on global set instead of a thread-local copy * fixed expat inclusion with expat_xml.h file * updated Makefile to reflect renamed "common" directory - Various: updated GetMachineEndianType to GetHostEndianType (now in libmsr), disambiguated calls to freicore::FindFilesByMask (which is in both libmsr and freicore) 2007-10-26 chambers - FreiCore: * SearchSpectrum classes now use FDR instead of confidence internally - IDPicker: * update to 2.0 * simplified FDR system to a single variable * fixed group ToString() function to not duplicate the root slash on the root group * fixed group getSources() function to return a copy of the group's source set, and added a setSources() function to set the group's source set * fixed XML parsing code to read at least 500kb between status updates (checking current time after parsing every element is not a great idea, it turns out) * deprecated analysisParameters section in idpickerXML * now assigns a source with no group to the root group instead of a new group named the same as the source * fixed to read ProteinDatabase from dataProcessingDetails of each source * added BaseRunTimeConfig that I forgot to add to the 1.5 commit, oops! - IDPickerQonvert: * major update to support named scores in pepXML, and the option to combine multiple scores in an optimal way by permutating them until confident id count is maximized on a per source basis * fixed duplicate name/version message * fixed bug where peptide and protein lists weren't cleared when reusing fileSpectra variable * added support for linear score normalization (to percentiles on a per source basis) * added SearchResult class to support new generic SearchSpectrum system * mangled the permutation_d class from the Permutating Transmogrifier to support the score weight optimization feature * uses conventional parameter names for SearchEngine name and version, as well as SearchTime start and stop * now properly uses NumChargeStates on a per source basis * propagates the full list of search parameters in the pepXML file forward to the dataProcessingDetails on a per source basis - IDPickerReport: * fixed table header titles bug for details view on cluster pages * added index by spectrum page to HTML report 2007-10-17 chambers - FreiCore: * fixed bug writing pepXML C terminal mods as if they were N terminal mods * added support for variable terminal mods to SequestRunTimeConfig and SQTer * fixed MAKE_PATH_FOR_BOOST macro to use native OS name checker - IDPickerReport: now hotlinks peptides in the spectra-per-peptide report to that peptide's cluster 2007-10-11 chambers - IDPicker * update to 1.5.2 * Set now supports Union function without copying the subject set (old functionality is renamed to UnionCopy) * internal confidences converted to FDR except in IDPickerQonvert * added file type detection * added some currently disabled isotope distribution testing to generateSpectrumSvg * added RunTimeConfig to C# programs that functions equivalently to the C++ version (using reflection) * gave C# programs InitProcess() functions to clean up command line parsing * added MaxResultRank support to IDPickerAssemble * added "unique" attribute which indicates whether a particular peptide is unique to a single protein in the entire FASTA database * much improved progress output for workspace operations and IDPickerReport - IDPickerQonvert * added try/catch blocks to various operations * converted to use RunTimeConfig and InitProcess * uses new proteinStore feature to read protein sequences as they are needed instead of all at once - IDPickerReport * added self-documenting tooltips/titles to table headers * added try/catch blocks for each output file (will skip a file if it can't be written for whatever reason) * fixed bug with summary page where group rows were reporting number of results and source rows were reporting number of peptides (now they both report number of results) * using new non-copy Union methods sped up summary page generation considerably * expanded flexibility for the generateSpectrumSvg.cgi link generation (configurable HostURL, Path, and Extension) and made it far more space efficient by generating the link on page load with a JS function call 2007-09-21 chambers - IDPicker: update to 1.5.0; renaming validateSqtToXml->idpQonvert, assemblePeptidesXml->idpAssemble, idpickerWrapper->idpReport 2007-09-21 chambers - IDpicker: * changed assemblePeptidesXml to use a proper XML writer * now validateSqtToXml reads pepXML instead of SQT, also takes optional MaxResultRank argument * mandatory argument to idpickerWrapper replcaed with optional [-bpgraphs] flag * GenerateSpectrumSVG moved to IDPicker, and it now has both console-oriented and CGI-oriented modes * idpickerWrapper now uses the CGI mode of GenerateSpectrumSVG to generate spectrum graphs on the fly for any particular peptide identification; uses new optional [-datapath] flag * updates to support peptide terminal symbols * removed obsolete idpicker code from validateSqtToXml 2007-08-27 chambers - FreiCore: * moved CharIndexedVector to its own file * separated WATER constant into AVG and MONO mass versions * fixed protein database reader to work with protein description lines that don't have a space to indicate the end of the protein name * added DynamicMod motif system, not supported yet by MyriMatch * added support for motif system into MakePtmVariants and CalculateSequenceIons, the latter not being tested for robustness yet * SQT file reader now expects max. result rank instead of a validation mode - IDPicker: * fixed operator[] for Map class so it constructs the element if it doesn't exist * added Subtract function to Set to reduce excessive copying * changed removePeptideFromResult function to work with a list of peptides to fix a subtle bug * fixed min. number of arguments bug in AssemblePeptidesXml * IDPickerWrapper now works with a complex path for the output name, using only the deepest folder for the name of the reports * major optimizations made to AssembleMinimumCoveringSet * added support for more than one result rank in ValidateSqtToXml - SQTer: fixed a bug for finding the header when input OUT files were not in the current directory; added an error log as "sqter.log" 2007-07-30 chambers - FreiCore: * added BaseSpectrum destructor and turned off indexing feature (this will break some applications, they need fixing) * added arbitrary data passing to BaseWorkerInfo * added optimized versions of lexical_cast specializations to use atof and atoi when appropriate (much faster!) - IdPicker: * fixed validate bug of not always reading multiple ids within a result * added version information for idpicker_cs.dll which is displayed by the wrapper applications along with their own versions * moved all shared types and classes to Types.cs to unclutter access to the IdPickerWorkspace class * major performance optimizations made to validateSqtToXml, now uses per-file multithreading * protein database equality comparison is now made only on the filename from the database filepath * minimum unique peptides per protein now also implies minimum results per protein (2 filters for the price of 2) 2007-07-02 chambers [no log message]