diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index fa8fbb2..cff56a7 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -4,6 +4,19 @@ on: push: branches: - main + paths: + - .github/workflows/** + - _quarto.yml + - Project.toml + - Manifest.toml + - CNAME + - index.qmd + - index-listing.json + - index.feed-full-staged + - styles.css + - pages/** + - JuliaHealthBlog/** + - assets/** workflow_dispatch: permissions: diff --git a/.github/workflows/preview.yml b/.github/workflows/preview.yml index feb7f5a..f73d961 100644 --- a/.github/workflows/preview.yml +++ b/.github/workflows/preview.yml @@ -54,8 +54,13 @@ jobs: - name: Set up Quarto uses: quarto-dev/quarto-actions/setup@v2 + - name: Set PR branch for edit links + run: sed -i "s|__PR_BRANCH__|${{ github.head_ref }}|g" _quarto-pr.yml + - name: Render site uses: quarto-dev/quarto-actions/render@v2 + env: + QUARTO_PROFILE: pr - name: Deploy preview if: github.event.pull_request.head.repo.full_name == github.repository diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 0000000..06729bd --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,6 @@ +JuliaHealth Community Standards +========================= + +The JuliaHealth community abides by the broader Julia Community Code of Conduct (CoC). You can find that CoC listed here: https://julialang.org/community/standards/ + +If you have a conflict or concern that requires resolution, please contact the [Julia Community Stewards](https://julialang.org/community/stewards/). diff --git a/_quarto-pr.yml b/_quarto-pr.yml new file mode 100644 index 0000000..e597a75 --- /dev/null +++ b/_quarto-pr.yml @@ -0,0 +1,2 @@ +website: + repo-branch: "__PR_BRANCH__" diff --git a/_quarto.yml b/_quarto.yml index 32fec9b..5e5829c 100644 --- a/_quarto.yml +++ b/_quarto.yml @@ -7,6 +7,9 @@ website: title: "JuliaHealth" image: "assets/images/logo.png" image-alt: "JuliaHub Logo" + repo-url: https://github.com/JuliaHealth/juliahealth.github.io + repo-branch: main + repo-actions: [edit] announcement: icon: megaphone dismissable: true @@ -20,6 +23,18 @@ website: - href: index.qmd text: Home icon: house-door + - text: About Us + icon: info-circle + menu: + - href: pages/who_we_are.qmd + text: Who We Are + icon: people + - href: pages/research.qmd + text: Research + icon: journal-text + - href: pages/connect_with_us.qmd + text: Connect With Us + icon: chat-heart - href: pages/packages.qmd text: Packages icon: boxes @@ -32,9 +47,15 @@ website: - href: pages/ecosystem_health.qmd text: Ecosystem Health icon: activity - - href: pages/connect_with_us.qmd - text: Connect With Us - icon: chat-heart + - href: pages/ecosystem_comparison.qmd + text: Ecosystem Comparison + icon: columns-gap + - text: Contributing + icon: heart + menu: + - href: pages/contributing.qmd + text: Migrating your package to JuliaHealth + icon: arrow-left-right - text: "More" menu: - href: pages/meeting_notes.qmd diff --git a/pages/contributing.qmd b/pages/contributing.qmd new file mode 100644 index 0000000..99832b0 --- /dev/null +++ b/pages/contributing.qmd @@ -0,0 +1,16 @@ +--- +title: "Migrating your package to JuliaHealth" +--- + +For package maintainers who want to transfer a package into the JuliaHealth organization. + +- Update docs and README links that point to the old repository location. +- Use the `GitHub transfer option` in the settings. +- Make a pull request to [this repository](https://github.com/JuliaRegistries/General/pulls) in which you edit the repo URL in the package's Package.toml file +- If the PR is not attended to, or if you have any questions, you can ask for help in the `#pkg-registration` Slack channel. + +Technically if you skip the second step things will keep working, because GitHub will redirect; but it is best practice. For this reason, when you try to register a new release, the Julia Registrator will complain if the second step is skipped. + +Reference: [How do I transfer a package to an organization or another user?](https://github.com/JuliaRegistries/General?tab=readme-ov-file#how-do-i-transfer-a-package-to-an-organization-or-another-user) + +If you need help with onboarding or migration, reach out through [Connect With Us](connect_with_us.qmd). diff --git a/pages/ecosystem_comparison.qmd b/pages/ecosystem_comparison.qmd new file mode 100644 index 0000000..85ab81d --- /dev/null +++ b/pages/ecosystem_comparison.qmd @@ -0,0 +1,56 @@ +--- +title: "Ecosystem Comparison" +--- + +JuliaHealth provides tools for health data science, observational health research, and biomedical imaging in the Julia ecosystem. Researchers often rely on Python and R frameworks for similar workflows. This page highlights how key functionalities available in those ecosystems can also be achieved using Julia and the JuliaHealth ecosystem. + +This comparison focuses on **functional capabilities**, rather than benchmarking performance. Mappings below are capability-level comparisons and may be approximate rather than exact one-to-one package equivalents. + +R (via OHDSI/HADES) currently provides the most mature and standardized ecosystem for OMOP-based observational research. The JuliaHealth ecosystem is actively developing and already provides growing support across key workflows, with the goal of broader coverage over time. + +### Observational Health Research (OMOP CDM) + +| Functionality | Julia / JuliaHealth | R (OHDSI / HADES) | Python | +|---|---|---|---| +| Database connection to OMOP CDM | [OMOPCDMDatabaseConnector.jl](https://github.com/JuliaHealth/OMOPCDMDatabaseConnector.jl) | [DatabaseConnector](https://github.com/OHDSI/DatabaseConnector) | Fragmented ecosystem; no unified OHDSI-equivalent standard | +| OMOP CDM data model handling | [OMOPCommonDataModel.jl](https://github.com/JuliaHealth/OMOPCommonDataModel.jl), [HealthBase.jl](https://github.com/JuliaHealth/HealthBase.jl) (emerging support) | [OMOP Common Data Model](https://github.com/OHDSI/CommonDataModel) | Fragmented ecosystem; no unified OHDSI-equivalent standard | +| SQL generation from cohort definitions | [OHDSICohortExpressions.jl](https://github.com/MechanicalRabbit/OHDSICohortExpressions.jl)† | [SqlRender](https://github.com/OHDSI/SqlRender), [CirceR](https://github.com/OHDSI/CirceR) | Fragmented ecosystem; no unified OHDSI-equivalent standard | +| Cohort creation | [OMOPCDMCohortCreator.jl](https://github.com/JuliaHealth/OMOPCDMCohortCreator.jl) | [CohortGenerator](https://github.com/OHDSI/CohortGenerator), [Characterization](https://github.com/OHDSI/Characterization)| [ohdsi-cohort-generator](https://pypi.org/project/ohdsi-cohort-generator/) | +| Patient pathway analysis | [OMOPCDMPathways.jl](https://github.com/JuliaHealth/OMOPCDMPathways.jl) | OHDSI treatment pathway tooling (package availability varies) | Limited native support | + +### Epidemiology & Health Data Analysis + +| Functionality | Julia | R | Python | +|---|---|---|---| +| Epidemiological modelling | Emerging epidemiology tooling (e.g., [JuliaEpi](https://github.com/JuliaEpi)†, [DifferentialEquations.jl](https://github.com/SciML/DifferentialEquations.jl)†) | [EpiModel](https://github.com/statnet/EpiModel) | [Epipy](https://cmrivers.github.io/epipy/) | +| Cohort feature extraction | [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl)† [MLJ.jl](https://github.com/alan-turing-institute/MLJ.jl)† (via [HealthBase.jl](https://github.com/JuliaHealth/HealthBase.jl)) | [FeatureExtraction](https://github.com/OHDSI/FeatureExtraction) | General-purpose tools (e.g., statsmodels, lifelines); fewer standardized epidemiology pipelines | +| Patient-level prediction pipelines | [MLJ.jl](https://github.com/alan-turing-institute/MLJ.jl)† workflows | [PatientLevelPrediction](https://github.com/OHDSI/PatientLevelPrediction) | [scikit-learn](https://scikit-learn.org/) | + +### Biomedical Imaging & Signals + +| Functionality | Julia | R | Python | +|---|---|---|---| +| MRI simulation | [KomaMRI.jl](https://github.com/JuliaHealth/KomaMRI.jl) | Limited support | Custom workflows (no common direct equivalent) | +| Medical image reconstruction | [JuliaImageRecon](https://github.com/JuliaImageRecon)† ecosystem | Domain-specific package mix (varies) | [SimpleITK](https://simpleitk.org/) / [MONAI](https://github.com/Project-MONAI/MONAI) | +| Medical image visualization | [MedEye3d.jl](https://github.com/JuliaHealth/MedEye3d.jl) | [oro.nifti](https://cran.r-project.org/package=oro.nifti) | [napari](https://napari.org/) | +| Physiological signal analysis | [NeuroAnalyzer.jl](https://github.com/JuliaHealth/NeuroAnalyzer.jl), [DSP.jl](https://github.com/JuliaDSP/DSP.jl)† | [biosignalEMG](https://cran.r-project.org/package=biosignalEMG) | [NeuroKit2](https://github.com/neuropsychology/NeuroKit) | + +### Bioinformatics + +| Functionality | Julia | R | Python | +|---|---|---|---| +| Bioinformatics workflows | [BioJulia](https://github.com/BioJulia)† ecosystem (growing; less mature than Bioconductor) | [Bioconductor](https://www.bioconductor.org/) | [Biopython](https://biopython.org/) | + +### Ecosystem-Level Tools + +| Functionality / Application | Julia | R | Python | +|---|---|---|---| +| Data manipulation | [DataFrames.jl](https://github.com/JuliaData/DataFrames.jl)† | [dplyr](https://dplyr.tidyverse.org/) | [pandas](https://pandas.pydata.org/) | +| Visualization | [Makie](https://makie.org/)† / [Plots.jl](https://github.com/JuliaPlots/Plots.jl)† | [ggplot2](https://ggplot2.tidyverse.org/) | [matplotlib](https://matplotlib.org/) | +| Machine learning | [MLJ.jl](https://github.com/alan-turing-institute/MLJ.jl)†, [Flux.jl](https://github.com/FluxML/Flux.jl)† | [tidymodels](https://www.tidymodels.org/) / [caret](https://cran.r-project.org/package=caret) | [scikit-learn](https://scikit-learn.org/) | +| Numerical computing | Julia (LinearAlgebra, SciML ecosystem) | base R (matrix, stats) + [Matrix](https://cran.r-project.org/package=Matrix) / [Rcpp](https://cran.r-project.org/package=Rcpp) |[NumPy](https://numpy.org/) | +| Notebooks | [Pluto.jl](https://plutojl.org/) / [IJulia](https://github.com/JuliaLang/IJulia.jl)† | [RMarkdown](https://rmarkdown.rstudio.com/) | [Jupyter](https://jupyter.org/) | + +### Notes + +† Not a JuliaHealth package. diff --git a/pages/ecosystem_health.qmd b/pages/ecosystem_health.qmd index e472aec..9c1cc7f 100644 --- a/pages/ecosystem_health.qmd +++ b/pages/ecosystem_health.qmd @@ -690,4 +690,4 @@ raw_data_links = """ """ HTML(raw_data_links) -``` \ No newline at end of file +``` diff --git a/pages/research.qmd b/pages/research.qmd new file mode 100644 index 0000000..1805f4a --- /dev/null +++ b/pages/research.qmd @@ -0,0 +1,42 @@ +--- +title: "Research" +--- + +JuliaHealth supports research across healthcare data science, observational health research, and medical imaging. The ecosystem is actively used in academic research and collaborative scientific projects across the Julia community. + +Below are selected publications connected to the JuliaHealth ecosystem and its contributors. + +### JuliaHealth Ecosystem + +| Publication | Authors | Venue | Year | Link | +|-------------|--------|------|------|------| +| Bringing Julia to Health: A Concise Overview of JuliaHealth | Jacob S. Zelko, Carlos Castillo-Passi, Jakub Mitura, Divyansh Goyal, Kosuri Lakshmi Indu, Jay Sanjay Landge | JuliaCon Proceedings | 2026 | [DOI](https://doi.org/10.21105/jcon.00194) | +| Physiological signal analysis and open science using the Julia language and associated software | George Datseris, Jacob S. Zelko | Frontiers in Network Physiology | 2024 | [DOI](https://doi.org/10.3389/fnetp.2024.1478280) | +| The use of the Julia programming language for global health informatics and observational health research | Jacob S. Zelko, Varshini Chinta, Malina Hy, Fareeda Abdelazeez | OHDSI Global Symposium | 2023 | [Conference Page](https://www.ohdsi.org/2023showcase-213) | + +### Medical Imaging Ecosystem + +| Publication | Authors | Venue | Year | Link | +|-------------|--------|------|------|------| +| KomaMRI.jl: An open-source framework for general MRI simulations with GPU acceleration | Carlos Castillo-Passi, Ronal Coronado, Gabriel Varela-Mattatall, Carlos Alberola-López, René Botnar, Pablo Irarrazaval | Magnetic Resonance in Medicine | 2023 | [DOI](https://doi.org/10.1002/mrm.29635) | +| Versatile and highly efficient MRI simulation of arbitrary motion in KomaMRI | Pablo Villacorta-Aylagas et al. | Magnetic Resonance in Medicine | 2025 | [DOI](https://doi.org/10.1002/mrm.70145) | +| Highly efficient image navigator based 3D whole-heart cardiac MRA at 0.55T | Carlos Castillo-Passi et al. | Magnetic Resonance in Medicine | 2025 | [DOI](https://doi.org/10.1002/mrm.30316) | +| Cardiac magnetic resonance fingerprinting for simultaneous T1, T2 and fat-fraction quantification at 0.55T | Diego Pedraza, Carlos Castillo-Passi et al. | NMR in Biomedicine | 2025 | [DOI](https://doi.org/10.1002/nbm.70143) | +| Simultaneous 3D aortic lumen and vessel wall imaging at 0.55T | Matias Paredes, Carlos Castillo-Passi et al. | Magnetic Resonance in Medicine | 2025 | [DOI](https://doi.org/10.1002/mrm.30611) | + +### JuliaHealth Software and Tools + +| Publication | Authors | Venue | Year | Link | +|-------------|--------|------|------|------| +| OMOPCDMCohortCreator | Jacob S. Zelko, Varshini Chinta | Zenodo | 2022 | [DOI](https://doi.org/10.5281/zenodo.7052105) | +| OMOPCDMPathways.jl | Jay Sanjay Landge, Jacob S. Zelko | Zenodo | 2024 | [DOI](https://doi.org/10.5281/zenodo.14674051) | +| 3D Medical Segmentation Visualization in Julia with MedEye3D | Jakub Mitura, Beata E. Chrapko | Zeszyty Naukowe WWSI | 2021 | [DOI](https://doi.org/10.26348/znwwsi.25.57) | + +### JuliaHealth Researchers + +| Researcher | Area | Google Scholar | +|-----------|------|----------------| +| Jacob S. Zelko | JuliaHealth Lead, Observational Health Research | [Profile](https://scholar.google.com/citations?user=hNlNUewAAAAJ) | +| Carlos Castillo-Passi | Medical Imaging and MRI Simulation | [Profile](https://scholar.google.com/citations?user=WzleS8YAAAAJ) | +| Adam Wysokiński | Health data science and statistical computing | [Profile](https://scholar.google.com/citations?user=9-zz7IwAAAAJ) | +| Aurora Rossi | Computational health research | [Profile](https://scholar.google.com/citations?user=3aIZuFkAAAAJ) | \ No newline at end of file diff --git a/pages/who_we_are.qmd b/pages/who_we_are.qmd new file mode 100644 index 0000000..11af4cd --- /dev/null +++ b/pages/who_we_are.qmd @@ -0,0 +1,53 @@ +--- +title: "Who We Are" +--- + +JuliaHealth is an open-source ecosystem dedicated to developing healthcare and biomedical research tools in the Julia programming language. The ecosystem brings together researchers, clinicians, data scientists and developers interested in building scalable and high-performance tools for health data science. + +The JuliaHealth ecosystem focuses on enabling efficient analysis of healthcare data, including electronic health records, observational health data, medical imaging and machine learning applications in medicine. By leveraging Julia’s performance and composability, the project aims to support interoperable software tools that accelerate biomedical and clinical research. + +JuliaHealth promotes open scientific collaboration by providing reusable infrastructure and tools for healthcare analytics and computational medicine. + +## Community + +JuliaHealth is a global community of researchers and developers contributing to open-source healthcare software. Contributors come from universities, hospitals, research institutes and industry. + +Development happens across multiple repositories under the JuliaHealth GitHub organization, where contributors collaborate on packages, documentation, tutorials and research software. + +## Leadership + +The JuliaHealth ecosystem is guided by maintainers and organization owners within the Julia community. + +**Jacob S. Zelko currently serves as the JuliaHealth Lead.** + +| Avatar | Name | GitHub | Role | +|------|------|------|------| +| ![](https://github.com/aeisman.png){width=60} | Aaron Eisman | aeisman | Organization Owner | +| ![](https://github.com/andreasnoack.png){width=60} | Andreas Noack | andreasnoack | Organization Owner | +| ![](https://github.com/cncastillo.png){width=60} | Carlos Castillo Passi | cncastillo | Organization Owner | +| ![](https://github.com/DilumAluthge.png){width=60} | Dilum Aluthge | DilumAluthge | Organization Owner | +| ![](https://github.com/INSARKAR.png){width=60} | INSARKAR | INSARKAR | Organization Owner | +| ![](https://github.com/TheCedarPrince.png){width=60} | **Jacob S. Zelko** | TheCedarPrince | **JuliaHealth Lead** | +| ![](https://github.com/timholy.png){width=60} | Tim Holy | timholy | Organization Owner | +| ![](https://github.com/ViralBShah.png){width=60} | Viral B. Shah | ViralBShah | Organization Owner | +| ![](https://github.com/vjd.png){width=60} | Vijay Ivaturl | vjd | Organization Owner | + +## Teams and Sub-Ecosystems + +Development within JuliaHealth is organized through several teams responsible for maintaining different parts of the ecosystem. + +| Team | Description | +|-----|-----| +| Committers (all repos) | Commit access to repositories across the JuliaHealth organization | +| JuliaHealth Website and Org Documentation | Maintains the JuliaHealth website and ecosystem documentation | +| JuliaHealthLLMs | Research and experimentation with large language models for healthcare | +| Medical Imaging Subecosystem | Development of tools and packages for medical imaging workflows | +| Observational Health Subecosystem | Development of tools for observational health data science and OMOP workflows | + +## Governance + +JuliaHealth is developed as an open-source community project within the broader Julia ecosystem. + +The JuliaHealth organization on GitHub is maintained by a group of organization owners and maintainers who guide the development of the ecosystem. These maintainers help coordinate package development, community discussions and ecosystem growth. + +Decisions about the ecosystem are typically made through open discussions on GitHub issues, pull requests and community channels within the Julia community. \ No newline at end of file