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
203 stars 131 forks source link

📑 Feature Request: Google Colab Guide #380

Closed GemmaTuron closed 1 year ago

GemmaTuron commented 1 year ago

Is your feature request related to a problem? Please describe.

We need to improve the documentation to use Google Colab. There are three main actions that could be done:

Describe the solution you'd like.

Some contributors to work together to improve this. I would suggest using a google docs to create the guides where participants can contribute. Each of the three tasks could have a leader that guides the development and then the others can contribute to it.

Describe alternatives you've considered

No response

Additional context.

No response

Femme-js commented 1 year ago

Hi!

Here is the changes and some some suggestions that I mentioned.

1) We might not need to a lot of info to explain people what is colab in the template as it is already present in the comprehensive guide. 2) While mounting the drive we can provide two instructions to maintain simplicity , (to upload the .csv file to the drive, and then mount the drive to fetch the file). I saw a lot of unnecessary details. 3) One change I did, is with the time module. 4) There was a cell mentioning seconds in a day etc. I am not sure why we need that.

Thoughts @Malikbadmus @pauline-banye @Cee-tech21 and others?

Link to Colab: https://colab.research.google.com/drive/1uNzI9ykFQ_wDqJxnmxIw2Fflo5BnOajB?usp=sharing

Cee-tech21 commented 1 year ago

Well done @Femme-js! Lots of progress has been made now on the colab template. The work is actually being actively discussed about on slack here is the link to Pauline_B's draft:

https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF#scrollTo=1cg9EqzVnJSs

Femme-js commented 1 year ago

Hi!

Here is the changes and some some suggestions that I mentioned.

  1. We might not need to a lot of info to explain people what is colab in the template as it is already present in the comprehensive guide.
  2. While mounting the drive we can provide two instructions to maintain simplicity , (to upload the .csv file to the drive, and then mount the drive to fetch the file). I saw a lot of unnecessary details.
  3. One change I did, is with the time module.
  4. There was a cell mentioning seconds in a day etc. I am not sure why we need that.

Thoughts @Malikbadmus @pauline-banye @Cee-tech21 and others?

Link to Colab: https://colab.research.google.com/drive/1uNzI9ykFQ_wDqJxnmxIw2Fflo5BnOajB?usp=sharing

Let me know if these changes sound good. I would make all these changes.

One more thing we can mention is the command to create the log output.

ZakiaYahya commented 1 year ago

Hi!

Here is the changes and some some suggestions that I mentioned.

  1. We might not need to a lot of info to explain people what is colab in the template as it is already present in the comprehensive guide.
  2. While mounting the drive we can provide two instructions to maintain simplicity , (to upload the .csv file to the drive, and then mount the drive to fetch the file). I saw a lot of unnecessary details.
  3. One change I did, is with the time module.
  4. There was a cell mentioning seconds in a day etc. I am not sure why we need that.

Thoughts @Malikbadmus @pauline-banye @Cee-tech21 and others?

Link to Colab: https://colab.research.google.com/drive/1uNzI9ykFQ_wDqJxnmxIw2Fflo5BnOajB?usp=sharing

That's great @femme-js. The cell you are talking about (in point 3) has been removed.

Femme-js commented 1 year ago

This seems good. I can make a few more changes in the @pauline-banye 's draft.

Malikbadmus commented 1 year ago

@Femme-js , nice work.

Can you have the serve and predict command on different blocks?

Malikbadmus commented 1 year ago

@pauline-banye Sorry was unavailable yesterday but great to see that the colab feature request is set up. The thing I was finding the problem was downloading the csv file. Apart from the suggested mentions by @GemmaTuron I feel we can also introduce a prerequisite as a lot of people might be new to the colab altogether. @Zainab-ik @Malikbadmus @Cee-tech21 What say?

@sayantani11 , are you talking about the output file?

Femme-js commented 1 year ago

@Femme-js , nice work.

Can you have the serve and predict command on different blocks?

Yes, I am adding more changes in the @pauline-banye 's latest draft.

sayantani11 commented 1 year ago

