Skip to content

What came out of the ProtVista hackathon

From 7 to 9 October 2026 we ran the ProtVista hackathon: three free days online, working with the developers to get people’s own data into ProtVista and to make the project easier to join. This post is our record of the event. It lists every contribution with a link, says what we learned, and says what happens next.

Daniel Rice and Swaathi Kandasaamy planned and led the hackathon, and Ajay Mishra coordinated it, all at EMBL-EBI. The hackathon is part of ProtVista’s Research Software Maintenance Fund (RSMF) grant from the Software Sustainability Institute (SSI).

Thank you to everyone who took part. The pull requests below were opened by Bibhuprasadbehera, Rajarshi0, Tanmaypatil-25, abhicodes-007, bryanswe01, knownshah, lamplinked-netizen and lokchinleung, and vikashini-coder co-wrote the EGFR view.

Dates 7–9 October 2026
Format Online, free
Attendees 14 on day 1, 6 on day 2, 7 on day 3
Teams 3
Projects 3: documentation fixes by first-time users (L5), isoform support (F8) and a community preset (L2)
Merged pull requests from contributors, 6–9 October 24, from 8 GitHub accounts (20 by the end of the event, 4 more by 30 October)

How each figure was counted is at the end of this post.

By Rajarshi0 and a teammate (project F8).

ProtVista draws a protein’s canonical sequence, but UniProt lists several isoforms for many proteins. This contribution is the first step towards #14, which asked to see a protein’s annotations on a chosen isoform.

  • A new built-in adapter, uniprot-isoforms-json, draws one row per isoform on the canonical sequence’s numbering, with a gap where an isoform lacks part of the sequence and a mark where it replaces residues. It is opt-in, and is documented under Built-in track kinds.
  • A mapper rebuilds each isoform from UniProt’s own data and maps residues between the canonical sequence and an isoform, with tests on saved UniProt data.
  • A new community view, APP isoforms, in the playground.
  • Prototype pages that show canonical tau annotations on the 441-residue isoform most papers use, so that the P301L mutation appears at 301 rather than at its canonical position.

By Bibhuprasadbehera and vikashini-coder (project L2, community presets).

A community view of human EGFR (P00533) that shows which residues contact each of seven approved kinase-inhibitor drugs and one ATP analogue in solved co-crystal structures, from PDBe-KB, beside domains, PDB structure coverage and AlphaFold confidence. A script rebuilds the data from its sources and checks it has not drifted. Open it in the playground as EGFR drug contacts; the team’s first-milestone demo is linked from the pull request.

By knownshah.

