From 72378f4cda9b1feb26052bbf06acd2be5fc2165b Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Tue, 7 Jul 2026 14:30:58 +0200 Subject: [PATCH 01/27] added ptmvision --- assets/images/tools/ptmvision.png | Bin 0 -> 65128 bytes tools/index.qmd | 11 ++++++++++- 2 files changed, 10 insertions(+), 1 deletion(-) create mode 100644 assets/images/tools/ptmvision.png diff --git a/assets/images/tools/ptmvision.png b/assets/images/tools/ptmvision.png new file mode 100644 index 0000000000000000000000000000000000000000..30c734e33e74e5c34f5642384b7d1655f04e2bf7 GIT binary patch literal 65128 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ÐAU?! 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 x?6W@iSe8#O-|R1iWZb=H@7a6yo>%nqe*s~u Date: Tue, 7 Jul 2026 14:31:17 +0200 Subject: [PATCH 02/27] updated sude's and tims's info --- team/index.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/team/index.qmd b/team/index.qmd index a0bac3d..57014e5 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -345,7 +345,7 @@ toc: false title: 'Tim Van Den Bossche', role: 'Postdoctoral Researcher', email: 'tim.vandenbossche@ugent.be', - about: 'Tim obtained a graduate degree in Chemistry and Biochemistry (2013), followed by a Bachelor\'s (2014) and Master\'s (2016) in Biomedical Sciences, and later a Master of Business Administration (MBA, 2022). His Master\'s thesis was carried out in the wet lab under supervision of Prof. Dr. Sven Eyckerman, but his preference for dry-lab data analysis led him to contact Prof. Lennart Martens, who offered a PhD in the group. He completed his PhD in 2022. During his PhD he worked in the field of metaproteomics, on the development of tools for metaproteomics data analysis, and on tool benchmarking in collaboration with several labs, which led him to start the CAMPI study. He also founded the Metaproteomics Initiative. Outside research, Tim likes to run, has a keen interest in policy and organisation, and enjoys going to the theatre.', + about: 'Tim obtained a graduate degree in Chemistry and Biochemistry (2013), followed by a Bachelor\'s (2014) and Master\'s (2016) in Biomedical Sciences, and later a Master of Business Administration (MBA, 2022). After his graduate\'s thesis and Master\'s thesis in the wet lab, he wanted to specialize in dry-lab data analysis which led him to contact Prof. Lennart Martens, who offered him a PhD in the group. He completed his PhD in 2022. During his PhD he worked in the field of metaproteomics, on the development of tools for metaproteomics data analysis, and on tool benchmarking in collaboration with several labs, which led him to start the CAMPI study. He also founded the Metaproteomics Initiative. Outside research, Tim likes to run, has a keen interest in policy and organisation, and enjoys going to the theatre.', currentWork: 'He is currently a postdoctoral researcher in CompOmics, continuing his research lines from his PhD. Tim has contributed to Unipept, Peptonizer2000, and several tools in the Ghent University group of Prof. Dr. Bart Mesuere.', recognition: 'He has received numerous honours, including the EuPA Vision and Commitment Award (2025), the EuPA Best Doctoral Thesis Award (2023), a finalist place in the HUPO 2023 PostDoc Competition, runner-up for the Best PhD Thesis Award at Ghent University (2023), and inclusion in the Journal of Proteome Research "Rising Stars in Proteomics and Metabolomics: 40 under 40" list (2021).', publications: [ @@ -394,7 +394,7 @@ toc: false ] }, sude: { - title: 'Sude Güneş', + title: 'Sude Gunes', role: 'Predoctoral Researcher', email: 'sude.gunes@ugent.be', about: 'Sude obtained her Bachelor\'s degree in Bioengineering at the Izmir Institute of Technology, Türkiye, in 2022, and her Master\'s degree in Polymer Science and Engineering at the same institute in 2024. During her Master\'s she focused on investigating the effect of allosteric ligand binding using molecular dynamics simulations and on the prediction of allosteric and cryptic sites. Wanting to explore protein dynamics further, she applied for the joint PhD position on PTMs and protein dynamics. In her free time, Sude loves playing the piano and exploring new places.', From e28fc645f49b5143014f2da05beee9278502e004 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Tue, 7 Jul 2026 14:44:05 +0200 Subject: [PATCH 03/27] Added Ben Birke to collaborators --- team/network.qmd | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/team/network.qmd b/team/network.qmd index 83379f7..31601e5 100644 --- a/team/network.qmd +++ b/team/network.qmd @@ -84,6 +84,10 @@ toc: false Dr. Wim Vranken VUB, Belgium +

+ Ben Binke + UGent, Belgium +

Alumni & Former Colleagues

From 75f57c0a1039ce8626a8378a619284562ccb7bfa Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Tue, 7 Jul 2026 14:44:22 +0200 Subject: [PATCH 04/27] added iDeepLC tool card --- assets/images/tools/ideeplc.png | Bin 0 -> 33539 bytes tools/index.qmd | 9 +++++++++ 2 files changed, 9 insertions(+) create mode 100644 assets/images/tools/ideeplc.png diff --git a/assets/images/tools/ideeplc.png b/assets/images/tools/ideeplc.png new file mode 100644 index 0000000000000000000000000000000000000000..138ede6140f27be5884f22f292c40e935b14498a GIT binary patch literal 33539 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 Date: Tue, 7 Jul 2026 15:09:06 +0200 Subject: [PATCH 05/27] updated spectrum --- research/index.qmd | 36 ++++++++++++++++++++++-------------- research/research.scss | 11 +++++++++++ 2 files changed, 33 insertions(+), 14 deletions(-) diff --git a/research/index.qmd b/research/index.qmd index 26e63ab..1a17465 100644 --- a/research/index.qmd +++ b/research/index.qmd @@ -16,24 +16,32 @@ toc: false align exactly under them via a five-column grid. -->
@@ -63,45 +73,40 @@ toc: false
- 01 +

Analyte prediction

-

Analyte prediction

Proteomics becomes more powerful when we can predict what a peptide should look like before it is measured. We develop machine learning models that translate peptide sequences into expected mass spectrometry behaviour, including fragment ion intensities, retention time, and ion mobility. Tools such as MS²PIP, DeepLC, and IM2Deep make these predicted signals available for practical analysis workflows. This work supports spectral library generation, targeted method design, and identification rescoring, but its broader aim is more fundamental: to make peptide behaviour computationally explicit, testable, and reusable across instruments, datasets, and experimental designs.

- 02 +

Identification

-

Identification

Peptide and protein identification is not only a database search problem; it is an ambiguity problem. A first-pass search engine proposes candidate matches, but much of the information in the data remains underused. We develop post-processing and data-driven rescoring approaches that combine search engine scores with predicted peptide behaviour, spectrum evidence, retention time, and ion mobility information. Through tools such as MS²Rescore/TIMS²Rescore combined with SearchGUI & PeptideShaker, we aim to increase confident identifications in DDA and DIA workflows while keeping false discovery control central. Our goal is to recover reliable signal without compromising statistical confidence.

- 03 +

Metaproteomics

-

Metaproteomics

Metaproteomics asks which organisms are present in a microbial community, what they are doing, and how they are doing it and importantly how confidently this can be inferred from peptide evidence. This is difficult because many peptides are shared across related taxa, while many functions are distributed across complex and unevenly characterized microbial proteomes. We develop methods for taxonomic and functional interpretation that explicitly account for this ambiguity rather than hiding it. Tools such as Unipept and peptonizer 2000 help translate peptide-level evidence into interpretable community profiles. We want to make metaproteomics scalable, transparent, and statistically grounded, from small microbiome studies to analyses spanning thousands of species.

- 04 +

FAIR data principles

-

FAIR data principles

Public proteomics data only becomes scientifically reusable when it is described in a way that both people and machines can understand. We therefore work on metadata annotation, data standards, and community-facing tools that make proteomics data findable, accessible, interoperable, and reusable. Resources such as lesSDRF and annotation workflows around public repositories help turn deposited datasets into structured research objects that can be searched, compared, reprocessed, and used for machine learning. We want to move proteomics from data availability to data usability, where public datasets can support new questions beyond the study for which they were originally generated.

