diff --git a/assets/images/tijl.jpg b/assets/images/tijl.jpg new file mode 100644 index 0000000..426e276 Binary files /dev/null and b/assets/images/tijl.jpg differ diff --git a/publications/index.qmd b/publications/index.qmd index e9c8bfd..54fe348 100644 --- a/publications/index.qmd +++ b/publications/index.qmd @@ -33,11 +33,13 @@ if not (project_root / "data" / "publications.json").exists(): pub_file = project_root / "data" / "publications.json" if not pub_file.exists(): - display(HTML( - '

No publications data found. ' - 'Run python publications/fetch_publications.py to populate ' - 'data/publications.json, then re-render this page.

' - )) + display( + HTML( + '

No publications data found. ' + "Run python publications/fetch_publications.py to populate " + "data/publications.json, then re-render this page.

" + ) + ) else: publications = json.loads(pub_file.read_text(encoding="utf-8")) @@ -58,13 +60,31 @@ else: # Current CompOmics members (keep in sync with team/index.qmd). Used both for # author highlighting and for the "by person" filter dropdown. MEMBERS = [ - "Lennart Martens", "Sakina Bombaywala", "Robbin Bouwmeester", "Tine Claeys", - "Arthur Declercq", "Ralf Gabriels", "Alexander Kensert", "Enrico Massignani", - "Pathmanaban Ramasamy", "Tim Van Den Bossche", "Pieter Verschaffelt", - "Toon Callens", "Robbe Devreese", "Sander Heyndrickx", "Sude Güneş", - "Caroline Jachmann", "Xuxa Malliet", "Alireza Nameni", "Harikrishnan Ramadasan", - "Sam Van Puyenbroeck", "Lyudmila Kovalchuke", "Patricia Lefèvre", - "Natalia Tichshenko", "Kevin Velghe", "Daria Fijalkowska", "Jasper Zuallaert", + "Lennart Martens", + "Robbin Bouwmeester", + "Tine Claeys", + "Arthur Declercq", + "Ralf Gabriels", + "Alexander Kensert", + "Enrico Massignani", + "Pathmanaban Ramasamy", + "Tim Van Den Bossche", + "Toon Callens", + "Robbe Devreese", + "Sander Heyndrickx", + "Sude Güneş", + "Caroline Jachmann", + "Xuxa Malliet", + "Alireza Nameni", + "Harikrishnan Ramadasan", + "Sam Van Puyenbroeck", + "Tijl Verween", + "Lyudmila Kovalchuke", + "Patricia Lefèvre", + "Natalia Tichshenko", + "Kevin Velghe", + "Daria Fijalkowska", + "Jasper Zuallaert", ] # names for bold highlighting = team qmd titles (if any) ∪ the member list above @@ -125,18 +145,25 @@ else: # Preprint detection — by DOI prefix or journal/server name. PREPRINT_DOI_PREFIXES = ( - "10.1101", # bioRxiv / medRxiv (Cold Spring Harbor) - "10.26434", # ChemRxiv - "10.21203", # Research Square - "10.20944", # Preprints.org - "10.31219", # OSF Preprints - "10.31234", # PsyArXiv - "10.48550", # arXiv - "10.64898", # bioRxiv (newer prefix) + "10.1101", # bioRxiv / medRxiv (Cold Spring Harbor) + "10.26434", # ChemRxiv + "10.21203", # Research Square + "10.20944", # Preprints.org + "10.31219", # OSF Preprints + "10.31234", # PsyArXiv + "10.48550", # arXiv + "10.64898", # bioRxiv (newer prefix) ) PREPRINT_JOURNAL_HINTS = ( - "biorxiv", "medrxiv", "chemrxiv", "arxiv", "research square", - "preprints.org", "ssrn", "osf", "preprint", + "biorxiv", + "medrxiv", + "chemrxiv", + "arxiv", + "research square", + "preprints.org", + "ssrn", + "osf", + "preprint", ) def is_preprint(doi, journal): @@ -151,7 +178,9 @@ else: parts = [authors_txt] if authors_txt else [] parts.append(f"({year})." if year else "") parts.append(f"{title}.") - venue = journal + ((" " + location) if location else "") if journal else location + venue = ( + journal + ((" " + location) if location else "") if journal else location + ) if venue: parts.append(f"{venue}.") if doi: @@ -177,45 +206,63 @@ else: 'spellcheck="false" aria-label="Search publications">' '' - '' + "" ) # person dropdown (current members, alphabetical by surname) lines.append('
') lines.append('') - lines.append('' + ) lines.append('') for name in sorted(MEMBERS, key=lambda n: n.split()[-1].lower()): val = html.escape(name.lower(), quote=True) lines.append(f'') - lines.append('') - lines.append('
') + lines.append("") + lines.append("") # type chips — peer-reviewed vs preprint - lines.append('
') - lines.append('') - lines.append('') - lines.append('') - lines.append('
') + lines.append( + '
' + ) + lines.append( + '' + ) + lines.append( + '' + ) + lines.append( + '' + ) + lines.append("
") # year chips — individual chips for >= 2016, everything older folded into "< 2016" YEAR_CAP = 2016 - lines.append('
') - lines.append('') + lines.append( + '
' + ) + lines.append( + '' + ) has_pre_cap = False for year in years_sorted: if isinstance(year, int) and year >= YEAR_CAP: - lines.append(f'') + lines.append( + f'' + ) else: has_pre_cap = True if has_pre_cap: - lines.append(f'') - lines.append('
') - lines.append('
') + lines.append( + f'' + ) + lines.append("") + lines.append("") lines.append('
') lines.append('
') lines.append('') - lines.append('
') + lines.append("") # ── Publication list, grouped by year ──────────────────────────────────── lines.append('
') @@ -240,30 +287,46 @@ else: title_safe = html.escape(title) title_html = ( f'{title_safe}' - if doi else title_safe + if doi + else title_safe ) preprint = is_preprint(doi, journal) # venue pill: journal + location (volume(issue):pages) - venue_txt = journal + ((", " + location) if (journal and location) else (location or "")) if (journal or location) else "" + venue_txt = ( + journal + + ((", " + location) if (journal and location) else (location or "")) + if (journal or location) + else "" + ) venue_html = ( - f'{html.escape(venue_txt)}' if venue_txt else "" + f'{html.escape(venue_txt)}' + if venue_txt + else "" ) badge_html = ( - 'Preprint' if preprint else "" + 'Preprint' + if preprint + else "" ) # searchable haystack (plain text, attribute-escaped) - haystack = " ".join([title, " ".join(authors_list), journal, ylabel]).lower() + haystack = " ".join( + [title, " ".join(authors_list), journal, ylabel] + ).lower() haystack = html.escape(haystack, quote=True) # pipe-delimited member names for the person filter (with edge pipes) hits = matched_members(authors_list) - members_attr = ("|" + "|".join(m.lower() for m in hits) + "|") if hits else "" + members_attr = ( + ("|" + "|".join(m.lower() for m in hits) + "|") if hits else "" + ) members_attr = html.escape(members_attr, quote=True) - citation = build_citation(authors_list, ylabel if year else "", title, journal, location, doi) + citation = build_citation( + authors_list, ylabel if year else "", title, journal, location, doi + ) cite_attr = html.escape(citation, quote=True) type_attr = "preprint" if preprint else "published" @@ -280,9 +343,9 @@ else: f'{title_html}' f'{authors_str}' f'
{badge_html}{venue_html}
' - f'
' - f'{cite_btn}' - f'' + f"" + f"{cite_btn}" + f"" ) lines.append("") lines.append("") @@ -291,7 +354,7 @@ else: lines.append( '' + "" ) display(HTML("\n".join(lines))) diff --git a/team/index.qmd b/team/index.qmd index bde56cc..1ea17ba 100644 --- a/team/index.qmd +++ b/team/index.qmd @@ -45,13 +45,6 @@ toc: false

Postdoctoral Researchers

-
-
- -
-
- -

Predoctoral Researchers

@@ -164,6 +151,12 @@ toc: false
Sam van Puyenbroeck
+
+ +

Support Staff

@@ -376,7 +369,7 @@ toc: false email: 'toon.callens@ugent.be', about: 'Toon obtained his Master\'s degree in Biomedical Sciences, with a major in Systems Biology, in 2019. His interest in the informatics courses within his programme led him to apply to Prof. Lennart Martens to pursue a PhD in the CompOmics group. Outside research, Toon has a passion for soccer and even used to be a semi-professional soccer player until injuries prevented him from continuing. To still enjoy his passion for the sport, he now plays walking football.', currentWork: 'He is a predoctoral researcher shared between CompOmics and the Ghent University De Preter group. During his PhD, he has worked on a large citizen science project integrated into a mobile game, and on multi-omics tissue prediction. Next to that, he also serves as a teaching assistant for bioinformatics in the Biomedical Sciences programme.', - recognition: 'In 2024 Toon won the EuBIC best flash talk prize in Winterberg.' + recognition: 'In 2024 Toon won the EuBIC-MS best flash talk prize in Winterberg.' }, robbe: { title: 'Robbe Devreese', @@ -384,7 +377,7 @@ toc: false email: 'robbe.devreese@ugent.be', about: 'Robbe obtained his Master\'s degree in Biomedical Sciences, with a major in Systems Biology, in 2023. He carried out his Master\'s thesis in CompOmics, where he investigated the oxidation landscape using open modification searches and, having discovered his love for data science (and his dislike for the wet lab), accepted an invitation from Dr. Robbin Bouwmeester and Prof. Lennart Martens to perform a PhD in the group. Outside of work, Robbe enjoys going to concerts and the theatre, and watching football.', currentWork: 'His PhD work focuses on benchmarking, MS imaging, and improving bioinformatics workflows for ion mobility-enabled mass spectrometry. He is the main developer of IM2Deep, and has contributed to MS²Rescore and ProteoBench.', - recognition: 'Robbe was a finalist for the Three-Minute-Thesis competition at HUPO 2024 and has been awarded an EMBO Scientific Exchange Grant.', + recognition: 'Robbe was a finalist for the Three-Minute-Thesis competition at HUPO 2024 and has been awarded an EMBO Scientific Exchange Grant.', publications: [ { title: 'Collisional Cross-Section Prediction for Multiconformational Peptide Ions with IM2Deep', url: 'https://doi.org/10.1021/acs.analchem.5c01142', venue: 'Analytical Chemistry · 2025' }, { 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' }, @@ -524,6 +517,13 @@ toc: false { 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' }, ] + }, + tijl: { + title: 'Tijl Verween', + role: 'Predoctoral Researcher', + email: 'tijl.verween@ugent.be', + about: 'Tijl obtained his Master\'s degree in Biochemistry and Biotechnology, with a major in Bioinformatics and Systems Biology, from Ghent University in 2026. He carried out his Master\'s thesis in the CompOmics group and continued in the same group as a PhD student. Outside research, he enjoys learning to play different musical instruments.', + currentWork: 'Tijl\'s PhD research focuses on immunopeptidomics. He studies how data-independent acquisition (DIA) can be applied in this field and improves the computational workflows involved, from acquisition method optimization to data analysis.' } }; diff --git a/team/network.qmd b/team/network.qmd index 31601e5..9080d50 100644 --- a/team/network.qmd +++ b/team/network.qmd @@ -93,6 +93,7 @@ toc: false

Alumni & Former Colleagues

Dr. Andrea Argentini + Dr. Sakina Bombaywala Dr. Niklaas Colaert Dr. Sven Degroeve Dr. Nina Demeulemeester @@ -109,6 +110,7 @@ toc: false Dr. Elien Vandermarliere Dr. Kenneth Verheggen Dr. Tessa Vermeire + Dr. Pieter Verschaffelt Dr. Pieter-Jan Volders Dr. Şule Yılmaz Genet Abay Shiferaw