ersilia-os / eos1vms

Ligand-based target predictor
Other
0 stars 1 forks source link

New model ready for testing! #2

Closed github-actions[bot] closed 1 year ago

github-actions[bot] commented 1 year ago

This model is ready for testing. If you are assigned to this issue, please try it out using the CLI, Google Colab and DockerHub and let us know if it works!

samuelmaina commented 1 year ago

Hi @GemmaTuron and @simrantan , The model is working and the values are consistent in Docker and Colab eos1vms_docker.log eos1vms_docker_pred.csv eos1vms_colab_pred.csv

but I am getting this output when I run .csv file on CLI.

Traceback (most recent call last):
  File "/opt/conda/envs/ersilia/bin/ersilia", line 33, in <module>
    sys.exit(load_entry_point('ersilia', 'console_scripts', 'ersilia')())
  File "/opt/conda/envs/ersilia/lib/python3.10/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
  File "/opt/conda/envs/ersilia/lib/python3.10/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
  File "/opt/conda/envs/ersilia/lib/python3.10/site-packages/click/core.py", line 1688, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/opt/conda/envs/ersilia/lib/python3.10/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/opt/conda/envs/ersilia/lib/python3.10/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
  File "/workspaces/ersilia/ersilia/cli/commands/__init__.py", line 22, in wrapper
    return func(*args, **kwargs)
  File "/workspaces/ersilia/ersilia/cli/commands/run.py", line 34, in run
    result = mdl.run(input=input, output=output, batch_size=batch_size)
  File "/workspaces/ersilia/ersilia/core/model.py", line 144, in _method
    return self.api(api_name, input, output, batch_size)
  File "/workspaces/ersilia/ersilia/core/model.py", line 353, in api
    return self.api_task(
  File "/workspaces/ersilia/ersilia/core/model.py", line 368, in api_task
    for r in result:
  File "/workspaces/ersilia/ersilia/core/model.py", line 195, in _api_runner_iter
    for result in api.post(input=input, output=output, batch_size=batch_size):
  File "/workspaces/ersilia/ersilia/serve/api.py", line 319, in post
    for res in self.post_unique_input(
  File "/workspaces/ersilia/ersilia/serve/api.py", line 296, in post_unique_input
    for res in self.post_amenable_to_h5(input, output, batch_size):
  File "/workspaces/ersilia/ersilia/serve/api.py", line 241, in post_amenable_to_h5
    for _ in self.post_only_reads(
  File "/workspaces/ersilia/ersilia/serve/api.py", line 159, in post_only_reads
    self._post_reads(input, subfile)
  File "/workspaces/ersilia/ersilia/serve/api.py", line 143, in _post_reads
    results = self.lake.read(input)
  File "/workspaces/ersilia/ersilia/lake/interface.py", line 46, in read
    results_ = self.converter.dataframe2dictlist(
  File "/workspaces/ersilia/ersilia/io/output.py", line 357, in dataframe2dictlist
    ord_idxs = [ords[v_] for v_ in schema[k]["meta"]]
  File "/workspaces/ersilia/ersilia/io/output.py", line 357, in <listcomp>
    ord_idxs = [ords[v_] for v_ in schema[k]["meta"]]
KeyError: 'CHEMBL1075104'

Hi @simrantan , I have attached all the logs of when I was running single and .csv runs so that you can have a look at the commands I was running and you can see if there is any mistake I am making . eos1vms_prediction_error.log

GemmaTuron commented 1 year ago

Hi @simrantan

If you read the model description, you'll see that this model is a ligand-based target prediction model developed by the ChEMBL team. They trained the model using pairs of small molecules and their protein targets, and produced a predictor for two cut-offs: 1uM and 10uM. The model predicts the main target of a small molecule with an accuracy of 69% So, we should be getting the main protein targets (identified by their ChEMBL name) at cut off 1 and 10 respectively When you fetch the modle, you actually see the ChEMBL names printed, but when you run predictions those are nto there.

Please work on the code, I suggest you add print statements to see what each function is returning, and select the outputs that we want