Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
c8c717f
TCIA and Xena Browser Downloaders
andrewscouten Jan 13, 2026
493fcd1
Add AMD GPU passthrough
andrewscouten Jan 13, 2026
66d926c
GPU configuration + PDC CLI
andrewscouten Jan 13, 2026
1de68d6
Update README to reflect GPU and downloader
andrewscouten Jan 13, 2026
df1a54b
Create TCGA-BRCA.ipynb
andrewscouten Jan 13, 2026
3b77b81
Add multiple dev containers
andrewscouten Jan 13, 2026
2f58811
Fix the PDC CLI download command
andrewscouten Jan 13, 2026
66c08ef
Enforce linux line endings
andrewscouten Jan 13, 2026
54282e6
Enforce linux line endings
andrewscouten Jan 13, 2026
0240a6a
Run proper service per dev container
andrewscouten Jan 13, 2026
b9979f8
Merge branch 'feature-data-downloader' of https://github.com/collabor…
andrewscouten Jan 13, 2026
fbd74ce
Docker configurations
andrewscouten Jan 13, 2026
fdd1f80
Correct line endings
andrewscouten Jan 13, 2026
f518219
Correct line endings
andrewscouten Jan 13, 2026
e24f0fd
More docker optimizations
andrewscouten Jan 13, 2026
e807aed
buildpack-deps:jammy does not include unzip
andrewscouten Jan 13, 2026
5024ddf
Fix PDC CLI download
andrewscouten Jan 13, 2026
bd08559
Add UV arguemnts to Dockerfile
andrewscouten Jan 13, 2026
defd00d
Update Docker CI workflow for multi-profile builds
andrewscouten Jan 13, 2026
9c28177
Add cpu to dev containers & add toml extension
andrewscouten Jan 13, 2026
9215eef
Merge pull request #7 from collaborativebioinformatics/feature-data-d…
andrewscouten Jan 13, 2026
93720e6
Docker changes
andrewscouten Jan 14, 2026
8fff185
Refactor downloader into API and CLI
andrewscouten Jan 14, 2026
adcccdc
CLI Updates & Removing emojis
andrewscouten Jan 14, 2026
6210561
Correct TCGA configs, change docker, and flesh out CLI
andrewscouten Jan 15, 2026
d535be9
Remove unused dependencies
andrewscouten Jan 15, 2026
5448393
Add TCIA preprocessing to the CLI
andrewscouten Jan 15, 2026
9cb184e
Merge pull request #6 from collaborativebioinformatics/feat/data-down…
andrewscouten Jan 15, 2026
d1c7a31
Add submodules configuration
andrewscouten Jan 15, 2026
76f013b
Properly add submodules
andrewscouten Jan 15, 2026
8989dd9
Merge pull request #10 from collaborativebioinformatics/fixt/submodules
andrewscouten Jan 15, 2026
16cdb55
Updated wiki for API and CLI
andrewscouten Jan 15, 2026
e4bab64
Merge pull request #12 from collaborativebioinformatics/docs/wiki
andrewscouten Jan 15, 2026
22da50b
Add linting arguments to dev containers
andrewscouten Jan 21, 2026
47339d1
Delete notebooks/Transformer_RNABert_RESTRUCTURED.ipynb
QiyuYang-QYang Jan 26, 2026
fececdf
Add files via upload
QiyuYang-QYang Jan 26, 2026
2424948
Move multimodal scripts into scripts folder
andrewscouten Feb 26, 2026
1d15527
Removed copied github repo to just use submodule instead.
andrewscouten Feb 26, 2026
283a4b5
Assume we have already installed the submodule as a dependency
andrewscouten Feb 26, 2026
d479437
feat: Add `libcurl` to Dockerfile and update `pyproject.toml` to supp…
andrewscouten Feb 26, 2026
85ab531
Move "src/multimodal/src" into "src/multimodal"
andrewscouten Feb 26, 2026
ac3fa16
Fix uv header ordering
andrewscouten Feb 27, 2026
2ebf792
docs(multimodal): add MULTIMODAL_DOCUMENTATION.md with architecture a…
seungjindes Feb 28, 2026
70f8eda
docs(multimodal): update doc to imaging-included pipeline (V1 only), …
seungjindes Feb 28, 2026
b581b7b
Rename MULTIMODAL_DOCUMENTATION.md to README.md
seungjindes Feb 28, 2026
6407247
Merge remote-tracking branch 'origin/main' into refactor/oncolearn-mo…
andrewscouten Feb 28, 2026
08c6905
Refactor project to be more cohesive as a library
andrewscouten Feb 28, 2026
5545199
Add tests for DL pipelines
andrewscouten Feb 28, 2026
6c01cb6
Merge pull request #16 from collaborativebioinformatics/refactor/onco…
andrewscouten Feb 28, 2026
8e54177
More multimodal integration work, trying to use the API and dataloade…
andrewscouten Mar 2, 2026
238c5c6
Reformat tests
andrewscouten Mar 2, 2026
8683d03
Remove unused code
andrewscouten Mar 2, 2026
b4824f1
Fix Dockerfile for multimodal extras and biomed submodule
andrewscouten Mar 2, 2026
3a5f0a1
Remove outdated documentation
andrewscouten Mar 3, 2026
6d6df24
Add cache files to .gitignore
andrewscouten Mar 3, 2026
9acb06a
Better split project dependencies
andrewscouten Mar 3, 2026
b91d78a
Dataset fixes
andrewscouten Mar 3, 2026
6790c09
Multimodal pipeline bugfixes
andrewscouten Mar 3, 2026
82927cf
Update docs to reflect multimodal refactor
andrewscouten Mar 3, 2026
9dc3138
Create data/.gitignore and move relevant entries
andrewscouten Mar 3, 2026
2e01993
feat: Introduce config system & encoder registry.
andrewscouten Mar 3, 2026
4426dc3
Huggingface config replace with encoder config
andrewscouten Mar 3, 2026
a18bba5
Working pipeline, now just need to run it
andrewscouten Mar 4, 2026
fbb14c8
Update docs based on working pipeline
andrewscouten Mar 4, 2026
e2e7eef
Update code to be more accurate to original multimodal implementation
andrewscouten Mar 5, 2026
2b1ceae
Make docker containers more readable
andrewscouten Mar 5, 2026
17458c3
Update docker pipeline build
andrewscouten Mar 5, 2026
7d823f8
Add FM-BCMRI submodule. Necessary for a multimodal model checkpoint
andrewscouten Mar 6, 2026
ce78c7d
Refactor code structure for improved readability and maintainability.…
andrewscouten Mar 7, 2026
9b747ff
Refactor config system with dotted names, DataConfig, and multi-sourc…
andrewscouten Mar 7, 2026
23592c0
Fix training bugs
andrewscouten Mar 7, 2026
b6b3f82
Added better split consistency and updated docker dev container
andrewscouten Mar 8, 2026
85c18e6
Update config system to include optimizer, scheduler, and regularization
andrewscouten Mar 8, 2026
e8c6b3b
Enhance error handling and data processing across multiple modules
andrewscouten Mar 8, 2026
77f7920
Move split files
andrewscouten Mar 9, 2026
d3dd792
cBioPortal API and CLI
andrewscouten Mar 9, 2026
7574af7
Refactor model training and configuration management
andrewscouten Mar 9, 2026
6bf0ecd
Refactor configuration loading and validation; remove legacy modality…
andrewscouten Mar 10, 2026
921d4aa
cBioPortal: Add support for downloading structural variants and gener…
andrewscouten Mar 10, 2026
6ba4266
Refactor hyperparameter optimization configuration; streamline optimi…
andrewscouten Mar 10, 2026
a82e753
Add MultiMarginLoss configuration options for training; enhance loss …
andrewscouten Mar 10, 2026
6c6da46
Move all data source configs and splits to data/configs
andrewscouten Mar 10, 2026
baabed0
Refactor CLI command structure to make it less monolithic
andrewscouten Mar 10, 2026
6f7d95a
cBioPortal download optimizations
andrewscouten Mar 11, 2026
59617d6
Tensorboard logging
andrewscouten Mar 11, 2026
7593c68
Add "label_col" to modality parsers
andrewscouten Mar 11, 2026
73a22b3
Move config files to "data/configs", where the data will be downloade…
andrewscouten Mar 11, 2026
edcbb4e
Add unit tests for pipeline executor and nodes; refactor data modules
andrewscouten Mar 12, 2026
38c4305
Implement multimodal pipelines for TCGA-BRCA with PAM50 and AJCC stag…
andrewscouten Mar 12, 2026
0958537
Add support for learning rate schedulers in hyperparameter optimizati…
andrewscouten Mar 12, 2026
791c8ef
Add preprocess subcommand for multimodal data with K-fold split gener…
andrewscouten Mar 13, 2026
705ddc7
Add KFold splits and logging for multimodal data processing
andrewscouten Mar 13, 2026
0464ae6
Implement cross-validation support in training configuration and add …
andrewscouten Mar 15, 2026
442d6c8
Refactor code structure for improved readability and maintainability
andrewscouten Mar 15, 2026
54ba0f0
Bump Python version in Jupyter notebooks to 3.12.13 for compatibility
andrewscouten Mar 15, 2026
3df7928
Update README.md for clarity and structure; enhance quickstart instru…
andrewscouten Mar 15, 2026
b7cf236
Update submodule reference for wiki to latest commit
andrewscouten Mar 15, 2026
cd90062
Merge pull request #15 from collaborativebioinformatics/refactor/mult…
andrewscouten Mar 15, 2026
f8ca367
Merge pull request #14 from collaborativebioinformatics/fix/dev-conta…
andrewscouten Mar 15, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
75 changes: 75 additions & 0 deletions .devcontainer/dev-amd-wsl/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"name": "OncoLearn (AMD-WSL)",
"dockerComposeFile": "../../docker-compose.yml",
"service": "dev-amd-wsl",
"runServices": ["dev-amd-wsl"],
"workspaceFolder": "/workspace",

