rsinghlab / SCOT

Gromov-Wasserstein based optimal transport for aligning single-cell multi-omics data
http://rsinghlab.github.io/SCOT
MIT License
66 stars 16 forks source link

Errors when running hyperparameterTuning_example.py, missing hyperparameter XontoY #7

Closed sheetalgiri closed 1 year ago

sheetalgiri commented 3 years ago

The XontoY parameter seems to be missing in the align function although it was referenced in the code https://github.com/rsinghlab/SCOT/blob/ddcbd998687f12c76b4a8cb605ed5435471149cc/src/scot2.py#L232 Here is the error: Traceback (most recent call last): File "SCOT/hyperparameterTuning_example.py", line 41, in <module> X_aligned, y_aligned = scot.align(k, e, normalize = False, XontoY=True) TypeError: align() got an unexpected keyword argument 'XontoY'

Similary, the next line in the hyperparameterTuning_example.py shown below also probably throws an issue because it also seems to be missing the same hyperparameter in the function:https://github.com/rsinghlab/SCOT/blob/ddcbd998687f12c76b4a8cb605ed5435471149cc/examples/hyperparameterTuning_example.py#L53

Cbaker37 commented 1 year ago

Hi,

I believe you were trying to run a SCOTv1 example with SCOTv2 code. SCOTv1 has the XontoY hyperparameter, as it only aligns two datasets at a time (so switching them in our projection is simple). Since SCOTv2 projects multiple datasets X_1, X_2, ... X_n onto a single anchor dataset y, it doesn't make sense for us to include an XontoY hyperparameter, as we have multiple datasets to integrate. To achieve the same functionality as XontoY, you can change which dataset is first in the list you pass into the constructor of a SCOTv2 object (this will be the anchor domain). Sorry for any confusion!