Change log
----------
 - Version 2.0
        Version 2.0 of the mass-spec identifications oriented LIMS.

 - Version 2.1
        The 2.1 version now adds a new table ('instrument') and a link to it from the spectrumfile. A namechange also occurred from BrukerSpectrumStorage to EsquireSpectrumStorage. The SpectrumStorage applications set the correct instrumentid when storing spectra.

 - Version 2.2
        The 2.2 version is fully instrument-aware in that it has a generic SpectrumStorageGUI application that allows the user to select an instrument at boot time, and adapts its LC run and spectrum file retrieval logic accordingly.

 - Version 2.3
        The 2.3 version adds a generic XML/XSL transformation application that is adapted from the XSLTransformer from the <a href="http://genesis.UGent.be/teaching">teaching</a> project.

 - Version 2.4
        The 2.4 version solves some minor problems with searches without results that surfaced when switching to <a href="http://www.matrixscience.com/daemon.html">Mascot Daemon 2.0.00</a>.

 - Version 2.6
        The 2.6 version adds spectrum storage facilities for the Bruker Ultraflex LIFT spectra.

 - Version 2.6.1
        The 2.6.1 version changes the precursor parsing for Ultraflex LIFT spectra to reading the mass from the aFile ('x.LIFT.LIFT' folder) instead of from the XML file (last peak in the peaklist).

 - Version 2.7
        The 2.7 version solves a serious issue concerning isoform parsing from results obtained from truncated or otherwise processed databases from which the redundancy has been cleared with DBToolkit.

 - Version 2.7.1
        The 2.7.1 version changes the way Ultraflex 'peaklist.xml' files are detected and named to conform better to the automated way of working of Bruker acquisition software. It also solves a bug that caused duplicate names whenever more than one ms/ms spectrum was present for a given precursor.

 - Version 2.7.2
        The 2.7.2 version adds filename-select functionality to MergerGUI. So now a search query can be created selecting for searched, identified, instrument of origin and filename. '%' can be used, exactly as in an SQL like. If there are no '%' present, the match is created as equality ('=').

 - Version 2.8
        The 2.8 version adds a rather sophisticated (and CPU hungry ;)) spectrum visualization component to the GenericQuery table. Right-clicking on a zipped spectrum (indicated by the blue 'bytes' field) opens this visualization component.

 - Version 2.8.1
        The 2.8.1 version adds the ability to daisychain the peak-picking in order to obtain de novo sequences or sequence tags.

 - Version 2.8.2
        The 2.8.2 version adds the precursor M/Z and charge (if known) to the display as well as sets the filename of the spectrum on the Frame header.

 - Version 2.8.3
        The 2.8.3 version allows the SpecturmPanel component to be ran as a stand-alone application. It only takes Mascot Generic Format formatted files for the time being.

 - Version 2.8.4
        The 2.8.4 version adds the GetSpliceVariants class, used to obtain splice variants for specified SwissProt accession numbers.

 - Version 2.8.5
        The 2.8.5 version changes the way MascotDaemonParserAncestor stores Mascot datfiles in the DB. Instead of first storing them and subsequently attempting to parse them (leading to an insert even in case of a parse error), it now attempts the parsing first and only if this succeeds is the datfile inserted in the DB.

 - Version 2.8.6
        The 2.8.6 version resolves a bug using the RetrievePeptide application.

 - Version 2.8.7
        The 2.8.7 version allows <i>unselecting</i> of the last selected peak (and only the last selected peak; although reverse concatenation is possible) from the selection list in SpectrumPanel, provided the user 'SHIFT+click's that peak. Please note that the restrictions in terms of click height and relative peak height apply here as well.

 - Version 2.8.8
        The 2.8.8 version changes the color scheme slightly to highlight the <i>explorative</i> peak measurement in blue; upon confirmation (clicking) it becomes the regular black. On top of that 'ALT+click' now saves the current selected peaks and displays them on a lower height in a different color (red was the only decent one available ;)). The user can continue labelling a new series of peaks, eliminating them by 'CTRL+click' etc. Removing the stored set of peaks can be done by a 'CTRL-ALT-click'. Finally, the location of the precursor M/Z and charge and the resolution have been moved from the top right (where they often conflicted with the peak labelling) to the empty space underneath the spectrum.

 - Version 2.9
        The 2.9 version adds a customizable significance threshold for MascotID (settable via the MascotRawParser methods) which defaults to the original 0.05. It also includes the new package and classes for differential analysis.

 - Version 3.0
        The 3.0 version adds IdentificationGUI as the successor to the MascotDaemonReader console-based application. It also allows a user-configurable confidence interval as well as patching some holes in Mascot results reporting when fragmentation spectra with unknown parent mass are searched.

 - Version 3.1
        The 3.1 version incorporates the Mavenized utilities project, at the new version of 2.3. Please note that the previous versions (3.0 and below) will NOT work with the utilities-2.3.jar dependency listed below. In fact, you will probably need to either have the old utils-2.2.jar and utils-props-2.2.jar files already lying around, or you need to use ms_lims version 3.1. That's progress for you...

 - Version 3.2
        The 3.2 version adds a new column to the LCRun table: primary_fraction. There is a graphical component to manage this information as well: PrimaryFractionManager.

 - Version 3.2.1
        The 3.2.1 version has some minor bugfixes in BackupManager and PrimaryFractionManager and incorporates the new 16O and 18O columns in the Identification table.

 - Version 3.2.2
        The 3.2.2 version introduced changes to the 16O and 18O columns in the Identification table: they were made decimal(12,4) instead of int. It also sports a new class that can manage differential data from CSV files and store it in the database.

 - Version 3.2.3
        The 3.2.3 version fixes a bug with spectrumfile filenames that contain '-'. It was replaced by the HTML escape character '%2d'. Now it is kept.

 - Version 3.2.4
        The 3.2.4 version adds the Project ID on the SpectrumStorageGUI/ProjectManagerGUI screen.

 - Version 3.2.5
        The 3.2.5 version adds the Project ID to all project pull-downs as 'x. title', where 'x' is the project ID.

 - Version 3.2.6
        The 3.2.6 version no longer halts the SpectrumStorageGUI application whenever there is a problem with the default LCRun folder. Rather, it presents the user with a dialog to choose a new folder.

 - Version 3.2.7
        The 3.2.7 version solves a problem that occurs when two modifications are found on the same peptide sequence. Before, only the last encountered modification was stored; now all are given in the following format: X&lt;mod1, mod2, ...&gt;.

 - Version 3.3
        The 3.3 version adds the DiffAnalysisGUI program, incorporates the addition of a field to the database ('differential_calibration' column in the 'Instrument' table) and extends the functionalities of the preview table in IdentificationGUI with all the functionality found in a GenericQuery table.

 - Version 3.3.1
        The 3.3.1 version adds some GUI features to the results frames for DiffAnalysisGUI and IdentificationGUI, including a toggle for column selection mode for both and extended header info for DiffAnalysisGUI primary result frame.

 - Version 3.3.2
        The 3.3.2 version adds the choice between robust statistics (using median for location and the Huber scale estimator for scale) or standard statistics (the mean for the location and the standard deviation for the scale).

 - Version 3.3.3
        The 3.3.3 version scores IPI headers coming from the Mascot '.dat' file. Whenever a peptide matches multiple accession numbers, the accession number that has a description containing 'Swiss-Prot' is preferred over those containing 'TrEMBL' or 'REFSEQ_NP', which in turn are preferred over all others. The String detections are case-insensitive.

 - Version 3.3.4
        The 3.3.4 version affects IdentificationGUI in that it now shows erroneous searches in Mascot Daemon as well (they used to be omitted) and highlights these in colour. Even when selected, these searches will not be parsed (as there is no result file). Warnings (eg. missing title) are also highlighted, yet are parsed. A tooltip text specifies possible caveats for each.

 - Version 3.3.5
        The 3.3.5 version allows missing identifications for a spectrumfile in StoreDifferentialData. It used to throw an exception there.

 - Version 3.3.6
        The 3.3.6 version updates the differential analysis program. It now supports some additional options: both averaging of clustered couples as well as recentering of a project population can now be specified.

 - Version 3.3.7
        The 3.3.7 version solves a little bug in parsing the LC run name from an Esquire HCT MGF file that occurred because of the switch to Bruker 'automation engine' driven automatic generation of the MGF files. The update remains backwards compatible with the older MGF files as well.

 - Version 3.4
        The 3.4 version changes the calculation for a weighted, average ratio in a cluster of differential couples. It also uses color highlighting to flag potential outliers inside clusters (yellow for 95%, red for 98% confidence). Finally, there is a slight bugfix with regards to GenericQuery: when you right-clicked an empty spectrum (for visualization purposes), you would get a stack trace. Now you get a warning box and the display is cancelled.

 - Version 3.4.1
        The 3.4.1 version solves a bug in the datfile URL parsing when the Mascot server was called 'mascot'. Also solves a bug that caused IdentificationGUI to fail with the new ErrorCellRenderer.

 - Version 3.4.2
        The 3.4.2 version solves a few minor bugs, adds a few minor functionalities to certain objects and allows resizing for the MergerGUI screen. This resizing does wreck some havoc with the layout of the components, however.

 - Version 3.5
        The 3.5 version adds a new tool (and auxillary components): ClusterTreeGUI. It also expands the functionalities of the SpectrumPanel as a component a bit.

 - Version 3.5.1
        The 3.5.1 version adds an 'expert' mode to DiffAnalysisGUI (choose the averaging method employed as well as dynamic additions to the 'where' clause) and ameliorated error handling accordingly.

 - Version 3.5.2
        The 3.5.2 version adds a progress bar to MergerGUI, adds some modification conversions and fixes a bug in DiffAnalysisGUI that occurred when recentering led to negative ratios. This caused the program to return blanks while dumping stacktraces. Now the program checks for, and handles the occurrence of this problem in a decent and polite way.

 - Version 3.6
        The 3.6 version adds a DTA reader as well as an updated and much more convenient QTOF reader for SpectrumStorage.

 - Version 3.6.1
        The 3.6.1 version allows searching of the JTree with the clusters in the ClusterTreeGUI application.

 - Version 4.0
        The 4.0 version fixes some slight bugs in the previous version and adds StoreBinaryFileGUI which can store compressed files or folders coupled to a project and the ProjectAnalyzer framework (including some new DB tables), with two tools already in place: ProjectSQLTool to automate standard queries and BinaryFileRetrieverTool to retrieve previously stored binary files.

 - Version 4.1
        The 4.1 version adds some functionality to the ProjectSQLTool and introduces a new ProjectAnalyzerTool: DescriptiveNumbersTool.

 - Version 4.1.1
        The 4.1.1 version adds another query option to the ProjectSQLTool (search by title) and allows 'one-touch expanding' on the divider in this tool so either query results table or query control panel can be maximized inside the tool frame.

 - Version 4.1.2
        The 4.1.2 version solves a few minor bugs and removes version numbers from accession numbers (when these are present) when tallying or selecting unique proteins using the protein analyzer tools.

 - Version 4.1.3
        The 4.1.3 version allows spectrum file selection when doing peptide queries in ProjectSQLTool as well as enhances reporting on Proline peptides in the Descriptive Numbers tool for N-terminal COFRADIC projects.

 - Version 4.1.4
        The 4.1.4 version adds an option checkbox for alphabetical sorting of projects in MergerGUI, ProjectAnalyzer, SpectrumStorageGUI/ProjectManager and StoreBinaryFileGUI.

 - Version 4.1.5
        The 4.1.5 version adds automatically saved/loaded queries to GenericQuery (last 40 queries are cached in this way), displays the number of new LC runs found in the title bar of SpectrumStorageGUI and also shows the number of identified spectra in the title bar of the preview frame of IdentificationGUI.

 - Version 4.1.6
        The 4.1.6 version updates the project query tool in ProjectAnalyzer; it now also reports the number of unique peptide sequences per accession number when querying by 'unique proteins'. It also disables the 'execute query' button while a query is running.

 - Version 4.1.7
        The 4.1.7 version updates GenericQuery. It now writes the query cache to a GZIPped text file instead of plain text ('query.txt.gz' in the user home folder). It automatically converts from existing, older 'query.txt' files and informs the user of this.

 - Version 4.1.8
        The 4.1.8 version updates MascotID so that it now also processes '+' signs in filenames (equivalent HTML code is '%2b').

 - Version 4.1.9
        The 4.1.9 version solves a slight bug with alphabetical project sorting and modification/addition of a project. These latter operations caused the alphabetical sorting to 'disappear' in favour of the reversed project ID sorting, even though the alphabetical checkbox was checked. This bugfix applies to ProjectAnalyzer, ProjectManager and SpectrumStorage.

 - Version 4.2
        The 4.2 version adds the automated extraction of UniProt XRefs from the IPI description in the ProjectAnalyzer Query Tool when in 'unique proteins' mode. Note that when multiple XRefs are present, they will all be shown in the column, separated by '*'. Also note that SWISS-PROT entries might be affixed by '-' and a number, indicating a splice variant.

 - Version 4.2.1
        The 4.2.1 version expands the XRefs extracted by the Project Analyzer Query Tool from the IPI description lines (now includes SWISS-PROT, TrEMBL, REFSEQ (NP and XP) and ENSEMBL (in that order of precedence)). Additionally, GenericQuery now supports 2 additional buttons, useful for query cache management (button to clear complete query cache as well as to remove a single query).

 - Version 4.2.2
        The 4.2.2 version fixes a bug in the Query Tool of the Project Analyzer which led to silly, single-line results when combining queries with grouping functionality with a specific instrument selection.

 - Version 4.2.3
        The 4.2.3 version fixes a bug in IdentificationGUI that resulted in errors for NCBI searches with isoforms.

 - Version 4.2.4
        The 4.2.4 version fixes a slight bug in the QueryTool of the ProjectAnalyzer that leaves leading spaces in the descriptions in the results every now and then.

 - Version 4.3
        The 4.3 version adds an indeterminate progress bar to GenericQuery, making it multithreaded and somewhat more userfriendly (eg, better return messaging and error reporting). Also added a query cache browser which allows direct selecting of any query from the cache.

 - Version 4.3.1
        The 4.3.1 version fixes a bug that occurs when the column selection mode is used. After each query, this column selection mode was reset to row selection mode, even though the column selection mode checkbox was still checked. The table now stays in the column selection mode.

 - Version 4.3.2
        The 4.3.2 version makes sure that DifferentialAnalysisGUI selects only those identifications from the desired projects that originate from the selected instrument.

 - Version 4.4
        The 4.4 version adds differential analysis software for the MALDI LC-MS approach using the Bruker Ultraflex.

 - Version 4.4.1
        The 4.4.1 version solves a bug when using the 'copy selection' button on GenericQuery.

 - Version 4.4.2
        The 4.4.2 version makes the Project SQL tool in ProjectAnalyzer 'valid'-aware. It now only selects identifications which have a value of 1 or above in the 'valid' column.

 - Version 4.4.3
        The 4.4.3 version solves a bug when using the 'copy selection' button on the Project SQL tool in ProjectAnalyzer. This is the same bug as the one described for version 4.4.1 in GenericQuery - the fix was just not yet done for the Query Tool in ProjectAnalyzer.

 - Version 4.4.4
        The 4.4.4 version updates the MALDIDiffAnalysisGUI application in several ways. (1) it can now also read multiple 'CompoundList.xml' files recursively starting from as specified folder. (2) it allows signal-to-noise filtering on all compounds during the output of inclusion lists. (3) after an analysis, the results dialog now allows you to write all couples to a CSV file.

 - Version 4.4.5
        The 4.4.5 version adds recognition of the HTTP'ized ',' (comma) in filenames.

 - Version 4.4.6
        The 4.4.6 version solves a bug in parsing Mascot result files that can occur when a peptide is present multiple times in the same protein. In some cases, the start location will be taken from a later occurrence than the end location, leading to start > end for the peptide.

 - Version 4.4.7
        The 4.4.7 version adds choice of Mascot server and search database to PeptideSequenceRetriever. It also accommodates the new Mascot return value which now omits 'pre' tags.

 - Version 4.4.8
        The 4.4.8 version fixes the usage information for RetrievePeptide.

 - Version 4.5
        The 4.5 version fixes some inconsistencies in assigning the primary accession number to many redundant identifications of the same peptide.

 - Version 5.0
        The 5.0 version features a reworked DB model (using primary and foreign keys in all tables (most notably datfile and identification) and adding simple auditing columns to all tables. All applications have been reworked and accessors have been regenerated to work with the new DB schema. Do not attempt to run 5.0 on older (4.1+) ms_lims databases! A lossless conversion script + class have been provided to convert 4.1+ databases painlessly.For more information on upgrading your database, see <a href="../rdbms/conversion.html">the database conversion page</a>.

 - Version 5.0.1
        The 5.0.1 version slightly changes the report generation by the 'Descriptive Numbers' tool such that N-terminal tri-deutero acetylation ('AcD3') is also counted next to 'regular' acetylation ('Ace') for N-terminal COFRADIC projects. It also adds a small table to this report which specifies all detected N-terminal modifications for these N-terminal COFRADIC projects.

 - Version 5.0.2
        The 5.0.2 version fatures an updated MALDIDiffAnalysisWorker that also works as a standalone tool which recursively finds all CompoundList under a certain folder and outputs 'per-plate' (i.e.: per compoundlist) statistics.

 - Version 5.0.3
        The 5.0.3 version fixes a bug in DiffAnalysisGUI; one query part was not yet updated to the new column names in ms_lims 5.

 - Version 5.0.4
        The 5.0.4 version updates MALDIDiffAnalysisGUI; now different Ultraflex instrument calibrations are read from a properties file and users can choose the appropriate one on the GUI.

 - Version 5.0.5
        The 5.0.5 version has a new, more generic constructor in SpectrumPanel.

 - Version 5.0.6
        The 5.0.6 version features a bugfix and an enhancement to SpectrumPanel. The NullPointer is now solved and a single peak can now support multiple annotations which are ordered vertically.

 - Version 5.1
        The 5.1 version supports retrieval of dat files using both the older Mascot auxiliary program (ms-showtext.exe) as well as the newer equivalent (ms-status.exe) and this transparently.

 - Version 5.1.1
        The 5.1.1 version adds a new icon for cancelled tasks to IdentificationGUI and also adds several known mass deltas to the SpectrumPanel component.

 - Version 5.1.2
        The 5.1.2 version solves a bug that occurred when an absolute path was specified for a Mascot DAT file in the Mascot Daemon TaskDB.

 - Version 5.1.3
        The 5.1.3 version expands the conflict-resolution capabilities of ms_lims whenever the same spectrum has been identified multiple times. If the scores of old and new identification are equal, it now also checks where the delta between score and threshold was highest.

 - Version 5.2
        The 5.2 version adds a new option to the QueryTool in ProjectAnalyzer. When selecting only unique peptide sequences, it is now possible to specifically show the highest scoring hit for each sequence. Additionally, the SQL creation scripts have been updated: projects.sql now contains several indexes (KEY and UNIQUE KEY) that dramatically improve DB performance, and projectanalyzertool.sql and cofradic.sql now completely recreate their tables before filling them with default data.

 - Version 5.2.1
        The 5.2.1 version fixes an oversight in the functionality introduced in version 5.2 for the QueryTool in ProjectAnalyzer. The query did not take into account the validity of the identification, so it also showed identifications with a 'valid' flag smaller than 1. This has now been fixed.

 - Version 5.2.2
        The 5.2.2 version updates the MascotGenericFile reader to accommodate the latest changes to the formats (inclusion of several header variables).

 - Version 5.3
        The 5.3 version of ms_lims now contains a 'main GUI' (called MS_LIMS) that can be used to access any individual module in ms_lims, as well as Mascot Daemon. Correspondingly, scripts have now been added to the ms_lims web page that will allow you to boot this GUI straight away (after downloading the ms_lims jar AND it's dependencies). Instructions on CVS checkout have also been added. Also note that ms_lims version 5.3 and above now <i>require</i> <b>Java 1.5</b> or above to run!

 - Version 5.3.1
        The 5.3.1 version of ms_lims solves a problem with the parsing of accession numbers that contain a colon (':'), e.g.: IPI:IPI006542.

 - Version 5.3.2
        The 5.3.2 version of ms_lims adds support for T2Extractor-derived MGF files for an ABI 4700 instrument. Additional columns of data (beyond m/z, intensity and charge) are not retained however. Charge of fragmentions is currently hardcoded to '1'.

 - Version 5.3.3
        The 5.3.3 version of ms_lims solves a minor bug that prevented the correct display of a spectrum filename in the lower part of a SpectrumPanel when opened from GenericQuery or ProjectAnalyzer.

 - Version 5.3.4
        The 5.3.4 version of ms_lims adds more detailed error output in IdentificationGUI when something goes wrong with regards to querying the Mascot Daemon TaskDB. Also updated the utilities dependency to version 2.7.7, solely because that version is now under the Apache2 license. Note that there are no relevant API changes in utilities with regards to ms_lims.

 - Version 5.3.5
         The 5.3.5 version of ms_lims adds an ABI 4800 storage engine and worker.

 - Version 5.4
        The 5.4 version of ms_lims replaces the internal datfile parsing with MascotDatfile parsing. Note that the only visible consequence will be the presence of fixed modifications (designated by '*') in the 'modified_sequence' field. Additionally, since the score evaluation against the identity threshold is now carried out on the exact, decimal values rather than on the nominal value, some borderline peptide hits might be lost compared to previous versions. This new behaviour is more correct, as the score is actually worse than threshold. The old version of ms_lims emulated the more forgiving nominal score/threshold comparison as used by the Mascot Perl script.

 - Version 6.0
        Schtuff!





 - Version 2.0
        Version 2.0 of the mass-spec identifications oriented LIMS.

 - Version 2.1
        The 2.1 version now adds a new table ('instrument') and a link to it from the spectrumfile. A namechange also occurred from BrukerSpectrumStorage to EsquireSpectrumStorage. The SpectrumStorage applications set the correct instrumentid when storing spectra.

 - Version 2.2
        The 2.2 version is fully instrument-aware in that it has a generic SpectrumStorageGUI application that allows the user to select an instrument at boot time, and adapts its LC run and spectrum file retrieval logic accordingly.

 - Version 2.3
        The 2.3 version adds a generic XML/XSL transformation application that is adapted from the XSLTransformer from the <a href="http://genesis.UGent.be/teaching">teaching</a> project.

 - Version 2.4
        The 2.4 version solves some minor problems with searches without results that surfaced when switching to <a href="http://www.matrixscience.com/daemon.html">Mascot Daemon 2.0.00</a>.

 - Version 2.6
        The 2.6 version adds spectrum storage facilities for the Bruker Ultraflex LIFT spectra.

 - Version 2.6.1
        The 2.6.1 version changes the precursor parsing for Ultraflex LIFT spectra to reading the mass from the aFile ('x.LIFT.LIFT' folder) instead of from the XML file (last peak in the peaklist).

 - Version 2.7
        The 2.7 version solves a serious issue concerning isoform parsing from results obtained from truncated or otherwise processed databases from which the redundancy has been cleared with DBToolkit.

 - Version 2.7.1
        The 2.7.1 version changes the way Ultraflex 'peaklist.xml' files are detected and named to conform better to the automated way of working of Bruker acquisition software. It also solves a bug that caused duplicate names whenever more than one ms/ms spectrum was present for a given precursor.

 - Version 2.7.2
        The 2.7.2 version adds filename-select functionality to MergerGUI. So now a search query can be created selecting for searched, identified, instrument of origin and filename. '%' can be used, exactly as in an SQL like. If there are no '%' present, the match is created as equality ('=').

 - Version 2.8
        The 2.8 version adds a rather sophisticated (and CPU hungry ;)) spectrum visualization component to the GenericQuery table. Right-clicking on a zipped spectrum (indicated by the blue 'bytes' field) opens this visualization component.

 - Version 2.8.1
        The 2.8.1 version adds the ability to daisychain the peak-picking in order to obtain de novo sequences or sequence tags.

 - Version 2.8.2
        The 2.8.2 version adds the precursor M/Z and charge (if known) to the display as well as sets the filename of the spectrum on the Frame header.

 - Version 2.8.3
        The 2.8.3 version allows the SpecturmPanel component to be ran as a stand-alone application. It only takes Mascot Generic Format formatted files for the time being.

 - Version 2.8.4
        The 2.8.4 version adds the GetSpliceVariants class, used to obtain splice variants for specified SwissProt accession numbers.

 - Version 2.8.5
        The 2.8.5 version changes the way MascotDaemonParserAncestor stores Mascot datfiles in the DB. Instead of first storing them and subsequently attempting to parse them (leading to an insert even in case of a parse error), it now attempts the parsing first and only if this succeeds is the datfile inserted in the DB.

 - Version 2.8.6
        The 2.8.6 version resolves a bug using the RetrievePeptide application.

 - Version 2.8.7
        The 2.8.7 version allows <i>unselecting</i> of the last selected peak (and only the last selected peak; although reverse concatenation is possible) from the selection list in SpectrumPanel, provided the user 'SHIFT+click's that peak. Please note that the restrictions in terms of click height and relative peak height apply here as well.

 - Version 2.8.8
        The 2.8.8 version changes the color scheme slightly to highlight the <i>explorative</i> peak measurement in blue; upon confirmation (clicking) it becomes the regular black. On top of that 'ALT+click' now saves the current selected peaks and displays them on a lower height in a different color (red was the only decent one available ;)). The user can continue labelling a new series of peaks, eliminating them by 'CTRL+click' etc. Removing the stored set of peaks can be done by a 'CTRL-ALT-click'. Finally, the location of the precursor M/Z and charge and the resolution have been moved from the top right (where they often conflicted with the peak labelling) to the empty space underneath the spectrum.

 - Version 2.9
        The 2.9 version adds a customizable significance threshold for MascotID (settable via the MascotRawParser methods) which defaults to the original 0.05. It also includes the new package and classes for differential analysis.

 - Version 3.0
        The 3.0 version adds IdentificationGUI as the successor to the MascotDaemonReader console-based application. It also allows a user-configurable confidence interval as well as patching some holes in Mascot results reporting when fragmentation spectra with unknown parent mass are searched.

 - Version 3.1
        The 3.1 version incorporates the Mavenized utilities project, at the new version of 2.3. Please note that the previous versions (3.0 and below) will NOT work with the utilities-2.3.jar dependency listed below. In fact, you will probably need to either have the old utils-2.2.jar and utils-props-2.2.jar files already lying around, or you need to use ms_lims version 3.1. That's progress for you...

 - Version 3.2
        The 3.2 version adds a new column to the LCRun table: primary_fraction. There is a graphical component to manage this information as well: PrimaryFractionManager.

 - Version 3.2.1
        The 3.2.1 version has some minor bugfixes in BackupManager and PrimaryFractionManager and incorporates the new 16O and 18O columns in the Identification table.

 - Version 3.2.2
        The 3.2.2 version introduced changes to the 16O and 18O columns in the Identification table: they were made decimal(12,4) instead of int. It also sports a new class that can manage differential data from CSV files and store it in the database.

 - Version 3.2.3
        The 3.2.3 version fixes a bug with spectrumfile filenames that contain '-'. It was replaced by the HTML escape character '%2d'. Now it is kept.

 - Version 3.2.4
        The 3.2.4 version adds the Project ID on the SpectrumStorageGUI/ProjectManagerGUI screen.

 - Version 3.2.5
        The 3.2.5 version adds the Project ID to all project pull-downs as 'x. title', where 'x' is the project ID.

 - Version 3.2.6
        The 3.2.6 version no longer halts the SpectrumStorageGUI application whenever there is a problem with the default LCRun folder. Rather, it presents the user with a dialog to choose a new folder.

 - Version 3.2.7
        The 3.2.7 version solves a problem that occurs when two modifications are found on the same peptide sequence. Before, only the last encountered modification was stored; now all are given in the following format: X&lt;mod1, mod2, ...&gt;.

 - Version 3.3
        The 3.3 version adds the DiffAnalysisGUI program, incorporates the addition of a field to the database ('differential_calibration' column in the 'Instrument' table) and extends the functionalities of the preview table in IdentificationGUI with all the functionality found in a GenericQuery table.

 - Version 3.3.1
        The 3.3.1 version adds some GUI features to the results frames for DiffAnalysisGUI and IdentificationGUI, including a toggle for column selection mode for both and extended header info for DiffAnalysisGUI primary result frame.

 - Version 3.3.2
        The 3.3.2 version adds the choice between robust statistics (using median for location and the Huber scale estimator for scale) or standard statistics (the mean for the location and the standard deviation for the scale).

 - Version 3.3.3
        The 3.3.3 version scores IPI headers coming from the Mascot '.dat' file. Whenever a peptide matches multiple accession numbers, the accession number that has a description containing 'Swiss-Prot' is preferred over those containing 'TrEMBL' or 'REFSEQ_NP', which in turn are preferred over all others. The String detections are case-insensitive.

 - Version 3.3.4
        The 3.3.4 version affects IdentificationGUI in that it now shows erroneous searches in Mascot Daemon as well (they used to be omitted) and highlights these in colour. Even when selected, these searches will not be parsed (as there is no result file). Warnings (eg. missing title) are also highlighted, yet are parsed. A tooltip text specifies possible caveats for each.

 - Version 3.3.5
        The 3.3.5 version allows missing identifications for a spectrumfile in StoreDifferentialData. It used to throw an exception there.

 - Version 3.3.6
        The 3.3.6 version updates the differential analysis program. It now supports some additional options: both averaging of clustered couples as well as recentering of a project population can now be specified.

 - Version 3.3.7
        The 3.3.7 version solves a little bug in parsing the LC run name from an Esquire HCT MGF file that occurred because of the switch to Bruker 'automation engine' driven automatic generation of the MGF files. The update remains backwards compatible with the older MGF files as well.

 - Version 3.4
        The 3.4 version changes the calculation for a weighted, average ratio in a cluster of differential couples. It also uses color highlighting to flag potential outliers inside clusters (yellow for 95%, red for 98% confidence). Finally, there is a slight bugfix with regards to GenericQuery: when you right-clicked an empty spectrum (for visualization purposes), you would get a stack trace. Now you get a warning box and the display is cancelled.

 - Version 3.4.1
        The 3.4.1 version solves a bug in the datfile URL parsing when the Mascot server was called 'mascot'. Also solves a bug that caused IdentificationGUI to fail with the new ErrorCellRenderer.

 - Version 3.4.2
        The 3.4.2 version solves a few minor bugs, adds a few minor functionalities to certain objects and allows resizing for the MergerGUI screen. This resizing does wreck some havoc with the layout of the components, however.

 - Version 3.5
        The 3.5 version adds a new tool (and auxillary components): ClusterTreeGUI. It also expands the functionalities of the SpectrumPanel as a component a bit.

 - Version 3.5.1
        The 3.5.1 version adds an 'expert' mode to DiffAnalysisGUI (choose the averaging method employed as well as dynamic additions to the 'where' clause) and ameliorated error handling accordingly.

 - Version 3.5.2
        The 3.5.2 version adds a progress bar to MergerGUI, adds some modification conversions and fixes a bug in DiffAnalysisGUI that occurred when recentering led to negative ratios. This caused the program to return blanks while dumping stacktraces. Now the program checks for, and handles the occurrence of this problem in a decent and polite way.

 - Version 3.6
        The 3.6 version adds a DTA reader as well as an updated and much more convenient QTOF reader for SpectrumStorage.

 - Version 3.6.1
        The 3.6.1 version allows searching of the JTree with the clusters in the ClusterTreeGUI application.

 - Version 4.0
        The 4.0 version fixes some slight bugs in the previous version and adds StoreBinaryFileGUI which can store compressed files or folders coupled to a project and the ProjectAnalyzer framework (including some new DB tables), with two tools already in place: ProjectSQLTool to automate standard queries and BinaryFileRetrieverTool to retrieve previously stored binary files.

 - Version 4.1
        The 4.1 version adds some functionality to the ProjectSQLTool and introduces a new ProjectAnalyzerTool: DescriptiveNumbersTool.

 - Version 4.1.1
        The 4.1.1 version adds another query option to the ProjectSQLTool (search by title) and allows 'one-touch expanding' on the divider in this tool so either query results table or query control panel can be maximized inside the tool frame.

 - Version 4.1.2
        The 4.1.2 version solves a few minor bugs and removes version numbers from accession numbers (when these are present) when tallying or selecting unique proteins using the protein analyzer tools.

 - Version 4.1.3
        The 4.1.3 version allows spectrum file selection when doing peptide queries in ProjectSQLTool as well as enhances reporting on Proline peptides in the Descriptive Numbers tool for N-terminal COFRADIC projects.

 - Version 4.1.4
        The 4.1.4 version adds an option checkbox for alphabetical sorting of projects in MergerGUI, ProjectAnalyzer, SpectrumStorageGUI/ProjectManager and StoreBinaryFileGUI.

 - Version 4.1.5
        The 4.1.5 version adds automatically saved/loaded queries to GenericQuery (last 40 queries are cached in this way), displays the number of new LC runs found in the title bar of SpectrumStorageGUI and also shows the number of identified spectra in the title bar of the preview frame of IdentificationGUI.

 - Version 4.1.6
        The 4.1.6 version updates the project query tool in ProjectAnalyzer; it now also reports the number of unique peptide sequences per accession number when querying by 'unique proteins'. It also disables the 'execute query' button while a query is running.

 - Version 4.1.7
        The 4.1.7 version updates GenericQuery. It now writes the query cache to a GZIPped text file instead of plain text ('query.txt.gz' in the user home folder). It automatically converts from existing, older 'query.txt' files and informs the user of this.

 - Version 4.1.8
        The 4.1.8 version updates MascotID so that it now also processes '+' signs in filenames (equivalent HTML code is '%2b').

 - Version 4.1.9
        The 4.1.9 version solves a slight bug with alphabetical project sorting and modification/addition of a project. These latter operations caused the alphabetical sorting to 'disappear' in favour of the reversed project ID sorting, even though the alphabetical checkbox was checked. This bugfix applies to ProjectAnalyzer, ProjectManager and SpectrumStorage.

 - Version 4.2
        The 4.2 version adds the automated extraction of UniProt XRefs from the IPI description in the ProjectAnalyzer Query Tool when in 'unique proteins' mode. Note that when multiple XRefs are present, they will all be shown in the column, separated by '*'. Also note that SWISS-PROT entries might be affixed by '-' and a number, indicating a splice variant.

 - Version 4.2.1
        The 4.2.1 version expands the XRefs extracted by the Project Analyzer Query Tool from the IPI description lines (now includes SWISS-PROT, TrEMBL, REFSEQ (NP and XP) and ENSEMBL (in that order of precedence)). Additionally, GenericQuery now supports 2 additional buttons, useful for query cache management (button to clear complete query cache as well as to remove a single query).

 - Version 4.2.2
        The 4.2.2 version fixes a bug in the Query Tool of the Project Analyzer which led to silly, single-line results when combining queries with grouping functionality with a specific instrument selection.

 - Version 4.2.3
        The 4.2.3 version fixes a bug in IdentificationGUI that resulted in errors for NCBI searches with isoforms.

 - Version 4.2.4
        The 4.2.4 version fixes a slight bug in the QueryTool of the ProjectAnalyzer that leaves leading spaces in the descriptions in the results every now and then.

 - Version 4.3
        The 4.3 version adds an indeterminate progress bar to GenericQuery, making it multithreaded and somewhat more userfriendly (eg, better return messaging and error reporting). Also added a query cache browser which allows direct selecting of any query from the cache.

 - Version 4.3.1
        The 4.3.1 version fixes a bug that occurs when the column selection mode is used. After each query, this column selection mode was reset to row selection mode, even though the column selection mode checkbox was still checked. The table now stays in the column selection mode.

 - Version 4.3.2
        The 4.3.2 version makes sure that DifferentialAnalysisGUI selects only those identifications from the desired projects that originate from the selected instrument.

 - Version 4.4
        The 4.4 version adds differential analysis software for the MALDI LC-MS approach using the Bruker Ultraflex.

 - Version 4.4.1
        The 4.4.1 version solves a bug when using the 'copy selection' button on GenericQuery.

 - Version 4.4.2
        The 4.4.2 version makes the Project SQL tool in ProjectAnalyzer 'valid'-aware. It now only selects identifications which have a value of 1 or above in the 'valid' column.

 - Version 4.4.3
        The 4.4.3 version solves a bug when using the 'copy selection' button on the Project SQL tool in ProjectAnalyzer. This is the same bug as the one described for version 4.4.1 in GenericQuery - the fix was just not yet done for the Query Tool in ProjectAnalyzer.

 - Version 4.4.4
        The 4.4.4 version updates the MALDIDiffAnalysisGUI application in several ways. (1) it can now also read multiple 'CompoundList.xml' files recursively starting from as specified folder. (2) it allows signal-to-noise filtering on all compounds during the output of inclusion lists. (3) after an analysis, the results dialog now allows you to write all couples to a CSV file.

 - Version 4.4.5
        The 4.4.5 version adds recognition of the HTTP'ized ',' (comma) in filenames.

 - Version 4.4.6
        The 4.4.6 version solves a bug in parsing Mascot result files that can occur when a peptide is present multiple times in the same protein. In some cases, the start location will be taken from a later occurrence than the end location, leading to start > end for the peptide.

 - Version 4.4.7
        The 4.4.7 version adds choice of Mascot server and search database to PeptideSequenceRetriever. It also accommodates the new Mascot return value which now omits 'pre' tags.

 - Version 4.4.8
        The 4.4.8 version fixes the usage information for RetrievePeptide.

 - Version 4.5
        The 4.5 version fixes some inconsistencies in assigning the primary accession number to many redundant identifications of the same peptide.

 - Version 5.0
        The 5.0 version features a reworked DB model (using primary and foreign keys in all tables (most notably datfile and identification) and adding simple auditing columns to all tables. All applications have been reworked and accessors have been regenerated to work with the new DB schema. Do not attempt to run 5.0 on older (4.1+) ms_lims databases! A lossless conversion script + class have been provided to convert 4.1+ databases painlessly.For more information on upgrading your database, see <a href="../rdbms/conversion.html">the database conversion page</a>.

 - Version 5.0.1
        The 5.0.1 version slightly changes the report generation by the 'Descriptive Numbers' tool such that N-terminal tri-deutero acetylation ('AcD3') is also counted next to 'regular' acetylation ('Ace') for N-terminal COFRADIC projects. It also adds a small table to this report which specifies all detected N-terminal modifications for these N-terminal COFRADIC projects.

 - Version 5.0.2
        The 5.0.2 version fatures an updated MALDIDiffAnalysisWorker that also works as a standalone tool which recursively finds all CompoundList under a certain folder and outputs 'per-plate' (i.e.: per compoundlist) statistics.

 - Version 5.0.3
        The 5.0.3 version fixes a bug in DiffAnalysisGUI; one query part was not yet updated to the new column names in ms_lims 5.

 - Version 5.0.4
        The 5.0.4 version updates MALDIDiffAnalysisGUI; now different Ultraflex instrument calibrations are read from a properties file and users can choose the appropriate one on the GUI.

 - Version 5.0.5
        The 5.0.5 version has a new, more generic constructor in SpectrumPanel.

 - Version 5.0.6
        The 5.0.6 version features a bugfix and an enhancement to SpectrumPanel. The NullPointer is now solved and a single peak can now support multiple annotations which are ordered vertically.

 - Version 5.1
        The 5.1 version supports retrieval of dat files using both the older Mascot auxiliary program (ms-showtext.exe) as well as the newer equivalent (ms-status.exe) and this transparently.

 - Version 5.1.1
        The 5.1.1 version adds a new icon for cancelled tasks to IdentificationGUI and also adds several known mass deltas to the SpectrumPanel component.

 - Version 5.1.2
        The 5.1.2 version solves a bug that occurred when an absolute path was specified for a Mascot DAT file in the Mascot Daemon TaskDB.

 - Version 5.1.3
        The 5.1.3 version expands the conflict-resolution capabilities of ms_lims whenever the same spectrum has been identified multiple times. If the scores of old and new identification are equal, it now also checks where the delta between score and threshold was highest.

 - Version 5.2
        The 5.2 version adds a new option to the QueryTool in ProjectAnalyzer. When selecting only unique peptide sequences, it is now possible to specifically show the highest scoring hit for each sequence. Additionally, the SQL creation scripts have been updated: projects.sql now contains several indexes (KEY and UNIQUE KEY) that dramatically improve DB performance, and projectanalyzertool.sql and cofradic.sql now completely recreate their tables before filling them with default data.

 - Version 5.2.1
        The 5.2.1 version fixes an oversight in the functionality introduced in version 5.2 for the QueryTool in ProjectAnalyzer. The query did not take into account the validity of the identification, so it also showed identifications with a 'valid' flag smaller than 1. This has now been fixed.

 - Version 5.2.2
        The 5.2.2 version updates the MascotGenericFile reader to accommodate the latest changes to the formats (inclusion of several header variables).

 - Version 5.3
        The 5.3 version of ms_lims now contains a 'main GUI' (called MS_LIMS) that can be used to access any individual module in ms_lims, as well as Mascot Daemon. Correspondingly, scripts have now been added to the ms_lims web page that will allow you to boot this GUI straight away (after downloading the ms_lims jar AND it's dependencies). Instructions on CVS checkout have also been added. Also note that ms_lims version 5.3 and above now <i>require</i> <b>Java 1.5</b> or above to run!

 - Version 5.3.1
        The 5.3.1 version of ms_lims solves a problem with the parsing of accession numbers that contain a colon (':'), e.g.: IPI:IPI006542.

 - Version 5.3.2
        The 5.3.2 version of ms_lims adds support for T2Extractor-derived MGF files for an ABI 4700 instrument. Additional columns of data (beyond m/z, intensity and charge) are not retained however. Charge of fragmentions is currently hardcoded to '1'.

 - Version 5.3.3
        The 5.3.3 version of ms_lims solves a minor bug that prevented the correct display of a spectrum filename in the lower part of a SpectrumPanel when opened from GenericQuery or ProjectAnalyzer.

 - Version 5.3.4
        The 5.3.4 version of ms_lims adds more detailed error output in IdentificationGUI when something goes wrong with regards to querying the Mascot Daemon TaskDB. Also updated the utilities dependency to version 2.7.7, solely because that version is now under the Apache2 license. Note that there are no relevant API changes in utilities with regards to ms_lims.

 - Version 5.3.5
         The 5.3.5 version of ms_lims adds an ABI 4800 storage engine and worker.

 - Version 5.4
        The 5.4 version of ms_lims replaces the internal datfile parsing with MascotDatfile parsing. Note that the only visible consequence will be the presence of fixed modifications (designated by '*') in the 'modified_sequence' field. Additionally, since the score evaluation against the identity threshold is now carried out on the exact, decimal values rather than on the nominal value, some borderline peptide hits might be lost compared to previous versions. This new behaviour is more correct, as the score is actually worse than threshold. The old version of ms_lims emulated the more forgiving nominal score/threshold comparison as used by the Mascot Perl script.

 - Version 6.0
        The 6.0 version of ms_lims extends the database to include fragment ion details as well as an HTML representation of sequence coverage by b and y-ions. Do not attempt to run 6.0 on older (5.x) ms_lims databases! A lossless conversion script has been provided to convert 5.x databases painlessly. For more information on upgrading your database, see <a href="../rdbms/conversion.html">the database conversion page</a>.

 - Version 6.0.1
        The 6.0.1 version of ms_lims solves two issues with ms_lims 6.0: i) the N-terminus (for y-ions) and the C-terminus (for b-ions) were not highlighted when they were covered by the end ion of their series; ii) due to delegation to mascotdatfile, ms_lims would happily accept modifications without a 'short label' specified for that modification in the 'modificationConversion.txt'. Pre-6.0 versions of ms_lims would flag an error and halt processing if this occurred, and it is this error-flagging behaviour has been restored in ms_lims 6.0.1. Without the error flagging, the modification would be contained between '#', and would carry the full MASCOT-specified name for that modification.

 - Version 6.0.2
        The 6.0.2 version of ms_lims adds the ms_lims database as a start-up argument to StoreDifferentialData. It should take the form: '//server/databaseName' (e.g.: '//muppet03/projects').

 - Version 6.0.3
        The 6.0.3 version of ms_lims adds the possibility to select only spectrumids, filenames and identified status from Spectrumfile.

 - Version 6.0.4
        The 6.0.4 version of ms_lims fixes a bug that can corrupt large datfiles upon their storage as GZIPped BLOBs in the database.

 - Version 6.1
        The 6.1 version of ms_lims includes a tool to retroactively convert exsiting pre-ms_lims 6.0 data to the ms_lims 6.0 annotation levels (including fragment ion coverage and annotation). This version also introduces the possibility to execute custom classes from the main MS_LIMS GUI.

 - Version 6.1.1
         The 6.1.1 version of ms_lims now allows StoreBinaryFileGUI to be launched from the main interface. It also includes a simple tool to visualize clusters derived from the NorBel clustering software.

 - Version 6.9
         The 6.9 version of ms_lims includes tools to store and view quantitative information from the Mascot Distiller quantitation toolbox.

 - Version 7.0
         The 7.0 version of ms_lims includes tools to store and view quantitative information from the Mascot Distiller quantitation toolbox and integrates peptizer.

 - Version 7.1
         The 7.1 version of ms_lims adds two columns to spectrumfile (used for peak intensity normalization): total ion count and highest peak in spectrum.

 - Version 7.3
         The 7.3 version of ms_lims changes the quantification tables

 - Version 7.3.1
          The 7.3.1 version of ms_lims has a minor bug fix that happened while storing identifications with very precise calculated masses

 - Version 7.3.2
          The 7.3.2 version of ms_lims has three minor bug fixes; first is a fix for the incorrect colouring of timestamp and byte array fields in results tables, second is the removal of a cartesian cross condition in all ProjectAnalyzer QueryTool queries when 'include spectrum' was NOT selected. On production databases, the resulting massive result set typically crashed the client. Third, when a long query in Generic Query failed, no error box was shown to the user, and the feedback labels on the progress bar and the status label remained at their pre-query state.

 - Version 7.3.3
         The 7.3.3 version of ms_lims corrects a bug in the output of RetrievePeptide, where only errors were redirected to the output file, and everything else went to the log file as 'INFO' statements. Simultaneously, performance and redundancy coping at accession number level was improved as well.

 - Version 7.3.4
          The 7.3.4 version of ms_lims corrects a bug in the descriptive numbers project analyzer tool. When no acetylated peptides are identified (i.e. butylation project) then a zero-division was done. Also, a warning is now presented to the user in the quantitationpreview when quantitationgroups could not be linked to peptide identifications. Finally, a processing bug due to file format updates in the new Mascot Server 2.3 have been solved.

