diffbio 0.1.3__tar.gz → 0.1.4__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.
Files changed (230) hide show
  1. {diffbio-0.1.3 → diffbio-0.1.4}/PKG-INFO +7 -2
  2. {diffbio-0.1.3 → diffbio-0.1.4}/benchmarks/README.md +4 -4
  3. {diffbio-0.1.3 → diffbio-0.1.4}/pyproject.toml +9 -5
  4. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/__init__.py +4 -0
  5. diffbio-0.1.4/src/diffbio/core/soft_ops/normalization.py +174 -0
  6. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/archive_ii.py +1 -1
  7. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/balifam.py +1 -1
  8. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/bengrn_ground_truth.py +2 -2
  9. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/encode_peaks.py +1 -1
  10. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/immune_human.py +1 -1
  11. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/pancreas.py +1 -1
  12. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/seqfish.py +1 -1
  13. {diffbio-0.1.3 → diffbio-0.1.4}/.gitignore +0 -0
  14. {diffbio-0.1.3 → diffbio-0.1.4}/LICENSE +0 -0
  15. {diffbio-0.1.3 → diffbio-0.1.4}/README.md +0 -0
  16. {diffbio-0.1.3 → diffbio-0.1.4}/benchmarks/crossmodality/README.md +0 -0
  17. {diffbio-0.1.3 → diffbio-0.1.4}/examples/README.md +0 -0
  18. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/__init__.py +0 -0
  19. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/configs.py +0 -0
  20. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/constants.py +0 -0
  21. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/__init__.py +0 -0
  22. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/base_operators.py +0 -0
  23. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/data_types.py +0 -0
  24. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/gnn_components.py +0 -0
  25. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/graph_utils.py +0 -0
  26. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/neural_components.py +0 -0
  27. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/optimal_transport.py +0 -0
  28. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/_projections_permutahedron.py +0 -0
  29. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/_projections_simplex.py +0 -0
  30. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/_projections_transport.py +0 -0
  31. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/_sorting_network.py +0 -0
  32. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/_types.py +0 -0
  33. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/_utils.py +0 -0
  34. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/autograd_safe.py +0 -0
  35. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/comparison.py +0 -0
  36. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/elementwise.py +0 -0
  37. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/logical.py +0 -0
  38. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/quantile.py +0 -0
  39. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/selection.py +0 -0
  40. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/sorting.py +0 -0
  41. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/soft_ops/straight_through.py +0 -0
  42. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/core/uncertainty.py +0 -0
  43. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/evaluation/__init__.py +0 -0
  44. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/evaluation/adapters.py +0 -0
  45. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/evaluation/graders.py +0 -0
  46. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/evaluation/problem.py +0 -0
  47. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/evaluation/runner.py +0 -0
  48. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/losses/__init__.py +0 -0
  49. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/losses/alignment_losses.py +0 -0
  50. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/losses/biological_regularization.py +0 -0
  51. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/losses/metric_losses.py +0 -0
  52. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/losses/self_supervised_losses.py +0 -0
  53. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/losses/singlecell_losses.py +0 -0
  54. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/losses/statistical_losses.py +0 -0
  55. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/__init__.py +0 -0
  56. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/_count_vae.py +0 -0
  57. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/_loss_balancing.py +0 -0
  58. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/_masked_gene_transformer.py +0 -0
  59. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/_transformer_validation.py +0 -0
  60. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/alignment/__init__.py +0 -0
  61. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/alignment/profile_hmm.py +0 -0
  62. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/alignment/scoring.py +0 -0
  63. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/alignment/smith_waterman.py +0 -0
  64. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/alignment/soft_msa.py +0 -0
  65. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/assembly/__init__.py +0 -0
  66. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/assembly/gnn_assembly.py +0 -0
  67. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/assembly/metagenomic_binning.py +0 -0
  68. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/crispr/__init__.py +0 -0
  69. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/crispr/guide_scoring.py +0 -0
  70. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/__init__.py +0 -0
  71. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/_graph_utils.py +0 -0
  72. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/admet_predictor.py +0 -0
  73. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/attentive_fp.py +0 -0
  74. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/dti.py +0 -0
  75. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/fingerprint.py +0 -0
  76. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/maccs_keys.py +0 -0
  77. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/message_passing.py +0 -0
  78. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/primitives.py +0 -0
  79. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/property_predictor.py +0 -0
  80. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/drug_discovery/similarity.py +0 -0
  81. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/epigenomics/__init__.py +0 -0
  82. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/epigenomics/chromatin_state.py +0 -0
  83. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/epigenomics/contextual.py +0 -0
  84. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/epigenomics/fno_peak_calling.py +0 -0
  85. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/epigenomics/peak_calling.py +0 -0
  86. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/__init__.py +0 -0
  87. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/adapters.py +0 -0
  88. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/contracts.py +0 -0
  89. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/embedding_probe.py +0 -0
  90. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/experimental.py +0 -0
  91. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/foundation_model.py +0 -0
  92. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/frozen.py +0 -0
  93. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/precomputed.py +0 -0
  94. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/foundation_models/transformer_encoder.py +0 -0
  95. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/mapping/__init__.py +0 -0
  96. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/mapping/neural_mapper.py +0 -0
  97. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/metabolomics/__init__.py +0 -0
  98. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/metabolomics/isotope_envelope.py +0 -0
  99. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/metabolomics/soft_centroiding.py +0 -0
  100. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/metabolomics/spectral_similarity.py +0 -0
  101. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/molecular_dynamics/__init__.py +0 -0
  102. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/molecular_dynamics/force_field.py +0 -0
  103. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/molecular_dynamics/integrator.py +0 -0
  104. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/molecular_dynamics/primitives.py +0 -0
  105. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/multiomics/__init__.py +0 -0
  106. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/multiomics/hic_contact.py +0 -0
  107. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/multiomics/multiomics_vae.py +0 -0
  108. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/multiomics/spatial_deconvolution.py +0 -0
  109. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/multiomics/spatial_gene_detection.py +0 -0
  110. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/__init__.py +0 -0
  111. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/arcsinh_cofactor.py +0 -0
  112. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/differentiable_pca.py +0 -0
  113. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/embedding.py +0 -0
  114. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/learnable_normalization.py +0 -0
  115. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/learnable_orthogonal_projection.py +0 -0
  116. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/learnable_projection.py +0 -0
  117. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/matrix_free_pca.py +0 -0
  118. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/phate.py +0 -0
  119. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/scaling.py +0 -0
  120. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/soft_pca.py +0 -0
  121. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/umap.py +0 -0
  122. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/normalization/vae_normalizer.py +0 -0
  123. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/population/__init__.py +0 -0
  124. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/population/ancestry_estimation.py +0 -0
  125. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/preprocessing/__init__.py +0 -0
  126. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/preprocessing/adapter_removal.py +0 -0
  127. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/preprocessing/duplicate_filter.py +0 -0
  128. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/preprocessing/error_correction.py +0 -0
  129. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/protein/__init__.py +0 -0
  130. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/protein/secondary_structure.py +0 -0
  131. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/quality_filter.py +0 -0
  132. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/rna_structure/__init__.py +0 -0
  133. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/rna_structure/rna_folding.py +0 -0
  134. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/rnaseq/__init__.py +0 -0
  135. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/rnaseq/motif_discovery.py +0 -0
  136. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/rnaseq/splicing_psi.py +0 -0
  137. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/__init__.py +0 -0
  138. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/ambient_removal.py +0 -0
  139. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/archetypes.py +0 -0
  140. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/batch_correction.py +0 -0
  141. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/cell_annotation.py +0 -0
  142. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/communication.py +0 -0
  143. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/differential_distribution.py +0 -0
  144. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/doublet_detection.py +0 -0
  145. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/downsampling.py +0 -0
  146. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/enhanced_batch_correction.py +0 -0
  147. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/grn_inference.py +0 -0
  148. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/imputation.py +0 -0
  149. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/knockdown_filter.py +0 -0
  150. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/ot_trajectory.py +0 -0
  151. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/simulation.py +0 -0
  152. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/sindy_grn.py +0 -0
  153. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/soft_clustering.py +0 -0
  154. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/soft_hvg.py +0 -0
  155. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/spatial_domains.py +0 -0
  156. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/stochastic_gate_selector.py +0 -0
  157. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/switch_de.py +0 -0
  158. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/trajectory.py +0 -0
  159. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/singlecell/velocity.py +0 -0
  160. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/statistical/__init__.py +0 -0
  161. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/statistical/em_quantification.py +0 -0
  162. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/statistical/hmm.py +0 -0
  163. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/statistical/nb_glm.py +0 -0
  164. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/__init__.py +0 -0
  165. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/classifier.py +0 -0
  166. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/cnn_classifier.py +0 -0
  167. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/cnv_segmentation.py +0 -0
  168. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/deepvariant_pileup.py +0 -0
  169. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/learnable_pileup.py +0 -0
  170. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/pileup.py +0 -0
  171. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/operators/variant/quality_recalibration.py +0 -0
  172. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/__init__.py +0 -0
  173. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/adapters.py +0 -0
  174. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/differential_expression.py +0 -0
  175. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/enhanced_variant_calling.py +0 -0
  176. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/joint_preprocessing.py +0 -0
  177. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/joint_training.py +0 -0
  178. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/minibatch_training.py +0 -0
  179. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/perturbation.py +0 -0
  180. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/preprocessing.py +0 -0
  181. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/single_cell.py +0 -0
  182. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/pipelines/variant_calling.py +0 -0
  183. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/reductions/__init__.py +0 -0
  184. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/reductions/base.py +0 -0
  185. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/reductions/pca_reduction.py +0 -0
  186. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/reductions/tfidf_reduction.py +0 -0
  187. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/samplers/__init__.py +0 -0
  188. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/samplers/perturbation_sampler.py +0 -0
  189. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sequences/__init__.py +0 -0
  190. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sequences/dna.py +0 -0
  191. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sequences/kmer.py +0 -0
  192. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/__init__.py +0 -0
  193. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/_anndata_shared.py +0 -0
  194. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/_batch_iteration.py +0 -0
  195. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/_benchmark_source.py +0 -0
  196. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/_indexed_batch_source.py +0 -0
  197. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/_utils.py +0 -0
  198. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/anndata_interop.py +0 -0
  199. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/anndata_source.py +0 -0
  200. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/bam.py +0 -0
  201. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/contextual_epigenomics.py +0 -0
  202. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/dti.py +0 -0
  203. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/embeddings.py +0 -0
  204. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/fasta.py +0 -0
  205. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/indexed_embeddings.py +0 -0
  206. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/indexed_view.py +0 -0
  207. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/molnet.py +0 -0
  208. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/multiomics.py +0 -0
  209. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/__init__.py +0 -0
  210. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/_types.py +0 -0
  211. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/_utils.py +0 -0
  212. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/concat_source.py +0 -0
  213. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/control_mapping.py +0 -0
  214. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/experiment_config.py +0 -0
  215. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/h5_metadata_cache.py +0 -0
  216. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/output_space.py +0 -0
  217. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/perturbation/perturbation_source.py +0 -0
  218. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/sequence_foundation.py +0 -0
  219. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/sources/singlecell_foundation.py +0 -0
  220. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/splitters/__init__.py +0 -0
  221. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/splitters/base.py +0 -0
  222. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/splitters/molecular.py +0 -0
  223. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/splitters/perturbation.py +0 -0
  224. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/splitters/random.py +0 -0
  225. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/splitters/sequence.py +0 -0
  226. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/utils/__init__.py +0 -0
  227. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/utils/dependency_runtime.py +0 -0
  228. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/utils/nn_utils.py +0 -0
  229. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/utils/quality.py +0 -0
  230. {diffbio-0.1.3 → diffbio-0.1.4}/src/diffbio/utils/training.py +0 -0
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: diffbio
3
- Version: 0.1.3
4
- Summary: DiffBio: End-to-end differentiable bioinformatics pipelines built on Datarax, Artifex, Opifex, and Calibrax
3
+ Version: 0.1.4
4
+ Summary: End-to-end differentiable bioinformatics for JAX/Flax NNX: alignment, mapping, assembly, variant calling, RNA-seq, single-cell, epigenomics, CRISPR, metabolomics, multi-omics, protein and RNA structure, molecular dynamics and drug-discovery operators composed into trainable pipelines on datarax, artifex, opifex and calibrax
5
5
  Project-URL: Bug Tracker, https://github.com/avitai/DiffBio/issues