A config group with the id __proto__ lost its data when the viewer loaded it. The loader now keeps every group’s data, with tests, and the project’s security note records the fix (#325).

During the event, seventeen pull requests improved the documentation. All of them came from the three people on project L5, documentation fixes by first-time users.

Pull request By What changed
#334 lokchinleung Tutorial: says the HTML snippet goes in your page’s <body>, not in the playground’s config editor.
#336 bryanswe01 Configuration vs data: a clearer explanation of how data and kind connect a config to its data.
#338 lokchinleung Troubleshoot errors: start with the messages on screen before opening the browser console.
#339 lamplinked-netizen Overview: a short list of key terms, such as adapter, payload and schema.
#340 lokchinleung Load your own data: a new section, “Ask an AI to write your config”, including how to check what it writes.
#352 lamplinked-netizen The documentation index for AI assistants (llms.txt): plain-language explanations of each term and page.
#342, #343, #344, #345, #346, #347, #348, #349, #350, #351, #353 bryanswe01 A one-line summary for 11 pages, which search engines and link previews show: Rich tooltips in React, Configuration vs data, Author tooltips, Embed the viewer, Author a config, Escape hatches, Proteins outside UniProt, Theme the viewer, Built-in track kinds, Troubleshoot errors and Load your own data.

Four pull requests were opened on 6 October, the day before the event started:

  • Isoforms in their own numbering (#393): the next step after #337, which moves the tau prototype into ProtVista itself, so a config can show a protein’s annotations on the isoform you care about.
  • Structure legend (#390): a follow-up to #327. The legend under the structure did not follow the colour scale when a page set it. It is now fixed (#401).
  • Follow-up work by the team to bring contributions up to release standard: #402 for the EGFR view, and further tests and wording for the playground buttons and the Events page (8d5c37a).

We asked for anonymous feedback at the end of each day (#229) and got 6 responses on day 1, 6 on day 2 and 5 on day 3.

  • Most people were new to ProtVista. On day 1, five of the six had never used it, and all six said they would use it in their future work.
  • Ratings were high. Day 1: two Excellent, one Very good, two Good and one Satisfactory. Day 2: one Excellent, two Very good and three Good. Day 3: two Excellent and three Very good.
  • The pace was about right. All six on day 1 found the amount of content about right. On day 2, four found the project work about right and two found it very hard; by day 3 all five found it about right.
  • Most reached their goal. On day 3, three of the five said they had reached their project goal, one was about three quarters of the way and one about half. Hands-on work was the favourite part on day 2 (four of six), followed by project work.
  • People want to stay involved. All five on day 3 said they would like to contribute or collaborate again.

What participants asked for:

  • Downloading the viewer as a high-resolution image (PNG, JPG or similar).
  • Viewing more than one protein at once.
  • A clearer “start here” guide for beginners: where to paste the HTML and the YAML, how to load a sample file, and what a working result looks like.
  • Advance notice of what to prepare, such as the coding basics needed to read the playground’s error messages.
  • More on protein dynamics.

What the pull requests show:

  • Most contributions during the event were to the documentation. 17 of the 20 merged pull requests opened from 7 to 9 October changed only the docs. They show where the docs fell short for people outside the team: undefined terms, a tutorial step that did not say where a snippet goes, on-screen error messages that the troubleshooting page did not mention, and pages with no summary.
  • Review went on well after the event. Every documentation pull request merged from the event was merged on 8 or 9 October. The four pull requests still open when it ended (#331, #332, #355, #356) were merged on 29–30 October, and three of them needed follow-up work from the team.
  • Community views work without touching shared code. Both new community views (APP isoforms and EGFR drug contacts) were added as a folder of examples with a preset.json, with no change to the playground’s code. That became possible on the evening of the first day (#378).

What the feedback shows:

  • Beginners need a clearer first step. The survey asked for a “start here” guide, and the documentation fixes covered the same ground: where the HTML snippet goes, and what the on-screen errors mean.
  • The project days are hard for newcomers without some preparation. Two people found day 2 very hard, and one asked to know beforehand what to prepare.

Participants asked for two things that we will look at next:

  • Better screenshots and image capture of the viewer.
  • More than one protein at once in the viewer.

You don’t need to have been at the hackathon. Nine of the good first issue tasks filed for it are still open, and each says which files to look at. Start with Contributing via a fork, and come to office hours for help with setup or your own data.

Attendance, teams and projects come from the organisers’ records, and the feedback from the daily surveys. The pull request figures were counted on 30 October 2026 from the repository on GitHub.

  • Merged pull requests and accounts: merged pull requests created 6–9 October 2026 by anyone but the maintainer; no one else on the team opened one in those days. Add merged:2026-10-06..2026-10-09 for those merged by the end of the event, and use created:2026-10-07..2026-10-09 for the event days alone. The maintainer’s own pull requests in those days (#328, #329, #330, #333) are not counted as contributions; #329, #330 and #333 were preparation for the event.
  • Open good first issue tasks: the search linked under Get involved.

30 October 2026.

This work was supported by the Research Software Maintenance Fund, managed by the Software Sustainability Institute and funded by UKRI grant reference AH/Z000114/1.

Code is licensed under the MIT License; documentation and sample data are licensed under CC BY 4.0.

This work was supported by the Research Software Maintenance Fund, managed by the Software Sustainability Institute and funded by UKRI grant reference AH/Z000114/1.