calm-data-generator 2.2.1__tar.gz → 2.3.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- calm_data_generator-2.3.1/AUTHORS +32 -0
- {calm_data_generator-2.2.1/calm_data_generator.egg-info → calm_data_generator-2.3.1}/PKG-INFO +157 -81
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/README.md +144 -73
- calm_data_generator-2.3.1/calm_data_generator/__init__.py +48 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/cli.py +1 -1
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/API.md +23 -21
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/API_ES.md +22 -8
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/CLINICAL_GENERATOR_REFERENCE.md +82 -3
- calm_data_generator-2.3.1/calm_data_generator/docs/COMPLEX_GENERATOR_REFERENCE.md +357 -0
- calm_data_generator-2.3.1/calm_data_generator/docs/COMPLEX_GENERATOR_REFERENCE_ES.md +359 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/DOCUMENTATION.md +51 -21
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/DOCUMENTATION_ES.md +35 -6
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/REAL_GENERATOR_REFERENCE.md +59 -30
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/REAL_GENERATOR_REFERENCE_ES.md +57 -26
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/REPORTS_REFERENCE.md +91 -11
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/REPORTS_REFERENCE_ES.md +95 -11
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/SCENARIO_INJECTOR_REFERENCE.md +15 -13
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/SCENARIO_INJECTOR_REFERENCE_ES.md +16 -16
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/STREAM_GENERATOR_REFERENCE.md +2 -1
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/STREAM_GENERATOR_REFERENCE_ES.md +1 -1
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/Clinic.py +529 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/clinical/ClinicGeneratorBlock.py +9 -9
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/clinical/ClinicReporter.py +2 -3
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/_demographic_mixin.py +319 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/_gene_expression_mixin.py +260 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/_longitudinal_mixin.py +410 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/_omics_params_mixin.py +44 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/_protein_expression_mixin.py +137 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/_reporting_mixin.py +95 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/clinical/_target_omics_mixin.py +303 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/complex/ComplexGenerator.py +2 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/configs.py +54 -4
- calm_data_generator-2.3.1/calm_data_generator/generators/drift/DriftInjector.py +510 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/drift/_data_quality_drift.py +444 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/drift/_drift_utils.py +708 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/drift/_feature_drift.py +712 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/drift/_label_drift.py +606 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/drift/_structural_drift.py +781 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/dynamics/ScenarioInjector.py +13 -8
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/persistence_models.py +7 -5
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/stream/StreamBlockGenerator.py +18 -7
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/stream/StreamGenerator.py +18 -11
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/stream/StreamReporter.py +18 -18
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/tabular/CustomPluginAdapter.py +27 -20
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/RealGenerator.py +920 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/_generate_pipeline.py +686 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/_synth_latent.py +678 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/_synth_privacy.py +204 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/_synth_scvi.py +764 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/_synth_tabular.py +1142 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/_synth_timeseries.py +428 -0
- calm_data_generator-2.3.1/calm_data_generator/generators/tabular/_synth_utils.py +784 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/BalancePreset.py +21 -4
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/ConceptDriftPreset.py +20 -3
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/CopulaPreset.py +11 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/DataQualityAuditPreset.py +11 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/DiffusionPreset.py +12 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/DriftScenarioPreset.py +20 -3
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/FastPreset.py +6 -1
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/FastPrototypePreset.py +11 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/GradualDriftPreset.py +20 -3
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/HighFidelityPreset.py +18 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/ImbalancePreset.py +22 -19
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/LongitudinalHealthPreset.py +17 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/OmicsIntegrationPreset.py +18 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/RareDiseasePreset.py +18 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/ScenarioInjectorPreset.py +17 -5
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/SeasonalTimeSeriesPreset.py +27 -7
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/SingleCellQualityPreset.py +8 -1
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/TimeSeriesPreset.py +20 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/__init__.py +11 -12
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/presets/base.py +2 -1
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/reports/DiscriminatorReporter.py +26 -28
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/reports/ExternalReporter.py +6 -13
- calm_data_generator-2.3.1/calm_data_generator/reports/LocalIndexGenerator.py +161 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/QualityReporter.py +558 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/Visualizer.py +32 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/__init__.py +25 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_comparison.py +350 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_correlation.py +97 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_dimensionality.py +120 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_distribution.py +209 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_metrics_cards.py +163 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_ml_utility_mixin.py +239 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_privacy_metrics_mixin.py +221 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_quality_scoring_mixin.py +262 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_sequence.py +244 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_single_cell_mixin.py +150 -0
- calm_data_generator-2.3.1/calm_data_generator/reports/_statistical_similarity_mixin.py +172 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/reports/base.py +1 -3
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/clinical_generator.py +45 -23
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/correlation_drift.py +8 -16
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/real_block_generator.py +6 -4
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/real_generator.py +21 -1
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/reports_deep_dive.py +40 -11
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/scenario_injector.py +5 -4
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/stream_generator.py +6 -6
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1/calm_data_generator.egg-info}/PKG-INFO +157 -81
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator.egg-info/SOURCES.txt +35 -1
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator.egg-info/requires.txt +10 -5
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/pyproject.toml +27 -10
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/requirements.txt +10 -5
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_accessors.py +3 -3
- calm_data_generator-2.3.1/tests/test_cli.py +95 -0
- calm_data_generator-2.3.1/tests/test_clinic_block_generator.py +59 -0
- calm_data_generator-2.3.1/tests/test_clinical_advanced.py +28 -0
- calm_data_generator-2.3.1/tests/test_clinical_correlation_matrix.py +371 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_comprehensive.py +10 -62
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_comprehensive_reporting.py +8 -6
- calm_data_generator-2.3.1/tests/test_configs_validation.py +109 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_differentiation_factor.py +28 -24
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_drift_injector_math.py +5 -4
- calm_data_generator-2.3.1/tests/test_fit_sample_api.py +95 -0
- calm_data_generator-2.3.1/tests/test_migration.py +98 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_presets.py +15 -15
- calm_data_generator-2.3.1/tests/test_quality_metrics.py +204 -0
- calm_data_generator-2.3.1/tests/test_real_block_generator.py +99 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_reporters_extended.py +78 -8
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_reporting_fix.py +6 -4
- calm_data_generator-2.3.1/tests/test_scgft_reporter.py +137 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_scvi_quality_regression.py +20 -16
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_single_call.py +5 -4
- calm_data_generator-2.3.1/tests/test_stream_block_generator.py +99 -0
- calm_data_generator-2.2.1/calm_data_generator/__init__.py +0 -31
- calm_data_generator-2.2.1/calm_data_generator/docs/COMPLEX_GENERATOR_REFERENCE.md +0 -222
- calm_data_generator-2.2.1/calm_data_generator/docs/COMPLEX_GENERATOR_REFERENCE_ES.md +0 -221
- calm_data_generator-2.2.1/calm_data_generator/generators/clinical/Clinic.py +0 -1877
- calm_data_generator-2.2.1/calm_data_generator/generators/drift/DriftInjector.py +0 -3632
- calm_data_generator-2.2.1/calm_data_generator/generators/tabular/QualityReporter.py +0 -5
- calm_data_generator-2.2.1/calm_data_generator/generators/tabular/RealGenerator.py +0 -5121
- calm_data_generator-2.2.1/calm_data_generator/reports/LocalIndexGenerator.py +0 -224
- calm_data_generator-2.2.1/calm_data_generator/reports/QualityReporter.py +0 -931
- calm_data_generator-2.2.1/calm_data_generator/reports/Visualizer.py +0 -940
- calm_data_generator-2.2.1/calm_data_generator/reports/__init__.py +0 -15
- calm_data_generator-2.2.1/tests/test_clinic_block_generator.py +0 -77
- calm_data_generator-2.2.1/tests/test_clinical_advanced.py +0 -40
- calm_data_generator-2.2.1/tests/test_migration.py +0 -82
- calm_data_generator-2.2.1/tests/test_quality_metrics.py +0 -70
- calm_data_generator-2.2.1/tests/test_real_block_generator.py +0 -131
- calm_data_generator-2.2.1/tests/test_scgft_reporter.py +0 -127
- calm_data_generator-2.2.1/tests/test_stream_block_generator.py +0 -127
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/LICENSE +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/MANIFEST.in +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/CAUSAL_ENGINE_REFERENCE.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/CAUSAL_ENGINE_REFERENCE_ES.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/CLINICAL_BLOCK_GENERATOR_REFERENCE.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/CLINICAL_BLOCK_GENERATOR_REFERENCE_ES.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/CLINICAL_GENERATOR_REFERENCE_ES.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/DRIFT_INJECTOR_REFERENCE.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/DRIFT_INJECTOR_REFERENCE_ES.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/PRESETS_REFERENCE.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/PRESETS_REFERENCE_ES.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/REAL_BLOCK_GENERATOR_REFERENCE.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/REAL_BLOCK_GENERATOR_REFERENCE_ES.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/STREAM_BLOCK_GENERATOR_REFERENCE.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/docs/STREAM_BLOCK_GENERATOR_REFERENCE_ES.md +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/base.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/clinical/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/complex/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/drift/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/dynamics/CausalEngine.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/dynamics/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/stream/GeneratorFactory.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/stream/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/tabular/RealBlockGenerator.py +2 -2
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/tabular/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/utils/__init__.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/generators/utils/propagation.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/logger.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/advanced_drifts.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/clinic_generator.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/clinical_block_generator.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/drift_injector.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/stream_block_generator.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator/tutorials/tutorial_advanced_methods.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator.egg-info/dependency_links.txt +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator.egg-info/entry_points.txt +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/calm_data_generator.egg-info/top_level.txt +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/setup.cfg +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_anndata_support.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_block_generators_extended.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_causal_engine.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_clinical_regression.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_complex_generator.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_correlation_propagation.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_custom_plugin_adapter.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_discriminator_reporter.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_disease_effects_fix.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_drift_correlations.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_drift_injector_advanced.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_functional_drift.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_imbalance.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_real_generator_persistence.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_river_integration.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_scenario_extended.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_tabular_extended.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_timeseries_extended.py +0 -0
- {calm_data_generator-2.2.1 → calm_data_generator-2.3.1}/tests/test_timeseries_real.py +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
CALM-Data-Generator — Authors and Contributors
|
|
2
|
+
==============================================
|
|
3
|
+
|
|
4
|
+
Project contact: calmdatagenerator@outlook.es
|
|
5
|
+
|
|
6
|
+
Authorship is documented here and in the project files (pyproject.toml,
|
|
7
|
+
CITATION.cff, README). It is independent of who administers the GitHub
|
|
8
|
+
repository, and the commit history remains the permanent record of
|
|
9
|
+
individual contributions.
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
Original author
|
|
13
|
+
---------------
|
|
14
|
+
Alejandro Belda Fernandez <a.beldafernandez@um.es>
|
|
15
|
+
Created the library and led its development through version 2.3.0.
|
|
16
|
+
Universidad de Murcia.
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
Current maintainer
|
|
20
|
+
------------------
|
|
21
|
+
Antonio Guillen Teruel <a.guillenteruel@um.es>
|
|
22
|
+
Maintains the project from version 2.3.0 onwards.
|
|
23
|
+
Universidad de Murcia.
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
Contributors
|
|
27
|
+
------------
|
|
28
|
+
Nasim El Arifi Ahmed <nasim.e.a@um.es>
|
|
29
|
+
Author of scGFT Evaluator (https://github.com/nasim23ea/scgft-evaluator),
|
|
30
|
+
the Graph Fourier Transform-based single-cell evaluation integrated into
|
|
31
|
+
QualityReporter via the `use_scgft` option.
|
|
32
|
+
Universidad de Murcia.
|
{calm_data_generator-2.2.1/calm_data_generator.egg-info → calm_data_generator-2.3.1}/PKG-INFO
RENAMED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: calm-data-generator
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.3.1
|
|
4
4
|
Summary: CALM-Data-Generator: A Python library for synthetic data generation with support for drift injection and clinical data.
|
|
5
5
|
Author-email: Alejandro Belda Fernandez <alejandrobeldafernandez@gmail.com>
|
|
6
|
+
Maintainer-email: Antonio Guillen Teruel <a.guillenteruel@um.es>, CALM-Data-Generator project <calmdatagenerator@outlook.es>
|
|
6
7
|
License: MIT
|
|
7
|
-
Project-URL: Homepage, https://github.com/AlejandroBeldaFernandez/Calm-
|
|
8
|
-
Project-URL: Bug Tracker, https://github.com/AlejandroBeldaFernandez/Calm-
|
|
8
|
+
Project-URL: Homepage, https://github.com/AlejandroBeldaFernandez/Calm-Data-Generator
|
|
9
|
+
Project-URL: Bug Tracker, https://github.com/AlejandroBeldaFernandez/Calm-Data-Generator/issues
|
|
9
10
|
Keywords: synthetic-data,machine-learning,generative-ai,data-science,drift-detection,clinical-data,privacy
|
|
10
11
|
Classifier: Development Status :: 4 - Beta
|
|
11
12
|
Classifier: Intended Audience :: Developers
|
|
@@ -21,6 +22,7 @@ Classifier: Operating System :: OS Independent
|
|
|
21
22
|
Requires-Python: >=3.10
|
|
22
23
|
Description-Content-Type: text/markdown
|
|
23
24
|
License-File: LICENSE
|
|
25
|
+
License-File: AUTHORS
|
|
24
26
|
Requires-Dist: numpy<2.0.0,>=1.26.4
|
|
25
27
|
Requires-Dist: pandas<2.4.0,>=2.3.0
|
|
26
28
|
Requires-Dist: scipy<1.15.0,>=1.14.0
|
|
@@ -33,8 +35,8 @@ Requires-Dist: sdmetrics<0.28.0,>=0.27.0
|
|
|
33
35
|
Requires-Dist: numba<0.63.0,>=0.62.0
|
|
34
36
|
Requires-Dist: llvmlite<0.46.0,>=0.45.0
|
|
35
37
|
Requires-Dist: scikit-learn<1.8.0,>=1.7.0
|
|
36
|
-
Requires-Dist: torch
|
|
37
|
-
Requires-Dist: torchvision
|
|
38
|
+
Requires-Dist: torch>=2.2.0
|
|
39
|
+
Requires-Dist: torchvision>=0.17.0
|
|
38
40
|
Requires-Dist: lightgbm<4.7.0,>=4.6.0
|
|
39
41
|
Requires-Dist: imbalanced-learn<0.15.0,>=0.14.0
|
|
40
42
|
Requires-Dist: copulae<0.8.0,>=0.7.9
|
|
@@ -44,8 +46,6 @@ Requires-Dist: scanpy<1.11.0,>=1.10.0
|
|
|
44
46
|
Requires-Dist: lightning<2.4.0,>=2.3.0
|
|
45
47
|
Requires-Dist: torchmetrics<1.9.0,>=1.8.0
|
|
46
48
|
Requires-Dist: plotly<6.6.0,>=6.5.0
|
|
47
|
-
Requires-Dist: cell-gears<0.2.0,>=0.1.2
|
|
48
|
-
Requires-Dist: torch-geometric<2.8.0,>=2.7.0
|
|
49
49
|
Requires-Dist: huggingface-hub<1.0.0,>=0.36.0
|
|
50
50
|
Requires-Dist: transformers<5.0.0,>=4.22.1
|
|
51
51
|
Requires-Dist: xgboost<2.2.0,>=2.1.0
|
|
@@ -56,8 +56,13 @@ Requires-Dist: fsspec<2026.0.0,>=2025.12.0
|
|
|
56
56
|
Requires-Dist: scgft-evaluator<0.2.0,>=0.1.0
|
|
57
57
|
Provides-Extra: stream
|
|
58
58
|
Requires-Dist: river>=0.21.0; extra == "stream"
|
|
59
|
+
Provides-Extra: gears
|
|
60
|
+
Requires-Dist: torch-geometric>=2.7.0; extra == "gears"
|
|
61
|
+
Requires-Dist: cell-gears<0.2.0,>=0.1.2; extra == "gears"
|
|
62
|
+
Provides-Extra: privacy
|
|
63
|
+
Requires-Dist: anonymeter<2.0.0,>=1.0.0; extra == "privacy"
|
|
59
64
|
Provides-Extra: full
|
|
60
|
-
Requires-Dist: calm-data-generator[stream]; extra == "full"
|
|
65
|
+
Requires-Dist: calm-data-generator[gears,privacy,stream]; extra == "full"
|
|
61
66
|
Dynamic: license-file
|
|
62
67
|
|
|
63
68
|
# CALM-Data-Generator
|
|
@@ -75,7 +80,7 @@ Dynamic: license-file
|
|
|
75
80
|
**CALM-Data-Generator** is a comprehensive Python library for synthetic data generation with advanced features for:
|
|
76
81
|
- **Clinical/Medical Data** - Generate realistic patient demographics, genes, proteins
|
|
77
82
|
- **Tabular Data Synthesis** - CTGAN, TVAE, CART, and more
|
|
78
|
-
- **Time Series** - TimeGAN,
|
|
83
|
+
- **Time Series** - TimeGAN, TimeVAE, FourierFlows
|
|
79
84
|
- **Single-Cell** - scVI, GEARS (Perturbation Prediction)
|
|
80
85
|
- **Latent Differentiation** - Force class separability in TVAE & scVI
|
|
81
86
|
- **Flexible Clipping** - Strict or permissive data range enforcement
|
|
@@ -290,7 +295,7 @@ synthetic_df = preset.generate(data=adata_df, n_samples=500)
|
|
|
290
295
|
```
|
|
291
296
|
|
|
292
297
|
## Key Libraries & Ecosystem
|
|
293
|
-
|
|
298
|
+
|
|
294
299
|
| Library | Role | Usage in Calm-Data-Generator |
|
|
295
300
|
| :--- | :--- | :--- |
|
|
296
301
|
| **Synthcity** | Deep Learning Engine | Powers `CTGAN`, `TVAE`, `DDPM`, `TimeGAN`. Handling privacy & fidelity. |
|
|
@@ -334,47 +339,74 @@ Minimalist view of the system's core components and data flow.
|
|
|
334
339
|
---
|
|
335
340
|
|
|
336
341
|
## Installation
|
|
337
|
-
|
|
342
|
+
|
|
338
343
|
> [!WARNING]
|
|
339
|
-
> The installation
|
|
340
|
-
|
|
344
|
+
> The installation is **heavy (~2-3 GB)** and may take several minutes. Use a fresh virtual environment.
|
|
345
|
+
|
|
341
346
|
### Versioning Strategy
|
|
342
|
-
|
|
347
|
+
|
|
343
348
|
- **GitHub (Recommended for latest features)**: The `main` branch contains the most up-to-date version with the latest bug fixes and features.
|
|
344
349
|
- **PyPI (Stable)**: Releases on PyPI are stable versions updated less frequently for major changes.
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
350
|
+
|
|
351
|
+
### Step 1 — Install PyTorch for your hardware
|
|
352
|
+
|
|
353
|
+
PyTorch must be installed **before** the library so pip resolves the correct wheel (CPU, CUDA, or ROCm).
|
|
348
354
|
|
|
349
355
|
```bash
|
|
350
|
-
#
|
|
351
|
-
|
|
352
|
-
source venv/bin/activate
|
|
356
|
+
# CPU — Mac Intel, CI environments, no GPU
|
|
357
|
+
pip install "torch>=2.2.0" "torchvision>=0.17.0"
|
|
353
358
|
|
|
354
|
-
#
|
|
355
|
-
pip install
|
|
359
|
+
# CUDA 12.4 — Linux / Windows with NVIDIA GPU
|
|
360
|
+
pip install "torch>=2.2.0" "torchvision>=0.17.0" --index-url https://download.pytorch.org/whl/cu124
|
|
356
361
|
|
|
357
|
-
#
|
|
362
|
+
# ROCm 6.1 — Linux with AMD GPU
|
|
363
|
+
pip install "torch>=2.2.0" "torchvision>=0.17.0" --index-url https://download.pytorch.org/whl/rocm6.1
|
|
364
|
+
|
|
365
|
+
# Mac Apple Silicon (M1/M2/M3) — MPS is auto-detected, no special wheel needed
|
|
366
|
+
pip install "torch>=2.2.0" "torchvision>=0.17.0"
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
> Replace `cu124` with your installed CUDA version (e.g. `cu118`, `cu121`). Find yours with `nvidia-smi`.
|
|
370
|
+
|
|
371
|
+
### Step 2 — Install the library
|
|
372
|
+
|
|
373
|
+
```bash
|
|
374
|
+
pip install --upgrade pip setuptools wheel
|
|
358
375
|
pip install calm-data-generator
|
|
359
376
|
```
|
|
360
377
|
|
|
361
|
-
###
|
|
362
|
-
|
|
378
|
+
### Optional extras
|
|
379
|
+
|
|
363
380
|
```bash
|
|
364
|
-
#
|
|
381
|
+
# River streaming support
|
|
365
382
|
pip install "calm-data-generator[stream]"
|
|
366
383
|
|
|
384
|
+
# GEARS perturbation prediction (requires PyG wheels — see below)
|
|
385
|
+
pip install "calm-data-generator[gears]"
|
|
367
386
|
|
|
387
|
+
# Singling-Out privacy risk metric (anonymeter)
|
|
388
|
+
pip install "calm-data-generator[privacy]"
|
|
368
389
|
|
|
369
|
-
# Full suite
|
|
390
|
+
# Full suite (stream + gears + privacy)
|
|
370
391
|
pip install "calm-data-generator[full]"
|
|
371
392
|
```
|
|
372
393
|
|
|
373
|
-
>
|
|
374
|
-
>
|
|
394
|
+
> **GEARS / PyTorch Geometric** requires platform-specific wheels from the PyG index.
|
|
395
|
+
> Install them **before** `calm-data-generator[gears]`:
|
|
396
|
+
> ```bash
|
|
397
|
+
> # Get your torch version first
|
|
398
|
+
> python -c "import torch; print(torch.__version__)"
|
|
399
|
+
>
|
|
400
|
+
> # CPU example (replace torch-2.2.0 and +cpu with your version and platform)
|
|
401
|
+
> pip install torch-geometric --find-links https://data.pyg.org/whl/torch-2.2.0+cpu.html
|
|
402
|
+
>
|
|
403
|
+
> # CUDA 12.4 example
|
|
404
|
+
> pip install torch-geometric --find-links https://data.pyg.org/whl/torch-2.2.0+cu124.html
|
|
405
|
+
>
|
|
406
|
+
> pip install "calm-data-generator[gears]"
|
|
407
|
+
> ```
|
|
375
408
|
|
|
376
409
|
**From source (GitHub - Latest Updates):**
|
|
377
|
-
Use this method to get the latest bug fixes and features not yet released on PyPI.
|
|
378
410
|
|
|
379
411
|
```bash
|
|
380
412
|
# Option A: Install directly from GitHub
|
|
@@ -410,11 +442,19 @@ pip install calm-data-generator
|
|
|
410
442
|
2. Install "Desktop development with C++"
|
|
411
443
|
3. Then retry installation
|
|
412
444
|
|
|
413
|
-
**
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
pip install calm-data-generator
|
|
445
|
+
**Windows — Long Path error during installation:**
|
|
446
|
+
|
|
447
|
+
Some packages (e.g. `orbax-checkpoint`) contain very deep directory structures that exceed the Windows default 260-character path limit. If you see an error like:
|
|
417
448
|
```
|
|
449
|
+
OSError: [Errno 2] No such file or directory: 'C:\...\very\long\path'
|
|
450
|
+
HINT: This error might have occurred since this system does not have Windows Long Path support enabled.
|
|
451
|
+
```
|
|
452
|
+
Enable long paths via PowerShell (run as Administrator):
|
|
453
|
+
```powershell
|
|
454
|
+
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem" `
|
|
455
|
+
-Name "LongPathsEnabled" -Value 1 -PropertyType DWORD -Force
|
|
456
|
+
```
|
|
457
|
+
Then restart your machine and retry installation. Alternatively, install your virtual environment in a short root path (e.g. `C:\venv\`) to reduce total path length.
|
|
418
458
|
|
|
419
459
|
**Dependency conflicts:** Use a clean virtual environment:
|
|
420
460
|
```bash
|
|
@@ -457,36 +497,43 @@ synthetic = gen.generate(
|
|
|
457
497
|
print(f"Generated {len(synthetic)} samples")
|
|
458
498
|
```
|
|
459
499
|
|
|
500
|
+
### Simpler API: `fit()` / `sample()`
|
|
501
|
+
|
|
502
|
+
For the common case — train once, sample as many times as you want — use the sklearn-style wrapper:
|
|
503
|
+
|
|
504
|
+
```python
|
|
505
|
+
gen = RealGenerator(auto_report=False).fit(data, method="cart", target_col="label")
|
|
506
|
+
|
|
507
|
+
small_batch = gen.sample(100)
|
|
508
|
+
large_batch = gen.sample(10_000) # reuses the fitted model, no retraining
|
|
509
|
+
|
|
510
|
+
# Chaining works too:
|
|
511
|
+
synthetic = RealGenerator().fit(data, method="ctgan").sample(1000)
|
|
512
|
+
```
|
|
513
|
+
|
|
460
514
|
### GPU Acceleration
|
|
461
515
|
|
|
462
|
-
**
|
|
516
|
+
GPU is **auto-detected** at runtime in the order CUDA → MPS → CPU. No parameter is needed for most methods.
|
|
517
|
+
|
|
518
|
+
| Method | Device support | Notes |
|
|
519
|
+
| ------ | -------------- | ----- |
|
|
520
|
+
| `scvi`, `scanvi` | CUDA · MPS · CPU | Auto-detected via Lightning accelerator |
|
|
521
|
+
| `gears` | CUDA · MPS · CPU | Auto-detected via PyTorch device |
|
|
522
|
+
| `ctgan`, `tvae`, `rtvae`, `ddpm`, `timegan`, `timevae`, `fflows`, `dpgan`, `pategan`, `great` | CUDA · CPU | Auto-detected internally by Synthcity |
|
|
523
|
+
| `cart`, `rf`, `lgbm`, `xgboost`, `gmm`, `copula`, `windowed_copula`, `kde`, `smote`, `adasyn`, `hmm`, `bn` | CPU only | Statistical / tree-based, no GPU path |
|
|
463
524
|
|
|
464
|
-
|
|
465
|
-
|--------|-------------|-----------|
|
|
466
|
-
| `ctgan`, `tvae` | Yes — CUDA/MPS | `enable_gpu=True` |
|
|
467
|
-
| `diffusion` | Yes — PyTorch | Auto-detected |
|
|
468
|
-
| `ddpm` | Yes — PyTorch + Synthcity | Auto-detected |
|
|
469
|
-
| `timegan` | Yes — PyTorch + Synthcity | Auto-detected |
|
|
470
|
-
| `timevae` | Yes — PyTorch + Synthcity | Auto-detected |
|
|
471
|
-
| `fflows` | Yes — PyTorch + Synthcity | Auto-detected |
|
|
525
|
+
**Mac Apple Silicon (M1/M2/M3):** MPS is used automatically for `scvi`, `scanvi`, and `gears` when `torch.backends.mps.is_available()` returns `True`. Install the standard CPU wheel — no special MPS wheel is required.
|
|
472
526
|
|
|
473
|
-
|
|
527
|
+
To override the device explicitly:
|
|
474
528
|
|
|
475
529
|
```python
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
n_samples=1000,
|
|
479
|
-
method='ctgan',
|
|
480
|
-
epochs=300,
|
|
481
|
-
enable_gpu=True,
|
|
482
|
-
|
|
483
|
-
)
|
|
484
|
-
```
|
|
530
|
+
# Force CPU for scVI/scANVI
|
|
531
|
+
gen.generate(data=data, n_samples=1000, method='scvi', accelerator='cpu')
|
|
485
532
|
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
533
|
+
# Force a specific device for GEARS
|
|
534
|
+
gen.generate(data=data, n_samples=1000, method='gears', device='cuda')
|
|
535
|
+
gen.generate(data=data, n_samples=1000, method='gears', device='mps')
|
|
536
|
+
```
|
|
490
537
|
|
|
491
538
|
### Generate Clinical Data
|
|
492
539
|
|
|
@@ -579,7 +626,7 @@ synthetic = gen.generate(
|
|
|
579
626
|
target_col='cell_type',
|
|
580
627
|
epochs=100,
|
|
581
628
|
n_latent=10,
|
|
582
|
-
|
|
629
|
+
|
|
583
630
|
)
|
|
584
631
|
|
|
585
632
|
|
|
@@ -646,6 +693,14 @@ reporter.generate_report(
|
|
|
646
693
|
# Results JSON (including compared_data_files) saved to ./quality_report/report_results.json
|
|
647
694
|
```
|
|
648
695
|
|
|
696
|
+
For a fast, in-memory check without writing any file (quality scores, KS/MMD/Wasserstein
|
|
697
|
+
statistical tests, and TSTR if you pass a `target_column`), use `evaluate()` instead:
|
|
698
|
+
|
|
699
|
+
```python
|
|
700
|
+
result = reporter.evaluate(real_data, synthetic, target_column="target")
|
|
701
|
+
print(result["quality_scores"], result["statistical_metrics"])
|
|
702
|
+
```
|
|
703
|
+
|
|
649
704
|
For **single-cell data**, enable [scGFT](https://github.com/nasim23ea/scgft-evaluator) evaluation (Graph Fourier Transform-based manifold preservation metrics):
|
|
650
705
|
|
|
651
706
|
```python
|
|
@@ -682,29 +737,36 @@ reporter.generate_comprehensive_report(
|
|
|
682
737
|
|
|
683
738
|
## Synthesis Methods
|
|
684
739
|
|
|
685
|
-
| Method | Type | Description | Requirements
|
|
686
|
-
|
|
687
|
-
| `cart` | ML | CART-based iterative synthesis (fast) | Base
|
|
688
|
-
| `rf` | ML | Random Forest synthesis | Base
|
|
689
|
-
| `lgbm` | ML | LightGBM-based synthesis | Base
|
|
690
|
-
| `
|
|
691
|
-
| `
|
|
692
|
-
| `
|
|
693
|
-
| `
|
|
694
|
-
| `
|
|
695
|
-
| `
|
|
696
|
-
| `
|
|
697
|
-
| `
|
|
698
|
-
| `
|
|
699
|
-
| `
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
| `
|
|
703
|
-
| `
|
|
704
|
-
| `
|
|
705
|
-
| `
|
|
706
|
-
| `
|
|
707
|
-
| `
|
|
740
|
+
| Method | Type | Description | Requirements |
|
|
741
|
+
| ------ | ---- | ----------- | ------------ |
|
|
742
|
+
| `cart` | ML | CART-based iterative synthesis (fast) | Base |
|
|
743
|
+
| `rf` | ML | Random Forest synthesis | Base |
|
|
744
|
+
| `lgbm` | ML | LightGBM-based synthesis | Base |
|
|
745
|
+
| `xgboost` | ML | XGBoost-based synthesis | Base |
|
|
746
|
+
| `gmm` | Statistical | Gaussian Mixture Models | Base |
|
|
747
|
+
| `kde` | Statistical | Kernel Density Estimation (numeric only) | Base |
|
|
748
|
+
| `copula` | Statistical | Gaussian Copula synthesis | Base |
|
|
749
|
+
| `windowed_copula` | Drift-Aware | Gaussian Copula interpolated across time windows | Base |
|
|
750
|
+
| `hmm` | Drift-Aware | Hidden Markov Model — drift via regime transitions | Base |
|
|
751
|
+
| `smote` | Augmentation | SMOTE oversampling | Base |
|
|
752
|
+
| `adasyn` | Augmentation | ADASYN adaptive sampling | Base |
|
|
753
|
+
| `resample` | Augmentation | Weighted resampling from original data | Base |
|
|
754
|
+
| `ctgan` | DL | Conditional GAN for tabular data | `synthcity` |
|
|
755
|
+
| `tvae` | DL | Variational Autoencoder | `synthcity` |
|
|
756
|
+
| `rtvae` | DL | Robust TVAE | `synthcity` |
|
|
757
|
+
| `great` | DL | GReaT — LLM-based tabular generation | `synthcity` |
|
|
758
|
+
| `bn` | Probabilistic | Bayesian Network — causal dependencies | `synthcity` |
|
|
759
|
+
| `diffusion` | DL | Tabular Diffusion (custom, lightweight) | Base (PyTorch) |
|
|
760
|
+
| `ddpm` | DL | TabDDPM — advanced diffusion | `synthcity` |
|
|
761
|
+
| `dpgan` | DL + Privacy | Differentially private GAN | `synthcity` |
|
|
762
|
+
| `pategan` | DL + Privacy | PATE-GAN — teacher-ensemble privacy | `synthcity` |
|
|
763
|
+
| `timegan` | Time Series | TimeGAN for sequential data | `synthcity` |
|
|
764
|
+
| `timevae` | Time Series | TimeVAE for sequential data | `synthcity` |
|
|
765
|
+
| `fflows` | Time Series | FourierFlows — normalizing flows, stable for periodic series | `synthcity` |
|
|
766
|
+
| `conditional_drift` | Drift-Aware | Temporal stage conditioning via TVAE/CTGAN | `synthcity` |
|
|
767
|
+
| `scvi` | Single-Cell | scVI (VAE) for RNA-seq expression data | `scvi-tools` |
|
|
768
|
+
| `scanvi` | Single-Cell | scANVI — semi-supervised, label-aware scVI | `scvi-tools` |
|
|
769
|
+
| `gears` | Single-Cell | GEARS — perturbation prediction via GNN | `[gears]` extra |
|
|
708
770
|
|
|
709
771
|
|
|
710
772
|
---
|
|
@@ -754,6 +816,20 @@ Explore the full documentation in the `calm_data_generator/docs/` directory:
|
|
|
754
816
|
|
|
755
817
|
---
|
|
756
818
|
|
|
819
|
+
## Authors
|
|
820
|
+
|
|
821
|
+
**Originally created by** [Alejandro Belda Fernandez](mailto:a.beldafernandez@um.es) (Universidad de Murcia), who led the development of the library through version 2.3.0.
|
|
822
|
+
|
|
823
|
+
**Currently maintained by** [Antonio Guillen Teruel](mailto:a.guillenteruel@um.es) (Universidad de Murcia), from version 2.3.0 onwards.
|
|
824
|
+
|
|
825
|
+
The single-cell evaluation integrated via `use_scgft` is powered by [scGFT Evaluator](https://github.com/nasim23ea/scgft-evaluator), authored by [Nasim El Arifi Ahmed](mailto:nasim.e.a@um.es) (Universidad de Murcia).
|
|
826
|
+
|
|
827
|
+
See [AUTHORS](AUTHORS) for the full attribution and [CITATION.cff](CITATION.cff) if you need to cite this software in academic work.
|
|
828
|
+
|
|
829
|
+
**Contact:** [calmdatagenerator@outlook.es](mailto:calmdatagenerator@outlook.es) — for questions about the library. For bugs and feature requests, please open an [issue](https://github.com/AlejandroBeldaFernandez/Calm-Data-Generator/issues).
|
|
830
|
+
|
|
831
|
+
---
|
|
832
|
+
|
|
757
833
|
## License
|
|
758
834
|
|
|
759
835
|
MIT License - see [LICENSE](LICENSE) file
|