6
6
  Project-URL: Documentation, https://diffbio.readthedocs.io
7
7
  Project-URL: Source, https://github.com/avitai/DiffBio
@@ -74,6 +74,7 @@ Requires-Dist: griffe>=1.7.3; extra == 'all'
74
74
  Requires-Dist: import-linter>=2.5; extra == 'all'
75
75
  Requires-Dist: interrogate>=1.7.0; extra == 'all'
76
76
  Requires-Dist: ipykernel>=6.29.5; extra == 'all'
77
+ Requires-Dist: jax-metal>=0.1.0; (sys_platform == 'darwin' and platform_machine == 'arm64') and extra == 'all'
77
78
  Requires-Dist: jax[cuda12]>=0.11.1; extra == 'all'
78
79
  Requires-Dist: lineax>=0.0.8; extra == 'all'
79
80
  Requires-Dist: matplotlib>=3.7; extra == 'all'
@@ -101,6 +102,7 @@ Requires-Dist: pytest-timeout>=2.1; extra == 'all'
101
102
  Requires-Dist: pytest-xdist>=3.6; extra == 'all'
102
103
  Requires-Dist: pytest>=8.3.5; extra == 'all'
103
104
  Requires-Dist: python-dotenv>=1; extra == 'all'
105
+ Requires-Dist: pyyaml>=6; extra == 'all'
104
106
  Requires-Dist: radon>=6.0.1; extra == 'all'