@pauline-banye Sorry was unavailable yesterday but great to see that the colab feature request is set up. The thing I was finding the problem was downloading the csv file. Apart from the suggested mentions by @GemmaTuron I feel we can also introduce a prerequisite as a lot of people might be new to the colab altogether. @Zainab-ik @Malikbadmus @Cee-tech21 What say?

@sayantani11 , are you talking about the output file?

Yeah! And we should also mention the importance of SMILES format tho. A lot of people might not be aware of that🤔

thormiwa commented 1 year ago

2. mount

Hey guys i have seen this time issue being talked about but funny enough there is an inbuilt time in colab that tells you the exact time you need without additional code being written. Because for beginners who aren't really tech savvy the time module might seem alot. Here is a screenshot of a colab notebook

Screenshot 2022-10-19 at 14 47 37
Femme-js commented 1 year ago

https://colab.research.google.com/drive/15Aks1BOOCvgwoL9BjqLeDBYvIaUnVreT?usp=sharing

Here are the new changes @Malikbadmus @pauline-banye @Zainab-ik @Cee-tech21

carcablop commented 1 year ago

Hello Everyone. @pauline-banye @Malikbadmus @Femme-js @Zainab-ik @ZakiaYahya.

I want to collaborate in the guide and in improving the notebook. I was already making a small guide on the steps I had taken to work with colab. I would like to add my suggestions. It is very important and I saw it in the slack, that it is necessary to add a brief explanation about the inputs and the SMILES in the guide or in the notebook, I think that for new collaborators it is good to clarify it, so they can understand what they must change to make the predictions. Could you please add me to the document you are working on so that we can edit and coordinate us or could you share the link? Thank you very much to all.

carcablop commented 1 year ago

@pauline-banye @Malikbadmus Also I think it is important to add a code block where you can check the API with the command: !ersilia -v serve name_model

ZakiaYahya commented 1 year ago

Hello Everyone, @GemmaTuron Here the link of edited guide: (Any suggestions) https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#heading=h.jhw0asezssbt

carcablop commented 1 year ago

Yes @ZakiaYahya Yes, I will write you some comments in the document.

Femme-js commented 1 year ago

Hi @carcablop Here is the final draft of the notebook: https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF#scrollTo=TYmcRRZ4mnkx

You can copy this and edit your suggestions. We all can have a look over it then.

@GemmaTuron You can also have a look at the new template version here.

Malikbadmus commented 1 year ago

@pauline-banye @Malikbadmus Also I think it is important to add a code block where you can check the API with the command: !ersilia -v serve name_model

This has been added to the notebook

paulinebanye commented 1 year ago

@Femme-js , nice work. Can you have the serve and predict command on different blocks?

Yes, I am adding more changes in the @pauline-banye 's latest draft.

I already separated them into different blocks @Femme-js

Malikbadmus commented 1 year ago

https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#heading=h.jhw0asezssbt

Please you guys should review the Comprehensive guide and let us know your suggestions on this.

paulinebanye commented 1 year ago

@pauline-banye @Malikbadmus Also I think it is important to add a code block where you can check the API with the command: !ersilia -v serve name_model

Thanks @carcablop I have handled that already.

ZakiaYahya commented 1 year ago

@pauline-banye @Malikbadmus Also I think it is important to add a code block where you can check the API with the command: !ersilia -v serve name_model

Thanks @carcablop I have handled that already.

@pauline-banye i have added that code block in the guide, please check it

carcablop commented 1 year ago

inal draft of the notebook:

Thank you. I'll take a look at it

paulinebanye commented 1 year ago

Hi @carcablop Here is the final draft of the notebook: https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF#scrollTo=TYmcRRZ4mnkx

You can copy this and edit your suggestions. We all can have a look over it then.

@GemmaTuron You can also have a look at the new template version here.

Hi @Femme-js This is the final template draft. I honestly doubt I would be making more additions to it. I'm just waiting for @GemmaTuron's feedback.

carcablop commented 1 year ago

This has been added to the notebook I saw it, thanks you.

Femme-js commented 1 year ago

