From 47da889896fcec866dd152d0a1349aaa71bcfee2 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Fri, 11 Dec 2015 16:31:53 +0100 Subject: [PATCH 01/15] add database switch queries --- backend/database/swap_databases.sql | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 backend/database/swap_databases.sql diff --git a/backend/database/swap_databases.sql b/backend/database/swap_databases.sql new file mode 100644 index 000000000..fa132400d --- /dev/null +++ b/backend/database/swap_databases.sql @@ -0,0 +1,24 @@ +drop table + ec_cross_references, + embl_cross_references, + go_cross_references, + lineages, + peptides, + refseq_cross_references, + sequences, + taxons, + uniprot_entries, + proteomes, + proteome_caches; + +rename table unipept2.ec_cross_references to unipept.ec_cross_references; +rename table unipept2.embl_cross_references to unipept.embl_cross_references; +rename table unipept2.go_cross_references to unipept.go_cross_references; +rename table unipept2.lineages to unipept.lineages; +rename table unipept2.peptides to unipept.peptides; +rename table unipept2.refseq_cross_references to unipept.refseq_cross_references; +rename table unipept2.sequences to unipept.sequences; +rename table unipept2.taxons to unipept.taxons; +rename table unipept2.uniprot_entries to unipept.uniprot_entries; +rename table unipept2.proteomes to unipept.proteomes; +rename table unipept2.proteome_caches to unipept.proteome_caches; From 2c0bbad1ee1fbbb4719236698559d12858b17bf5 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Fri, 11 Dec 2015 16:48:52 +0100 Subject: [PATCH 02/15] add proteome_cross_references to swap database queries --- backend/database/swap_databases.sql | 2 ++ 1 file changed, 2 insertions(+) diff --git a/backend/database/swap_databases.sql b/backend/database/swap_databases.sql index fa132400d..fee81bd13 100644 --- a/backend/database/swap_databases.sql +++ b/backend/database/swap_databases.sql @@ -9,6 +9,7 @@ drop table taxons, uniprot_entries, proteomes, + proteome_cross_references, proteome_caches; rename table unipept2.ec_cross_references to unipept.ec_cross_references; @@ -21,4 +22,5 @@ rename table unipept2.sequences to unipept.sequences; rename table unipept2.taxons to unipept.taxons; rename table unipept2.uniprot_entries to unipept.uniprot_entries; rename table unipept2.proteomes to unipept.proteomes; +rename table unipept2.proteome_cross_references unipept.proteome_cross_references; rename table unipept2.proteome_caches to unipept.proteome_caches; From 428c59e8eebd52cfade30a8ea26f5943346d9a6e Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Wed, 23 Dec 2015 09:58:59 +0100 Subject: [PATCH 03/15] typo --- app/views/api/clidocs/casestudy_tpa.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/views/api/clidocs/casestudy_tpa.html.erb b/app/views/api/clidocs/casestudy_tpa.html.erb index ddae00ae0..2ac7151ff 100644 --- a/app/views/api/clidocs/casestudy_tpa.html.erb +++ b/app/views/api/clidocs/casestudy_tpa.html.erb @@ -10,7 +10,7 @@

- Because most proteins are simply to large to be analysed using a mass spectrometer, they are usually cleaved into smaller peptides before the actual MS analysis takes place. In practice, most proteomics studies achieve such a cleavage by adding trypsin to a protein sample. Trypsin is a serine protease found in the digestive system of humans and many other vertebrates, where it helps to digest food proteins. The enzyme has a very specific function — it only cleaves peptide chains at the carboxyl side of the amino acids lysine (represented by the letter K) or arginine (represented by the letter R). As a result, it is commonly used in biological research during proteomics experiments to digest proteins into peptides for mass spectrometry analysis, e.g., in-gel digestion. + Because most proteins are simply too large to be analysed using a mass spectrometer, they are usually cleaved into smaller peptides before the actual MS analysis takes place. In practice, most proteomics studies achieve such a cleavage by adding trypsin to a protein sample. Trypsin is a serine protease found in the digestive system of humans and many other vertebrates, where it helps to digest food proteins. The enzyme has a very specific function — it only cleaves peptide chains at the carboxyl side of the amino acids lysine (represented by the letter K) or arginine (represented by the letter R). As a result, it is commonly used in biological research during proteomics experiments to digest proteins into peptides for mass spectrometry analysis, e.g., in-gel digestion.