- 05 +

Reprocessing

-

Reprocessing

Reprocessing brings our research lines together: peptide-property prediction improves how we model analyte behaviour, identification and rescoring software recover confident evidence from complex spectra, and FAIR annotation makes public datasets comparable at scale. We combine these developments to revisit existing proteomics data with new computational questions, extracting biological information that was not accessible in the original analysis. This includes large-scale tissue profiling, biomarker discovery, and the systematic recovery of previously missed post-translational modifications, as illustrated by Scop3PTM. Our aim is to make public proteomics data scientifically active beyond deposition, turning the vast amount of data that already exists into a continuing source of new biological insight.

diff --git a/research/research.scss b/research/research.scss index 116ed6c..d2635c4 100644 --- a/research/research.scss +++ b/research/research.scss @@ -32,8 +32,7 @@ // padding so intro + spectrum + the EXPLORE cue still fit above the fold @media (max-height: 860px) { padding-bottom: 3rem; - .research-spectrum { margin-top: 2.8rem; } - .research-spectrum svg { max-height: 340px; } + .research-spectrum { margin-top: 1.5rem; } } } @@ -106,15 +105,17 @@ // ── Signature: five research lines drawn as a five-channel mass spectrum ─────── .research-spectrum { - max-width: 68rem; // wider = larger (viewBox is short, so width governs size) - margin: 4.5rem auto 0; // always centered, nudged lower in the header + --spectrum-w: min(80vw, 700px); + width: var(--spectrum-w); + max-width: none; + margin: 3.0rem auto 0; // auto margins centre it (even when wider than column) padding: 0; svg { display: block; width: 100%; height: auto; - max-height: 440px; + aspect-ratio: 960 / 224; // fixes height to the width; never collapses overflow: visible; } @@ -127,11 +128,30 @@ .spec-axis-label { fill: $muted; font-family: $font-family-monospace; - font-size: 15px; + font-size: 12px; font-weight: 600; letter-spacing: .08em; } + // residue ladder annotation (difference arrows between successive b-ions) + .spec-annot { + line { stroke: $ink-soft; stroke-width: 1; } + polygon { fill: $ink-soft; } + } + .spec-annot-res { + fill: $ink; + font-family: $font-family-monospace; + font-size: 12px; + font-weight: 700; + text-anchor: middle; + } + .spec-annot-mz { + fill: $muted; + font-family: $font-family-monospace; + font-size: 9px; + text-anchor: middle; + } + // each accent peak grows up from the baseline on load, staggered by --i .spec-peak { rect { @@ -156,14 +176,19 @@ } } -// clickable line titles under each peak, aligned to the peaks via a 5-col grid +// clickable line titles, each pinned under its peak (peaks sit at b-ion m/z, so +// they are unevenly spaced — positioned via the inline `left` per label). On +// narrow screens this would crowd, so below 640px it falls back to an even grid. .research-spectrum-nav { - display: grid; - grid-template-columns: repeat(5, 1fr); - gap: .4rem; - margin-top: .55rem; + position: relative; + height: 3rem; + margin-top: .6rem; } .rs-line { + position: absolute; + top: 0; + transform: translateX(-50%); + width: 7rem; color: var(--accent); font-family: $font-family-sans-serif; font-size: clamp(.68rem, 1.5vw, .84rem); @@ -171,7 +196,6 @@ line-height: 1.2; text-align: center; text-decoration: none; - padding: 0 .2rem; opacity: 0; animation: research-peak-label .5s ease forwards; animation-delay: calc(.12s * var(--i) + .5s); @@ -181,6 +205,17 @@ &:focus-visible { text-decoration: underline; text-underline-offset: 3px; } } +@media (max-width: 640px) { + .research-spectrum-nav { + position: static; + display: grid; + grid-template-columns: repeat(5, 1fr); + gap: .4rem; + height: auto; + } + .rs-line { position: static; transform: none; width: auto; } +} + @keyframes research-peak-rise { to { transform: scaleY(1); } } @keyframes research-peak-label { to { opacity: 1; } } @@ -204,12 +239,13 @@ @media (max-width: 620px) { padding: 2.5rem 0; } } -// accent peak + number: this section's mark on the spectrum, left-aligned +// accent peak + title on one line: the coloured bar marks the section, sitting +// just before the heading (no number) .research-section-top { display: flex; align-items: flex-end; gap: .7rem; - margin-bottom: 1.2rem; + margin-bottom: .9rem; color: var(--accent); } @@ -236,16 +272,6 @@ // peak draws up once the section scrolls into view (class added by inline JS) .research-section.is-revealed .peak-bar { transform: scaleY(1); } -.research-num { - font-family: $font-family-monospace; - font-size: 1rem; - font-weight: 700; - letter-spacing: .14em; - color: var(--accent); - line-height: 1; - padding-bottom: .1rem; -} - // respect reduced-motion: render peaks at full height, no animation @media (prefers-reduced-motion: reduce) { .research-spectrum .spec-peak rect, @@ -267,7 +293,7 @@ line-height: 1.12; letter-spacing: -0.02em; color: $ink; - margin: 0 0 .8rem; + margin: 0; padding: 0; border: none; } From 5e625be7abd6dc5bad2283470437adc64a3b7092 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Tue, 7 Jul 2026 16:23:29 +0200 Subject: [PATCH 07/27] removed news section --- _quarto.yml | 2 -- news/index.qmd | 13 ------------- news/posts/2024-06-01-welcome.qmd | 10 ---------- research/research.scss | 2 +- 4 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 news/index.qmd delete mode 100644 news/posts/2024-06-01-welcome.qmd diff --git a/_quarto.yml b/_quarto.yml index 15a0bca..a7fabe5 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -40,8 +40,6 @@ website: href: publications/index.qmd - text: "Tutorials" href: tutorials/index.qmd - - text: "News" - href: news/index.qmd - icon: github href: https://github.com/compomics aria-label: GitHub diff --git a/news/index.qmd b/news/index.qmd deleted file mode 100644 index 73fd119..0000000 --- a/news/index.qmd +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: "News" ---- - -```{=html} - -
- -``` diff --git a/news/posts/2024-06-01-welcome.qmd b/news/posts/2024-06-01-welcome.qmd deleted file mode 100644 index 4708003..0000000 --- a/news/posts/2024-06-01-welcome.qmd +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: "Welcome to the new CompOmics website" -date: 2026-06-09 -description: "Our new website is live." -categories: [announcement] ---- - -Welcome to the new CompOmics website, built with [Quarto](https://quarto.org). - -More news and updates will follow here. diff --git a/research/research.scss b/research/research.scss index d2635c4..dcfb4e2 100644 --- a/research/research.scss +++ b/research/research.scss @@ -188,7 +188,7 @@ position: absolute; top: 0; transform: translateX(-50%); - width: 7rem; + white-space: nowrap; // keep each label on one line (e.g. "FAIR data principles") color: var(--accent); font-family: $font-family-sans-serif; font-size: clamp(.68rem, 1.5vw, .84rem); From 040c40a6533dd441076e6f6f34c027ffc1bfca6c Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Tue, 7 Jul 2026 22:54:10 +0200 Subject: [PATCH 08/27] updated section arthur --- team/index.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/team/index.qmd b/team/index.qmd index 57014e5..8883d62 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -280,9 +280,9 @@ toc: false title: 'Arthur Declercq', role: 'Postdoctoral Researcher', email: 'arthur.declercq@ugent.be', - about: 'Arthur obtained his Master\'s degree in Biomedical Sciences, with a major in Systems Biology, at Ghent University in 2021. He carried out his master thesis at CompOmics after developing a keen interest in machine learning during his studies. He then continued pursuing a PhD in our group, working on optimization of immunopeptide identification with mass spectrometry, for which he developed MS²Rescore. Outside research, Arthur enjoys photography, running, and science fiction books. He also created his own website, which can be found at arthurdeclercq.bio.', - currentWork: 'Arthur is now a postdoctoral researcher, focusing on binding affinity prediction and immunoinformatics. He is the main developer of MS²Rescore, and has contributed to MS²PIP, Mumble, psm_utils, and BAXERNA.', - recognition: 'He has received a number of honours, including the Faculty of Medicine thesis prize (2026), the PhD Innovation Café award (VOKA UGent, 2023), a second place presentation award from the French Proteomics Society, and a finalist place for the VIB Aureus Nova Scientia prize.', + about: 'Arthur\'s interest in immunology began in 2018 during an Honours Programme in life sciences, where he studied varicella zoster virus in an immunology lab. Alongside this, he developed a keen interest in machine learning over the course of his studies, and he brought the two together in his master thesis at CompOmics. He obtained his Master\'s degree in Biomedical Sciences, with a major in Systems Biology, at Ghent University in 2021, and continued in the group with a PhD on optimizing immunopeptide identification with mass spectrometry. For this work he developed MS²Rescore, reflecting his enthusiasm for building tools that the wider community can use. Outside research, Arthur enjoys photography, running, and science fiction books. More about Arthur can be found at arthurdeclercq.bio.', + currentWork: 'As a postdoctoral researcher, Arthur now focuses on binding affinity prediction and immunoinformatics, continuing the interplay between immunology and machine learning that has shaped his work. He is the main developer of MS²Rescore and has contributed to MS²PIP, Mumble, psm_utils, and BAXERNA.', + recognition: 'Arthur\'s work has been recognized with the Faculty of Medicine thesis prize (2026), the PhD Innovation Café award (VOKA UGent, 2023), a second place presentation award from the French Proteomics Society, and recently, a finalist place for the VIB Aureus Nova Scientia prize.', publications: [ { title: 'MS²Rescore: Data-Driven Rescoring Dramatically Boosts Immunopeptide Identification Rates', url: 'https://doi.org/10.1016/j.mcpro.2022.100266', venue: 'Molecular & Cellular Proteomics · 2022' }, { title: 'TIMS²Rescore: A DDA-PASEF-Optimized Data-Driven Rescoring Pipeline Based on MS²Rescore', url: 'https://doi.org/10.1021/acs.jproteome.4c00609', venue: 'Journal of Proteome Research · 2025' } From 9dffc262a2a5767e0d68a66e367a57b78437d46d Mon Sep 17 00:00:00 2001 From: Ralf Gabriels Date: Wed, 8 Jul 2026 11:46:21 +0200 Subject: [PATCH 09/27] content: update bio Ralf (#14) --- team/index.qmd | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/team/index.qmd b/team/index.qmd index 8883d62..7a5758e 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -292,9 +292,9 @@ toc: false title: 'Ralf Gabriels', role: 'Postdoctoral Researcher', email: 'ralf.gabriels@ugent.be', - about: 'Ralf obtained his Master\'s degree in Biomedical Sciences at Ghent University in 2017. In January 2018 he started his PhD under the supervision of Prof. Sven Degroeve and Prof. Lennart Martens, graduating as Doctor in Life Sciences in 2022.', - currentWork: 'He is now a postdoctoral researcher, focusing on machine learning methods in mass spectrometry-based proteomics, with an emphasis on peptide fragmentation prediction, identification rescoring, and post-translational modification analysis. He is the main developer of MS²PIP and contributed to MS²Rescore and psm_utils. Ralf is also very active in community initiatives.', - recognition: 'He is an elected representative of the European Bioinformatics Community for Mass Spectrometry (EuBIC-MS) and contributes to the HUPO Proteomics Standards Initiative (HUPO-PSI), where he recently became co-chair of the AI Readiness working group.', + about: 'Ralf is an FWO Senior Postdoctoral Research Fellow working at the intersection of proteomics, bioinformatics, and machine learning. He holds a PhD in Life Sciences from Ghent University (2022), where he developed machine learning methods for peptide identification and fragmentation prediction in mass spectrometry-based proteomics. He is the developer of several widely used open-source tools, including MS²PIP, MS²Rescore, and psm_utils, and is an active contributor to open science and community data standards in the field.', + currentWork: 'His research focuses on mapping post-translational modifications (PTMs) across the proteome using deep learning, with applications to molecular aging. He is developing graph neural network-based approaches for PTM-resolved fragmentation prediction, building on his continued development of MS²PIP and MS²Rescore. Beyond his own research, Ralf contributes to the broader computational proteomics community as co-founder and co-chair of the HUPO-PSI AI-Readiness Working Group, ontology curator for PSI-MOD, an active member of EuBIC-MS, and co-founder of ProteomicsML, an open educational platform for machine learning in proteomics.', + recognition: 'Ralf received the Bioinformatics for Mass Spectrometry Award from the European Proteomics Association (2021) and the Best Doctoral Thesis Award in Basic Sciences from the Ghent University Faculty of Medicine and Health Sciences (2023). His open-source tools have been integrated into commercial platforms by Bruker and Mascot, and his work is supported by consecutive personal FWO fellowships at the PhD, junior postdoctoral, and senior postdoctoral levels.', publications: [ { title: 'Updated MS²PIP web server supports cutting-edge proteomics applications', url: 'https://doi.org/10.1093/nar/gkad335', venue: 'Nucleic Acids Research · 2023' }, { title: 'MS²Rescore 3.0 Is a Modular, Flexible, and User-Friendly Platform to Boost Peptide Identifications, as Showcased with MS Amanda 3.0', url: 'https://doi.org/10.1021/acs.jproteome.3c00785', venue: 'Journal of Proteome Research · 2024' }, From 6995c6ab159cdb8ae29b9792dae9d60dca10db58 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Wed, 8 Jul 2026 14:15:20 +0200 Subject: [PATCH 10/27] Revise Robbin Bouwmeester's profile details Updated Robbin Bouwmeester's current work description and added a new publication. --- team/index.qmd | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/team/index.qmd b/team/index.qmd index 7a5758e..fbc3805 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -257,11 +257,11 @@ toc: false role: 'Postdoctoral Researcher', email: 'robbin.bouwmeester@ugent.be', about: 'Robbin obtained his Master\'s degree in Bioinformatics and Systems Biology at VU University Amsterdam. He joined the CompOmics group after applying for a PhD position within an Innovative Training Network (ITN). During his PhD he worked on the machine learning of lipid oxidation products and how they interact with proteins. Outside work he enjoys working on creative projects like 3D printing and crochet.', - currentWork: 'Robbin is currently a postdoctoral researcher at CompOmics. He is an expert in applying machine learning and deep learning for peptide property prediction, specifically LC retention time prediction. His research further involves DIA data analysis and benchmarking. Lastly, he fosters several industrial collaborations with Johnson & Johnson, Bruker, and Waters. Robbin is the main developer of DeepLC, and has contributed to iDeepLC, ProteoBench and CALLC (for small molecules).', + currentWork: 'Robbin is currently a postdoctoral researcher at CompOmics. He is an expert in applying machine learning and deep learning for peptide property prediction, specifically LC retention time prediction. His research further involves DIA data analysis and benchmarking. Lastly, he fosters several industrial collaborations with Johnson & Johnson, Bruker, and Waters. Robbin is one of the main persons responsible for DeepLC, iDeepLC, ProteoBench, and CALLC.', publications: [ { title: 'DeepLC can predict retention times for peptides with as-yet unseen modifications', url: 'https://doi.org/10.1038/s41592-021-01301-5', venue: 'Nature Methods · 2021' }, { title: 'Transfer learning in DeepLC improves LC retention time prediction across substantially different modifications and setups', url: 'https://doi.org/10.1038/s41467-026-68981-5', venue: 'Nature Communications · 2026' }, - { title: 'The E. coli PeptideAtlas Build: Characterizing the Observed Pan-Proteome and Its Post-Translational Modifications', url: 'https://doi.org/10.1021/acs.jproteome.5c00902', venue: 'Journal of Proteome Research · 2026' } + { title: 'Generalized Calibration Across Liquid Chromatography Setups for Generic Prediction of Small-Molecule Retention Times', url: 'https://doi.org/10.1021/acs.analchem.0c00233', venue: 'Analytical Chemistry · 2020' } ] }, tine: { From 16b7b462b3f09aadfe84b16fa0127db56947ee1e Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Wed, 8 Jul 2026 17:07:35 +0200 Subject: [PATCH 11/27] Fix recognition text formatting in index.qmd --- team/index.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/team/index.qmd b/team/index.qmd index fbc3805..446d988 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -232,7 +232,7 @@ toc: false email: 'lennart.martens@ugent.be', about: 'Lennart is Senior Full Professor of Systems Biology at Ghent University and Group Leader of the CompOmics group. He is also a Director of Research at CNRS-Université de Strasbourg in France. He has been working in mass spectrometry-related bioinformatics since his Master\'s degree. After a few years as a software developer and framework architect in industry, he returned to Ghent University to pursue a PhD in proteomics informatics, creating PRIDE at EMBL-EBI in 2003. After his PhD he rejoined EMBL-EBI as head of the PRIDE group.', currentWork: 'He moved back to Ghent University and VIB in 2009, where his research focuses on novel machine learning algorithms for mass spectrometry data analysis and their application to the large-scale orthogonal reprocessing of public proteomics data.', - recognition: 'Lennart has received numerous honours, including the Prometheus Award for Research Excellence at Ghent University (2014), the Juan Pablo Albar Proteomics Pioneer Award of the European Proteomics Association (2014), and the Prix Gutenberg in France (2023). He was elected to the Young Academy of the Belgian Royal Academy of Sciences (2013), inducted into the High Council of Medicine in Belgium (2016), inducted as Fellow of the Royal Society for Chemistry, UK (2017), and inducted as Full Member of the Sigma Xi Scientific Honor Society, USA (2022).', + recognition: 'Lennart has received numerous honours, including the Prometheus Award for Research Excellence at Ghent University (2014), the Juan Pablo Albar Proteomics Pioneer Award of the European Proteomics Association (2014), and the Prix Gutenberg in France (2023). He was elected to the Young Academy of the Belgian Royal Academy of Sciences (2013), inducted as Fellow of the Royal Society for Chemistry, UK (2017), and inducted as Full Member of the Sigma Xi Scientific Honor Society, USA (2022).', publications: [ { title: 'PRIDE: The proteomics identifications database', url: 'https://doi.org/10.1002/pmic.200401303', venue: 'Proteomics · 2005' }, { title: 'Transfer learning in DeepLC improves LC retention time prediction across substantially different modifications and setups', url: 'https://doi.org/10.1038/s41467-026-68981-5', venue: 'Nature Communications · 2026' }, From 0485664e8147fee4330af991e55c821b8696003b Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Wed, 8 Jul 2026 17:25:54 +0200 Subject: [PATCH 12/27] Revise biography for Sakina Bombaywala Updated Sakina Bombaywala's biography to reflect her PhD completion at the National Environmental Engineering Research Institute and added details about her research. --- team/index.qmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/team/index.qmd b/team/index.qmd index 446d988..41d3580 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -245,7 +245,7 @@ toc: false title: 'Sakina Bombaywala', role: 'Postdoctoral Researcher', email: 'sakina.bombaywala@ugent.be', - about: 'Sakina completed her Ph.D. in Bioinformatics from India in 2024. Her doctoral research focused on applying multi-omics approaches to understand microbiome interactions, with applications in wastewater management. Soon after, she joined the CompOmics lab, where her current work focuses on developing omics workflows for disease tracking and environmental surveillance. Outside work, she enjoys trying out different athletic sports.', + about: 'Sakina obtained her PhD at the National Environmental Engineering Research Institute in India (Academy of Scientific and Innovative Research). Her doctoral research focused on applying multi-omics approaches to understand microbiome interactions, with applications in wastewater management. Soon after, she joined the CompOmics lab, where her current work focuses on developing omics workflows for disease tracking and environmental surveillance. Outside work, she enjoys trying out different athletic sports.', currentWork: 'Sakina works across whole-genome sequencing, metagenomics, RNA-seq, variant calling, and phylogenetic analysis. She develops scalable, reproducible bioinformatics solutions that support disease tracking and environmental surveillance. In addition to data analysis, she contributes to bioinformatics training for researchers, laboratory technicians, and clinicians within international collaborations.', publications: [ { title: 'Meta-analysis of wastewater microbiome for antibiotic resistance profiling', url: 'https://doi.org/10.1016/j.mimet.2024.106953', venue: 'Journal of Microbiological Methods · 2024' }, From 36399ad7da13682b93960456435a70aebdeb9fb2 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Thu, 9 Jul 2026 10:58:55 +0200 Subject: [PATCH 13/27] added psi-ai community card --- tools/index.qmd | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/index.qmd b/tools/index.qmd index 1b33655..373e794 100644 --- a/tools/index.qmd +++ b/tools/index.qmd @@ -310,6 +310,15 @@ toc: false paper: 'https://doi.org/10.1021/acs.jproteome.5c00435', }, devs: ['tim','ralf'] + }, + { + name: 'PSI-AI', cat: 'community', icon: 'bi-filetype-ai', + desc: 'Working group making proteomics data AI-ready and standardizing the use of AI in data analysis workflows.', + note: 'A HUPO-PSI community initiative.', + links: { + web: 'https://psi-ai.org/', + }, + devs: ['ralf', 'tine', 'hari'] } ]; From 6a644a89c068288915897e06a45a3484a8f84264 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Thu, 9 Jul 2026 11:48:14 +0200 Subject: [PATCH 14/27] updated with old tutorials on peptideshaker and searchgui (added todo to update) --- TODO.md | 7 +- ...26-06-01-bioinformatics-for-proteomics.qmd | 120 ++++++++++++++++++ 2 files changed, 126 insertions(+), 1 deletion(-) create mode 100644 tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd diff --git a/TODO.md b/TODO.md index 8de21a8..cf776b6 100644 --- a/TODO.md +++ b/TODO.md @@ -16,9 +16,14 @@ - [x] Website deployment issue to have a python environment (Arthur) - [x] Unify the overall view of each separate part of the website. + ## Deploy to www.compomics.com (after site checked) - [] Add root `CNAME` file containing `www.compomics.com` + list it under project resources in `_quarto.yml` - [] Set `site-url: https://www.compomics.com` in `_quarto.yml` - [] GitHub repo Settings → Pages: set custom domain `www.compomics.com`, then enable Enforce HTTPS - [] DNS at registrar: `www` CNAME → `compomics.github.io`; apex `compomics.com` → GitHub Pages A records (185.199.108-111.153) -- [] Flip DNS last (cuts over from old site, no fast rollback) \ No newline at end of file +- [] Flip DNS last (cuts over from old site, no fast rollback) + +## Todo after deployment + +- [] Modernise the classic "Bioinformatics for Proteomics" tutorial (`tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd`). Ported as-is with 2014-era materials linked from Google Drive; deprecation warning kept in place until done. TODO: replace deprecated PRIDE XML with mzIdentML/mzTab (needs editing the module 3 slide decks, not just the page text); refresh slides/screenshots to current tool UIs; rehost slides + exercise resources off Google Drive; decide combined page vs per-module split; optionally write the missing MS1 (4.3) and targeted (4.4) quantification sections; update the functional-analysis module (module 2 pins no tools). Tool versions already bumped (PeptideShaker 3.0.11, SearchGUI 4.3.15). (Arthur) \ No newline at end of file diff --git a/tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd b/tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd new file mode 100644 index 0000000..aa485b6 --- /dev/null +++ b/tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd @@ -0,0 +1,120 @@ +--- +title: "Bioinformatics for Proteomics (classic course)" +date: 2026-06-01 +description: "The original hands-on CompOmics course on mass spectrometry-based proteomics data analysis: identification, functional analysis, data sharing, and quantification. Slides and exercise resources included. A modernised version is in preparation." +categories: [proteomics, course, identification, quantification, data-sharing, searchgui, peptideshaker] +--- + +This is the classic **Bioinformatics for Proteomics** course, a hands-on introduction to mass spectrometry-based proteomics data analysis. It is organised into four modules covering peptide and protein identification, functional analysis, data sharing through public repositories, and quantification. + +::: {.callout-note} +This page preserves the original course materials. Some tools, formats, and versions reflect the state of the field when the course was written and are now partly outdated (for example, PRIDE XML has been superseded by mzIdentML and mzTab). A modernised version is in preparation. Materials are shared under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/). If you use them, please cite [Vaudel et al. (2014), PMID 24678044](https://www.ncbi.nlm.nih.gov/pubmed/24678044). +::: + +**General resources** + +- [Questions and answers document](https://drive.google.com/file/d/0B4sW8rLWPbRyV1ZnaVZoaHktWlE/view?usp=sharing&resourcekey=0-nv0BLwLDq5qO-6YOgK49Ag) +- [Feedback form](https://docs.google.com/forms/d/1BQfRAZ1L4Szn_vsMaICiYyu84sKjXU8xQXFmwXg_oOI/viewform) + +## 1. Identification + +Complete workflow for peptide and protein identification from mass spectrometry data: raw data conversion, spectrum processing, database preparation, peptide-spectrum matching, peptide and protein inference, validation, PTM analysis, and de novo sequencing. + +**1.1 Database generation** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyUGxQdmw3cGNUSTQ/view?usp=sharing&resourcekey=0-VIMx1s6vmKRwMOBkOlS6Ng) + +**1.2 Peak list generation** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyYTJBZVZkZFFuSUE/view?usp=sharing&resourcekey=0-lctIbpXK4PN2uxwK7g13HQ) +- [Exercise resources](https://drive.google.com/file/d/1xhfAreX_PJzKscyLAuMfqYEJNZFkeAfP/view?usp=sharing) +- Tool: [ProteoWizard](http://proteowizard.sourceforge.net/) + +**1.3 Peptide to spectrum matching** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyaDBXMDVXOWVaUkk/view?usp=sharing&resourcekey=0-4jJ7-2kjLBDci1eBytMO1A) +- [Exercise resources](https://drive.google.com/file/d/1q-1Wc865DZK8YQwGAXclTLFy8rBov2NJ/view?usp=sharing) +- Tool: [SearchGUI](http://compomics.github.io/projects/searchgui.html) + +**1.4 Browsing identification results** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyUm5tdFRObTJSaEE/view?usp=sharing&resourcekey=0-NgNbCuD5h8MAoJy79cJk7w) +- [Exercise resources](https://drive.google.com/file/d/1cfatBwiQkchnKKsBvAfQ0BvfhgMBHnhA/view?usp=sharing) +- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) + +**1.5 Peptide and protein validation** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyUU9ycjFScmlaZjA/view?usp=sharing&resourcekey=0-LLHCRH0CUf9Xzx7BlITSPQ) +- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) + +**1.6 PTM analysis** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRybHZXeVBvNXB1Tkk/view?usp=sharing&resourcekey=0-C4_nR2G5vhwRpESsONlFMQ) +- [Exercise resources](https://drive.google.com/file/d/1j-6zj_g5jZFT8ywrYYsN8zuS4x4lXMYS/view?usp=sharing) +- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) ([download 3.0.11](https://genesis.ugent.be/maven2/eu/isas/peptideshaker/PeptideShaker/3.0.11/PeptideShaker-3.0.11.zip)) + +**1.7 De novo peptide identification** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRySWhqTGUtS1hVRGs/view?usp=sharing&resourcekey=0-Hplewb7eyWoIgCK5kzKvfw) +- [Exercise resources](https://drive.google.com/file/d/1L0Se_afHDL0G8AbAq9KOJQrr-aQX9gUn/view?usp=sharing) +- Tool: [DeNovoGUI](http://compomics.github.io/projects/denovogui.html) + +## 2. Functional analysis + +Extracting biological meaning from identification results: retrieving additional protein information, pathway analysis, 3D structure visualisation, and Gene Ontology annotation. + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRybzZKMHJxR04tVkU/view?usp=sharing&resourcekey=0--IhNfNOJsvEHBAEhGPzX0A) +- [Exercise resources](https://drive.google.com/file/d/12V_5RpVdpXODrLxPR2eT89LJvcZF34r5/view?usp=sharing) + +## 3. Data sharing + +Submission and reuse of proteomics data through community repositories: converting results to standard formats, submitting to PRIDE and ProteomeXchange, browsing published datasets, and reprocessing existing data. + +::: {.callout-note} +The slides in this module refer to PRIDE XML, which has since been deprecated. Current submissions use [mzIdentML](https://www.psidev.info/mzidentml) and [mzTab](https://www.psidev.info/mztab); the overall submission workflow through PRIDE and ProteomeXchange is otherwise unchanged. +::: + +**3.0 Introduction** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyb3BHYWtud2tCTkE/view?usp=sharing&resourcekey=0-LKTuwWEKerk6fh62BXTonA) + +**3.1 Submit** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyeW80cHptYnhxSmc/view?usp=sharing&resourcekey=0-twqVpJPMU2_Z19tHpf9QGQ) +- [Exercise resources](https://drive.google.com/file/d/1AxIcN_uP7UONJFYrserKxma6tOPO-kk5/view?usp=sharing) + +**3.2 Browse** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRydkxfTEJJSDNDeG8/view?usp=sharing&resourcekey=0-fnyQy8iK8H4BC5JOwP-JJw) +- [Exercise resources](https://drive.google.com/file/d/1ncT57QBr6Z4vMSRHFsgPLAA1S04S4f1L/view?usp=sharing) + +**3.3 Reprocess** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRydjFLSHR2UUZXbWM/view?usp=sharing&resourcekey=0-RA3FRAGW1f3LDlxmiulJZQ) + +**Repositories and tools:** [ProteomeXchange](http://www.proteomexchange.org/), [PRIDE](http://www.ebi.ac.uk/pride), [PRIDE Inspector](https://github.com/PRIDE-Toolsuite/pride-inspector) + +## 4. Quantification + +Protein abundance estimation across several orders of magnitude in concentration, covering the main quantification strategies and their trade-offs. + +**4.0 Introduction** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyRkw3dzRaRWkzSGc/view?usp=sharing&resourcekey=0-LuG7ussiMG8NsPcwJfY-xw) + +**4.1 Spectrum counting** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyYXJLTDZxd3IyTTA/view?usp=sharing&resourcekey=0-m-E3assyzNcxDq6J2BO5Dw) +- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) + +**4.2 Reporter ions** + +- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyZ3RBZHBpcm5jWnc/view?usp=sharing&resourcekey=0-SfjWCN2oh3tlKauVAh-Hgg) +- [Exercise resources](https://drive.google.com/file/d/1ld991SYLJJZisOdQEaSCsTtop-_oKywO/view?usp=sharing) +- Tools: [SearchGUI](http://compomics.github.io/projects/searchgui.html), [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html), [Reporter](http://compomics.github.io/projects/reporter.html) + +**4.5 Statistical analysis** + +- [Slides](https://drive.google.com/file/d/0B4hBxjyTLNhiM0xaR3Q2MklHdUk/view?usp=sharing&resourcekey=0-2Xj8wosJgwTAojqsPIhLIg) +- [Exercise resources](https://drive.google.com/file/d/1KUTY4mMVd74YrNrpIjlf8kAYr8crTTzu/view?usp=sharing) +- Tool: [Perseus](http://coxdocs.org/doku.php?id=perseus:start) From 7664e558c0a501934fc6a5e303df2212bf92b0b3 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Thu, 9 Jul 2026 11:52:57 +0200 Subject: [PATCH 15/27] updated jasper and adde tool webserver links --- team/index.qmd | 6 ++++-- tools/index.qmd | 7 ++++++- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/team/index.qmd b/team/index.qmd index 41d3580..0e2cc4d 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -497,11 +497,13 @@ toc: false title: 'Jasper Zuallaert', role: 'Staff Scientist', email: 'jasper.zuallaert@vib-ugent.be>', - about: 'Jasper obtained his Bachelor\'s degree in Informatics at Ghent University and his Master\'s degree in Civil Engineering (Computer Science) at Ghent University in 2014. He went on to complete a PhD in Engineering (Computer Science) at Ghent University, based at the Global Campus in Korea. He met Prof. Dr. Nico Callewaert in South Korea, where, after explaining his research and starting to play around with his data, they began collaborating. When he finished his PhD, he took up a postdoc with Prof. Sven Degroeve and Prof. Dr. Nico Callewaert. During his PhD and postdoc he worked on splice site prediction, transferring emerging deep learning architectures to biological use cases, and later moved on to protein sequences and secretability. Most of all, Jasper likes to be away from all computers, out in forests and mountains, with his GPS unit and cameras.', + about: 'Jasper obtained his Bachelor\'s degree in Informatics at Ghent University and his Master\'s degree in Civil Engineering (Computer Science) at Ghent University in 2014. He went on to complete a PhD in Engineering (Computer Science) at Ghent University, based at the Global Campus in Korea. He met Prof. Dr. Nico Callewaert in South Korea, where the seed for a fruitful collaboration was first planted. After finishing his PhD, he joined VIB-CMB for a postdoc with Prof. Sven Degroeve and Prof. Dr. Nico Callewaert. During his PhD and postdoc he worked on DNA sequence pattern recognition with deep learning (splice site and translation initiation site prediction), later moving on to protein sequences and structure. Remarkably, in his free time Jasper actually likes to be as far away as possible from all computers (except for maybe his GPS unit and cameras), out in the forests and mountains.', currentWork: 'Jasper is currently a VIB-CMB centre-wide staff scientist working on protein structure prediction and design, and beyond.', publications: [ { title: 'Assessing the relation between protein phosphorylation, AlphaFold3 models, and conformational variability', url: 'https://doi.org/10.1002/pro.70376', venue: 'Protein Science · 2026' }, - { title: 'Ultrapotent SARS coronavirus-neutralizing single-domain antibodies that clamp the spike at its base', url: 'https://doi.org/10.1038/s41467-025-60250-1', venue: 'Nature Communications · 2025' } + { title: 'Ultrapotent SARS coronavirus-neutralizing single-domain antibodies that clamp the spike at its base', url: 'https://doi.org/10.1038/s41467-025-60250-1', venue: 'Nature Communications · 2025' }, + { title:'Massively parallel interrogation of protein fragment secretability using SECRiFY reveals features influencing secretory system transit', url: 'https://doi.org/10.1038/s41467-021-26720-y', venue: 'Nature Communications · 2021' } + { title:'SpliceRover: interpretable convolutional neural networks for improved splice site prediction', url: 'https://doi.org/10.1093/bioinformatics/bty497', venue: 'Bioinformatics · 2018' } ] } }; diff --git a/tools/index.qmd b/tools/index.qmd index 373e794..c4e43af 100644 --- a/tools/index.qmd +++ b/tools/index.qmd @@ -203,6 +203,7 @@ toc: false desc: 'Comprehensive resource of human phosphosites mapped within their full structural context.', links: { github: 'https://github.com/compomics', + web: 'https://iomics.ugent.be/scop3p/', paper: 'https://doi.org/10.1021/acs.jproteome.0c00306', }, devs: ['pathmanaban', 'natalia'] @@ -210,7 +211,10 @@ toc: false { name: 'Scop3PTM', cat: 'biological', icon: 'bi-diagram-3-fill', logo: 'scop3ptm.png', desc: 'Maps post-translational modifications onto protein structures for contextual, structure-aware analysis.', - links: { github: 'https://github.com/compomics' }, + links: { + github: 'https://github.com/compomics', + web: 'https://iomics.ugent.be/scop3ptm', + }, devs: ['pathmanaban', 'natalia'] }, { @@ -218,6 +222,7 @@ toc: false desc: 'Machine-learning framework for tissue inference and biomarker discovery from proteomes.', links: { github: 'https://github.com/compomics', + web: 'https://mlmarker.streamlit.app/', paper: 'https://doi.org/10.1101/2025.06.10.658642', }, devs: ['tine'] From 50d2da1dc7be31477d9ff584411e738bff6709f2 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Thu, 9 Jul 2026 14:43:59 +0200 Subject: [PATCH 16/27] tutorial layout updates --- ...26-06-01-bioinformatics-for-proteomics.qmd | 368 ++++++++++++------ tutorials/tutorials.scss | 214 ++++++++++ 2 files changed, 468 insertions(+), 114 deletions(-) diff --git a/tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd b/tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd index aa485b6..937b33b 100644 --- a/tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd +++ b/tutorials/posts/2026-06-01-bioinformatics-for-proteomics.qmd @@ -1,120 +1,260 @@ --- -title: "Bioinformatics for Proteomics (classic course)" +title: "Bioinformatics for Proteomics" date: 2026-06-01 description: "The original hands-on CompOmics course on mass spectrometry-based proteomics data analysis: identification, functional analysis, data sharing, and quantification. Slides and exercise resources included. A modernised version is in preparation." categories: [proteomics, course, identification, quantification, data-sharing, searchgui, peptideshaker] --- -This is the classic **Bioinformatics for Proteomics** course, a hands-on introduction to mass spectrometry-based proteomics data analysis. It is organised into four modules covering peptide and protein identification, functional analysis, data sharing through public repositories, and quantification. - -::: {.callout-note} -This page preserves the original course materials. Some tools, formats, and versions reflect the state of the field when the course was written and are now partly outdated (for example, PRIDE XML has been superseded by mzIdentML and mzTab). A modernised version is in preparation. Materials are shared under a [Creative Commons Attribution-ShareAlike 4.0 International License](https://creativecommons.org/licenses/by-sa/4.0/). If you use them, please cite [Vaudel et al. (2014), PMID 24678044](https://www.ncbi.nlm.nih.gov/pubmed/24678044). -::: - -**General resources** - -- [Questions and answers document](https://drive.google.com/file/d/0B4sW8rLWPbRyV1ZnaVZoaHktWlE/view?usp=sharing&resourcekey=0-nv0BLwLDq5qO-6YOgK49Ag) -- [Feedback form](https://docs.google.com/forms/d/1BQfRAZ1L4Szn_vsMaICiYyu84sKjXU8xQXFmwXg_oOI/viewform) - -## 1. Identification - -Complete workflow for peptide and protein identification from mass spectrometry data: raw data conversion, spectrum processing, database preparation, peptide-spectrum matching, peptide and protein inference, validation, PTM analysis, and de novo sequencing. - -**1.1 Database generation** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyUGxQdmw3cGNUSTQ/view?usp=sharing&resourcekey=0-VIMx1s6vmKRwMOBkOlS6Ng) - -**1.2 Peak list generation** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyYTJBZVZkZFFuSUE/view?usp=sharing&resourcekey=0-lctIbpXK4PN2uxwK7g13HQ) -- [Exercise resources](https://drive.google.com/file/d/1xhfAreX_PJzKscyLAuMfqYEJNZFkeAfP/view?usp=sharing) -- Tool: [ProteoWizard](http://proteowizard.sourceforge.net/) - -**1.3 Peptide to spectrum matching** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyaDBXMDVXOWVaUkk/view?usp=sharing&resourcekey=0-4jJ7-2kjLBDci1eBytMO1A) -- [Exercise resources](https://drive.google.com/file/d/1q-1Wc865DZK8YQwGAXclTLFy8rBov2NJ/view?usp=sharing) -- Tool: [SearchGUI](http://compomics.github.io/projects/searchgui.html) - -**1.4 Browsing identification results** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyUm5tdFRObTJSaEE/view?usp=sharing&resourcekey=0-NgNbCuD5h8MAoJy79cJk7w) -- [Exercise resources](https://drive.google.com/file/d/1cfatBwiQkchnKKsBvAfQ0BvfhgMBHnhA/view?usp=sharing) -- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) - -**1.5 Peptide and protein validation** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyUU9ycjFScmlaZjA/view?usp=sharing&resourcekey=0-LLHCRH0CUf9Xzx7BlITSPQ) -- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) - -**1.6 PTM analysis** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRybHZXeVBvNXB1Tkk/view?usp=sharing&resourcekey=0-C4_nR2G5vhwRpESsONlFMQ) -- [Exercise resources](https://drive.google.com/file/d/1j-6zj_g5jZFT8ywrYYsN8zuS4x4lXMYS/view?usp=sharing) -- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) ([download 3.0.11](https://genesis.ugent.be/maven2/eu/isas/peptideshaker/PeptideShaker/3.0.11/PeptideShaker-3.0.11.zip)) - -**1.7 De novo peptide identification** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRySWhqTGUtS1hVRGs/view?usp=sharing&resourcekey=0-Hplewb7eyWoIgCK5kzKvfw) -- [Exercise resources](https://drive.google.com/file/d/1L0Se_afHDL0G8AbAq9KOJQrr-aQX9gUn/view?usp=sharing) -- Tool: [DeNovoGUI](http://compomics.github.io/projects/denovogui.html) - -## 2. Functional analysis - -Extracting biological meaning from identification results: retrieving additional protein information, pathway analysis, 3D structure visualisation, and Gene Ontology annotation. - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRybzZKMHJxR04tVkU/view?usp=sharing&resourcekey=0--IhNfNOJsvEHBAEhGPzX0A) -- [Exercise resources](https://drive.google.com/file/d/12V_5RpVdpXODrLxPR2eT89LJvcZF34r5/view?usp=sharing) - -## 3. Data sharing - -Submission and reuse of proteomics data through community repositories: converting results to standard formats, submitting to PRIDE and ProteomeXchange, browsing published datasets, and reprocessing existing data. - -::: {.callout-note} -The slides in this module refer to PRIDE XML, which has since been deprecated. Current submissions use [mzIdentML](https://www.psidev.info/mzidentml) and [mzTab](https://www.psidev.info/mztab); the overall submission workflow through PRIDE and ProteomeXchange is otherwise unchanged. -::: - -**3.0 Introduction** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyb3BHYWtud2tCTkE/view?usp=sharing&resourcekey=0-LKTuwWEKerk6fh62BXTonA) - -**3.1 Submit** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyeW80cHptYnhxSmc/view?usp=sharing&resourcekey=0-twqVpJPMU2_Z19tHpf9QGQ) -- [Exercise resources](https://drive.google.com/file/d/1AxIcN_uP7UONJFYrserKxma6tOPO-kk5/view?usp=sharing) - -**3.2 Browse** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRydkxfTEJJSDNDeG8/view?usp=sharing&resourcekey=0-fnyQy8iK8H4BC5JOwP-JJw) -- [Exercise resources](https://drive.google.com/file/d/1ncT57QBr6Z4vMSRHFsgPLAA1S04S4f1L/view?usp=sharing) - -**3.3 Reprocess** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRydjFLSHR2UUZXbWM/view?usp=sharing&resourcekey=0-RA3FRAGW1f3LDlxmiulJZQ) - -**Repositories and tools:** [ProteomeXchange](http://www.proteomexchange.org/), [PRIDE](http://www.ebi.ac.uk/pride), [PRIDE Inspector](https://github.com/PRIDE-Toolsuite/pride-inspector) - -## 4. Quantification - -Protein abundance estimation across several orders of magnitude in concentration, covering the main quantification strategies and their trade-offs. - -**4.0 Introduction** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyRkw3dzRaRWkzSGc/view?usp=sharing&resourcekey=0-LuG7ussiMG8NsPcwJfY-xw) - -**4.1 Spectrum counting** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyYXJLTDZxd3IyTTA/view?usp=sharing&resourcekey=0-m-E3assyzNcxDq6J2BO5Dw) -- Tool: [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html) - -**4.2 Reporter ions** - -- [Slides](https://drive.google.com/file/d/0B4sW8rLWPbRyZ3RBZHBpcm5jWnc/view?usp=sharing&resourcekey=0-SfjWCN2oh3tlKauVAh-Hgg) -- [Exercise resources](https://drive.google.com/file/d/1ld991SYLJJZisOdQEaSCsTtop-_oKywO/view?usp=sharing) -- Tools: [SearchGUI](http://compomics.github.io/projects/searchgui.html), [PeptideShaker](http://compomics.github.io/projects/peptide-shaker.html), [Reporter](http://compomics.github.io/projects/reporter.html) - -**4.5 Statistical analysis** - -- [Slides](https://drive.google.com/file/d/0B4hBxjyTLNhiM0xaR3Q2MklHdUk/view?usp=sharing&resourcekey=0-2Xj8wosJgwTAojqsPIhLIg) -- [Exercise resources](https://drive.google.com/file/d/1KUTY4mMVd74YrNrpIjlf8kAYr8crTTzu/view?usp=sharing) -- Tool: [Perseus](http://coxdocs.org/doku.php?id=perseus:start) +```{=html} +
+ +

