A summer of Fishyplots: A new tool for making cross-border fisheries data accessible and easy to understand

by Zoe Khan and Callie Murakami

Two students and their mentor pose near a research poster.
Callie Murakami (left), Zoe Khan (middle), and their mentor Eric Ward (right) showcase their research at the CICOES Intern Symposium in August 2025.

Do you like fish? And statistics? Read on!

Government agencies like NOAA in the US and Canada’s Department of Fisheries and Oceans (DFO) conduct surveys to assess the status of marine ecosystems. These surveys often focus on fish populations that are protected or commercially important, and results of this work are used to inform policy decisions, such as providing information about how many fish can be caught by fisheries each year.

On the west coast of the USA and Canada, from California to the Bering Sea, there are 14 different trawl surveys to monitor groundfish species. Fish populations mix across international and state borders, making
it important to combine datasets across regions to understand how populations are changing. Differences across regions may include growth rates, size, or total biomass. While these surveys are publicly available and their methodology is similar, their nuances have made it a challenge to combine them.

And that is where we come in! Thanks to 2025 summer internships funded by the University of Washington CICOES and Varanasi programs, we were able to help address these concerns. We’ve built a tool to join data across borders, making the data collected by NOAA and DFO accessible, reproducible, and trans- parent to stakeholders. With a few clicks, anyone will be able to investigate trends across regions, and policy-makers like fisheries council members can use this as a tool to quickly summarize population trends, informing fisheries management.

Our experience

Coming into this project, our coding experiences were limited to what we had learned about the R program-ming language in class and during some outside research. R is used for statistics and data visualization, which is exactly what our project called for. More specifically, we needed to learn how to develop an R “package”—a specialized set of custom functions for our fisheries survey data. We would also need to code not as individuals, but as a team. Luckily, as quick learners with an incredible team of support, it didn’t take long to set us up for success. We jumped straight into the world of GitHub, a tool for collaborative coding. Our first few days may have felt a bit like skydiving, but we were not without a parachute.

Our principal mentor, Eric Ward, walked us through the inner workings of package development and taught us how to implement functions, write documentation, and update shared code. He also coached us on the nuts and bolts of GitHub, which began to feel less like a byzantine contraption and more like an essential resource. Thus, the R package fishyplots was born.

Days in the office soon settled into a productive flow. We began working on the specific functionality of our package, determining which plots would be most desirable for our end users. Our original inspiration for visualizations came from a previous report by DFO’s Sean Anderson and previous visualizations by NOAA’s Chantel Wetzel and Matt Callahan.

Each plot was its own particular challenge. Some needed specific data, alternate formats, adaptable text, and lots of tinkering and testing. As an illustration, one of our plots is a map of predicted fish-catch density from the most recent survey year. To make this map, we needed to wrangle data, fit a spatial model to observations, make predictions from that model, and finally make the visualization. Most of these steps were new to us, but we picked up some great skills along the way, including spatiotemporal modeling.

Our larger team

Every week, we met a larger team from across all the science offices to discuss the intricacies of our plots, work through changes, and plan next steps. The team has worked extensively with this data, including the data collection process, so they knew valuable back-ground information and the inner workings that are vital for how we interpret and display our results. For example, one suggestion from the team was splitting the Alaska data into two separate subregions spanning the Gulf of Alaska and the Bering Sea to better demon-strate differences in survey methods and fish biology between these areas. It required some backtracking and reformatting of the data on our part, but made a big difference later on when we were able to see variations in the fishes and the trends between these two areas that we would not have noticed otherwise. Along the way, the team always gave tips and sugges-tions to help us get to know the data better and understand how context can make all the difference.

Alas. There were days when we wanted to throw our poor laptops out of the window. An example of one of these times was when we accidentally ran a coding program that would end up taking five hours to com-plete (oops!), or when the same error message popped up about a thousand times before we found the bug in the script.

The learning curve was definitely steep, but our mentors supported us through it all. For example, Kelli Johnson taught us advanced GitHub techniques using command lines. Imagine a programmer in a movie hacking into a heavily secured computer system—that’s a bit what this felt like (except less stressful). Megsie Siple, our knight in shining armor, was instrumental in helping us with the R package Shiny, which is a way to write an interactive app. This package is what we used to construct our website interface and function. Since we were both new to making websites, her guidance was invaluable.

In this figure, colored pixels in the Pacific Ocean near Alaska represent the density of a certain fish species. They are densest in Western Alaska.
Predicted density for Northern rock sole in four survey subregi ons. Color scale is fourth-root transformed. Survey year: Gulf of Alaska (2023), northern Berin g Sea (2023), eastern Bering Sea (2024), Aleutian Islands (2024).

A respectable R package

By August, fishyplots had grown into a respectable R package, and we, into respectable scientific software developers. The first time we got the Shiny app up and running was very gratifying. The website is aptly named Pacific Survey Explorer, and towards the end of the summer, we presented it to many groups at both the Northwest and Alaska Fisheries Science Centers. Since most of the time we had been a bit secluded in the office, it was very exciting to see so much investment in the project! We received a lot of positive and con-structive feedback, which will be used to make improve-ments to the app in the future. For example, we hope to add to our list of species and expand the website to include data from other types of surveys.

Going forward, there are countless opportunities for continued research now that we have this rich source of combined regional data. We had a great time this summer working towards this goal and can’t wait to see the future applications of our work.

About the authors

Zoe Khan is a junior studying Statistics and Geobiology at Smith College. Her 2025 summer internship was completed through the CICOES Intern Program, which is funded by the National Science Foundation, the National Oceanic and Atmospheric Association (NOAA), and the University of Washington (UW).

Callie Murakami is a senior at the UW, studying Aquatic and Fishery Sciences. She was funded by the 2025 Varanasi Internship through the UW and NOAA, endowed by Usha and S. Rao Varanasi.