105
107
  Requires-Dist: rdkit>=2025.9.3; extra == 'all'
106
108
  Requires-Dist: ruff>=0.1.5; extra == 'all'
@@ -185,6 +187,8 @@ Requires-Dist: pymdown-extensions>=10.14.3; extra == 'docs'
185
187
  Provides-Extra: genomics
186
188
  Requires-Dist: pyfaidx>=0.8.0; extra == 'genomics'
187
189
  Requires-Dist: pysam>=0.22.0; extra == 'genomics'
190
+ Provides-Extra: metal
191
+ Requires-Dist: jax-metal>=0.1.0; (sys_platform == 'darwin' and platform_machine == 'arm64') and extra == 'metal'
188
192
  Provides-Extra: soft-ops-advanced
189
193
  Requires-Dist: lineax>=0.0.8; extra == 'soft-ops-advanced'
190
194
  Requires-Dist: optimistix>=0.0.9; extra == 'soft-ops-advanced'
@@ -203,6 +207,7 @@ Requires-Dist: pytest-randomly>=3.16.0; extra == 'test'
203
207
  Requires-Dist: pytest-timeout>=2.1; extra == 'test'
204
208
  Requires-Dist: pytest-xdist>=3.6; extra == 'test'
205
209
  Requires-Dist: pytest>=8.3.5; extra == 'test'
