From 7431ddd6c9232b96632e2d2533829151d9d3638c Mon Sep 17 00:00:00 2001 From: sehilyi Date: Fri, 10 Jan 2025 10:32:18 -0500 Subject: [PATCH 01/17] feat: add a blog page and v1 release announcement --- blog/v1-release.md | 29 +++++++++++++++++++++++++++++ docusaurus.config.js | 9 +++++---- 2 files changed, 34 insertions(+), 4 deletions(-) create mode 100644 blog/v1-release.md diff --git a/blog/v1-release.md b/blog/v1-release.md new file mode 100644 index 0000000..2d6dd63 --- /dev/null +++ b/blog/v1-release.md @@ -0,0 +1,29 @@ +# Gosling.js v1.0.0 Announcement + +> Authors: A, B, and C + +## Background on the Gosling project +The Gosling project began in 2020. That’s two years after the [HiGlass](http://higlass.io/) paper ([Kerpedjiev et al. Genome Biology](https://doi.org/10.1186/s13059-018-1486-1)) was published by the [HIDIVE Lab](https://hidivelab.org/). HiGlass’ powerful data infrastructure and efficient graphics rendering enabled quick navigation and comparison of large genome matrices. However, as its community rapidly grew, the HiGlass team had to implement new custom tracks to meet evolving visualization needs. This was a time-consuming process since implementing a new track easily involves writing thousands of lines of JavaScript code using [PixiJS](https://pixijs.com/). Inspired by the declarative approach of [Vega-Lite](https://vega.github.io/vega-lite/), we started building the Gosling visualization toolkit to enable easier and more flexible creation of genome-mapped data visualizations (hereafter, “genomics data visualizations”). + +To enable flexible visualization creation, we first needed to understand what kinds of genome-mapped data visualizations exist in the wild. Fortunately, HIDIVE Lab produced a taxonomy for genomics data visualization after reviewing hundreds of data visualizations and tools ([Nusrat et al. CGF](https://onlinelibrary.wiley.com/doi/full/10.1111/cgf.13727)). Adopting the primitive building blocks from the taxonomy (e.g., layouts, arrangements, and alignments), we designed the Gosling grammar for genomics data visualization. The Gosling grammar adopts a computer programming paradigm ([declarative programming](https://en.wikipedia.org/wiki/Declarative_programming)), which enables users to focus more on what they want to create rather than how they want to achieve. Gosling was first published in 2021 ([L’Yi et al. TVCG](https://pmc.ncbi.nlm.nih.gov/articles/PMC8826597/)), describing its five distinctive strengths and introducing its toolkit for JavaScript. Gosling was then extended for Python and computational notebook users ([Gos Python package](https://gosling-lang.github.io/gos/)) with some major usability enhancements, such as transparent data loading ([Manz et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/1/btad050/6998203)). + +## How Gosling is being used in the community +Gosling has been widely adopted both in academia and industry. Gosling visualizations were integrated into widely used data portals in cancer genomics, such as [cBioPoral](https://www.cbioportal.org/patient/openResource_CHROMOSCOPE?studyId=pancan_pcawg_2020&caseId=DO2706) and [Cistrome Data Browser](https://db3.cistrome.org/browser/) ([Taing et al. Nucleic Acids Res](https://academic.oup.com/nar/article/52/D1/D61/7424438)). Researchers at Linköping University used Gosling to create stimuli for controlled user experiments ([Ståhlbom et al. CGF](https://onlinelibrary.wiley.com/doi/10.1111/cgf.15102)). A research team at Johannes Kepler University Linz extended Gosling for time-based data. A company [Appsilon](https://www.appsilon.com/) extended Gosling by building its R Shiny wrapper ([Appsilon/shiny.gosling](https://appsilon.github.io/shiny.gosling/)). + +Given the flexibility of Gosling in building genomics data visualizations and tools, Gosling has been used in many research projects in the HIDIVE Lab as well. In collaboration with Peter J Park’s group at Harvard Medical School, we built [Chromoscope](https://chromoscope.bio/) ([L’Yi et al. Nat Methods](https://www.nature.com/articles/s41592-023-02056-x)) for browsing structural variation at multiple scales with Circos-like whole genome overviews and read-level BAM alignment views. In collaboration with researchers at Harvard T.H. Chan School of Public Health and Dana-Farber Cancer Institute, we built [Cistrome Explorer](https://cisvis.gehlenborglab.org) for interactive visual analysis of large-scale epigenomic data ([L’Yi et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/2/btad018/6998202)). Focusing more on visualization and human–computer interaction research, we used Gosling to build the GenoREC ([Pande et al. VIS 2022](https://ieeexplore.ieee.org/document/9908148)), an automated recommendation system that helps people without much visualization knowledge to find visual representations and user interactions appropriate for their data and tasks. A visual analytics tool powered by machine learning models—DRAVA ([Wang et al. CHI 2023](https://dl.acm.org/doi/full/10.1145/3544548.3581127))—integrated Gosling to provide a spatial context of the whole genome Hi-C matrix in exploring the latent space of its sliding images. Most recently, we explored ideas to combine Gosling with various visualization authoring interfaces, such as natural language interfaces, to lower barriers to creating expressive visualizations in a graphical user interface ([L’Yi et al. VIS 2024](https://ieeexplore.ieee.org/document/10670517) and [van den Brandt et al. VIS 2024](https://ieeexplore.ieee.org/document/10681582)). There are many more exciting projects to be announced soon. + + +## What v1.0.0 means +Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. That’s why it makes sense for us to draw a line in the sand and declare the current state to be the 1.0.0 version. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! + + +## Limitations of current Gosling.js +Although we are releasing the first major version, we are aware that there are several limitations in the current Gosling that are worth noting here for users: + +- Gosling currently only supports React. This means you can embed Gosling visualizations to your webpage/application only if they are based on React. +- Several Gosling features are experimental and not ready for production. Such features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so be careful using them. +- We are aware that the performance of Gosling significantly decreases for certain visual encoding (e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). + + +## What to expect in the future +With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. diff --git a/docusaurus.config.js b/docusaurus.config.js index 486d812..5baefa0 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -48,6 +48,7 @@ module.exports = { }, { to: 'tutorials/', label: 'Tutorials', position: 'left' }, { to: 'examples/', label: 'Examples', position: 'left' }, + { to: 'blog/', label: 'Blog', position: 'left' }, { to: 'themes/', label: 'Themes', position: 'left' }, { to: 'about/', label: 'About', position: 'left' }, { @@ -144,11 +145,11 @@ module.exports = { { docs: { path: 'docs', - editUrl: ({versionDocsDirPath, docPath}) => - `https://github.com/gosling-lang/gosling-website/edit/main/${versionDocsDirPath}/${docPath}`, + editUrl: ({ versionDocsDirPath, docPath }) => + `https://github.com/gosling-lang/gosling-website/edit/main/${versionDocsDirPath}/${docPath}`, include: ['**/*.md', '**/*.mdx'], sidebarPath: require.resolve('./sidebarDocs.js'), - + }, blog: { showReadingTime: true, @@ -182,7 +183,7 @@ module.exports = { path: 'tutorials/', sidebarPath: require.resolve('./sidebarTutorial.js'), routeBasePath: 'tutorials', - editUrl: ({versionDocsDirPath, docPath}) => + editUrl: ({ versionDocsDirPath, docPath }) => `https://github.com/gosling-lang/gosling-website/edit/main/${versionDocsDirPath}/${docPath}`, include: ['*.md', '*.mdx'] }, From 4bb1c8e7acb09b79700f67df1383101ca894588e Mon Sep 17 00:00:00 2001 From: sehilyi Date: Fri, 10 Jan 2025 12:57:13 -0500 Subject: [PATCH 02/17] docs: add ack section --- blog/v1-release.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 2d6dd63..51971c0 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -12,11 +12,9 @@ Gosling has been widely adopted both in academia and industry. Gosling visualiza Given the flexibility of Gosling in building genomics data visualizations and tools, Gosling has been used in many research projects in the HIDIVE Lab as well. In collaboration with Peter J Park’s group at Harvard Medical School, we built [Chromoscope](https://chromoscope.bio/) ([L’Yi et al. Nat Methods](https://www.nature.com/articles/s41592-023-02056-x)) for browsing structural variation at multiple scales with Circos-like whole genome overviews and read-level BAM alignment views. In collaboration with researchers at Harvard T.H. Chan School of Public Health and Dana-Farber Cancer Institute, we built [Cistrome Explorer](https://cisvis.gehlenborglab.org) for interactive visual analysis of large-scale epigenomic data ([L’Yi et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/2/btad018/6998202)). Focusing more on visualization and human–computer interaction research, we used Gosling to build the GenoREC ([Pande et al. VIS 2022](https://ieeexplore.ieee.org/document/9908148)), an automated recommendation system that helps people without much visualization knowledge to find visual representations and user interactions appropriate for their data and tasks. A visual analytics tool powered by machine learning models—DRAVA ([Wang et al. CHI 2023](https://dl.acm.org/doi/full/10.1145/3544548.3581127))—integrated Gosling to provide a spatial context of the whole genome Hi-C matrix in exploring the latent space of its sliding images. Most recently, we explored ideas to combine Gosling with various visualization authoring interfaces, such as natural language interfaces, to lower barriers to creating expressive visualizations in a graphical user interface ([L’Yi et al. VIS 2024](https://ieeexplore.ieee.org/document/10670517) and [van den Brandt et al. VIS 2024](https://ieeexplore.ieee.org/document/10681582)). There are many more exciting projects to be announced soon. - ## What v1.0.0 means Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. That’s why it makes sense for us to draw a line in the sand and declare the current state to be the 1.0.0 version. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! - ## Limitations of current Gosling.js Although we are releasing the first major version, we are aware that there are several limitations in the current Gosling that are worth noting here for users: @@ -24,6 +22,8 @@ Although we are releasing the first major version, we are aware that there are s - Several Gosling features are experimental and not ready for production. Such features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so be careful using them. - We are aware that the performance of Gosling significantly decreases for certain visual encoding (e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). - ## What to expect in the future With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. + +## Achknowledgements +We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements ([#988](https://github.com/gosling-lang/gosling.js/pull/988), [#1057](https://github.com/gosling-lang/gosling.js/pull/1057)), new data supports ([#877](https://github.com/gosling-lang/gosling.js/pull/877), [#923](https://github.com/gosling-lang/gosling.js/pull/923)), new visual components ([#946](https://github.com/gosling-lang/gosling.js/pull/946)), and many more. His brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews) and significant improvements of the engineering aspects. He made our life as Gosling developers easier. We would like to thank everyone who contributed to Gosling along the way to release our first major version. From 9d5b4b89d2035358a4351078e90085756621ac29 Mon Sep 17 00:00:00 2001 From: sehilyi Date: Fri, 10 Jan 2025 13:03:19 -0500 Subject: [PATCH 03/17] docs: revise ack section --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 51971c0..13d6f1d 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -26,4 +26,4 @@ Although we are releasing the first major version, we are aware that there are s With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. ## Achknowledgements -We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements ([#988](https://github.com/gosling-lang/gosling.js/pull/988), [#1057](https://github.com/gosling-lang/gosling.js/pull/1057)), new data supports ([#877](https://github.com/gosling-lang/gosling.js/pull/877), [#923](https://github.com/gosling-lang/gosling.js/pull/923)), new visual components ([#946](https://github.com/gosling-lang/gosling.js/pull/946)), and many more. His brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews) and significant improvements of the engineering aspects. He made our life as Gosling developers easier. We would like to thank everyone who contributed to Gosling along the way to release our first major version. +We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements ([#988](https://github.com/gosling-lang/gosling.js/pull/988), [#1057](https://github.com/gosling-lang/gosling.js/pull/1057)), new data supports ([#877](https://github.com/gosling-lang/gosling.js/pull/877), [#923](https://github.com/gosling-lang/gosling.js/pull/923)), new visual components ([#946](https://github.com/gosling-lang/gosling.js/pull/946)), and many more. His brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), improvements on engineering (e.g., improved types), and expanding Gosling use cases (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful tools for users. We would like to thank everyone who contributed to Gosling along the way to release our first major version. From d6928a26d0711810fb322477738a48af13595f9d Mon Sep 17 00:00:00 2001 From: sehilyi Date: Fri, 10 Jan 2025 13:05:47 -0500 Subject: [PATCH 04/17] docs: revise ack section --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 13d6f1d..90a4dc1 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -26,4 +26,4 @@ Although we are releasing the first major version, we are aware that there are s With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. ## Achknowledgements -We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements ([#988](https://github.com/gosling-lang/gosling.js/pull/988), [#1057](https://github.com/gosling-lang/gosling.js/pull/1057)), new data supports ([#877](https://github.com/gosling-lang/gosling.js/pull/877), [#923](https://github.com/gosling-lang/gosling.js/pull/923)), new visual components ([#946](https://github.com/gosling-lang/gosling.js/pull/946)), and many more. His brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), improvements on engineering (e.g., improved types), and expanding Gosling use cases (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful tools for users. We would like to thank everyone who contributed to Gosling along the way to release our first major version. +We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements ([#988](https://github.com/gosling-lang/gosling.js/pull/988), [#1057](https://github.com/gosling-lang/gosling.js/pull/1057)), new data supports ([#877](https://github.com/gosling-lang/gosling.js/pull/877), [#923](https://github.com/gosling-lang/gosling.js/pull/923)), new visual components ([#946](https://github.com/gosling-lang/gosling.js/pull/946)), and many more. His brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank everyone who contributed to Gosling along the way to release our first major version. From 12e0af1831ade384468a317b2d8dcdf9f69fedd4 Mon Sep 17 00:00:00 2001 From: sehilyi Date: Fri, 10 Jan 2025 13:07:58 -0500 Subject: [PATCH 05/17] docs: add authors --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 90a4dc1..9c267bd 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -1,6 +1,6 @@ # Gosling.js v1.0.0 Announcement -> Authors: A, B, and C +[Sehi L'Yi](https://sehilyi.com), [Huyen N. Nguyen](https://huyennguyen.com/), and [David Kouřil](https://www.davidkouril.com/) ## Background on the Gosling project The Gosling project began in 2020. That’s two years after the [HiGlass](http://higlass.io/) paper ([Kerpedjiev et al. Genome Biology](https://doi.org/10.1186/s13059-018-1486-1)) was published by the [HIDIVE Lab](https://hidivelab.org/). HiGlass’ powerful data infrastructure and efficient graphics rendering enabled quick navigation and comparison of large genome matrices. However, as its community rapidly grew, the HiGlass team had to implement new custom tracks to meet evolving visualization needs. This was a time-consuming process since implementing a new track easily involves writing thousands of lines of JavaScript code using [PixiJS](https://pixijs.com/). Inspired by the declarative approach of [Vega-Lite](https://vega.github.io/vega-lite/), we started building the Gosling visualization toolkit to enable easier and more flexible creation of genome-mapped data visualizations (hereafter, “genomics data visualizations”). From d5b67e64900aaeacd33e547437d4dbf75c470d8f Mon Sep 17 00:00:00 2001 From: sehilyi Date: Fri, 10 Jan 2025 13:10:26 -0500 Subject: [PATCH 06/17] docs: remote PRs --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 9c267bd..8f4c118 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -26,4 +26,4 @@ Although we are releasing the first major version, we are aware that there are s With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. ## Achknowledgements -We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements ([#988](https://github.com/gosling-lang/gosling.js/pull/988), [#1057](https://github.com/gosling-lang/gosling.js/pull/1057)), new data supports ([#877](https://github.com/gosling-lang/gosling.js/pull/877), [#923](https://github.com/gosling-lang/gosling.js/pull/923)), new visual components ([#946](https://github.com/gosling-lang/gosling.js/pull/946)), and many more. His brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank everyone who contributed to Gosling along the way to release our first major version. +We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements, new data supports, visual components, and many more. He brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank everyone who contributed to Gosling along the way to release our first major version. From 8fa2cdf284ba258ffdc40542fd131605ddd21f89 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:22:55 -0500 Subject: [PATCH 07/17] Update blog/v1-release.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: David Kouřil --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 8f4c118..48b8af0 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -26,4 +26,4 @@ Although we are releasing the first major version, we are aware that there are s With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. ## Achknowledgements -We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joinning the HIDIVE Lab as a scientific software engineer in March 2023, he made huge contributions across multiple Gosling projects. This includes performance improvements, new data supports, visual components, and many more. He brought a new energy we needed in the Gosling team. Best of luck in his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank everyone who contributed to Gosling along the way to release our first major version. +We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joining the HIDIVE Lab as a scientific software engineer in March 2023, he made numerous contributions across multiple Gosling projects. This includes performance improvements, new data supports, visual components, and many more. He brought new energy we needed in the Gosling team. Best of luck on his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank everyone who contributed to Gosling along the way to release our first major version. From 4dfb724a2d23b049f682b73665a82247faa67cbb Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:23:37 -0500 Subject: [PATCH 08/17] Update blog/v1-release.md Co-authored-by: Huyen N. Nguyen --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 48b8af0..a909e60 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -16,7 +16,7 @@ Given the flexibility of Gosling in building genomics data visualizations and to Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. That’s why it makes sense for us to draw a line in the sand and declare the current state to be the 1.0.0 version. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! ## Limitations of current Gosling.js -Although we are releasing the first major version, we are aware that there are several limitations in the current Gosling that are worth noting here for users: +Although we are releasing the first major version, we acknowledge that there are several limitations in the current Gosling that are worth noting here for users: - Gosling currently only supports React. This means you can embed Gosling visualizations to your webpage/application only if they are based on React. - Several Gosling features are experimental and not ready for production. Such features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so be careful using them. From e7f18957c062085d38e8b9af9f66ec69b60ae389 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:23:50 -0500 Subject: [PATCH 09/17] Update blog/v1-release.md Co-authored-by: Huyen N. Nguyen --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index a909e60..fad9326 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -20,7 +20,7 @@ Although we are releasing the first major version, we acknowledge that there are - Gosling currently only supports React. This means you can embed Gosling visualizations to your webpage/application only if they are based on React. - Several Gosling features are experimental and not ready for production. Such features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so be careful using them. -- We are aware that the performance of Gosling significantly decreases for certain visual encoding (e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). +- We recognize that Gosling's performance can significantly decrease with certain visual encodings(e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). ## What to expect in the future With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. From 99a799518acdb61a0730506f433c776b36cebaa8 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:24:02 -0500 Subject: [PATCH 10/17] Update blog/v1-release.md Co-authored-by: Huyen N. Nguyen --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index fad9326..ad6adae 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -18,7 +18,7 @@ Considering Gosling’s successful and widespread application across a variety o ## Limitations of current Gosling.js Although we are releasing the first major version, we acknowledge that there are several limitations in the current Gosling that are worth noting here for users: -- Gosling currently only supports React. This means you can embed Gosling visualizations to your webpage/application only if they are based on React. +- Gosling currently only supports React. This means you can embed Gosling visualizations into your webpage or application only if they are based on React. - Several Gosling features are experimental and not ready for production. Such features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so be careful using them. - We recognize that Gosling's performance can significantly decrease with certain visual encodings(e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). From 3b6bc475e6c5d07054ebc11a4a7a2ca518b78462 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:24:33 -0500 Subject: [PATCH 11/17] Update blog/v1-release.md Co-authored-by: Huyen N. Nguyen --- blog/v1-release.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index ad6adae..7a4cc3d 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -23,7 +23,13 @@ Although we are releasing the first major version, we acknowledge that there are - We recognize that Gosling's performance can significantly decrease with certain visual encodings(e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). ## What to expect in the future -With that being said, we are planning to move quickly to address the above limitations and release the next major versions with major improvements. The React and HiGlass dependencies had been a long bottleneck for us in maintaining the codebases and adding new functionalities. We are working on getting rid of React/HiGlass dependencies. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. We are also experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. +We aim to address the above limitations and release future versions with major improvements. Specifically: + +- **Framework-agnostic design**: We are working to remove dependencies on React and HiGlass to reduce bottlenecks in maintaining the codebase and adding new functionalities. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks. + +- **Performance enhancements**: We are experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. + +- **3D Genomics Data Visualization**: And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. ## Achknowledgements We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joining the HIDIVE Lab as a scientific software engineer in March 2023, he made numerous contributions across multiple Gosling projects. This includes performance improvements, new data supports, visual components, and many more. He brought new energy we needed in the Gosling team. Best of luck on his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank everyone who contributed to Gosling along the way to release our first major version. From 8fc86f27c52e0ff173ec8d3ff8388f917181835b Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:24:40 -0500 Subject: [PATCH 12/17] Update blog/v1-release.md Co-authored-by: Huyen N. Nguyen --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 7a4cc3d..ef8834a 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -19,7 +19,7 @@ Considering Gosling’s successful and widespread application across a variety o Although we are releasing the first major version, we acknowledge that there are several limitations in the current Gosling that are worth noting here for users: - Gosling currently only supports React. This means you can embed Gosling visualizations into your webpage or application only if they are based on React. -- Several Gosling features are experimental and not ready for production. Such features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so be careful using them. +- Several Gosling features are experimental and not ready for production. These features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so use them with caution. - We recognize that Gosling's performance can significantly decrease with certain visual encodings(e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). ## What to expect in the future From 6044cae4618ceb268a3d623f487774a6052c2a09 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:24:53 -0500 Subject: [PATCH 13/17] Update blog/v1-release.md Co-authored-by: Huyen N. Nguyen --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index ef8834a..096a982 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -13,7 +13,7 @@ Gosling has been widely adopted both in academia and industry. Gosling visualiza Given the flexibility of Gosling in building genomics data visualizations and tools, Gosling has been used in many research projects in the HIDIVE Lab as well. In collaboration with Peter J Park’s group at Harvard Medical School, we built [Chromoscope](https://chromoscope.bio/) ([L’Yi et al. Nat Methods](https://www.nature.com/articles/s41592-023-02056-x)) for browsing structural variation at multiple scales with Circos-like whole genome overviews and read-level BAM alignment views. In collaboration with researchers at Harvard T.H. Chan School of Public Health and Dana-Farber Cancer Institute, we built [Cistrome Explorer](https://cisvis.gehlenborglab.org) for interactive visual analysis of large-scale epigenomic data ([L’Yi et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/2/btad018/6998202)). Focusing more on visualization and human–computer interaction research, we used Gosling to build the GenoREC ([Pande et al. VIS 2022](https://ieeexplore.ieee.org/document/9908148)), an automated recommendation system that helps people without much visualization knowledge to find visual representations and user interactions appropriate for their data and tasks. A visual analytics tool powered by machine learning models—DRAVA ([Wang et al. CHI 2023](https://dl.acm.org/doi/full/10.1145/3544548.3581127))—integrated Gosling to provide a spatial context of the whole genome Hi-C matrix in exploring the latent space of its sliding images. Most recently, we explored ideas to combine Gosling with various visualization authoring interfaces, such as natural language interfaces, to lower barriers to creating expressive visualizations in a graphical user interface ([L’Yi et al. VIS 2024](https://ieeexplore.ieee.org/document/10670517) and [van den Brandt et al. VIS 2024](https://ieeexplore.ieee.org/document/10681582)). There are many more exciting projects to be announced soon. ## What v1.0.0 means -Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. That’s why it makes sense for us to draw a line in the sand and declare the current state to be the 1.0.0 version. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! +Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. For these reasons, we believe now is the right time to mark this milestone by designating the current state as version 1.0.0. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! ## Limitations of current Gosling.js Although we are releasing the first major version, we acknowledge that there are several limitations in the current Gosling that are worth noting here for users: From 18843442f6f11c35a6312b838e8fbb10728e72f7 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Fri, 10 Jan 2025 16:25:17 -0500 Subject: [PATCH 14/17] Update blog/v1-release.md Co-authored-by: Huyen N. Nguyen --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 096a982..95bc510 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -3,7 +3,7 @@ [Sehi L'Yi](https://sehilyi.com), [Huyen N. Nguyen](https://huyennguyen.com/), and [David Kouřil](https://www.davidkouril.com/) ## Background on the Gosling project -The Gosling project began in 2020. That’s two years after the [HiGlass](http://higlass.io/) paper ([Kerpedjiev et al. Genome Biology](https://doi.org/10.1186/s13059-018-1486-1)) was published by the [HIDIVE Lab](https://hidivelab.org/). HiGlass’ powerful data infrastructure and efficient graphics rendering enabled quick navigation and comparison of large genome matrices. However, as its community rapidly grew, the HiGlass team had to implement new custom tracks to meet evolving visualization needs. This was a time-consuming process since implementing a new track easily involves writing thousands of lines of JavaScript code using [PixiJS](https://pixijs.com/). Inspired by the declarative approach of [Vega-Lite](https://vega.github.io/vega-lite/), we started building the Gosling visualization toolkit to enable easier and more flexible creation of genome-mapped data visualizations (hereafter, “genomics data visualizations”). +Initiated in 2020, the Gosling project aimed to develop an integrated platform capable of handling complex data and subsequently creating expressive visualizations. That is two years after the [HiGlass](http://higlass.io/) paper ([Kerpedjiev et al. Genome Biology](https://doi.org/10.1186/s13059-018-1486-1)) was published by the [HIDIVE Lab](https://hidivelab.org/). HiGlass’ powerful data infrastructure and efficient graphics rendering enabled quick navigation and comparison of large genome matrices. However, as its community rapidly grew, the HiGlass team had to implement new custom tracks to meet evolving visualization needs. This was a time-consuming process since implementing a new track easily involves writing thousands of lines of JavaScript code using [PixiJS](https://pixijs.com/). Inspired by the declarative approach of [Vega-Lite](https://vega.github.io/vega-lite/), we started building the Gosling visualization toolkit to enable easier and more flexible creation of genome-mapped data visualizations (hereafter, “genomics data visualizations”). To enable flexible visualization creation, we first needed to understand what kinds of genome-mapped data visualizations exist in the wild. Fortunately, HIDIVE Lab produced a taxonomy for genomics data visualization after reviewing hundreds of data visualizations and tools ([Nusrat et al. CGF](https://onlinelibrary.wiley.com/doi/full/10.1111/cgf.13727)). Adopting the primitive building blocks from the taxonomy (e.g., layouts, arrangements, and alignments), we designed the Gosling grammar for genomics data visualization. The Gosling grammar adopts a computer programming paradigm ([declarative programming](https://en.wikipedia.org/wiki/Declarative_programming)), which enables users to focus more on what they want to create rather than how they want to achieve. Gosling was first published in 2021 ([L’Yi et al. TVCG](https://pmc.ncbi.nlm.nih.gov/articles/PMC8826597/)), describing its five distinctive strengths and introducing its toolkit for JavaScript. Gosling was then extended for Python and computational notebook users ([Gos Python package](https://gosling-lang.github.io/gos/)) with some major usability enhancements, such as transparent data loading ([Manz et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/1/btad050/6998203)). From ef297a8b64481288b08909c7ed83cee60eff5ab9 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Wed, 15 Jan 2025 11:05:22 -0500 Subject: [PATCH 15/17] Update v1-release.md --- blog/v1-release.md | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 95bc510..08c63c7 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -8,20 +8,13 @@ Initiated in 2020, the Gosling project aimed to develop an integrated platform c To enable flexible visualization creation, we first needed to understand what kinds of genome-mapped data visualizations exist in the wild. Fortunately, HIDIVE Lab produced a taxonomy for genomics data visualization after reviewing hundreds of data visualizations and tools ([Nusrat et al. CGF](https://onlinelibrary.wiley.com/doi/full/10.1111/cgf.13727)). Adopting the primitive building blocks from the taxonomy (e.g., layouts, arrangements, and alignments), we designed the Gosling grammar for genomics data visualization. The Gosling grammar adopts a computer programming paradigm ([declarative programming](https://en.wikipedia.org/wiki/Declarative_programming)), which enables users to focus more on what they want to create rather than how they want to achieve. Gosling was first published in 2021 ([L’Yi et al. TVCG](https://pmc.ncbi.nlm.nih.gov/articles/PMC8826597/)), describing its five distinctive strengths and introducing its toolkit for JavaScript. Gosling was then extended for Python and computational notebook users ([Gos Python package](https://gosling-lang.github.io/gos/)) with some major usability enhancements, such as transparent data loading ([Manz et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/1/btad050/6998203)). ## How Gosling is being used in the community -Gosling has been widely adopted both in academia and industry. Gosling visualizations were integrated into widely used data portals in cancer genomics, such as [cBioPoral](https://www.cbioportal.org/patient/openResource_CHROMOSCOPE?studyId=pancan_pcawg_2020&caseId=DO2706) and [Cistrome Data Browser](https://db3.cistrome.org/browser/) ([Taing et al. Nucleic Acids Res](https://academic.oup.com/nar/article/52/D1/D61/7424438)). Researchers at Linköping University used Gosling to create stimuli for controlled user experiments ([Ståhlbom et al. CGF](https://onlinelibrary.wiley.com/doi/10.1111/cgf.15102)). A research team at Johannes Kepler University Linz extended Gosling for time-based data. A company [Appsilon](https://www.appsilon.com/) extended Gosling by building its R Shiny wrapper ([Appsilon/shiny.gosling](https://appsilon.github.io/shiny.gosling/)). +Gosling has been widely adopted both in academia and industry. Gosling visualizations were integrated into widely used data portals in cancer genomics, such as [cBioPortal](https://www.cbioportal.org/patient/openResource_CHROMOSCOPE?studyId=pancan_pcawg_2020&caseId=DO2706) and [Cistrome Data Browser](https://db3.cistrome.org/browser/) ([Taing et al. Nucleic Acids Res](https://academic.oup.com/nar/article/52/D1/D61/7424438)). Researchers at Linköping University used Gosling to create stimuli for controlled user experiments ([Ståhlbom et al. CGF](https://onlinelibrary.wiley.com/doi/10.1111/cgf.15102)). A research team at Johannes Kepler University Linz extended Gosling for time-based data. A company [Appsilon](https://www.appsilon.com/) extended Gosling by building its R Shiny wrapper ([Appsilon/shiny.gosling](https://appsilon.github.io/shiny.gosling/)). -Given the flexibility of Gosling in building genomics data visualizations and tools, Gosling has been used in many research projects in the HIDIVE Lab as well. In collaboration with Peter J Park’s group at Harvard Medical School, we built [Chromoscope](https://chromoscope.bio/) ([L’Yi et al. Nat Methods](https://www.nature.com/articles/s41592-023-02056-x)) for browsing structural variation at multiple scales with Circos-like whole genome overviews and read-level BAM alignment views. In collaboration with researchers at Harvard T.H. Chan School of Public Health and Dana-Farber Cancer Institute, we built [Cistrome Explorer](https://cisvis.gehlenborglab.org) for interactive visual analysis of large-scale epigenomic data ([L’Yi et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/2/btad018/6998202)). Focusing more on visualization and human–computer interaction research, we used Gosling to build the GenoREC ([Pande et al. VIS 2022](https://ieeexplore.ieee.org/document/9908148)), an automated recommendation system that helps people without much visualization knowledge to find visual representations and user interactions appropriate for their data and tasks. A visual analytics tool powered by machine learning models—DRAVA ([Wang et al. CHI 2023](https://dl.acm.org/doi/full/10.1145/3544548.3581127))—integrated Gosling to provide a spatial context of the whole genome Hi-C matrix in exploring the latent space of its sliding images. Most recently, we explored ideas to combine Gosling with various visualization authoring interfaces, such as natural language interfaces, to lower barriers to creating expressive visualizations in a graphical user interface ([L’Yi et al. VIS 2024](https://ieeexplore.ieee.org/document/10670517) and [van den Brandt et al. VIS 2024](https://ieeexplore.ieee.org/document/10681582)). There are many more exciting projects to be announced soon. +Given the flexibility of Gosling in building genomics data visualizations and tools, Gosling has been used in many research projects in the HIDIVE Lab as well. In collaboration with Peter J Park’s group at Harvard Medical School, we built [Chromoscope](https://chromoscope.bio/) ([L’Yi et al. Nat Methods](https://www.nature.com/articles/s41592-023-02056-x)) for browsing structural variation at multiple scales with Circos-like whole genome overviews and read-level BAM alignment views. In collaboration with researchers at Harvard T.H. Chan School of Public Health and Dana-Farber Cancer Institute, we built [Cistrome Explorer](https://cisvis.gehlenborglab.org) for interactive visual analysis of large-scale epigenomic data ([L’Yi et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/2/btad018/6998202)). Focusing more on visualization and human–computer interaction research, we used Gosling to build the GenoREC ([Pandey et al. VIS 2022](https://ieeexplore.ieee.org/document/9908148)), an automated recommendation system that helps people without much visualization knowledge to find visual representations and user interactions appropriate for their data and tasks. A visual analytics tool powered by machine learning models—DRAVA ([Wang et al. CHI 2023](https://dl.acm.org/doi/full/10.1145/3544548.3581127))—integrated Gosling to provide a spatial context of the whole genome Hi-C matrix in exploring the latent space of its sliding images. Most recently, we explored ideas to combine Gosling with various visualization authoring interfaces, such as natural language interfaces, to lower barriers to creating expressive visualizations in a graphical user interface ([L’Yi et al. VIS 2024](https://ieeexplore.ieee.org/document/10670517) and [van den Brandt et al. VIS 2024](https://ieeexplore.ieee.org/document/10681582)). There are many more exciting projects to be announced soon. ## What v1.0.0 means Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. For these reasons, we believe now is the right time to mark this milestone by designating the current state as version 1.0.0. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! -## Limitations of current Gosling.js -Although we are releasing the first major version, we acknowledge that there are several limitations in the current Gosling that are worth noting here for users: - -- Gosling currently only supports React. This means you can embed Gosling visualizations into your webpage or application only if they are based on React. -- Several Gosling features are experimental and not ready for production. These features are located under the “experimental” property of the Gosling specification (e.g., `experimental.performanceMode`), so use them with caution. -- We recognize that Gosling's performance can significantly decrease with certain visual encodings(e.g., overly drawn line connections) and data types (e.g., large plain texts or BAM files). - ## What to expect in the future We aim to address the above limitations and release future versions with major improvements. Specifically: @@ -29,7 +22,7 @@ We aim to address the above limitations and release future versions with major i - **Performance enhancements**: We are experimenting with different approaches to improve the rendering performance. Once we have a better understanding of current performance issues, we will share them with the community in advance. -- **3D Genomics Data Visualization**: And last but not least, we will integrate 3D genomics data visualizations into Gosling. One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. +- **3D Genomics Data Visualization**: We will integrate 3D genomics data visualizations into Gosling! One of the main missing parts in the Gosling grammar, compared to the genomics data visualization taxonomy, is the 3D layouts (e.g., 3D genome structure displayed in 3D visualizations). With this integration, you will be able to build coordinated 2D and 3D genomics data visualizations seamlessly using a single visualization library, Gosling. -## Achknowledgements -We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joining the HIDIVE Lab as a scientific software engineer in March 2023, he made numerous contributions across multiple Gosling projects. This includes performance improvements, new data supports, visual components, and many more. He brought new energy we needed in the Gosling team. Best of luck on his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank everyone who contributed to Gosling along the way to release our first major version. +## Acknowledgements +We would like to give special thanks to [Etowah Adams](https://etowahadams.com/). After joining the HIDIVE Lab as a scientific software engineer in March 2023, he made numerous contributions across multiple Gosling projects. This includes performance improvements, new data supports, visual components, and many more. He brought the new energy we needed in the Gosling team. Best of luck on his new journey at Columbia University! We would like to thank [Trevor Manz](https://trevorma.nz/) for his housekeeping (countless code reviews), critical improvements on engineering (e.g., improved types), and expanding practical use cases of Gosling (e.g., support of Observable). He made our life as Gosling developers easier and made Gosling more useful for users. Last, but not least, we would like to thank [everyone who contributed to Gosling](https://github.com/gosling-lang/gosling.js/graphs/contributors) along the way to release our first major version. From 968ba4b71f764fbd65cf9c721b3384a85b403819 Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Wed, 15 Jan 2025 11:16:16 -0500 Subject: [PATCH 16/17] Update v1-release.md --- blog/v1-release.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index 08c63c7..e744c6b 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -7,10 +7,10 @@ Initiated in 2020, the Gosling project aimed to develop an integrated platform c To enable flexible visualization creation, we first needed to understand what kinds of genome-mapped data visualizations exist in the wild. Fortunately, HIDIVE Lab produced a taxonomy for genomics data visualization after reviewing hundreds of data visualizations and tools ([Nusrat et al. CGF](https://onlinelibrary.wiley.com/doi/full/10.1111/cgf.13727)). Adopting the primitive building blocks from the taxonomy (e.g., layouts, arrangements, and alignments), we designed the Gosling grammar for genomics data visualization. The Gosling grammar adopts a computer programming paradigm ([declarative programming](https://en.wikipedia.org/wiki/Declarative_programming)), which enables users to focus more on what they want to create rather than how they want to achieve. Gosling was first published in 2021 ([L’Yi et al. TVCG](https://pmc.ncbi.nlm.nih.gov/articles/PMC8826597/)), describing its five distinctive strengths and introducing its toolkit for JavaScript. Gosling was then extended for Python and computational notebook users ([Gos Python package](https://gosling-lang.github.io/gos/)) with some major usability enhancements, such as transparent data loading ([Manz et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/1/btad050/6998203)). -## How Gosling is being used in the community -Gosling has been widely adopted both in academia and industry. Gosling visualizations were integrated into widely used data portals in cancer genomics, such as [cBioPortal](https://www.cbioportal.org/patient/openResource_CHROMOSCOPE?studyId=pancan_pcawg_2020&caseId=DO2706) and [Cistrome Data Browser](https://db3.cistrome.org/browser/) ([Taing et al. Nucleic Acids Res](https://academic.oup.com/nar/article/52/D1/D61/7424438)). Researchers at Linköping University used Gosling to create stimuli for controlled user experiments ([Ståhlbom et al. CGF](https://onlinelibrary.wiley.com/doi/10.1111/cgf.15102)). A research team at Johannes Kepler University Linz extended Gosling for time-based data. A company [Appsilon](https://www.appsilon.com/) extended Gosling by building its R Shiny wrapper ([Appsilon/shiny.gosling](https://appsilon.github.io/shiny.gosling/)). +## How Gosling has been used +Gosling has been widely adopted both in academia and industry. Gosling visualizations were integrated into widely used data portals, such as [cBioPortal](https://www.cbioportal.org/patient/openResource_CHROMOSCOPE?studyId=pancan_pcawg_2020&caseId=DO2706), [REDIportal](http://srv00.recas.ba.infn.it/atlas/), and [Cistrome Data Browser](https://db3.cistrome.org/browser/) ([Taing et al. Nucleic Acids Res](https://academic.oup.com/nar/article/52/D1/D61/7424438)). Researchers at Linköping University used Gosling to create stimuli for controlled user experiments ([Ståhlbom et al. CGF](https://onlinelibrary.wiley.com/doi/10.1111/cgf.15102)). A research team at Johannes Kepler University Linz extended Gosling for time-based data. A company [Appsilon](https://www.appsilon.com/) extended Gosling by building its R Shiny wrapper ([Appsilon/shiny.gosling](https://appsilon.github.io/shiny.gosling/)). -Given the flexibility of Gosling in building genomics data visualizations and tools, Gosling has been used in many research projects in the HIDIVE Lab as well. In collaboration with Peter J Park’s group at Harvard Medical School, we built [Chromoscope](https://chromoscope.bio/) ([L’Yi et al. Nat Methods](https://www.nature.com/articles/s41592-023-02056-x)) for browsing structural variation at multiple scales with Circos-like whole genome overviews and read-level BAM alignment views. In collaboration with researchers at Harvard T.H. Chan School of Public Health and Dana-Farber Cancer Institute, we built [Cistrome Explorer](https://cisvis.gehlenborglab.org) for interactive visual analysis of large-scale epigenomic data ([L’Yi et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/2/btad018/6998202)). Focusing more on visualization and human–computer interaction research, we used Gosling to build the GenoREC ([Pandey et al. VIS 2022](https://ieeexplore.ieee.org/document/9908148)), an automated recommendation system that helps people without much visualization knowledge to find visual representations and user interactions appropriate for their data and tasks. A visual analytics tool powered by machine learning models—DRAVA ([Wang et al. CHI 2023](https://dl.acm.org/doi/full/10.1145/3544548.3581127))—integrated Gosling to provide a spatial context of the whole genome Hi-C matrix in exploring the latent space of its sliding images. Most recently, we explored ideas to combine Gosling with various visualization authoring interfaces, such as natural language interfaces, to lower barriers to creating expressive visualizations in a graphical user interface ([L’Yi et al. VIS 2024](https://ieeexplore.ieee.org/document/10670517) and [van den Brandt et al. VIS 2024](https://ieeexplore.ieee.org/document/10681582)). There are many more exciting projects to be announced soon. +Given the flexibility of Gosling in building genomics data visualizations and tools, Gosling has been used in many research projects in the HIDIVE Lab as well. In collaboration with Peter J Park’s group at Harvard Medical School, we built [Chromoscope](https://chromoscope.bio/) ([L’Yi et al. Nat Methods](https://www.nature.com/articles/s41592-023-02056-x)) for browsing structural variation at multiple scales with Circos-like whole genome overviews and read-level BAM alignment views. In collaboration with researchers at Harvard T.H. Chan School of Public Health and Dana-Farber Cancer Institute, we built [Cistrome Explorer](https://cisvis.gehlenborglab.org) for interactive visual analysis of large-scale epigenomic data ([L’Yi et al. Bioinformatics](https://academic.oup.com/bioinformatics/article/39/2/btad018/6998202)). Focusing more on visualization and human–computer interaction research, we used Gosling to build the GenoREC ([Pandey et al. VIS 2022](https://ieeexplore.ieee.org/document/9908148)), an automated recommendation system that helps people without much visualization knowledge to find visual representations and user interactions appropriate for their data and tasks. A visual analytics tool powered by machine learning models—DRAVA ([Wang et al. CHI 2023](https://dl.acm.org/doi/full/10.1145/3544548.3581127))—integrated Gosling to provide a spatial context of the whole genome Hi-C matrix in exploring the latent space of its sliding images. Most recently, we explored ideas to combine Gosling with various visualization authoring interfaces, such as natural language interfaces, to lower barriers to creating expressive visualizations in a graphical user interface ([L’Yi et al. VIS 2024](https://ieeexplore.ieee.org/document/10670517) and [van den Brandt et al. VIS 2024](https://ieeexplore.ieee.org/document/10681582)). Aiming to help people with visual impairments, AltGosling automatically generates accessible textual descriptions that describe genomics data visualizations ([Smits et al. Bioinformatics 2024](https://academic.oup.com/bioinformatics/article/40/12/btae670/7900296)). There are many more exciting projects to be announced soon. ## What v1.0.0 means Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. For these reasons, we believe now is the right time to mark this milestone by designating the current state as version 1.0.0. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! From c2f25c77b3062fb904b577dbb8c40bdc3262e43c Mon Sep 17 00:00:00 2001 From: SEHI L'YI Date: Wed, 15 Jan 2025 11:17:47 -0500 Subject: [PATCH 17/17] Update v1-release.md --- blog/v1-release.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/blog/v1-release.md b/blog/v1-release.md index e744c6b..e96a8f2 100644 --- a/blog/v1-release.md +++ b/blog/v1-release.md @@ -16,7 +16,7 @@ Given the flexibility of Gosling in building genomics data visualizations and to Considering Gosling’s successful and widespread application across a variety of the aforementioned use cases, it’s safe to say that Gosling has reached a certain feature set that’s proven useful in multiple scenarios. As for any software—and academic software nonetheless—there still are some rough edges and unpolished parts of the interface and implementation. We’re going to focus on improving those parts in the upcoming months. At the same time, we’re excited to bring larger changes to Gosling's implementation and features, too. For these reasons, we believe now is the right time to mark this milestone by designating the current state as version 1.0.0. This allows existing software that depends on the current state of Gosling to pin the major version 1, while more experimental projects can follow the minor versions that we’d make in the near future. Thank you for being a part of this journey. Gosling v1.0 is here and ready for you to get started! ## What to expect in the future -We aim to address the above limitations and release future versions with major improvements. Specifically: +We aim to address some of the current limitations of Gosling.js and release future versions with major improvements. Specifically: - **Framework-agnostic design**: We are working to remove dependencies on React and HiGlass to reduce bottlenecks in maintaining the codebase and adding new functionalities. This will enable us to make Gosling framework-agnostic, supporting not only React but also Vue, Angular, and other of your favorite front-end frameworks.