// Configure which extensions should be installed
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff",
"ms-python.autopep8",
"REditorSupport.r",
"ms-toolsai.jupyter",
"ms-toolsai.vscode-jupyter-cell-tags",
"ms-toolsai.vscode-jupyter-slideshow",
"ms-azuretools.vscode-docker",
"tamasfe.even-better-toml"
],
"settings": {
"python.defaultInterpreterPath": "/workspace/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.analysis.autoFormatStrings": true,
"jupyter.notebookFileRoot": "${workspaceFolder}",
"terminal.integrated.defaultProfile.linux": "bash",
"autopep8.path": ["/workspace/.venv/bin/autopep8"],
"ruff.path": ["/workspace/.venv/bin/ruff"],
"ruff.interpreter": ["/workspace/.venv/bin/python"],
"[python]": {
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.rulers": [120],
"editor.defaultFormatter": "ms-python.autopep8",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
},
"notebook.formatOnSave.enabled": true,
"notebook.codeActionsOnSave": {
"notebook.source.fixAll": "explicit",
"notebook.source.organizeImports": "explicit"
}
}
}
},

// Expose Jupyter port
"forwardPorts": [8888],
"portsAttributes": {
"8888": {
"label": "Jupyter Lab",
"onAutoForward": "notify"
}
},

// Keep container running
"shutdownAction": "stopCompose",

// Run as root (can be changed for better security)
"remoteUser": "root",

// Run uv sync on container start
"postStartCommand": "uv sync --extra rocm",

// Features to add
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
}
}
75 changes: 75 additions & 0 deletions .devcontainer/dev-amd/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"name": "OncoLearn (AMD)",
"dockerComposeFile": "../../docker-compose.yml",
"service": "dev-amd",
"runServices": ["dev-amd"],
"workspaceFolder": "/workspace",

// Configure which extensions should be installed
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff",
"ms-python.autopep8",
"REditorSupport.r",
"ms-toolsai.jupyter",
"ms-toolsai.vscode-jupyter-cell-tags",
"ms-toolsai.vscode-jupyter-slideshow",
"ms-azuretools.vscode-docker",
"tamasfe.even-better-toml"
],
"settings": {
"python.defaultInterpreterPath": "/workspace/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.analysis.autoFormatStrings": true,
"jupyter.notebookFileRoot": "${workspaceFolder}",
"terminal.integrated.defaultProfile.linux": "bash",
"autopep8.path": ["/workspace/.venv/bin/autopep8"],
"ruff.path": ["/workspace/.venv/bin/ruff"],
"ruff.interpreter": ["/workspace/.venv/bin/python"],
"[python]": {
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.rulers": [120],
"editor.defaultFormatter": "ms-python.autopep8",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
},
"notebook.formatOnSave.enabled": true,
"notebook.codeActionsOnSave": {
"notebook.source.fixAll": "explicit",
"notebook.source.organizeImports": "explicit"
}
}
}
},

// Expose Jupyter port
"forwardPorts": [8888],
"portsAttributes": {
"8888": {
"label": "Jupyter Lab",
"onAutoForward": "notify"
}
},

// Keep container running
"shutdownAction": "stopCompose",

// Run as root (can be changed for better security)
"remoteUser": "root",

// Run uv sync on container start
"postStartCommand": "uv sync --extra rocm",

// Features to add
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
}
}
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
{
"name": "OncoLearn",
"dockerComposeFile": "../docker-compose.yml",
"service": "dev",
"name": "OncoLearn (CPU)",
"dockerComposeFile": "../../docker-compose.yml",
"service": "dev-cpu",
"runServices": ["dev-cpu"],
"workspaceFolder": "/workspace",

// Configure which extensions should be installed
Expand All @@ -16,16 +17,34 @@
"ms-toolsai.jupyter",
"ms-toolsai.vscode-jupyter-cell-tags",
"ms-toolsai.vscode-jupyter-slideshow",
"ms-azuretools.vscode-docker"
"ms-azuretools.vscode-docker",
"tamasfe.even-better-toml"
],
"settings": {
"python.defaultInterpreterPath": "/workspace/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.analysis.autoFormatStrings": true,
"jupyter.notebookFileRoot": "${workspaceFolder}",
"terminal.integrated.defaultProfile.linux": "bash",
"autopep8.path": ["/workspace/.venv/bin/autopep8"],
"ruff.path": ["/workspace/.venv/bin/ruff"],
"ruff.interpreter": ["/workspace/.venv/bin/python"]
"ruff.interpreter": ["/workspace/.venv/bin/python"],
"[python]": {
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.rulers": [120],
"editor.defaultFormatter": "ms-python.autopep8",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
},
"notebook.formatOnSave.enabled": true,
"notebook.codeActionsOnSave": {
"notebook.source.fixAll": "explicit",
"notebook.source.organizeImports": "explicit"
}
}
}
},
Expand All @@ -39,15 +58,15 @@
}
},