Hi @carcablop Here is the final draft of the notebook: https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF#scrollTo=TYmcRRZ4mnkx You can copy this and edit your suggestions. We all can have a look over it then. @GemmaTuron You can also have a look at the new template version here.

Hi @Femme-js This is the final template draft. I honestly doubt I would be making more additions to it. I'm just waiting for @GemmaTuron's feedback.

Sure, I guess we have already provided a good-to-go template. If there would be any more interesting suggestions, I can take a look at them. @GemmaTuron Can also provide her feedback, once she gets time to look at it.

Femme-js commented 1 year ago

Good work on the guide everyone. I will take a more detailed look and provide some suggestions if any.

ZakiaYahya commented 1 year ago

Good work on the guide everyone. I will take a more detailed look and provide some suggestions if any.

@Femme-js please free to give suggestions :)

paulinebanye commented 1 year ago

Hello Everyone. @pauline-banye @Malikbadmus @Femme-js @Zainab-ik @ZakiaYahya.

I want to collaborate in the guide and in improving the notebook. I was already making a small guide on the steps I had taken to work with colab. I would like to add my suggestions. It is very important and I saw it in the slack, that it is necessary to add a brief explanation about the inputs and the SMILES in the guide or in the notebook, I think that for new collaborators it is good to clarify it, so they can understand what they must change to make the predictions. Could you please add me to the document you are working on so that we can edit and coordinate us or could you share the link? Thank you very much to all.

thanks for your willingness to assist @carcablop, have you had a look at the final draft yet? If you do have anymore suggestions, please tag me in a comment here.

ZakiaYahya commented 1 year ago

Yes @ZakiaYahya Yes, I will write you some comments in the document. Yes i have saw that

Yes @ZakiaYahya Yes, I will write you some comments in the document.

yes i have seen them , Thanks. please put images with english content so everyone can understand.

paulinebanye commented 1 year ago

Hi @carcablop Here is the final draft of the notebook: https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF#scrollTo=TYmcRRZ4mnkx You can copy this and edit your suggestions. We all can have a look over it then. @GemmaTuron You can also have a look at the new template version here.

Hi @Femme-js This is the final template draft. I honestly doubt I would be making more additions to it. I'm just waiting for @GemmaTuron's feedback.

Sure, I guess we have already provided a good-to-go template. If there would be any more interesting suggestions, I can take a look at them. @GemmaTuron Can also provide her feedback, once she gets time to look at it.

Yeah we considered extra additions but in the long run, we decided that the template should be minimal with the more detailed information present in the user guide that @Malikbadmus is working on.

paulinebanye commented 1 year ago

@pauline-banye @Malikbadmus Also I think it is important to add a code block where you can check the API with the command: !ersilia -v serve name_model

Thanks @carcablop I have handled that already.

@pauline-banye i have added that code block in the guide, please check it

@Malikbadmus

ZakiaYahya commented 1 year ago

Hi @carcablop Here is the final draft of the notebook: https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF#scrollTo=TYmcRRZ4mnkx You can copy this and edit your suggestions. We all can have a look over it then. @GemmaTuron You can also have a look at the new template version here.

Hi @Femme-js This is the final template draft. I honestly doubt I would be making more additions to it. I'm just waiting for @GemmaTuron's feedback.

Sure, I guess we have already provided a good-to-go template. If there would be any more interesting suggestions, I can take a look at them. @GemmaTuron Can also provide her feedback, once she gets time to look at it.

Yeah we considered extra additions but in the long run, we decided that the template should be minimal with the more detailed information present in the user guide that @Malikbadmus is working on.

@pauline-banye i was also working on comprehensive guide along with @Malikbadmus :)

carcablop commented 1 year ago

Yeah we considered extra additions but in the long run, we decided that the template should be minimal with the more detailed information present in the user guide that @Malikbadmus is working on.

@pauline-banye It may be necessary to add only this text "Once uploaded, copy the path of the uploaded file" after: "Click on the folder icon to the left and upload the input .csv file which will be used in the prediction/calculations". Please let me know if you agree to add it to the template. Thank you