210
+ Requires-Dist: pyyaml>=6; extra == 'test'
206
211
  Provides-Extra: torch-io
207
212
  Requires-Dist: torch>=1.13.0; extra == 'torch-io'
208
213
  Description-Content-Type: text/markdown
@@ -90,13 +90,13 @@ Download datasets before running:
90
90
 
91
91
  ```bash
92
92
  # Single-cell (immune_human, 2GB)
93
- mkdir -p /media/mahdi/ssd23/Data/scib
94
- wget -O /media/mahdi/ssd23/Data/scib/Immune_ALL_human.h5ad \
93
+ mkdir -p /mnt/ssd2/Data/scib
94
+ wget -O /mnt/ssd2/Data/scib/Immune_ALL_human.h5ad \
95
95
  "https://ndownloader.figshare.com/files/25717328"
96
96
 
97
97
  # Trajectory (pancreas, 51MB)
98
- mkdir -p /media/mahdi/ssd23/Data/scvelo
99
- wget -O /media/mahdi/ssd23/Data/scvelo/endocrinogenesis_day15.h5ad \
98
+ mkdir -p /mnt/ssd2/Data/scvelo
99
+ wget -O /mnt/ssd2/Data/scvelo/endocrinogenesis_day15.h5ad \
100
100
  "https://github.com/theislab/scvelo_notebooks/raw/master/data/Pancreas/endocrinogenesis_day15.h5ad"
101
101
  ```
102
102
 
@@ -64,16 +64,16 @@ dependencies = [
64
64
  "h5py>=3.7",
65
65
  "jax-md>=0.2.27"
66
66
  ]