High-performance liquid chromatography (HPLC) is a chromatographic technique used to separate the components in a mixture, to identify each component, and to quantify each component. When combined with shotgun tandem mass spectrometric methods, the active proteins within a biological sample may be determined. A trypsin digest is used to cleave the proteins in a sample downstream to every K (lysine) or R (arginine), except when followed by P (proline). The individual components that result after the cleavage step are called tryptic peptides. The amino acid sequence of these tryptic peptides may then be determined by means of mass spectrometry. However, most devices have a detection limit that only allows to determine the amino acid sequence of peptides having a length between 5 and 50 amino acids (Figure 1). From a454e1e29ae7c43717a9bb627673164b8d1fe286 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Fri, 1 Jan 2016 20:43:05 +0100 Subject: [PATCH 04/15] add intersectionsize function. #550 --- .../javascripts/workers/pancore_worker.js | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/workers/pancore_worker.js b/app/assets/javascripts/workers/pancore_worker.js index 424e7d24b..5a49ee7c4 100644 --- a/app/assets/javascripts/workers/pancore_worker.js +++ b/app/assets/javascripts/workers/pancore_worker.js @@ -815,7 +815,7 @@ function getJSONByPost(url, data, callback) { } function genomeSimilarity(peptideList1, peptideList2) { - var intersect = intersection(peptideList1, peptideList2).length, + var intersect = intersectionSize(peptideList1, peptideList2), union = peptideList1.length + peptideList2.length - intersect, min = Math.min(peptideList1.length, peptideList2.length), max = Math.max(peptideList1.length, peptideList2.length), @@ -945,6 +945,23 @@ function intersection(a, b) { } return r; } +function intersectionSize(a, b) { + var size = 0, + i = 0, + j = 0; + while (i < a.length && j < b.length) { + if (a[i] < b[j]) { + i++; + } else if (a[i] > b[j]) { + j++; + } else { + size++; + i++; + j++; + } + } + return size; +} /** * Delta decodes an array of integers IN PLACE From 99427fe8929bcfd29f09b15060b33e60f5910dc4 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Sun, 24 Jan 2016 15:06:14 +0100 Subject: [PATCH 05/15] fix download data button. Closes #553 --- app/assets/javascripts/peptidome/pancore.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/assets/javascripts/peptidome/pancore.js b/app/assets/javascripts/peptidome/pancore.js index 36890ea04..9057cb35a 100644 --- a/app/assets/javascripts/peptidome/pancore.js +++ b/app/assets/javascripts/peptidome/pancore.js @@ -218,7 +218,7 @@ var constructPancore = function constructPancore(args) { $("#save-data").click(function clickSaveData() { var activeObject, tracking; - if ($(".tab-content .active").attr('id') === "pancore_graph_wrapper") { + if (getActiveTab() === "pancore_graph") { activeObject = graph; tracking = "graph"; } else { From fac9880dcd0d7798c43693719619ad4df0f9a1e9 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Sun, 24 Jan 2016 15:11:21 +0100 Subject: [PATCH 06/15] add tmp/cache dir, should fix #545 --- tmp/cache/.gitignore | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 tmp/cache/.gitignore diff --git a/tmp/cache/.gitignore b/tmp/cache/.gitignore new file mode 100644 index 000000000..86d0cb272 --- /dev/null +++ b/tmp/cache/.gitignore @@ -0,0 +1,4 @@ +# Ignore everything in this directory +* +# Except this file +!.gitignore \ No newline at end of file From 03ff966f877a358c6ed70cd7c6337ed0fd3d8bbd Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Sun, 31 Jan 2016 20:10:31 +0100 Subject: [PATCH 07/15] switch default organism to L. lactis because of A. baumannii problems --- app/assets/javascripts/peptidome/genomeSelector.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/assets/javascripts/peptidome/genomeSelector.js b/app/assets/javascripts/peptidome/genomeSelector.js index aac833a91..e6969dfaa 100644 --- a/app/assets/javascripts/peptidome/genomeSelector.js +++ b/app/assets/javascripts/peptidome/genomeSelector.js @@ -656,12 +656,12 @@ var constructGenomeSelector = function constructGenomeSelector(args) { }; /** - * Searches for all complete Acinetobacter baumannii proteomes and adds them + * Searches for all Lactococcus lactis proteomes and adds them */ that.demo = function demo() { addAll = true; $("#genomeSelectorSearch").tokenfield('setTokens', [ - {"label":"Acinetobacter baumannii","value":"taxon:470"} + {"label":"Lactococcus lactis","value":"taxon:1358"} ]); }; From 28dbd1e5ff95cbd0ca8d6ba120ca1e819beb1123 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Sun, 31 Jan 2016 20:13:41 +0100 Subject: [PATCH 08/15] bump versions --- config/application.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/application.rb b/config/application.rb index 7443b1a62..b1467b096 100644 --- a/config/application.rb +++ b/config/application.rb @@ -54,9 +54,9 @@ class Application < Rails::Application config.assets.paths << "#{Rails}/vendor/assets/fonts" config.versions = { - unipept: '3.1', + unipept: '3.1.1', gem: '1.1.0', - uniprot: '2015.12' + uniprot: '2016.01' } config.api_host = 'api.unipept.ugent.be' From e5bfab4ff190b1b84e3255e3b3cfb02e234fc84e Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Sun, 24 Jan 2016 14:13:43 +0100 Subject: [PATCH 09/15] add API publication --- app/assets/images/publications-2016.jpg | Bin 0 -> 71097 bytes app/views/pages/publications.html.erb | 28 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 app/assets/images/publications-2016.jpg diff --git a/app/assets/images/publications-2016.jpg b/app/assets/images/publications-2016.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c5b56bccaf9771fa7c56b68637d65b2e3e196dea GIT binary patch literal 71097 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

