ersilia-os / ersilia

The Ersilia Model Hub, a repository of AI/ML models for infectious and neglected disease research.
https://ersilia.io
GNU General Public License v3.0
220 stars 147 forks source link

🐛 Bug: Model API eos526j:predict did not produce an output #374

Closed carcablop closed 1 year ago

carcablop commented 2 years ago

Describe the bug.

When fetching the model eos526j I have the following error: Something went wrong with Ersilia...

EmptyOutputError

Error message: Model API eos526j:predict did not produce an output

Checking the log file, the first error found is a pip dependency: ''' ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts. bentoml 0.11.0 requires sqlalchemy<1.4.0,>=1.3.0, but you have sqlalchemy 1.4.36 which is incompatible.''' Although the error shows me that sqlalchemy is incompatible, in the following lines of the log it tells me that the version of sqlalchemy was correctly installed to this version: sqlalchemy-1.3.24.

Describe the steps to reproduce the behavior

  1. I run the command: ersilia -v fetch eos526j > eos526j_fetch_3.log 2>&1 Sytem: Ubuntu 20.04.3 LTS Python 3.9.12 conda 22.9.0 pip 21.2.4 from /home/carcablop/miniconda3/lib/python3.9/site-packages/pip (python 3.9) eos526j_fetch_4.log

Expected behavior.

No response

Screenshots.

No response

Operating environment

Ubuntu 20.04.3 LTS

Additional context

No response

carcablop commented 2 years ago

I tried again to install Git-lfs. Just like I do below.:


(base) carcablop@carcablop-VirtualBox:~$ conda install git-lfs -c conda-forge
Collecting package metadata (current_repodata.json): done
Solving environment: done

# All requested packages already installed.

Retrieving notices: ...working... done
(base) carcablop@carcablop-VirtualBox:~$ git-lfs install
**Git LFS initialized.**
(base) carcablop@carcablop-VirtualBox:~$ conda activate ersilia
(ersilia) carcablop@carcablop-VirtualBox:~$ git clone https://github.com/ersilia-os/isaura.git
Clonando en 'isaura'...
remote: Enumerating objects: 358, done.
remote: Counting objects: 100% (358/358), done.
remote: Compressing objects: 100% (237/237), done.
remote: Total 358 (delta 234), reused 233 (delta 115), pack-reused 0
Recibiendo objetos: 100% (358/358), 61.87 KiB | 833.00 KiB/s, listo.
Resolviendo deltas: 100% (234/234), listo.
(ersilia) carcablop@carcablop-VirtualBox:~$ cd isaura/
(ersilia) carcablop@carcablop-VirtualBox:~/isaura$ pip install -e .
Obtaining file:///home/carcablop/isaura
  Preparing metadata (setup.py) ... done
Requirement already satisfied: h5py==3.7.0 in /home/carcablop/miniconda3/envs/ersilia/lib/python3.7/site-packages (from isaura==0.0.1) (3.7.0)
Requirement already satisfied: loguru==0.6.0 in /home/carcablop/miniconda3/envs/ersilia/lib/python3.7/site-packages (from isaura==0.0.1) (0.6.0)
Requirement already satisfied: numpy>=1.14.5 in /home/carcablop/miniconda3/envs/ersilia/lib/python3.7/site-packages (from h5py==3.7.0->isaura==0.0.1) (1.21.6)
Installing collected packages: isaura
  Running setup.py develop for isaura
**Successfully installed isaura-0.0.1**

Even though I reinstalled the required packages according to the documentation, I still get the same error.

I share the last log that I made, eos526j_fetch_5.log I can see that in line 631 I have an error that isaura is not installed, but in the previous steps that I made, it can be seen that isaura was installed correctly.

What could be the problem, I must be in the same directory of isuara or ersilia to execute the fetch? In the first example with the os3b5e model, I had no problem, nor did I have a problem with the eos2v11 model, they executed correctly.

carcablop commented 2 years ago

This is my version of sqlalchemy:

(eos526j) carcablop@carcablop-VirtualBox:~$ python
Python 3.7.13 (default, Mar 29 2022, 02:18:16) 
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sqlalchemy
>>> sqlalchemy.__version__
'1.3.24'
EstherIdabor commented 2 years ago

@carcablop you do not have to be in the ersilia directory to fetch the models, as long as the ersilia environment is activated you can fetch the models. You can try sudo apt-get update, sudo apt-get upgrade, sudo apt install python3-pip. And then rerun the terminal, this might be helpful as it helped me resolve issues with pip install.

GemmaTuron commented 2 years ago

Hi @carcablop you need to check GIT LFS installation: see line 18 git: 'lfs'no es un comando de git. Mira 'git --help'.

carcablop commented 2 years ago

Hi @carcablop you need to check GIT LFS installation: see line 18 git: 'lfs'no es un comando de git. Mira 'git --help'.

Thank you @GemmaTuron. I alredy solved that problem.

carcablop commented 2 years ago