67
- description = "DiffBio: End-to-end differentiable bioinformatics pipelines built on Datarax, Artifex, Opifex, and Calibrax"
67
+ description = "End-to-end differentiable bioinformatics for JAX/Flax NNX: alignment, mapping, assembly, variant calling, RNA-seq, single-cell, epigenomics, CRISPR, metabolomics, multi-omics, protein and RNA structure, molecular dynamics and drug-discovery operators composed into trainable pipelines on datarax, artifex, opifex and calibrax"
68
68
  keywords = ["jax", "flax", "bioinformatics", "differentiable", "variant-calling", "alignment", "machine-learning"]
69
69
  license = {file = "LICENSE"}
70
70
  name = "diffbio"
71
71
  readme = "README.md"
72
72
  requires-python = ">=3.12,<3.14"
73
- version = "0.1.3"
73
+ version = "0.1.4"
74
74
 
75
75
  [project.optional-dependencies]
76
- all = ["diffbio[benchmark,chem,cuda12,dev,docs,genomics,soft-ops-advanced,soft-ops-ot,test,torch-io]"]
76
+ all = ["diffbio[benchmark,chem,cuda12,dev,docs,genomics,metal,soft-ops-advanced,soft-ops-ot,test,torch-io]"]
77
77
  benchmark = [
78
78
  # benchmarks/crossmodality/*.py call datasets.load_dataset. It used to arrive
79
79
  # transitively through the sibling packages; they now declare their heavy
@@ -131,6 +131,8 @@ docs = [
131
131
  "pymdown-extensions>=10.14.3"
132
132
  ]
133
133
  genomics = ["pysam>=0.22.0", "pyfaidx>=0.8.0"]
134
+ # Apple Silicon GPU backend; setup.sh selects it on arm64 macOS.
135
+ metal = ["jax-metal>=0.1.0; sys_platform == 'darwin' and platform_machine == 'arm64'"]
134
136
  soft-ops-advanced = ["optimistix>=0.0.9", "lineax>=0.0.8"]
135
137
  soft-ops-ot = ["diffbio[soft-ops-advanced]", "ott-jax>=0.5.0"]
136
138
  test = [
@@ -143,7 +145,9 @@ test = [
143
145
  "pytest-env>=1.0.1",
144
146
  "pytest-randomly>=3.16.0",
145
147
  "pytest-timeout>=2.1",
146
- "pytest-xdist>=3.6"
148
+ "pytest-xdist>=3.6",
149
+ # tests/test_ci_shards.py reads the CI workflow.
150
+ "pyyaml>=6"
147
151
  ]
148
152
  torch-io = ["torch>=1.13.0"]
149
153
 
@@ -341,7 +345,7 @@ save_data = true
341
345
  warmup = true
342
346
  warmup_iterations = 3
343
347
 
344
- [tool.pytest-env]
348
+ [tool.pytest_env]
345
349
  JAX_ENABLE_X64 = "0"
346
350
  JAX_SKIP_CUDA_CONSTRAINTS_CHECK = "1"
347
351
  LD_LIBRARY_PATH = "/usr/local/cuda/lib64"
@@ -81,6 +81,9 @@ from diffbio.core.soft_ops.sorting import (
81
81
  top_k_mask,
82
82
  )
83
83
 
84
+ # --- Range-aware normalization ---
85
+ from diffbio.core.soft_ops.normalization import temperature_softmax
86
+
84
87
  # --- Quantile ---
85
88
  from diffbio.core.soft_ops.quantile import (
86
89
  argmedian,
@@ -126,6 +129,7 @@ from diffbio.core.soft_ops.straight_through import (
126
129
  )
127
130
 
128
131
  __all__ = [
132
+ "temperature_softmax",
129
133
  # Types
130
134
  "SoftBool",
131
135
  "SoftIndex",
@@ -0,0 +1,174 @@
1
+ """Temperature softmax with jointly evaluated derivative coefficients.
2
+
3
+ Ordinary division AD forms ``T**-2`` before multiplying the softmax tail.
4
+ The product can be finite even when that reciprocal overflows or the tail
5
+ underflows. Evaluate probability products, score gaps and reciprocal powers
6
+ together in log space. A recursive coefficient JVP preserves mixed derivatives
7
+ at zero gaps; differentiating an outer zero selection would lose them.
8
+
9
+ This requires representable coefficient sums, not merely a representable final
10
+ contraction. Work grows with donor count and derivative order: the first JVP
11
+ has quadratic donor work. It is intended for small donor panels.
12
+ """
13
+
14
+ from functools import partial
15
+
16
+ import jax
17
+ import jax.numpy as jnp
18
+ from jax import Array
19
+
20
+ from diffbio.core.soft_ops._utils import canonicalize_axis
21
+
22
+
23
+ type _Specification = tuple[tuple[int, ...], tuple[tuple[int, int], ...], int]
24
+ type _Inputs = tuple[Array, Array, Array]
25
+
26
+
27
+ def _logits(scores: Array, temperature: Array, covered: Array) -> Array:
28
+ """Shift over covered donors before division, guarding excluded operands."""
29
+ maximum = jnp.max(jnp.where(covered, scores, -jnp.inf), axis=0, keepdims=True)
30
+ shifted = jnp.where(covered, scores - maximum, 0.0)
31
+ return jnp.where(covered, shifted / temperature, -jnp.inf)
32
+
33
+
34
+ def _coefficient_value(
35
+ scores: Array, temperature: Array, covered: Array, specification: _Specification
36
+ ) -> Array:
37
+ """Evaluate a probability/gap monomial divided by a temperature power."""
38
+ indices, gaps, power = specification
39
+ log_weights = jax.nn.log_softmax(_logits(scores, temperature, covered), axis=0)
40
+ magnitude = sum(log_weights[index] for index in indices) - power * jnp.log(temperature)
41
+ sign = jnp.ones_like(magnitude)
42
+ nonzero = jnp.ones_like(magnitude, dtype=jnp.bool_)
43
+ for left, right in gaps:
44
+ gap = scores[left] - scores[right]
45
+ nonzero = nonzero & (gap != 0)
46
+ magnitude = magnitude + jnp.log(jnp.where(gap != 0, jnp.abs(gap), 1.0))
47
+ sign = sign * jnp.sign(gap)
48
+ # Guard the exponential too: a zero gap must not create 0 * inf.
49
+ value = sign * jnp.exp(jnp.where(nonzero, magnitude, 0.0))
50
+ return jnp.where(nonzero, value, 0.0)
51
+
52
+
53
+ _coefficient = jax.custom_jvp(_coefficient_value, nondiff_argnums=(3,))
54
+
55
+
56
+ def _coefficient_jvp(
57
+ specification: _Specification, primals: _Inputs, tangents: _Inputs
58
+ ) -> tuple[Array, Array]:
59
+ """Differentiate complete coefficients, including zero-gap extensions."""
60
+ scores, _, _ = primals
61
+ score_dot, temperature_dot, _ = tangents
62
+ indices, gaps, power = specification
63
+ value = _coefficient(*primals, specification)
64
+ derivative = jnp.zeros_like(value)
65
+ thermal = jnp.zeros_like(value)
66
+ for index in indices:
67
+ for other in range(scores.shape[0]):
68
+ if other != index:
69
+ extended = (*indices, other)
70
+ coefficient = _coefficient(*primals, (extended, gaps, power + 1))
71
+ derivative = derivative + coefficient * (score_dot[index] - score_dot[other])
72
+ thermal = thermal + _coefficient(
73
+ *primals, (extended, (*gaps, (other, index)), power + 2)
74
+ )
75
+ for position, (left, right) in enumerate(gaps):
76
+ remaining = gaps[:position] + gaps[position + 1 :]
77
+ derivative = derivative + _coefficient(*primals, (indices, remaining, power)) * (
78
+ score_dot[left] - score_dot[right]
79
+ )
80
+ if power:
81
+ thermal = thermal - power * _coefficient(*primals, (indices, gaps, power + 1))
82
+ return value, derivative + thermal * temperature_dot
83
+
84
+
85
+ _coefficient.defjvp(_coefficient_jvp)
86
+
87
+
88
+ @jax.custom_jvp
89
+ def _weights(scores: Array, temperature: Array, covered: Array) -> Array:
90
+ """Keep the native shifted forward softmax arithmetic."""
91
+ return jax.nn.softmax(_logits(scores, temperature, covered), axis=0)
92
+
93
+
94
+ def _weights_jvp(primals: _Inputs, tangents: _Inputs) -> tuple[Array, Array]:
95
+ """Contract pairwise sensitivities without rounding either probability first."""
96
+ scores, _, _ = primals
97
+ score_dot, temperature_dot, _ = tangents
98
+ value = _weights(*primals)
99
+ rows = []
100
+ for index in range(scores.shape[0]):
101
+ derivative = jnp.zeros_like(value[index])
102
+ for other in range(scores.shape[0]):
103
+ if other != index:
104
+ probability = (index, other)
105
+ spatial = _coefficient(*primals, (probability, (), 1))
106
+ thermal = _coefficient(*primals, (probability, ((other, index),), 2))
107
+ derivative = derivative + spatial * (score_dot[index] - score_dot[other])
108
+ derivative = derivative + thermal * temperature_dot
109
+ rows.append(derivative)
110
+ return value, jnp.stack(rows)
111
+
112
+
113
+ _weights.defjvp(_weights_jvp)
114
+
115
+
116
+ @partial(jax.jit, static_argnames=("axis",))
117
+ def temperature_softmax(
118
+ scores: Array,
119
+ temperature: float | Array = 1.0,
120
+ *,
121
+ axis: int = -1,
122
+ where: Array | None = None,
123
+ ) -> Array:
124
+ """Normalize small score axes with range-aware temperature derivatives.
125
+
126
+ Equivalent to masked ``jax.nn.softmax(scores / temperature, axis=axis)``
127
+ for valid inputs. Shift before division and evaluate complete derivative
128
+ coefficients in signed log space, preserving sensitivities even when a
129
+ probability rounds to zero or one. Supports JVP, VJP and higher derivatives.
130
+
131
+ This is an opt-in operation for small axes, not the default sorting kernel:
132
+ first derivatives require quadratic axis work and higher orders cost more.
133
+ Coefficients, score differences and their necessary sums must be representable;
134
+ a representable final contraction alone does not guarantee a finite derivative.
135
+
136
+ Args:
137
+ scores: Real floating array. Included scores and their pairwise differences
138
+ must be finite. Excluded scores are ignored, including NaN/infinity.
139
+ temperature: Positive finite real scalar. Callers own runtime validation;
140
+ nonpositive/nonfinite values are outside this numerical contract.
141
+ axis: Static reduction axis. Must be nonempty.
142
+ where: Boolean mask broadcastable to the score shape. Empty slices return
143
+ zero weights and zero derivatives, matching native masked softmax.
144
+
145
+ Returns:
146
+ Weights with the score shape and standard floating dtype promotion.
147
+
148
+ Raises:
149
+ TypeError: Scores are not floating, temperature is complex, or mask is not boolean.
150
+ ValueError: Temperature is not scalar, the axis is invalid/empty, or mask cannot broadcast.
151
+ """
152
+ scores = jnp.asarray(scores)
153
+ temperature = jnp.asarray(temperature)
154
+ if not jnp.issubdtype(scores.dtype, jnp.floating):
155
+ raise TypeError("scores must have a real floating dtype")
156
+ if jnp.issubdtype(temperature.dtype, jnp.complexfloating):
157
+ raise TypeError("temperature must be real")
158
+ if temperature.ndim != 0:
159
+ raise ValueError("temperature must be scalar")
160
+ temperature = temperature.astype(jnp.result_type(scores, temperature))
161
+ axis = canonicalize_axis(axis, scores.ndim)
162
+ if scores.shape[axis] == 0:
163
+ raise ValueError("the normalization axis must be nonempty")
164
+ covered = jnp.ones_like(scores, dtype=jnp.bool_) if where is None else jnp.asarray(where)
165
+ if covered.dtype != jnp.bool_:
166
+ raise TypeError("where must have boolean dtype")
167
+ covered = jnp.broadcast_to(covered, scores.shape)
168
+ scores, covered = jnp.moveaxis(scores, axis, 0), jnp.moveaxis(covered, axis, 0)
169
+ scores = jnp.where(covered, scores, 0.0)
170
+ populated = jnp.any(covered, axis=0, keepdims=True)
171
+ first = (jnp.arange(scores.shape[0]) == 0).reshape((-1,) + (1,) * (scores.ndim - 1))
172
+ safe_coverage = covered | (first & ~populated)
173
+ value = _weights(scores, temperature, safe_coverage)
174
+ return jnp.moveaxis(jnp.where(populated, value, 0.0), 0, axis)
@@ -32,7 +32,7 @@ from flax import nnx
32
32
 
33
33
  logger = logging.getLogger(__name__)
34
34
 
35
- _DEFAULT_DATA_DIR = "/media/mahdi/ssd23/Works/RNAFoldAssess/tutorial/processed_data"
35
+ _DEFAULT_DATA_DIR = "/mnt/ssd2/Works/RNAFoldAssess/tutorial/processed_data"
36
36
  _STRUCTURE_FILENAME = "example_data_structure.csv"
37
37
 
38
38
 
@@ -35,7 +35,7 @@ from flax import nnx
35
35
 
36
36
  logger = logging.getLogger(__name__)
37
37
 
38
- _DEFAULT_DATA_DIR = "/media/mahdi/ssd23/Works/balifam"
38
+ _DEFAULT_DATA_DIR = "/mnt/ssd2/Works/balifam"
39
39
 
40
40
 
41
41
  def _parse_fasta(path: Path) -> list[tuple[str, str]]:
@@ -3,7 +3,7 @@
3
3
  Loads mESC expression data and ChIP+Perturb ground truth edges from
4
4
  the benGRN repository (Stone & Sroy gold standards).
5
5
 
6
- Data source: /media/mahdi/ssd23/Works/benGRN/data/GroundTruth/
6
+ Data source: /mnt/ssd2/Works/benGRN/data/GroundTruth/
7
7
 
8
8
  References:
9
9
  - benGRN: https://github.com/your-org/benGRN
@@ -28,7 +28,7 @@ from datarax.core.data_source import DataSourceModule
28
28
 
29
29
  logger = logging.getLogger(__name__)
30
30
 
31
- _BASE_DIR = Path("/media/mahdi/ssd23/Works/benGRN/data/GroundTruth/stone_and_sroy")
31
+ _BASE_DIR = Path("/mnt/ssd2/Works/benGRN/data/GroundTruth/stone_and_sroy")
32
32
 
33
33
 
34
34
  @dataclass(frozen=True, kw_only=True)
@@ -33,7 +33,7 @@ from flax import nnx
33
33
 
34
34
  logger = logging.getLogger(__name__)
35
35
 
36
- _DEFAULT_DATA_PATH = "/media/mahdi/ssd23/Data/encode/CTCF_K562_narrowPeak.bed.gz"
36
+ _DEFAULT_DATA_PATH = "/mnt/ssd2/Data/encode/CTCF_K562_narrowPeak.bed.gz"
37
37
 
38
38
 
39
39
  @dataclass(frozen=True, kw_only=True)
@@ -48,7 +48,7 @@ class ImmuneHumanConfig(StructuralConfig):
48
48
  embedding_key: Key in obsm for precomputed embeddings.
49
49
  """
50
50
 
51
- data_dir: str = "/media/mahdi/ssd23/Data/scib"
51
+ data_dir: str = "/mnt/ssd2/Data/scib"
52
52
  subsample: int | None = None
53
53
  batch_key: str = "batch"
54
54
  label_key: str = "final_annotation"
@@ -42,7 +42,7 @@ class PancreasConfig(StructuralConfig):
42
42
  cluster_key: Column in obs for cell type labels.
43
43
  """
44
44
 
45
- data_dir: str = "/media/mahdi/ssd23/Data/scvelo"
45
+ data_dir: str = "/mnt/ssd2/Data/scvelo"
46
46
  subsample: int | None = None
47
47
  cluster_key: str = "clusters"
48
48
 
@@ -46,7 +46,7 @@ class SeqFISHConfig(StructuralConfig):
46
46
  spatial_key: Key in obsm for spatial coordinates.
47
47
  """
48
48
 
49
- data_dir: str = "/media/mahdi/ssd23/Data/spatial"
49
+ data_dir: str = "/mnt/ssd2/Data/spatial"
50
50
  subsample: int | None = None
51
51
  label_key: str = "celltype_mapped_refined"
52
52
  spatial_key: str = "spatial"
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes