openprotein-python 0.15.0__tar.gz → 0.16.0__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.
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/PKG-INFO +1 -1
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/models.py +14 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/poet.py +14 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/poet2.py +14 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/common.py +15 -27
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/__init__.py +1 -0
- openprotein_python-0.16.0/openprotein/models/foundation/solublempnn.py +25 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/models.py +2 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/molecules/protein.py +9 -6
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/predictor/__init__.py +1 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/predictor/api.py +17 -4
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/predictor/predictor.py +33 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/predictor/schemas.py +15 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/svd/models.py +14 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/.gitignore +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/LICENSE.txt +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/README.md +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/_version.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/align/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/align/align.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/align/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/align/future.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/align/msa.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/align/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/align.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/assaydata.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/poet.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/designer.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/embedding.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/error.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/fold.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/job.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/predictor.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/prompt.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/svd.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/umap.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/deprecated.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/align/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/align/base.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/align/msa.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/align/prompt.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/assaydata.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/poet.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/designer.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/base.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/esm.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/future.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/openprotein.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/poet.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/poet2.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/test.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/alphafold2.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/base.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/boltz.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/esmfold.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/future.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/futures.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predictor/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predictor/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predictor/predictor.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predictor/validate.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/prompt.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/svd.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/umap.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/align.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/assaydata.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/deprecated/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/deprecated/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/deprecated/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/deprecated/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/designer.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/embeddings.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/fold.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/job.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/predictor.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/prompt.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/svd.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/services/umap.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/auth_store.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/base.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/chains.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/clustering/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/clustering/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/clustering/clustering.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/clustering/models.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/clustering/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/common/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/common/features.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/common/model_metadata.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/common/reduction.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/common/residue_contants.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/config.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/csv.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/data/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/data/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/data/assaydataset.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/data/data.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/data/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/design/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/design/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/design/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/design/future.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/design/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/ablang.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/embeddings.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/esm.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/future.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/openprotein.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/embeddings/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/errors.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fasta.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/alphafold2.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/boltz.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/complex.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/esmfold.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/esmfold2.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/fold.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/future.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/minifold.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/models.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/protenix.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/rosettafold3.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/fold/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/jobs/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/jobs/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/jobs/futures.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/jobs/jobs.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/jobs/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/base.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/foundation/boltzgen.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/foundation/boltzgen_schema.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/foundation/esmif1.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/foundation/proteinmpnn.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/foundation/rfdiffusion.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/models/structure_generation.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/molecules/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/molecules/chains.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/molecules/complex.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/molecules/structure.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/molecules/template.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/predictor/models.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/predictor/prediction.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/predictor/validate.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/prompt/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/prompt/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/prompt/models.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/prompt/prompt.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/prompt/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/protein.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/scaffolds.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/align.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/assaydata.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/deprecated/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/deprecated/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/deprecated/poet.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/deprecated/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/deprecated/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/design.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/designer.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/embeddings.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/features.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/fold.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/job.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/predict.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/predictor.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/prompt.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/svd.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/train.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/schemas/umap.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/svd/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/svd/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/svd/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/svd/svd.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/umap/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/umap/api.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/umap/models.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/umap/schemas.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/umap/umap.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/utils/__init__.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/utils/chain_id.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/utils/cif.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/utils/numpy.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/utils/sequence.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/utils/uuid.py +0 -0
- {openprotein_python-0.15.0 → openprotein_python-0.16.0}/pyproject.toml +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: openprotein-python
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.16.0
|
|
4
4
|
Summary: OpenProtein Python interface.
|
|
5
5
|
Author-email: Mark Gee <markgee@ne47.bio>, "Timothy Truong Jr." <ttruong@ne47.bio>, Tristan Bepler <tbepler@ne47.bio>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -17,6 +17,7 @@ from . import api
|
|
|
17
17
|
from .future import EmbeddingsResultFuture
|
|
18
18
|
|
|
19
19
|
if TYPE_CHECKING:
|
|
20
|
+
from openprotein.predictor.schemas import KernelType
|
|
20
21
|
from openprotein.predictor import PredictorModel
|
|
21
22
|
from openprotein.svd import SVDModel
|
|
22
23
|
from openprotein.umap import UMAPModel
|
|
@@ -352,6 +353,9 @@ class EmbeddingModel:
|
|
|
352
353
|
reduction: ReductionType,
|
|
353
354
|
name: str | None = None,
|
|
354
355
|
description: str | None = None,
|
|
356
|
+
kernel: "KernelType | str" = "rbf",
|
|
357
|
+
period: float | None = None,
|
|
358
|
+
alpha: float | None = None,
|
|
355
359
|
**kwargs,
|
|
356
360
|
) -> "PredictorModel":
|
|
357
361
|
"""
|
|
@@ -363,6 +367,13 @@ class EmbeddingModel:
|
|
|
363
367
|
Assay to fit GP on.
|
|
364
368
|
properties : list of str
|
|
365
369
|
Properties in the assay to fit the GP on.
|
|
370
|
+
kernel : KernelType or str, optional
|
|
371
|
+
Kernel for the GP, e.g. "rbf", "matern52", "periodic",
|
|
372
|
+
"rational_quadratic". Defaults to "rbf".
|
|
373
|
+
period : float or None, optional
|
|
374
|
+
Period length; only valid for the "periodic" kernel (must be > 0).
|
|
375
|
+
alpha : float or None, optional
|
|
376
|
+
Scale-mixture parameter; only valid for "rational_quadratic" (must be > 0).
|
|
366
377
|
reduction : ReductionType
|
|
367
378
|
Type of embedding reduction to use for computing features. PLM must use reduction.
|
|
368
379
|
name : str or None, optional
|
|
@@ -398,6 +409,9 @@ class EmbeddingModel:
|
|
|
398
409
|
reduction=reduction,
|
|
399
410
|
name=name,
|
|
400
411
|
description=description,
|
|
412
|
+
kernel=kernel,
|
|
413
|
+
period=period,
|
|
414
|
+
alpha=alpha,
|
|
401
415
|
**kwargs,
|
|
402
416
|
)
|
|
403
417
|
|
|
@@ -17,6 +17,7 @@ from .future import (
|
|
|
17
17
|
from .models import EmbeddingModel
|
|
18
18
|
|
|
19
19
|
if TYPE_CHECKING:
|
|
20
|
+
from openprotein.predictor.schemas import KernelType
|
|
20
21
|
from openprotein.predictor import PredictorModel
|
|
21
22
|
from openprotein.svd import SVDModel
|
|
22
23
|
from openprotein.umap import UMAPModel
|
|
@@ -432,6 +433,9 @@ class PoETModel(EmbeddingModel):
|
|
|
432
433
|
name: str | None = None,
|
|
433
434
|
description: str | None = None,
|
|
434
435
|
prompt: str | Prompt | None = None,
|
|
436
|
+
kernel: "KernelType | str" = "rbf",
|
|
437
|
+
period: float | None = None,
|
|
438
|
+
alpha: float | None = None,
|
|
435
439
|
**kwargs,
|
|
436
440
|
) -> "PredictorModel":
|
|
437
441
|
"""
|
|
@@ -443,6 +447,13 @@ class PoETModel(EmbeddingModel):
|
|
|
443
447
|
Assay to fit GP on.
|
|
444
448
|
properties : list of str
|
|
445
449
|
Properties in the assay to fit the GP on.
|
|
450
|
+
kernel : KernelType or str, optional
|
|
451
|
+
Kernel for the GP, e.g. "rbf", "matern52", "periodic",
|
|
452
|
+
"rational_quadratic". Defaults to "rbf".
|
|
453
|
+
period : float or None, optional
|
|
454
|
+
Period length; only valid for the "periodic" kernel (must be > 0).
|
|
455
|
+
alpha : float or None, optional
|
|
456
|
+
Scale-mixture parameter; only valid for "rational_quadratic" (must be > 0).
|
|
446
457
|
prompt : str or Prompt or None, optional
|
|
447
458
|
Prompt from an align workflow to condition the PoET model.
|
|
448
459
|
**kwargs
|
|
@@ -464,5 +475,8 @@ class PoETModel(EmbeddingModel):
|
|
|
464
475
|
name=name,
|
|
465
476
|
description=description,
|
|
466
477
|
prompt_id=prompt_id,
|
|
478
|
+
kernel=kernel,
|
|
479
|
+
period=period,
|
|
480
|
+
alpha=alpha,
|
|
467
481
|
**kwargs,
|
|
468
482
|
)
|
|
@@ -21,6 +21,7 @@ from .models import EmbeddingModel
|
|
|
21
21
|
from .poet import PoETModel
|
|
22
22
|
|
|
23
23
|
if TYPE_CHECKING:
|
|
24
|
+
from openprotein.predictor.schemas import KernelType
|
|
24
25
|
from openprotein.models.structure_generation import StructureGenerationFuture
|
|
25
26
|
from openprotein.predictor import PredictorModel
|
|
26
27
|
from openprotein.svd import SVDModel
|
|
@@ -533,6 +534,9 @@ class PoET2Model(PoETModel, EmbeddingModel):
|
|
|
533
534
|
query: str | bytes | Protein | Complex | Query | None = None,
|
|
534
535
|
use_query_structure_in_decoder: bool = True,
|
|
535
536
|
decoder_type: Literal["mlm", "clm"] | None = None,
|
|
537
|
+
kernel: "KernelType | str" = "rbf",
|
|
538
|
+
period: float | None = None,
|
|
539
|
+
alpha: float | None = None,
|
|
536
540
|
**kwargs,
|
|
537
541
|
) -> "PredictorModel":
|
|
538
542
|
"""
|
|
@@ -544,6 +548,13 @@ class PoET2Model(PoETModel, EmbeddingModel):
|
|
|
544
548
|
Assay to fit GP on.
|
|
545
549
|
properties : list of str
|
|
546
550
|
Properties in the assay to fit the GP on.
|
|
551
|
+
kernel : KernelType or str, optional
|
|
552
|
+
Kernel for the GP, e.g. "rbf", "matern52", "periodic",
|
|
553
|
+
"rational_quadratic". Defaults to "rbf".
|
|
554
|
+
period : float or None, optional
|
|
555
|
+
Period length; only valid for the "periodic" kernel (must be > 0).
|
|
556
|
+
alpha : float or None, optional
|
|
557
|
+
Scale-mixture parameter; only valid for "rational_quadratic" (must be > 0).
|
|
547
558
|
prompt : str or Prompt or None, optional
|
|
548
559
|
Prompt from an align workflow to condition PoET model.
|
|
549
560
|
query : str or bytes or Protein or Complex or Query or None, optional
|
|
@@ -570,5 +581,8 @@ class PoET2Model(PoETModel, EmbeddingModel):
|
|
|
570
581
|
query_id=query_id,
|
|
571
582
|
use_query_structure_in_decoder=use_query_structure_in_decoder,
|
|
572
583
|
decoder_type=decoder_type,
|
|
584
|
+
kernel=kernel,
|
|
585
|
+
period=period,
|
|
586
|
+
alpha=alpha,
|
|
573
587
|
**kwargs,
|
|
574
588
|
)
|
|
@@ -13,40 +13,28 @@ from openprotein.prompt import PromptAPI
|
|
|
13
13
|
def normalize_inputs(
|
|
14
14
|
proteins: Sequence[Complex | Protein | str | bytes],
|
|
15
15
|
):
|
|
16
|
-
# collate the id's used
|
|
17
|
-
used_ids = []
|
|
18
16
|
normalized_complexes: list[Complex] = []
|
|
19
|
-
remaining_proteins: list[Protein] = []
|
|
20
|
-
remaining_protein_strings: list[str] = []
|
|
21
17
|
for protein in proteins:
|
|
22
|
-
if isinstance(protein,
|
|
23
|
-
# collate these to init with id_gen
|
|
24
|
-
remaining_proteins.append(protein)
|
|
25
|
-
elif isinstance(protein, Complex):
|
|
26
|
-
used_ids.extend(list(protein.get_chains().keys()))
|
|
18
|
+
if isinstance(protein, Complex):
|
|
27
19
|
normalized_complexes.append(protein)
|
|
20
|
+
elif isinstance(protein, Protein):
|
|
21
|
+
# a lone protein becomes a single-chain complex
|
|
22
|
+
id_gen = id_generator()
|
|
23
|
+
normalized_complexes.append(Complex(chains={next(id_gen): protein}))
|
|
28
24
|
else:
|
|
29
25
|
if isinstance(protein, bytes):
|
|
30
26
|
protein = protein.decode()
|
|
31
|
-
#
|
|
27
|
+
# a ':'-delimited string is one complex, one chain per split sequence.
|
|
28
|
+
# chain ids only need to be unique within the complex, so use a fresh
|
|
29
|
+
# generator per complex.
|
|
30
|
+
id_gen = id_generator()
|
|
31
|
+
chains: dict[str, Protein] = {}
|
|
32
32
|
for seq in protein.split(":"):
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
# add the remaining proteins with id gen
|
|
40
|
-
for protein in remaining_proteins:
|
|
41
|
-
id = next(id_gen)
|
|
42
|
-
normalized_complexes.append(Complex(chains={id: protein}))
|
|
43
|
-
|
|
44
|
-
for protein_str in remaining_protein_strings:
|
|
45
|
-
id = next(id_gen)
|
|
46
|
-
protein = Protein(sequence=protein_str)
|
|
47
|
-
# protein strings default to null msa
|
|
48
|
-
protein.msa = Protein.NullMSA
|
|
49
|
-
normalized_complexes.append(Complex(chains={id: protein}))
|
|
33
|
+
chain = Protein(sequence=seq)
|
|
34
|
+
# protein strings default to null msa
|
|
35
|
+
chain.msa = Protein.NullMSA
|
|
36
|
+
chains[next(id_gen)] = chain
|
|
37
|
+
normalized_complexes.append(Complex(chains=chains))
|
|
50
38
|
|
|
51
39
|
return normalized_complexes
|
|
52
40
|
|
|
@@ -19,6 +19,7 @@ from .foundation.boltzgen import BoltzGenFuture, BoltzGenModel
|
|
|
19
19
|
from .foundation.esmif1 import ESMIF1Model
|
|
20
20
|
from .foundation.proteinmpnn import ProteinMPNNModel
|
|
21
21
|
from .foundation.rfdiffusion import RFdiffusionFuture, RFdiffusionModel
|
|
22
|
+
from .foundation.solublempnn import SolubleMPNNModel
|
|
22
23
|
from .models import ModelsAPI
|
|
23
24
|
from .structure_generation import (
|
|
24
25
|
StructureGenerationFuture,
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"""SolubleMPNN model: ProteinMPNN variant tuned for soluble protein targets."""
|
|
2
|
+
|
|
3
|
+
from .proteinmpnn import ProteinMPNNModel
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
class SolubleMPNNModel(ProteinMPNNModel):
|
|
7
|
+
"""
|
|
8
|
+
Class for SolubleMPNN model.
|
|
9
|
+
|
|
10
|
+
Soluble-protein variant of ProteinMPNN.
|
|
11
|
+
|
|
12
|
+
Examples
|
|
13
|
+
--------
|
|
14
|
+
View specific model details (including supported tokens) with the `?` operator.
|
|
15
|
+
|
|
16
|
+
Examples
|
|
17
|
+
--------
|
|
18
|
+
.. code-block:: ipython3
|
|
19
|
+
|
|
20
|
+
>>> import openprotein
|
|
21
|
+
>>> session = openprotein.connect(username="user", password="password")
|
|
22
|
+
>>> session.models.solublempnn?
|
|
23
|
+
"""
|
|
24
|
+
|
|
25
|
+
model_id = "solublempnn"
|
|
@@ -6,6 +6,7 @@ from .foundation.boltzgen import BoltzGenModel
|
|
|
6
6
|
from .foundation.esmif1 import ESMIF1Model
|
|
7
7
|
from .foundation.proteinmpnn import ProteinMPNNModel
|
|
8
8
|
from .foundation.rfdiffusion import RFdiffusionModel
|
|
9
|
+
from .foundation.solublempnn import SolubleMPNNModel
|
|
9
10
|
|
|
10
11
|
# In the future, we would import other models here:
|
|
11
12
|
# from .foundation.esm import ESMModel
|
|
@@ -30,6 +31,7 @@ class ModelsAPI:
|
|
|
30
31
|
"""
|
|
31
32
|
self.rfdiffusion = RFdiffusionModel(session)
|
|
32
33
|
self.proteinmpnn = ProteinMPNNModel(session)
|
|
34
|
+
self.solublempnn = SolubleMPNNModel(session)
|
|
33
35
|
self.boltzgen = BoltzGenModel(session)
|
|
34
36
|
self.esmif1 = ESMIF1Model(session)
|
|
35
37
|
self.esm_if1 = self.esmif1 # alias mirroring the `esm-if1` model_id
|
|
@@ -738,6 +738,7 @@ class Protein:
|
|
|
738
738
|
# extract coordinates and plddt
|
|
739
739
|
coordinates = np.full((len(chain_seq), _N_ATOM, 3), np.nan, dtype=np.float32)
|
|
740
740
|
plddt = np.full(len(chain_seq), np.nan, dtype=np.float32)
|
|
741
|
+
max_atom_b_iso = -np.inf # max B-factor over all atoms (for pLDDT check below)
|
|
741
742
|
for residue_idx, residue in enumerate(residues):
|
|
742
743
|
i = (
|
|
743
744
|
residue.label_seq - label_seq_offset
|
|
@@ -764,6 +765,8 @@ class Protein:
|
|
|
764
765
|
)
|
|
765
766
|
for atom in residue.first_conformer():
|
|
766
767
|
atom_name = atom.name
|
|
768
|
+
if atom.b_iso != _NAN_BFACTOR_VALUE:
|
|
769
|
+
max_atom_b_iso = max(max_atom_b_iso, atom.b_iso)
|
|
767
770
|
if residue.name == "MSE" and atom_name == "SE":
|
|
768
771
|
atom_name = "SD"
|
|
769
772
|
if (j := _ATOM_TYPE_TO_IDX.get(atom.name)) is None:
|
|
@@ -779,12 +782,12 @@ class Protein:
|
|
|
779
782
|
and np.isfinite(coordinates[i, _ATOM_TYPE_TO_IDX["CA"]]).all()
|
|
780
783
|
):
|
|
781
784
|
plddt[i] = 100.0
|
|
782
|
-
if (
|
|
783
|
-
|
|
784
|
-
|
|
785
|
-
and
|
|
786
|
-
|
|
787
|
-
|
|
785
|
+
if maybe_use_bfactor_as_plddt and not np.isnan(plddt).all():
|
|
786
|
+
# B-factors that are implausibly low (all <= 10) or impossible for pLDDT
|
|
787
|
+
# (any atom > 100) are almost surely not pLDDTs, so treat the structure
|
|
788
|
+
# as experimental and assign full confidence.
|
|
789
|
+
if np.nanmax(plddt) <= 10 or max_atom_b_iso > 100:
|
|
790
|
+
plddt[~np.isnan(plddt)] = 100.0
|
|
788
791
|
assert np.isnan(plddt).all() or (
|
|
789
792
|
(np.nanmin(plddt) >= 0) and (np.nanmax(plddt) <= 100)
|
|
790
793
|
)
|
|
@@ -109,6 +109,9 @@ def predictor_fit_gp_post(
|
|
|
109
109
|
reduction: str | None = None,
|
|
110
110
|
name: str | None = None,
|
|
111
111
|
description: str | None = None,
|
|
112
|
+
kernel: str = "rbf",
|
|
113
|
+
period: float | None = None,
|
|
114
|
+
alpha: float | None = None,
|
|
112
115
|
**kwargs,
|
|
113
116
|
) -> PredictorTrainJob:
|
|
114
117
|
"""
|
|
@@ -132,6 +135,13 @@ def predictor_fit_gp_post(
|
|
|
132
135
|
Optional name of predictor model. Randomly generated if not provided.
|
|
133
136
|
description: str | None
|
|
134
137
|
Optional description to attach to the model.
|
|
138
|
+
kernel : str
|
|
139
|
+
Kernel to train the GP with (e.g. "rbf", "matern52", "periodic",
|
|
140
|
+
"rational_quadratic"). default = "rbf".
|
|
141
|
+
period : float | None
|
|
142
|
+
Period length for the periodic kernel. default = None.
|
|
143
|
+
alpha : float | None
|
|
144
|
+
Scale-mixture parameter for the rational_quadratic kernel. default = None.
|
|
135
145
|
kwargs:
|
|
136
146
|
Additional keyword arguments to be passed to foundational models, e.g. prompt_id for PoET models.
|
|
137
147
|
|
|
@@ -142,6 +152,12 @@ def predictor_fit_gp_post(
|
|
|
142
152
|
"""
|
|
143
153
|
endpoint = PATH_PREFIX + "/gp"
|
|
144
154
|
|
|
155
|
+
kernel_spec: dict = {"type": kernel}
|
|
156
|
+
if period is not None:
|
|
157
|
+
kernel_spec["period"] = period
|
|
158
|
+
if alpha is not None:
|
|
159
|
+
kernel_spec["alpha"] = alpha
|
|
160
|
+
|
|
145
161
|
body = {
|
|
146
162
|
"dataset": {
|
|
147
163
|
"assay_id": assay_id,
|
|
@@ -151,10 +167,7 @@ def predictor_fit_gp_post(
|
|
|
151
167
|
"type": feature_type,
|
|
152
168
|
"model_id": model_id,
|
|
153
169
|
},
|
|
154
|
-
"kernel":
|
|
155
|
-
"type": "rbf",
|
|
156
|
-
# "multitask": True
|
|
157
|
-
},
|
|
170
|
+
"kernel": kernel_spec,
|
|
158
171
|
}
|
|
159
172
|
if reduction is not None:
|
|
160
173
|
body["features"]["reduction"] = reduction
|
|
@@ -13,6 +13,7 @@ from openprotein.svd import SVDAPI, SVDModel
|
|
|
13
13
|
|
|
14
14
|
from . import api
|
|
15
15
|
from .models import PredictorModel
|
|
16
|
+
from .schemas import KernelType
|
|
16
17
|
|
|
17
18
|
|
|
18
19
|
class PredictorAPI:
|
|
@@ -125,6 +126,9 @@ class PredictorAPI:
|
|
|
125
126
|
reduction: Reduction | ReductionType | None = None,
|
|
126
127
|
name: str | None = None,
|
|
127
128
|
description: str | None = None,
|
|
129
|
+
kernel: KernelType | str = "rbf",
|
|
130
|
+
period: float | None = None,
|
|
131
|
+
alpha: float | None = None,
|
|
128
132
|
**kwargs,
|
|
129
133
|
) -> PredictorModel:
|
|
130
134
|
"""
|
|
@@ -147,6 +151,14 @@ class PredictorAPI:
|
|
|
147
151
|
Type of embedding reduction to use for computing features.
|
|
148
152
|
E.g. "MEAN" or "SUM". Used only if using EmbeddingModel, and
|
|
149
153
|
must be non-nil if using an EmbeddingModel. Defaults to None.
|
|
154
|
+
kernel : KernelType or str, optional
|
|
155
|
+
Kernel for the GP. One of "linear", "rbf", "matern12", "matern32",
|
|
156
|
+
"matern52", "periodic", "rational_quadratic". Defaults to "rbf".
|
|
157
|
+
period : float or None, optional
|
|
158
|
+
Period length, only valid for the "periodic" kernel (must be > 0).
|
|
159
|
+
alpha : float or None, optional
|
|
160
|
+
Scale-mixture parameter, only valid for the "rational_quadratic"
|
|
161
|
+
kernel (must be > 0).
|
|
150
162
|
kwargs :
|
|
151
163
|
Additional keyword arguments to be passed to foundational models, e.g. prompt_id for PoET models.
|
|
152
164
|
|
|
@@ -177,6 +189,24 @@ class PredictorAPI:
|
|
|
177
189
|
raise InvalidParameterError(
|
|
178
190
|
"Training a multitask GP is not yet supported (i.e. number of properties should only be 1 for now)"
|
|
179
191
|
)
|
|
192
|
+
# kernel selection + hyperparameter validation (fail fast, client-side)
|
|
193
|
+
if not isinstance(kernel, KernelType):
|
|
194
|
+
try:
|
|
195
|
+
kernel = KernelType(kernel)
|
|
196
|
+
except ValueError as e:
|
|
197
|
+
raise InvalidParameterError(
|
|
198
|
+
f"Unknown kernel {kernel!r}; valid options: {[k.value for k in KernelType]}"
|
|
199
|
+
) from e
|
|
200
|
+
if period is not None:
|
|
201
|
+
if kernel != KernelType.PERIODIC:
|
|
202
|
+
raise InvalidParameterError("`period` is only valid for the 'periodic' kernel")
|
|
203
|
+
if period <= 0:
|
|
204
|
+
raise InvalidParameterError("`period` must be > 0")
|
|
205
|
+
if alpha is not None:
|
|
206
|
+
if kernel != KernelType.RATIONAL_QUADRATIC:
|
|
207
|
+
raise InvalidParameterError("`alpha` is only valid for the 'rational_quadratic' kernel")
|
|
208
|
+
if alpha <= 0:
|
|
209
|
+
raise InvalidParameterError("`alpha` must be > 0")
|
|
180
210
|
# 2. Check features input
|
|
181
211
|
# extract feature type
|
|
182
212
|
feature_type = (
|
|
@@ -228,6 +258,9 @@ class PredictorAPI:
|
|
|
228
258
|
reduction=reduction,
|
|
229
259
|
name=name,
|
|
230
260
|
description=description,
|
|
261
|
+
kernel=kernel.value,
|
|
262
|
+
period=period,
|
|
263
|
+
alpha=alpha,
|
|
231
264
|
**kwargs,
|
|
232
265
|
),
|
|
233
266
|
)
|
|
@@ -10,9 +10,24 @@ from openprotein.common import FeatureType
|
|
|
10
10
|
from openprotein.jobs import Job, JobStatus, JobType
|
|
11
11
|
|
|
12
12
|
|
|
13
|
+
class KernelType(str, Enum):
|
|
14
|
+
"""Kernel options for a GP predictor."""
|
|
15
|
+
|
|
16
|
+
LINEAR = "linear"
|
|
17
|
+
RBF = "rbf"
|
|
18
|
+
MATERN12 = "matern12"
|
|
19
|
+
MATERN32 = "matern32"
|
|
20
|
+
MATERN52 = "matern52"
|
|
21
|
+
PERIODIC = "periodic"
|
|
22
|
+
RATIONAL_QUADRATIC = "rational_quadratic"
|
|
23
|
+
|
|
24
|
+
|
|
13
25
|
class Kernel(BaseModel):
|
|
14
26
|
type: str
|
|
15
27
|
multitask: bool = False
|
|
28
|
+
# period applies only to the periodic kernel; alpha only to rational_quadratic
|
|
29
|
+
period: float | None = None
|
|
30
|
+
alpha: float | None = None
|
|
16
31
|
|
|
17
32
|
|
|
18
33
|
class Constraints(BaseModel):
|
|
@@ -15,6 +15,7 @@ from . import api
|
|
|
15
15
|
from .schemas import SVDEmbeddingsJob, SVDFitJob, SVDMetadata
|
|
16
16
|
|
|
17
17
|
if TYPE_CHECKING:
|
|
18
|
+
from openprotein.predictor.schemas import KernelType
|
|
18
19
|
from openprotein.predictor import PredictorModel
|
|
19
20
|
from openprotein.umap import UMAPModel
|
|
20
21
|
|
|
@@ -201,6 +202,9 @@ class SVDModel(Future):
|
|
|
201
202
|
properties: list[str],
|
|
202
203
|
name: str | None = None,
|
|
203
204
|
description: str | None = None,
|
|
205
|
+
kernel: "KernelType | str" = "rbf",
|
|
206
|
+
period: float | None = None,
|
|
207
|
+
alpha: float | None = None,
|
|
204
208
|
**kwargs,
|
|
205
209
|
) -> "PredictorModel":
|
|
206
210
|
"""
|
|
@@ -212,6 +216,13 @@ class SVDModel(Future):
|
|
|
212
216
|
Assay to fit GP on. Or its assay_id.
|
|
213
217
|
properties: list of str
|
|
214
218
|
Properties in the assay to fit the gp on.
|
|
219
|
+
kernel : KernelType or str, optional
|
|
220
|
+
Kernel for the GP, e.g. "rbf", "matern52", "periodic",
|
|
221
|
+
"rational_quadratic". Defaults to "rbf".
|
|
222
|
+
period : float or None, optional
|
|
223
|
+
Period length; only valid for the "periodic" kernel (must be > 0).
|
|
224
|
+
alpha : float or None, optional
|
|
225
|
+
Scale-mixture parameter; only valid for "rational_quadratic" (must be > 0).
|
|
215
226
|
|
|
216
227
|
Returns
|
|
217
228
|
-------
|
|
@@ -254,6 +265,9 @@ class SVDModel(Future):
|
|
|
254
265
|
model=self,
|
|
255
266
|
name=name,
|
|
256
267
|
description=description,
|
|
268
|
+
kernel=kernel,
|
|
269
|
+
period=period,
|
|
270
|
+
alpha=alpha,
|
|
257
271
|
**kwargs,
|
|
258
272
|
)
|
|
259
273
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/__init__.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/design.py
RENAMED
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/api/deprecated/predict.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/align/__init__.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/align/base.py
RENAMED
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/align/prompt.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/design.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/poet.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/predict.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/deprecated/train.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/base.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/esm.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/future.py
RENAMED
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/poet.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/poet2.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/embeddings/test.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/__init__.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/alphafold2.py
RENAMED
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/boltz.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/esmfold.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/fold/future.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predictor/__init__.py
RENAMED
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predictor/predict.py
RENAMED
|
File without changes
|
|
File without changes
|
{openprotein_python-0.15.0 → openprotein_python-0.16.0}/openprotein/app/models/predictor/validate.py
RENAMED
|
File without changes
|