C@15lGvDUi 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 literal 0 HcmV?d00001 diff --git a/app/views/pages/publications.html.erb b/app/views/pages/publications.html.erb index be83bc882..0447ab46a 100644 --- a/app/views/pages/publications.html.erb +++ b/app/views/pages/publications.html.erb @@ -1,6 +1,34 @@

Publications

This page lists all Unipept peer-reviewed journal articles in reverse-chronological order.

+ +

The Unipept Metaproteomics Analysis Pipeline From 888f4d4c5da11c06c052aab353899657b398eab3 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Sun, 24 Jan 2016 14:18:14 +0100 Subject: [PATCH 10/15] add publication to about page --- app/views/pages/about.html.erb | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/app/views/pages/about.html.erb b/app/views/pages/about.html.erb index d1f0a90e3..5de6cef91 100644 --- a/app/views/pages/about.html.erb +++ b/app/views/pages/about.html.erb @@ -3,7 +3,7 @@

The Unipept web application supports biodiversity analysis of large and complex metaproteome samples. Its underlying index structure is designed to quickly retrieve all occurrences of a tryptic peptide in UniProt entries. Taxon-specificity of the tryptic peptide is successively derived from these occurrences using a novel lowest common ancestor approach that is robust against taxonomic misarrangements, misidentifications and inaccuracies. This application consists of four separate functionalities: the Tryptic Peptide Analysis, the Metaproteomics Analysis, the Unique Peptide Finder and the Peptidome Clustering.

