Synapser project by Ahmed Hamada

Synapser: Enhancing Collaborative Data Science in R

The `synapser` package provides an R interface to Synapse, a platform for collaborative, reproducible research. Synapse integrates data, code, and text, offering robust access control and provenance tracking. I contributed to solving critical issues, optimizing workflows, and ensuring compatibility across various systems.

What is Synapser?

The `synapser` package enables researchers to programmatically interact with Synapse, offering tools for efficient data management and workflow automation. Key features include:

  • Data Integration: Seamlessly combines data, code, and text.
  • Access Control: Provides secure, role-based permissions.
  • Provenance Tracking: Ensures traceability and reproducibility.

My Contributions

As part of the development team, I worked on addressing challenges and enhancing the project with modern solutions, including:

  • M1 Compatibility: Resolved Apple M1 machine issues for seamless operation.
  • Python Integration: Transitioned from `pythonEmbedInR` to `Reticulate` for better maintainability.
  • Automated Documentation: Enabled creation of `Rd` files directly in R.
  • Testing Upgrades: Fixed testing issues and updated tools to ensure stability.
  • CI/CD Pipelines: Built pipelines for automated testing and deployment on Windows and macOS.
  • Improved Documentation: Authored workflows and converted R outputs to HTML.

Key Features Delivered

My work resulted in significant advancements:

  • Resolved compatibility issues with Apple M1 machines.
  • Streamlined Python integration using `Reticulate`.
  • Automated generation of `Rd` files directly in R.
  • Enhanced testing workflows and upgraded project tools.
  • Implemented CI/CD pipelines for multi-platform deployment.
  • Improved project documentation and processes.

These enhancements strengthened the `synapser` package, making it a reliable tool for collaborative data science.

Technologies Used

Modern tools and platforms supported project development:

  • R: Core for package development.
  • Reticulate: Simplified Python integration within R workflows.
  • Synapse: Collaborative platform for data and code.
  • GitHub Actions: Enabled automated testing and deployment.
  • Categories :

    R - Python - CI/CD - GitHub Actions

  • Client :

    DevNomadz

  • Website :

    https://r-docs.synapse.org/index.html

  • Location :

    Remote

M1 Compatibility by Ahmed Hamada
Python Integration with Reticulate by Ahmed Hamada