// Post-create command
"postCreateCommand": "uv sync --extra cu130",

// Keep container running
"shutdownAction": "stopCompose",

// Run as root (can be changed for better security)
"remoteUser": "root",

// Run uv sync on container start
"postStartCommand": "uv sync --extra cpu",

// Features to add
"features": {
"ghcr.io/devcontainers/features/git:1": {},
Expand Down
75 changes: 75 additions & 0 deletions .devcontainer/dev-nvidia/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
{
"name": "OncoLearn (NVIDIA)",
"dockerComposeFile": "../../docker-compose.yml",
"service": "dev-nvidia",
"runServices": ["dev-nvidia"],
"workspaceFolder": "/workspace",

// Configure which extensions should be installed
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff",
"ms-python.autopep8",
"REditorSupport.r",
"ms-toolsai.jupyter",
"ms-toolsai.vscode-jupyter-cell-tags",
"ms-toolsai.vscode-jupyter-slideshow",
"ms-azuretools.vscode-docker",
"tamasfe.even-better-toml"
],
"settings": {
"python.defaultInterpreterPath": "/workspace/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.analysis.autoFormatStrings": true,
"jupyter.notebookFileRoot": "${workspaceFolder}",
"terminal.integrated.defaultProfile.linux": "bash",
"autopep8.path": ["/workspace/.venv/bin/autopep8"],
"ruff.path": ["/workspace/.venv/bin/ruff"],
"ruff.interpreter": ["/workspace/.venv/bin/python"],
"[python]": {
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.rulers": [120],
"editor.defaultFormatter": "ms-python.autopep8",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
},
"notebook.formatOnSave.enabled": true,
"notebook.codeActionsOnSave": {
"notebook.source.fixAll": "explicit",
"notebook.source.organizeImports": "explicit"
}
}
}
},

// Expose Jupyter port
"forwardPorts": [8888],
"portsAttributes": {
"8888": {
"label": "Jupyter Lab",
"onAutoForward": "notify"
}
},

// Keep container running
"shutdownAction": "stopCompose",

// Run as root (can be changed for better security)
"remoteUser": "root",

// Run uv sync on container start
"postStartCommand": "uv sync --extra cu130",

// Features to add
"features": {
"ghcr.io/devcontainers/features/git:1": {},
"ghcr.io/devcontainers/features/github-cli:1": {}
}
}
63 changes: 63 additions & 0 deletions .devcontainer/pytorch-prod-amd/devcontainer.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
{
"name": "OncoLearn PyTorch Production (AMD)",
"dockerComposeFile": "../../docker-compose.yml",
"service": "pytorch-prod-amd",
"runServices": ["pytorch-prod-amd"],
"workspaceFolder": "/workspace",

// Configure which extensions should be installed (minimal for production)
"customizations": {
"vscode": {
"extensions": [
"ms-python.python",
"ms-python.vscode-pylance",
"charliermarsh.ruff",
"tamasfe.even-better-toml"
],
"settings": {
"python.defaultInterpreterPath": "/workspace/.venv/bin/python",
"python.terminal.activateEnvironment": true,
"python.analysis.autoFormatStrings": true,
"terminal.integrated.defaultProfile.linux": "bash",
"ruff.path": ["/workspace/.venv/bin/ruff"],
"ruff.interpreter": ["/workspace/.venv/bin/python"],
"[python]": {
"editor.tabSize": 4,
"editor.insertSpaces": true,
"editor.rulers": [120],
"editor.defaultFormatter": "ms-python.autopep8",
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
}
},
"notebook.formatOnSave.enabled": true,
"notebook.codeActionsOnSave": {
"notebook.source.fixAll": "explicit",
"notebook.source.organizeImports": "explicit"
}
}
}
},

// Expose TensorBoard port
"forwardPorts": [6006],
"portsAttributes": {
"6006": {
"label": "TensorBoard",
"onAutoForward": "notify"
}
},

// Keep container running
"shutdownAction": "stopCompose",

// Run as root
"remoteUser": "root",

// Features to add
"features": {
"ghcr.io/devcontainers/features/git:1": {}
}
}
Loading
Loading