paulinebanye commented 1 year ago

Yeah we considered extra additions but in the long run, we decided that the template should be minimal with the more detailed information present in the user guide that @Malikbadmus is working on.

@pauline-banye It may be necessary to add only this text "Once uploaded, copy the path of the uploaded file" after: "Click on the folder icon to the left and upload the input .csv file which will be used in the prediction/calculations". Please let me know if you agree to add it to the template. Thank you

Sure, I’ll have a look at it. Thanks 👍🏻

Malikbadmus commented 1 year ago

@pauline-banye , on the suggestion fof @ZakiaYahya of having a global variable for the model name, instead of having to input it manually.

https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF?usp=sharing

I have made the changes for that here, you can review it and incorporate it into the final design.

carcablop commented 1 year ago

@pauline-banye , on the suggestion fof @ZakiaYahya of having a global variable for the model name, instead of having to input it manually.

https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF?usp=sharing

I have made the changes for that here, you can review it and incorporate it into the final design.

@pauline-banye @Malikbadmus @ZakiaYahya I also think that creating a variable for the model name is a very good idea. I suggest if it seems good to you that you can add a block specifying the name of the model, as well as the name of the path:

imagen

I share the link where I modify it if it can be added to the final template @pauline-banye: https://colab.research.google.com/drive/1ioD77sLNLpM62gaM0CNM-d8GVXsFKjz6#scrollTo=TYmcRRZ4mnkx

Zainab-ik commented 1 year ago

Hello Everyone, @GemmaTuron Here the link of edited guide: (Any suggestions) https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#heading=h.jhw0asezssbt

Well done everyone, apologies I wasn't available yesterday. @Malikbadmus @ZakiaYahya Thanks for the work on the guide. I made a few direct edits, I realized getting the output file wasn't specifically stated, so I made an elaborate explanation on that. Also, one of the images was misleading as it had an import module on it, I changed that. I also added a few more images to explain some things.

Zainab-ik commented 1 year ago

https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#heading=h.jhw0asezssbt

Please you guys should review the Comprehensive guide and let us know your suggestions on this.

also, I wanted to suggest that we can make use of hashnode to write the final comprehensive guide, it's more real-time as we can add code blocks instead of images. It's a more similar way to the gitbook and it's more implementable and should be easy to be incorporated than google docs. @ZakiaYahya @Malikbadmus let me know what you guys think so we can take each other through. Shouldn't be difficult since we have the docs template, we just copy and paste and make thorough edits.

Zainab-ik commented 1 year ago

@pauline-banye , on the suggestion fof @ZakiaYahya of having a global variable for the model name, instead of having to input it manually. https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF?usp=sharing I have made the changes for that here, you can review it and incorporate it into the final design.

@pauline-banye @Malikbadmus @ZakiaYahya I also think that creating a variable for the model name is a very good idea. I suggest if it seems good to you that you can add a block specifying the name of the model, as well as the name of the path:

imagen

I share the link where I modify it if it can be added to the final template @pauline-banye: https://colab.research.google.com/drive/1ioD77sLNLpM62gaM0CNM-d8GVXsFKjz6#scrollTo=TYmcRRZ4mnkx

the template requires access

Malikbadmus commented 1 year ago

Hello Everyone, @GemmaTuron Here the link of edited guide: (Any suggestions) https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#heading=h.jhw0asezssbt

Well done everyone, apologies I wasn't available yesterday. @Malikbadmus @ZakiaYahya Thanks for the work on the guide. I made a few direct edits, I realized getting the output file wasn't specifically stated, so I made an elaborate explanation on that. Also, one of the images was misleading as it had an import module on it, I changed that. I also added a few more images to explain some things.

That's fantastic! @Zainab-ik

Malikbadmus commented 1 year ago

https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#heading=h.jhw0asezssbt Please you guys should review the Comprehensive guide and let us know your suggestions on this.

also, I wanted to suggest that we can make use of hashnode to write the final comprehensive guide, it's more real-time as we can add code blocks instead of images. It's a more similar way to the gitbook and it's more implementable and should be easy to be incorporated than google docs. @ZakiaYahya @Malikbadmus let me know what you guys think so we can take each other through. Shouldn't be difficult since we have the docs template, we just copy and paste and make thorough edits.

