Home About Services SCE Configurator DoLoup Open Source Publications Careers Support Contact
Open source · Apache License 2.0

Clinical programming tools, open to everyone.

Meta-Xceed publishes selected utilities from our own delivery work — source code, source packages and documentation — under the Apache License 2.0. The first release is Migrate Studio, in two editions. Full source, issues and history are on GitHub.

What you get with every release

Apache-2.0 Full source code User manual Synthetic sample programs SHA-256 checksums Runs locally
● Available nowv0.3 betaTwo editions
Migrate Studio

Move SAS programs between platforms — with a version behind every change

Point Migrate Studio at a folder of SAS programs, load a rule book, and it applies migration fixes you can review line by line. Originals are copied into _migrate_original/ before anything is written.

  • ✓A rule book you can read — each rule shows what it matches, what it writes, and why
  • ✓In-place updates with write-once, byte-for-byte backups
  • ✓Fixed SAS, side-by-side Fix Compare and per-program version history, with Revert
  • ✓A run log (history.json) of when, which folder, which rule book and which programs changed

Two editions, one workflow. Pick by the direction you are migrating.

Migrate Studio — Apply Fix · EXAMPLE001 ● v0.3 beta
*** adam/adae.sas · before ***;
libname source "C:/project/raw";

*** adam/adae.sas · after ***;
libname source "../data/raw";

*** backup, written once ***;
adam/_migrate_original/adae.sas ✓
NOTE: 8 programs changed · history recorded
Download

Choose your edition

Pick by the direction you are migrating, not by the language you prefer. The two editions keep separate rule books.

Prefer Git?The same source files are on GitHub. The ZIPs below are per-edition snapshots; each includes the shared third-party notices and adjusts its README/NOTICE links for standalone use. GitHub is where issues, pull requests and history live.
git clone https://github.com/sy-truong/migrate-studio.git

Python edition

Windows → LinuxPython 3.9+v0.3 beta
📦

Source package

The full tree — app, rule engines, rules, synthetic samples, tests and docs. Runs on Windows, macOS or Linux.

.zip0.5 MBPython 3.9+
  1. Unzip and open a terminal in migrate-studio-python/.
  2. Create and activate a virtual environment, then install the requirements using the commands below.
  3. Check your setup and start the app.
python -m venv .venv
# macOS / Linux
. .venv/bin/activate
# Windows PowerShell: .venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
python migrate_studio.py --check --data-dir ./local-data
python migrate_studio.py --data-dir ./local-data

Use Chrome or Edge on localhost for direct folder writes. Without --data-dir, history and caches use the operating system’s per-user application data folder outside the source tree.

Before you run:Migrate Studio is beta developer software and its rule books are examples. Review the validation notes and qualify your own rules before regulated use.

R Shiny edition

Linux → WindowsR 4.2.3+ · Shiny 1.12.1+v0.3 beta
📦

Source package

The complete Shiny app as plain .R files, with the browser app, rule book, synthetic samples, tests and docs. This edition has no installer or executable: you run it with R.

.zip0.4 MBR sources
  1. Download and verify the checksum below.
  2. Unzip. Everything lands in one migrate-studio-r-shiny/ folder.
  3. With R 4.2.3+ and Shiny 1.12.1+, install the dependencies declared in DESCRIPTION: Rscript tools/install_dependencies.R.
  4. Open a terminal in that folder and follow Run it with R.

The native R engine needs no Python. The optional Python 3.9+ bridge also needs reticulate and the Python requirements. Use Chrome or Edge for browser folder access.

▶️

Run it with R

An ordinary Shiny app. Start it from the unzipped folder, or deploy it to Shiny Server or Posit Connect.

# install dependencies declared in DESCRIPTION
Rscript tools/install_dependencies.R
Rscript tools/check_env.R

# start the native R engine
Rscript run_migrate_studio.R --engine r --data-dir ./local-data

# allow access to an example server folder
Rscript run_migrate_studio.R --engine r --folder-mode server \
  --server-roots /srv/example-programs --data-dir ./local-data
Before deployment:Requires R 4.2.3+ and Shiny 1.12.1+. Run Rscript tools/check_env.R and read the deployment notes for authentication, filesystem access and shared-history limits. The same validation notes apply: this is beta developer software with example rules.

Verify your download

SHA-256 checksums for the v0.3 beta files above, also published as SHA256SUMS.txt for the Python edition and the R Shiny edition.

migrate-studio-python-oct7-v0.3-beta.zipef2256ae4e75c203dc99497ce2e7d69f297ab9af745a254a9c1870f692b45913
migrate-studio-r-shiny-oct7-v0.3-beta.zip91741eae120f37459f3647780c414859fa4c9e0a07758cd8a7bc8f543852324c
How to check
# Windows (PowerShell)
Get-FileHash .\migrate-studio-python-oct7-v0.3-beta.zip -Algorithm SHA256
Get-FileHash .\migrate-studio-r-shiny-oct7-v0.3-beta.zip -Algorithm SHA256

# macOS / Linux
shasum -a 256 migrate-studio-python-oct7-v0.3-beta.zip
shasum -a 256 migrate-studio-r-shiny-oct7-v0.3-beta.zip

# or, with SHA256SUMS.txt saved beside your downloads
shasum -a 256 -c SHA256SUMS.txt
Documentation

Read before you run

Everything is plain text or HTML, so you can read it online or from the package.

Inside the package

Small enough to read in an afternoon

No build step and no hidden services. The browser app is plain HTML, CSS and JavaScript, served by a short Python script or by a Shiny process.

  • ✓Focused JavaScript, Python and R regression tests ship with the source; JavaScript tests need Node.js 22+
  • ✓Rules live in data files, not buried in code
  • ✓Third-party components are listed with their licences
migrate-studio-python/
migrate_studio.py # local server + launcher www/ # browser app python/ # batch & MC rule engines rules/ Migrate_Studio_Rules.xlsx Migrate_Studio_Rules_AI.json migration_rules.json migrate_studio_rules.json migration_check.sas samples/EXAMPLE001_windows_to_linux/ tests/ # tests/js, tests/python tools/check_env.py requirements.txt · requirements-dev.txt docs/ # user_manual.html, rule-book.md README.md · LICENSE · NOTICE · CHANGELOG.md
migrate-studio-r-shiny/
run_migrate_studio.R # launcher: start here app.R · DESCRIPTION # Shiny app + R dependencies R/ # API dispatch, native R engine www/ # browser app python/ # optional bridge + engine tests rules/ Migrate_Studio_Rules.xlsx Migrate_Studio_Rules_AI.json samples/EXAMPLE002_linux_to_windows/ tests/ # tests/js, tests/testthat tools/check_env.R · tools/install_dependencies.R tools/run_r_tests.R · tools/run_js_tests.R requirements.txt · requirements-dev.txt docs/ # manual, rule book, deployment README.md · LICENSE · NOTICE · CHANGELOG.md
More to come

What we are preparing next

Migrate Studio is the first tool we have opened up. These are in preparation; each will appear here, with the same downloads and documentation, when it is ready.

In preparation

TLF Studio

A metadata editor for clinical-trial tables, listings and figures.

In preparation

Server-to-server compare

Compare files and folders across two server roots to confirm a migration changed nothing it shouldn't.

Built in the open

Found a bug, or a rule we missed?

Tell us what you ran into, or read how to contribute a fix.

Get support   How to contribute Open an issue ↗ View on GitHub ↗

The project lives under a personal GitHub account today; the link may move to an organization.