- Version 7.4
          The 7.4 version of ms_lims alters the access to the Mascot Daemon TaskDB; there is now the choice to connect to it as an RDBMS (e.g., through the JDBC/ODBC bridge driver, or directly to a MySQL instance), or to connect to an MS Access .mdb file (the default setting of Mascot Daemon). The latter now ensures that 64 bit Java versions on 64 bit operating systems can still read 32 bit Access mdb files. The IdentificationGUI.properties file is used to configure between RDBMS and Access modes.

- Version 7.4.1
          The 7.4.1 version of ms_lims fixes a bug that was introduced in the storage of spectrum files, where a memory leak occurred that could result in instability of ms_lims.

- Version 7.5.2
          The 7.5.2 version of ms_lims adds storage engine for Bruker MicroTOFQ and update the storage engine of the bruker Ultraflex mass spectrometers.

- Version 7.6
          The 7.6 version of ms_lims adds fragmentation to the spectrum table. The fragmentation type can be selected during the spectrum storage process. The modificationConversion.txt file (that can be found in the resources folder) will be kept in sync with the database with this release. New modifications can be added by using the ConfigurationGui.

- Version 7.6.7.
          The 7.6.6 version of ms_lims updates to MascotDatfile 3.2.8 which solves a bug in Distiller-based query title parsing, and indexing of files requiring temp storage.