The classic Bioinformatics for Proteomics course: a hands-on walk through a full mass spectrometry data-analysis pipeline, from a raw spectrum file to a shared, quantified result. Work through the four modules in order, or jump to the step you need.

+ +
+ +
+

Archived materials. This page preserves the original course. Some tools, formats, and versions reflect the field as it was when the course was written and are now partly outdated (for example, PRIDE XML has been superseded by mzIdentML and mzTab). A modernised version is in preparation.

+

Shared under a CC BY-SA 4.0 licence. Please cite Vaudel et al. (2014).

+
+
+ +
+ Course-wide + +
+ + +
+
+ 1 +
+ Module +

Identification

+

The full path from a raw file to validated peptides and proteins: format conversion, spectrum processing, database preparation, peptide-spectrum matching, inference, validation, PTM analysis, and de novo sequencing.

+
+
+
    +
  1. + 1.1 +
    +

    Database generation

    + +
    +
  2. +
  3. + 1.2 +
    +

    Peak list generation

    + +
    +
  4. +
  5. + 1.3 +
    +

    Peptide to spectrum matching

    + +
    +
  6. +
  7. + 1.4 +
    +

    Browsing identification results

    + +
    +
  8. +
  9. + 1.5 +
    +

    Peptide and protein validation

    + +
    +
  10. +
  11. + 1.6 + +
  12. +
  13. + 1.7 +
    +

    De novo peptide identification

    + +
    +
  14. +
