diff --git a/MODULE.bazel b/MODULE.bazel index c99b93222..8c469c7fa 100644 --- a/MODULE.bazel +++ b/MODULE.bazel @@ -4,7 +4,7 @@ pyrovelocity MODULE module( name = "pyrovelocity", - version = "0.4.0b1", + version = "0.4.0b2", compatibility_level = 1, ) diff --git a/Makefile b/Makefile index f3a84b06f..9ba541cff 100644 --- a/Makefile +++ b/Makefile @@ -913,8 +913,8 @@ approve-prs: ## Approve github pull requests from bots: PR_ENTRIES="2-5 10 12-18 fi; \ done -PREVIOUS_VERSION := 0.3.0 -NEXT_VERSION := 0.4.0b1 +PREVIOUS_VERSION := 0.4.0b1 +NEXT_VERSION := 0.4.0b2 VERSION_FILES := \ pyproject.toml \ conda/colab/construct.yaml \ diff --git a/conda/colab/construct.yaml b/conda/colab/construct.yaml index d2e70c14b..349becd58 100644 --- a/conda/colab/construct.yaml +++ b/conda/colab/construct.yaml @@ -1,5 +1,5 @@ name: pyrovelocity-colab -version: 0.4.0b1 +version: 0.4.0b2 channels: - pytorch diff --git a/containers/gpu.Dockerfile b/containers/gpu.Dockerfile index ab7111c6d..1a7f1eda7 100644 --- a/containers/gpu.Dockerfile +++ b/containers/gpu.Dockerfile @@ -77,7 +77,7 @@ COPY . /root # development RUN pip install --no-deps -e . # distribution -# RUN pip install pyrovelocity==0.4.0b1 +# RUN pip install pyrovelocity==0.4.0b2 ARG tag ENV FLYTE_INTERNAL_IMAGE $tag diff --git a/containers/pkg.Dockerfile b/containers/pkg.Dockerfile index c81f3c81d..1b8266ff5 100644 --- a/containers/pkg.Dockerfile +++ b/containers/pkg.Dockerfile @@ -34,7 +34,7 @@ COPY . /root # development RUN pip install --no-deps -e . # distribution -# RUN pip install pyrovelocity==0.4.0b1 +# RUN pip install pyrovelocity==0.4.0b2 ARG tag ENV FLYTE_INTERNAL_IMAGE $tag diff --git a/docs/source/notebooks/pyrovelocity_colab_template.ipynb b/docs/source/notebooks/pyrovelocity_colab_template.ipynb index 5d41f8678..bef8f6879 100644 --- a/docs/source/notebooks/pyrovelocity_colab_template.ipynb +++ b/docs/source/notebooks/pyrovelocity_colab_template.ipynb @@ -70,7 +70,7 @@ } ], "source": [ - "pyrovelocity_version = \"0.4.0b1\"\n", + "pyrovelocity_version = \"0.4.0b2\"\n", "pyrovelocity_colab_script_url = (\n", " \"https://storage.googleapis.com/pyrovelocity/data/scripts/\"\n", " + f\"pyrovelocity-colab-{pyrovelocity_version}-Linux-x86_64.sh\"\n", diff --git a/pyproject.toml b/pyproject.toml index 520193669..f2986adcc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "pyrovelocity" -version = "0.4.0b1" +version = "0.4.0b2" packages = [{ include = "pyrovelocity", from = "src" }] description = "A multivariate RNA Velocity model to estimate future cell states with uncertainty using probabilistic modeling with pyro." authors = ["pyrovelocity team"] diff --git a/scripts/conda b/scripts/conda index 1e769b676..0d03f9b9e 100755 --- a/scripts/conda +++ b/scripts/conda @@ -3,7 +3,7 @@ set -euo pipefail PACKAGE_NAME="pyrovelocity" -PACKAGE_VERSION="0.4.0b1" +PACKAGE_VERSION="0.4.0b2" CONDA_BUILD_STRING="pyhff70e4c" CONDA_BUILD_NUMBER="0" # CONDA_CHANNEL_LABEL="pyrovelocity_dev" @@ -32,7 +32,7 @@ Example: ./conda \\ --name pyrovelocity \\ - --version 0.4.0b1.dev1 \\ + --version 0.4.0b2.dev1 \\ --build-string pyhff70e4c \\ --build-number 0 \\ --label pyrovelocity_dev @@ -67,9 +67,9 @@ PACKAGE_SPEC="conda-forge/label/\ $CONDA_CHANNEL_LABEL::\ $PACKAGE_NAME=$PACKAGE_VERSION=$CONDA_BUILD_STRING"_"$CONDA_BUILD_NUMBER" -BLUE="\0.4.0b1;34;1m" +BLUE="\0.4.0b2;34;1m" BOLD="\033[1m" -NO_COLOR="\0.4.0b1m" +NO_COLOR="\0.4.0b2m" if [ "$USE_COLOR" = false ]; then BLUE="" BOLD="" diff --git a/src/pyrovelocity/workflows/main_configuration.py b/src/pyrovelocity/workflows/main_configuration.py index 36115bbfc..86f571592 100644 --- a/src/pyrovelocity/workflows/main_configuration.py +++ b/src/pyrovelocity/workflows/main_configuration.py @@ -290,6 +290,49 @@ class CombinedMetricsOutputs(DataClassJSONMixin): summarizing_resources_limits=default_resource_limits, ) + +pbmc5k_dataset_args = DownloadDatasetInterface( + data_set_name="pbmc5k", +) +pbmc5k_preprocess_data_args = PreprocessDataInterface( + data_set_name=f"{pbmc5k_dataset_args.data_set_name}", + adata=f"{pbmc5k_dataset_args.data_external_path}/{pbmc5k_dataset_args.data_set_name}.h5ad", + use_obs_subset=SUBSET_OBS, + use_vars_subset=SUBSET_VARS, + cell_state="celltype", +) +pbmc5k_train_model1_args = PyroVelocityTrainInterface( + adata=f"{pbmc5k_preprocess_data_args.data_processed_path}/{pbmc5k_dataset_args.data_set_name}_processed.h5ad", + data_set_name=f"{pbmc5k_dataset_args.data_set_name}", + model_identifier="model1", + guide_type="auto_t0_constraint", + offset=False, + max_epochs=MAX_EPOCHS, +) +pbmc5k_train_model2_args = PyroVelocityTrainInterface( + adata=f"{pbmc5k_preprocess_data_args.data_processed_path}/{pbmc5k_dataset_args.data_set_name}_processed.h5ad", + data_set_name=f"{pbmc5k_dataset_args.data_set_name}", + model_identifier="model2", + max_epochs=MAX_EPOCHS, +) +pbmc5k_postprocess_configuration = PostprocessConfiguration( + number_posterior_samples=NUMBER_POSTERIOR_SAMPLES, +) +pbmc5k_configuration = WorkflowConfiguration( + download_dataset=pbmc5k_dataset_args, + preprocess_data=pbmc5k_preprocess_data_args, + training_configuration_1=pbmc5k_train_model1_args, + training_configuration_2=pbmc5k_train_model2_args, + postprocess_configuration=pbmc5k_postprocess_configuration, + training_resources_requests=large_training_resource_requests, + training_resources_limits=large_training_resource_limits, + postprocessing_resources_requests=large_resource_requests, + postprocessing_resources_limits=large_resource_limits, + summarizing_resources_requests=large_resource_requests, + summarizing_resources_limits=large_resource_limits, +) + + pbmc68k_dataset_args = DownloadDatasetInterface( data_set_name="pbmc68k", ) diff --git a/src/pyrovelocity/workflows/main_workflow.py b/src/pyrovelocity/workflows/main_workflow.py index 6ebbc3e57..b5a62a48c 100644 --- a/src/pyrovelocity/workflows/main_workflow.py +++ b/src/pyrovelocity/workflows/main_workflow.py @@ -1,5 +1,4 @@ import json -import os from dataclasses import asdict from datetime import timedelta from pathlib import Path @@ -56,6 +55,7 @@ larry_multilineage_configuration, larry_neu_configuration, pancreas_configuration, + pbmc5k_configuration, pbmc68k_configuration, pons_configuration, simulated_configuration, @@ -568,6 +568,7 @@ def combine_all_metrics( def training_workflow( simulated_configuration: WorkflowConfiguration = simulated_configuration, pancreas_configuration: WorkflowConfiguration = pancreas_configuration, + pbmc5k_configuration: WorkflowConfiguration = pbmc5k_configuration, pbmc68k_configuration: WorkflowConfiguration = pbmc68k_configuration, pons_configuration: WorkflowConfiguration = pons_configuration, larry_configuration: WorkflowConfiguration = larry_configuration, @@ -587,6 +588,7 @@ def training_workflow( if not PYROVELOCITY_DATA_SUBSET: configurations += [ (pancreas_configuration, "pancreas"), + (pbmc5k_configuration, "pbmc5k"), # (pbmc68k_configuration, "pbmc68k"), # (pons_configuration, "pons"), # (larry_configuration, "larry"),