ersilia-os / eos238c

mesh-therapeutic-use
GNU General Public License v3.0
1 stars 0 forks source link

Clean UP & Dockerization eos238c #1

Closed GemmaTuron closed 1 year ago

HellenNamulinda commented 1 year ago

Hi @GemmaTuron, The model is failing with an attribute error; AttributeError: 'MorganBinaryClassifier' object has no attribute '_reduced'

(eos238c) hellenah@hellenah-elitebook:~/Outreachy/eos238c/model/framework$ bash run.sh . ~/test.csv output.csv
Traceback (most recent call last):
  File "./code/main.py", line 31, in <module>
    y_hat = model.predict_proba(input_smiles)
  File "/home/hellenah/anaconda3/envs/eos238c/lib/python3.7/site-packages/lazyqsar/binary/morgan.py", line 79, in predict_proba
    if self._reduced:
AttributeError: 'MorganBinaryClassifier' object has no attribute '_reduced'

Here is the detailed log file when fetching within ersilia;eos238c_fetch_repo.log

The model uses Ersilia's library, Lazy Qsar. The error is specifically from this file; morgan.py. It happens that some changes were made to the file last week, not sure whether it's the cause of the error.

GemmaTuron commented 1 year ago

@HellenNamulinda

Indeed, these models were trained with a previous Lazy QSAR version and therefore need to be run with that version, so previous to last wee'ks commit. Can you fix the RUN pip install git+https://github.com/ersilia-os/lazy-qsar.git and fix it with the right commit?

Probably RUN pip install git+https://github.com/ersilia-os/lazy-qsar.git@e2e6a504815c107558ee12f194c057ddb3c56198

HellenNamulinda commented 1 year ago

Hi @GemmaTuron, Thanks. That's exactly what needed to be done. The model works locally both using run.sh and within Ersilia. Test file: test.csv Run.sh output: output.csv Fetching locally, 👍 Model eos238c fetched successfully! eos238c_fetch_updated_repo.log CLI Output: 238c_cli_output.csv

(ersilia) hellenah@hellenah-elitebook:~$ ersilia serve eos238c
🚀 Serving model eos238c: mesh-therapeutic-use

   URL: http://127.0.0.1:52675
   PID: 106936
   SRV: conda

👉 To run model:
   - run

💁 Information:
   - info
(ersilia) hellenah@hellenah-elitebook:~$ ersilia run -i "FC(F)Oc1ccc(-c2nnc3cncc(Oc4ccc5ccsc5c4)n23)cc1"
{
    "input": {
        "key": "MLBNXJTXHVBPEC-UHFFFAOYSA-N",
        "input": "FC(F)Oc1ccc(-c2nnc3cncc(Oc4ccc5ccsc5c4)n23)cc1",
        "text": "FC(F)Oc1ccc(-c2nnc3cncc(Oc4ccc5ccsc5c4)n23)cc1"
    },
    "output": {
        "outcome": [
            0.005869404743727317,
            0.0015225578239935877,
            0.000566581875316406,
            2.5042569392392016e-05,
            0.04419228,
            0.00011184053,
            2.3721731923117273e-06,
            0.009161265322372424,
            0.00011735466401514594,
            0.008459919,
            0.006613955102173064,
            4.6038835587025836e-05
        ]
    }
}

I created a PR for the changes.

GemmaTuron commented 1 year ago

@HellenNamulinda Could you move the models to the checkpoints folders and amend the paths to direct there? they are still int he framework folder instead