+
+ + +
+
+ 2 +
+ Module +

Functional analysis

+

Turning an identification list into biology: retrieving protein information, pathway analysis, 3D structure visualisation, and Gene Ontology annotation.

+
+
+ +
+ + +
+
+ 3 +
+ Module +

Data sharing

+

Submitting and reusing data through community repositories: converting results to standard formats, submitting to PRIDE and ProteomeXchange, browsing published datasets, and reprocessing.

+
+
+
+ +
+

These course notes use PRIDE XML, now deprecated. Current submissions use mzIdentML and mzTab; the submission workflow through PRIDE and ProteomeXchange is otherwise unchanged.

+
+
+
    +
  1. + 3.0 +
    +

    Introduction

    + +
    +
  2. +
  3. + 3.1 +
    +

    Submit

    + +
    +
  4. +
  5. + 3.2 +
    +

    Browse

    + +
    +
  6. +
  7. + 3.3 +
    +

    Reprocess

    + +
    +
  8. +
+ +
+ + +
+
+ 4 +
+ Module +

Quantification

+

Estimating protein abundance across several orders of magnitude, covering the main quantification strategies and their trade-offs.

+
+
+
    +
  1. + 4.0 +
    +

    Introduction

    + +
    +
  2. +
  3. + 4.1 +
    +

    Spectrum counting

    + +
    +
  4. +
  5. + 4.2 +
    +

    Reporter ions

    + +
    +
  6. +
  7. + 4.5 +
    +

    Statistical analysis

    + +
    +
  8. +