@Zainab-ik ,I think the suggestion is valid.

@ZakiaYahya what's your thought on this?

ZakiaYahya commented 1 year ago

@Zainab-ik nice suggestion. @Malikbadmus @Zainab-ik, But i didn't use hashnode before but i can help u still in that.

Malikbadmus commented 1 year ago

@ZakiaYahya , I have also never used it before, I checked it out and it looks good, sort of like medium but for tech.

@Zainab-ik , we will appreciate it if you can put us through this.

Malikbadmus commented 1 year ago

So I think the guide is ready as it is, all that's left is to deploy it to Hashnode as suggested by @Zainab-ik

https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#

Thanks to everyone that contributed to this, you guys are amazing!!

ZakiaYahya commented 1 year ago

@Zainab-ik if you guide us on hashnode, me and @Malikbadmus will help you to convert the guide into a hashnode template.

Zainab-ik commented 1 year ago

@Zainab-ik if you guide us on hashnode, me and @Malikbadmus will help you to convert the guide into a hashnode template.

We are good to start, I'd send a hashnode draft we will edit soon.

carcablop commented 1 year ago

@pauline-banye , on the suggestion fof @ZakiaYahya of having a global variable for the model name, instead of having to input it manually. https://colab.research.google.com/drive/1XvEil6gJGuiHdqID9jpubE9gVHcdxRUF?usp=sharing I have made the changes for that here, you can review it and incorporate it into the final design.

@pauline-banye @Malikbadmus @ZakiaYahya I also think that creating a variable for the model name is a very good idea. I suggest if it seems good to you that you can add a block specifying the name of the model, as well as the name of the path: imagen I share the link where I modify it if it can be added to the final template @pauline-banye: https://colab.research.google.com/drive/1ioD77sLNLpM62gaM0CNM-d8GVXsFKjz6#scrollTo=TYmcRRZ4mnkx

the template requires access

Hello @zainab-ik @pauline-banye you already have access. Thanks you

carcablop commented 1 year ago

Así que creo que la guía está lista tal como está, todo lo que queda es implementarla en Hashnode como lo sugiere @Zainab-ik

https://docs.google.com/document/d/1JlIVmLGa1cL_Qk3q1yS0hVfnDJlHupe4Zg5L8TBYG2I/edit#

Gracias a todos los que contribuyeron a esto, ustedes son increíbles!!

Thank you very much. They are an excellent work team. I made a small comment in the guide. I also like the idea of @Zainab-ik, although I have not used hashnode, I would like to continue contributing to the guide if necessary. @Malikbadmus @Zainab-ik @ZakiaYahya I was wondering what you think if we also add in the guide the option of the global variable for the name of the model as it was proposed for the template.

GemmaTuron commented 1 year ago

Hello all!!

Great job, let me go part by part:

Let me know about the GitBook and thanks for the excellent work!

Malikbadmus commented 1 year ago

Hello all!!

Great job, let me go part by part:

  • The document is very detailed, good job on explaining how to load data. Might I suggest we add it to Ersilia's GitBook instead of Hashnode? This is where all documentation of Ersilia resides. I think it will make it easier for other users to find, what do you think? I can give access to one of you to move the final version of the document to GitBook
  • The notebook: I like the idea of specifying the model name at the beginning as a variable. Also, I'd suggest using as much as possible the forms (as the cell for installing ersilia) where the user does not even need to see the code but just click on the button to run, or input the path or the name of the variable. I can't seem to find a link to the video, I understand this is still work in progress?

Let me know about the GitBook and thanks for the excellent work!

Thank you very much @GemmaTuron.

@ZakiaYahya , @Zainab-ik and @carcablop . Lets us go with @GemmaTuron suggestion of adding it to Ersilia Gitbook since that will make it much easier for other user's to find.

@Zainab-ik , you can still put us through on how to use hashnode , if it wont be to much hassle for you.