@carcablop you do not have to be in the ersilia directory to fetch the models, as long as the ersilia environment is activated you can fetch the models. You can try sudo apt-get update, sudo apt-get upgrade, sudo apt install python3-pip. And then rerun the terminal, this might be helpful as it helped me resolve issues with pip install.

Thank you so much @EstherIdabor. I'm going to do what you suggest, and I'll comment on what comes out.

GemmaTuron commented 2 years ago

Hi @carcablop

You solved the git-lfs issue? Can you post the log of the error you are getting now if git lfs is working properly? To keep all issues about a model in a thread, @Zakia-Yahya was able to install and run #377 Thanks!

carcablop commented 2 years ago

Hello @GemmaTuron. I'm sorry I didn't answer before and share the last log, I focused on advancing in Colab and the last stage. Of course, I don't have git-lfs errors anymore, this is already solved for me. I share the last log I generated on Ocubre 18. Thank you. eos526j_fetch_181003.log

carcablop commented 2 years ago

Now the error I have with pip dependencies, when I try to update it, I try to run "sudo apt-get update", it throws me the following error: "Error GPG ..The public key is not available. erro_clavepublica I have tried to fix it from terminal with this command: sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys "my_public_key The command is executed successfully and when I update again, the GPG Error follows. When I fetch this same model in Google Colab, I get a pip warning about pip: imagen

I will inquire more about this and I will follow the thread of the bug #377 of @Zakia-Yahya. Thanks

GemmaTuron commented 2 years ago

Hi @carcablop thanks, can you try this:

sudo gpg --keyserver pgpkeys.mit.edu --recv-key 23F3D4EA75716059 sudo gpg -a --export 23F3D4EA75716059 | sudo apt-key add - sudo apt-get update

Make sure I copied the key from your error correctly before running! And I would also suggest updating conda and pip. As you can see in the error log, your conda version is quite old (4 vs current 22). The pip message on colab we know about it and still havent figured out how to silence it, but it is not a problem in principle, thanks for reporting.

carcablop commented 2 years ago

Thank you so much @GemmaTuron. When I execute the command. I have the following issue: imagen

I try to do it in root mode. It seems that if the key is brought, but then when I update I continue with the problem.

imagen

imagen

imagen

I already tried it, I also try it with the YPPA Manager.

GemmaTuron commented 2 years ago

Hi @carcablop !

I see you are using a virtual box, which I have little experience with. Maybe try to generate the key first as explained here? Alternatively you could simply use the new release of Ubuntu 22... I can't provide much more guidance since this is not related to Ersilia but system configuration with linux. Let's give it one last try before we continue!

carcablop commented 2 years ago

Hello @GemmaTuro. Thank you very much for your help, I carried out all the steps as described in the provided guide, and everything was executed successfully, I configured the keys and updated them in the Launchpad, but the problem persists, I keep getting the same error. I don't know what could have been the origin of the problem, before this virtual machine worked well for me and I had used it for other projects, I didn't even have problems with the previous models, everything was after I tried with the eos526j model. To continue, I installed another new machine with Ubuntu 22, and everything works fine there, I have ersilia installed and the models run successfully, even the eos526j that had problems was able to run fetch successfully. I attach the log. I didn't do it with WSL because it also generated an error that I couldn't solve at the time.: imagen

imagen And I have virtualization enabled.

I think I better continue on the new machine that I have installed with ubuntu 22.

carcablop commented 2 years ago

I share my new log from Ubuntu 22 virtual machine for the eos526j model executed successfully fetch_eos526jlog.log

When it tries to predict just one molecule, this was the log it threw at me logeos526j.log

GemmaTuron commented 2 years ago

Hi @carcablop !

Great to hear you were able to solve the problems. For one molecule is then working? in the log I don't see any error, was the output printed on the screen?

carcablop commented 2 years ago

For one molecule is then working? in the log I don't see any error, was the output printed on the screen?

Hello @GemmaTuron. It was tried for a single molecule, but that was the result and nothing was printed on the screen, due to some possible error, the console was simply closed, the output.csv file was not generated either. I thought that since the model has flaws, since Google Colab had also experienced it for a single molecule, and following the thread of problem #377 I understand that this model needs to be debugged because it has not yet been possible to convert that .json output to csv. I did NOT keep trying because I thought I would be in debugging and so no output was thrown at me. I could try again.

GemmaTuron commented 2 years ago

Ok thanks @carcablop , let's pause it here!

carcablop commented 1 year ago

Hi @GemmaTuron and @miquelduranfrigola I have been testing this model in my CLI. The model fetched successfully. This is the log. fetch_eos526j.txt

I can make predictions in the following way:

  1. Passing a molecule I have the following output. predict_onemolecule_eos526j.txt

  2. Passing an input .csv file with two SMILES I have the following output in a file in .json format, since in the main.py we can see that the output is written to a .json file. https://github.com/ersilia-os/eos526j/blob/main/model/framework/code/main.py#L71

jsonlist_output_emlcanonical.txt

If I give it a .csv file as an output, this generates an error, since the model is configured to write the output in .json format. The log it's the following: log_json_eos526j_csv.log

carcablop commented 1 year ago

Moving this discussion to #560