+
+ +
+``` diff --git a/tutorials/tutorials.scss b/tutorials/tutorials.scss index 731bdc7..670ebe6 100644 --- a/tutorials/tutorials.scss +++ b/tutorials/tutorials.scss @@ -41,3 +41,217 @@ max-width: 62ch; margin: 0; } + +// ── "Bioinformatics for Proteomics" course page ────────────────────────────── +// A numbered lab-manual layout: each module is a chapter, each step hangs off a +// left rail (the workflow is a real sequence, so the numbering carries meaning). +// Resources are type-coded chips — blue for materials, red for external tools. +// Scoped under .bfp so nothing leaks to other posts. +.bfp { + --bfp-rail: 3rem; // width of the number column + --bfp-gap: 1.4rem; // rail-to-content gap + max-width: 46rem; + + .bfp-lead { + font-family: $font-family-sans-serif; + font-size: 1.16rem; + line-height: 1.6; + color: $ink; + max-width: 40rem; + margin: 0.25rem 0 1.6rem; + } + + // ── Notes (archived banner + inline deprecation) ────────────────────────── + .bfp-note { + display: flex; + gap: 0.8rem; + padding: 0.9rem 1.1rem; + background: $cream-2; + border: 1px solid $line; + border-left: 3px solid $primary; + border-radius: 0 0.4rem 0.4rem 0; + margin: 1.5rem 0; + + > i { + flex-shrink: 0; + color: $primary; + font-size: 1.15rem; + margin-top: 0.1rem; + } + + p { + margin: 0; + font-family: $font-family-sans-serif; + font-size: 0.93rem; + line-height: 1.6; + color: $ink-soft; + } + p + p { margin-top: 0.4rem; } + strong { color: $ink; font-weight: 700; } + + .bfp-note-meta { color: $muted; font-size: 0.85rem; } + } + + .bfp-note--inline { + border-left-color: $secondary; + margin: 0 0 1.5rem; + > i { color: $secondary; } + } + + // ── Course-wide / related resource rows ─────────────────────────────────── + .bfp-general { margin: 1.5rem 0 2rem; } + .bfp-related { margin-top: 1.3rem; padding-left: calc(var(--bfp-rail) + var(--bfp-gap)); } + .bfp-loose { padding-left: calc(var(--bfp-rail) + var(--bfp-gap)); } + + .bfp-general-label, + .bfp-related-label { + display: block; + font-family: $font-family-monospace; + font-size: 0.68rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.16em; + color: $muted; + margin-bottom: 0.55rem; + } + + // ── Module (chapter) ────────────────────────────────────────────────────── + .bfp-module { margin-top: 3.2rem; } + + .bfp-module-head { + display: grid; + grid-template-columns: var(--bfp-rail) 1fr; + column-gap: var(--bfp-gap); + align-items: start; + margin-bottom: 1.3rem; + } + + .bfp-module-num { + font-family: $font-family-heading; + font-weight: 800; + font-size: 2.3rem; + line-height: 1; + color: $primary; + text-align: right; + letter-spacing: -0.02em; + } + + .bfp-eyebrow { + display: block; + font-family: $font-family-monospace; + font-size: 0.68rem; + font-weight: 700; + text-transform: uppercase; + letter-spacing: 0.16em; + color: $muted; + margin-bottom: 0.25rem; + } + + .bfp-module-title { + font-family: $font-family-heading; + font-size: 1.7rem; + font-weight: 800; + color: $ink; + line-height: 1.1; + margin: 0 0 0.4rem; + padding: 0; + border: none; + } + + .bfp-module-desc { + font-family: $font-family-sans-serif; + font-size: 0.96rem; + line-height: 1.6; + color: $ink-soft; + margin: 0; + max-width: 38rem; + } + + // ── Steps hanging off the rail ──────────────────────────────────────────── + .bfp-steps { + list-style: none; + margin: 0; + padding: 0; + } + + .bfp-step { + display: grid; + grid-template-columns: var(--bfp-rail) 1fr; + column-gap: var(--bfp-gap); + } + + .bfp-step-num { + font-family: $font-family-monospace; + font-size: 0.9rem; + font-weight: 700; + color: $primary; + text-align: right; + padding-top: 0.15rem; + } + + .bfp-step-body { + border-left: 2px solid darken($line, 22%); // stacked borders form the continuous rail + padding: 0 0 1.35rem var(--bfp-gap); + } + .bfp-step:last-child .bfp-step-body { padding-bottom: 0.35rem; } + + .bfp-step-title { + font-family: $font-family-heading; + font-size: 1.04rem; + font-weight: 700; + color: $ink; + line-height: 1.25; + margin: 0 0 0.5rem; + padding: 0; + border: none; + } + + // ── Resource chips ──────────────────────────────────────────────────────── + .bfp-links { + display: flex; + flex-wrap: wrap; + gap: 0.4rem; + } + + .bfp-link { + display: inline-flex; + align-items: center; + gap: 0.4rem; + padding: 0.3rem 0.7rem; + font-family: $font-family-sans-serif; + font-size: 0.8rem; + font-weight: 600; + line-height: 1; + color: $ink-soft; + background: $cream-2; + border: 1px solid $line; + border-radius: 0.4rem; + text-decoration: none; + transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease; + + i { font-size: 0.9rem; color: $primary; } + + &:hover { + border-color: $primary; + color: $primary; + background: $surface-hover; + text-decoration: none; + } + } + + // external software gets the red accent, so tools read differently from materials + .bfp-link--tool { + i { color: $secondary; } + &:hover { border-color: $secondary; color: $secondary; } + } + + // ── Narrow screens: shrink the rail, keep the spine ─────────────────────── + @media (max-width: 560px) { + --bfp-rail: 2.2rem; + --bfp-gap: 0.9rem; + + .bfp-module-num { font-size: 1.9rem; } + .bfp-module-title { font-size: 1.45rem; } + .bfp-step-num { font-size: 0.82rem; } + } +} From 52911dfd6bc3d2f001c3713cdacd227483eb18fe Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Thu, 9 Jul 2026 15:35:11 +0200 Subject: [PATCH 17/27] js script to prevent silent fail in building team cards --- scripts/check-team-data.js | 91 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 scripts/check-team-data.js diff --git a/scripts/check-team-data.js b/scripts/check-team-data.js new file mode 100644 index 0000000..373bc5f --- /dev/null +++ b/scripts/check-team-data.js @@ -0,0 +1,91 @@ +// Quarto pre-render guard for the team page. +// +// The team cards are wired up by one big inline ``` diff --git a/tools/index.qmd b/tools/index.qmd index c4e43af..71c4cc6 100644 --- a/tools/index.qmd +++ b/tools/index.qmd @@ -402,12 +402,15 @@ toc: false } html += '
'; - // devs (own row, above the links) + // devs (own row, above the links) — each avatar links to that person's team entry if (tool.devs && tool.devs.length) { - html += '
'; + html += '
'; tool.devs.slice(0, 4).forEach(function (key) { - html += ''; + const devName = key.charAt(0).toUpperCase() + key.slice(1); + html += '' + + '' + esc(devName) + '' + + ''; }); html += '
'; } diff --git a/tools/tools.scss b/tools/tools.scss index 608dfb8..9a5fb38 100644 --- a/tools/tools.scss +++ b/tools/tools.scss @@ -362,7 +362,29 @@ $cat-community: #4f9d6b; // green (community projects) align-self: flex-start; // avatars hug the left, don't stretch } +.tool-tile-dev-link { + display: block; + line-height: 0; + border-radius: 50%; + transition: transform 0.15s ease; + + &:not(:first-child) { margin-left: -8px; } + + // lift above overlapping siblings on hover/focus so the whole avatar is visible + &:hover, + &:focus-visible { + transform: translateY(-3px); + z-index: 1; + } + + &:focus-visible { + outline: 2px solid $primary; + outline-offset: 2px; + } +} + .tool-tile-dev { + display: block; width: 26px; height: 26px; border-radius: 50%; @@ -371,8 +393,6 @@ $cat-community: #4f9d6b; // green (community projects) border: 2px solid $cream-2; background: $cream-3; - &:not(:first-child) { margin-left: -8px; } - .tool-tile:hover & { border-color: $surface-hover; } } From ce1091465aa69334728a643e2390d1f592509757 Mon Sep 17 00:00:00 2001 From: ArthurDeclercq Date: Fri, 10 Jul 2026 14:54:46 +0200 Subject: [PATCH 27/27] updated peptid-gnn and callc card --- assets/images/tools/callc.png | Bin 0 -> 5055 bytes tools/index.qmd | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+) create mode 100644 assets/images/tools/callc.png diff --git a/assets/images/tools/callc.png b/assets/images/tools/callc.png new file mode 100644 index 0000000000000000000000000000000000000000..d4f95d4c935b51a32a92c53db75cea21008d7443 GIT binary patch literal 5055 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