-

The initial Unipept publication can be found at Unipept: tryptic peptide-based biodiversity analysis of metaproteome samples, a follow up publication can be found at The Unipept Metaproteomics Analysis Pipeline

+

The initial Unipept publication can be found at Unipept: tryptic peptide-based biodiversity analysis of metaproteome samples, a follow up publication can be found at The Unipept Metaproteomics Analysis Pipeline. The API was published as Unipept Web Services for Metaproteomics Analysis.

How to cite Unipept

@@ -13,8 +13,9 @@ If you use Unipept for your research, please cite:

From 80c8641f715c7e7d4c583e3260c714ab78615dc1 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Sun, 24 Jan 2016 14:21:28 +0100 Subject: [PATCH 11/15] show API publication in footer when on API docs --- app/views/layouts/_footer.html.erb | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/views/layouts/_footer.html.erb b/app/views/layouts/_footer.html.erb index 614ecea7a..4eb345feb 100644 --- a/app/views/layouts/_footer.html.erb +++ b/app/views/layouts/_footer.html.erb @@ -2,8 +2,13 @@ From 2924619f5c212169d9f7565ddc0b170b49803294 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Mon, 1 Feb 2016 09:48:05 +0100 Subject: [PATCH 14/15] add google scholar link --- app/views/pages/publications.html.erb | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/views/pages/publications.html.erb b/app/views/pages/publications.html.erb index bc8e209e7..28058b01b 100644 --- a/app/views/pages/publications.html.erb +++ b/app/views/pages/publications.html.erb @@ -19,6 +19,9 @@ doi:10.1093/bioinformatics/btw039 + + Google Scholar +

From 86fbe11333b4cf509ce4d145742aeccab8448992 Mon Sep 17 00:00:00 2001 From: Bart Mesuere Date: Mon, 1 Feb 2016 10:06:52 +0100 Subject: [PATCH 15/15] update readme --- README.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 654213efe..f35522893 100644 --- a/README.md +++ b/README.md @@ -32,17 +32,21 @@ We will probably use [docker](https://www.docker.io/) for this, and release a re ## Who made this app? Unipept is a research project of the computational biology group at Ghent University. If you use this application, please cite: +* Mesuere et al. (2016) Bioinformatics [doi:10.1093/bioinformatics/btw039](http://dx.doi.org/10.1093/bioinformatics/btw039) * Mesuere et al. (2015) Proteomics [doi:10.1002/pmic.201400361](http://dx.doi.org/10.1002/pmic.201400361) * Mesuere et al. (2012) J. Proteome Res. [doi:10.1021/pr300576s](http://dx.doi.org/10.1021/pr300576s) -The following people contributed to this project: +Current team: * Bart Mesuere ([@bmesuere](https://github.com/bmesuere)): PhD student and lead developer +* Felix Van der Jeugt ([@NoctuaNivalis](https://github.com/NoctuaNivalis)): PhD student and Master's student 2014-2015 * Peter Dawyndt ([@pdawyndt](https://github.com/pdawyndt)): Group leader and PhD supervisor +* Peter Vandamme: PhD co-supervisor +* Bart Devreese: PhD co-supervisor + +Other contributions from: * Tom Naessens ([@silox](https://github.com/silox)): Master's student 2014-2015 -* Felix Van der Jeugt ([@FelixVanderJeugt](https://github.com/FelixVanderJeugt)): Master's student 2014-2015 * Toon Willems ([@nudded](https://github.com/nudded)): Master's student 2013-2014 * Ewan Higgs ([@ehiggs](https://github.com/ehiggs)): Ghent University HPC team -* Peter Vandamme: PhD co-supervisor -* Bart Devreese: PhD co-supervisor + For code contributions, the [contributors graph](https://github.com/unipept/unipept/graphs/contributors) is the place to be.