Skip to content

Commit

Permalink
Merge pull request #95 from ARTbio/IOC_R_improve
Browse files Browse the repository at this point in the history
IOC R Improvement, add schedule and exercices
  • Loading branch information
bellenger-l committed Jan 29, 2024
2 parents bbb2bcf + 734cf5b commit de8bcf7
Show file tree
Hide file tree
Showing 32 changed files with 1,136 additions and 894 deletions.
176 changes: 96 additions & 80 deletions docs/R-IOC/00_IOC_R_program.md
Original file line number Diff line number Diff line change
@@ -1,100 +1,116 @@
In this Interactive Online Companionship which will be held in **December 2023**,
We will train to use the R programming language for data manipulation and analysis
In this Interactive Online Companionship which will be held in **January 2024**.
We will train to use the R programming language for data manipulation and visualization.

The final schedule will be published at mid November
<!-- The final schedule will be published at mid November -->

### Week 0 - **3-hours Zoom video-conference**
### Week 0 - **3-hours Zoom video-conference** 31/01/2024
<!-- Faire un schedule sur google sheets -->

1. Introduction of the Companions and Instructors (10 min)
- Presentation of the IOC general workflow (Scheme) (15 min)
- Presentation of the IOC tools (2 hours)
1. Zoom (5 min)
- Starbio (5 min)
- Slack (10 min)
- GitHub (20 min)
- Psilo storage (15 min)
- R-Studio (65 min)
2. Presentation of the IOC general workflow (Scheme) (15 min)
3. Presentation of the IOC tools (2 hours)
- Zoom
- Starbio
- Slack
- Trello
- R-Studio
- Import data from Psilo to R-Studio
- Work Program of the week 0 - [Week-0 exercises]()
1. Exercises with Slack (use of markdown, configuration, files, no-screen-shots, etc.)
- Exercises with GitHub (web version)
- Data upload in Rstudio, from Psilo
4. Work Program of the week 0 - [Week-0](./01_IOC_R_week_00.md)
- Exercises with Slack and Trello (use of markdown, configuration, files, no-screen-shots, etc.)
- Data upload in Rstudio
- Create various projects and navigate between them
- basic usage of R (pre-existing functions, variables)

----
### Week 1 - **to be scheduled**
1. Question on Week 0
1. ?
2. ?
3. ?
- Program of Week 1 - [Week-1 exercices]()
1. R item
2. R item
- R item
### Week 1 - **First steps**
1. Zoom Video-conference
- Exercice Correction
- Question on Week 0 from slack
- Presentation of automatic reporting in R (Rmarkdown, Quarto)
2. Work to be done throughout the [Week-1](./02_IOC_R_week_01.md)
- Theoretical part
1. Variables in R
2. What's a function?
3. Best Practices for programming in R
- Assignment
1. Exercises with RStudio and R scripting
2. MCQ

### Week 2 - **to be scheduled**
1. Question on Week 1
1. ?
2. ?
3. ?
- Program of Week 2 - [Week-1 exercices]()
1. R item
2. R item
- R item
### Week 2 - **Learning vectors and more**
1. Zoom Video-conference
- Exercice and MCQ Corrections and/or explications
- Questions on Week 1 from slack
2. Work to be done throughout the [Week-2](./03_IOC_R_week_02.md)
- Theoretical part
1. Vectors in R
2. What's an operator ?
3. How upload and download data in R and Rstudio
- Assignment
1. Exercises with RStudio and R scripting
2. MCQ

### Week 3 - **to be scheduled**
1. Question on Week 2
1. ?
2. ?
3. ?
- Program of Week 4 - [Week-1 exercices]()
1. R item
2. R item
- R item
### Week 3 - **Learning lists**
1. Zoom Video-conference
- Exercice and MCQ Corrections and/or explications
- Questions on Week 2 from slack
2. Work to be done throughout the [Week-3](./04_IOC_R_week_03.md)
- Theoretical part
1. What's a list?
2. How to manipulate a list
- Assignment
1. Exercises with RStudio and R scripting
2. MCQ

### Week 4 - **to be scheduled**
1. Question on Week 3
1. ?
2. ?
3. ?
- Program of Week 5 - [Week-1 exercices]()
1. R item
2. R item
- R item
### Week 4 - **Two-dimensional objects**
1. Zoom Video-conference
- Exercice and MCQ Corrections and/or explications
- Questions on Week 3 from slack
2. Work to be done throughout the [Week-4](./05_IOC_R_week_04.md)
- Theoretical part
1. What's a matrix and a dataframe?
2. How to manipulate a two dimensional object
- Assignment
1. Exercises with RStudio and R scripting
2. MCQ

### Week 5 - **to be scheduled**
1. Question on Week 4
1. ?
2. ?
3. ?
- Program of Week 6 - [Week-1 exercices]()
1. R item
2. R item
- R item
### Week 5 - **Level up your code**
1. Zoom Video-conference
- Exercice and MCQ Corrections and/or explications
- Questions on Week 4 from slack
2. Work to be done throughout the [Week-5](./06_IOC_R_week_05.md)
- Theoretical part
1. Improve code thanks to conditions
2. How to apply a function on several data
- Assignment
1. Exercises with RStudio and R scripting
2. MCQ

### Week 6 - **to be scheduled**
1. Question on Week 5
1. ?
2. ?
3. ?
- Program of Week 7 - [Week-1 exercices]()
1. R item
2. R item
- R item
### Week 6 - **Tidyverse**
1. Zoom Video-conference
- Exercice and MCQ Corrections and/or explications
- Questions on Week 5 from slack
2. Work to be done throughout the [Week-6](./07_IOC_R_week_06.md)
- Theoretical part
1. What's the tidyverse?
- Assignment
1. Exercises with RStudio and R scripting
2. MCQ

### Week 7 - **to be scheduled**
1. Question on Week 6
1. ?
2. ?
3. ?
- Program of Week 8 - [Week-1 exercices]()
1. R item
2. R item
- R item
### Week 7 - **Data visualisation**
1. Zoom Video-conference
- Exercice and MCQ Corrections and/or explications
- Questions on Week 6 from slack
2. Work to be done throughout the [Week-7](./08_IOC_R_week_07.md)
- Theoretical part
1. Data visualization thanks to ggplot2
- Assignment
1. Exercises with RStudio and R scripting
2. Small project with a specific objective
3. MCQ


### Week 8 - **Presentations of the analyses by the companions**
1. Questions on Week 7 (30 min max)
1. Zoom Video-conference (30 min max)
- Exercice and MCQ Corrections and/or explications
- Questions on Week 7 from slack
- 20 min presentations by the attendees
61 changes: 28 additions & 33 deletions docs/R-IOC/01_IOC_R_week_00.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Please, follow these guides lines for Zoom usage
- Test your Zoom application once if you never used it. We will be happy to arrange a quick
Zoom session a few days before the IOC if you feel that there may be an issue.
- Be sure that your internet connection is reasonably fast to allow __the use of your camera__.
We much value visual interactions !
We much value visual interactions!
- Arrange a quiet local place for your Zoom weekly session. People talking around you are
disturbing you as well as the other conference participants. If you cannot arrange to be
alone in your office, please warn you colleagues well ahead the session that you will
Expand All @@ -27,9 +27,9 @@ Please, follow these guides lines for Zoom usage
- Use the largest screen you have (another reason not using a laptop). If you have two
screens, even better, but then test zoom with your dual screen setup. We may have to
leave open several windows and applications during the Zoom session.
- Be on time at the session !
- You are welcome to use the chat panel of Zoom to exchange links, code issues etc, but
Slack (see below) is likely better suited to this (especially because the Zoom chat is
- Be on time at the session!
- You are welcome to use the chat panel of Zoom to exchange links, code issues, *etc.*, but
Slack (see below) is likely better suited to this, especially because the Zoom chat is
lost when the application is shutdown. Therefore, be sure to have you Slack board available
during the Zoom sessions.

Expand All @@ -39,23 +39,23 @@ presentation.
### Trello

One of our favorite tools is Trello.
You will be invited to access to the [trello board](https://trello.com/b/NtaNjZ6f){:target="_blank"}
You will be invited to access to the [trello board](https://HERE/TO/CHANGE){:target="_blank"}
of the IOC. Not a lot to say about Trello. It is just a great tool to capture information,
collaborate, and organize projects.

We hope that you will still use Trello for your own projects and purposes when the IOC is
finished !
finished!

### STARTbio
Our [STARTbio web site](https://artbio.github.io/startbio/) is the hub where we connect
all the training materials for IOCs.
To access rapidly to your bulk-RNAseq-analysis IOC, use this
[URL shortcut](https://artbio.github.io/startbio/bulk_RNAseq-IOC/IOC_RNAseq_program/)
To access rapidly to your IOC-R,
use this [URL shortcut](https://artbio.github.io/startbio/R-IOC/00_IOC_R_program/).

Here, you'll find all weekly lessons, exercises, instructions, etc...
Here, you'll find all weekly lessons, exercises, instructions, *etc*.

**Importantly**, you, yes, you, are welcome to propose modifications or fixes to the STARTbio
IOC web pages !
IOC web pages!
Assuming that during this IOC you will become familiar with the use of GitHub, all you
have to do is click on the pencil icon ![](images/github_pencil.png){width="25"}
at the top of each page and propose your modifications in a branch of our GitHub startbio
Expand All @@ -72,7 +72,7 @@ a username and password (you can also use authentication through Google or Apple
If you have already a Slack account, you can connect to this account using this
[URL](https://slack.com/signin#/signin){:target="_blank"}.

!!! warning "Attention !"
!!! warning "Attention!"
If you have multiple login emails for your Slack account, it can become confusing if
some of your workspaces are identified with one email and others with another email.

Expand All @@ -90,16 +90,16 @@ If you have already a Slack account, you can connect to this account using this
[Apple Desktop Slack](https://apps.apple.com/us/app/slack-for-desktop/id803453959?mt=12){:target="_blank"}
| [Windows Desktop Slack](https://slack.com/intl/fr-fr/downloads/windows){:target="_blank"}

Last but not least, Slack is not an option for this IOC !
Last but not least, Slack is not an option for this IOC!

We will be extremely reluctant to communicate by email with you about this IOC.

Indeed, emails capture information very poorly, because very often the subject headings
are poorly chosen (or not chosen at all...), conversations by email deal with heterogeneous
subjects, the recipients of a series of messages vary over time, and other joyful things -
the imagination of Internet users is limitless (and exhausting)....
the imagination of Internet users is limitless (and exhausting)...

Instead, use your [IOC Slack](https://iocbulkrnaseq.slack.com)
Instead, use your [IOC Slack](https://ioc-r.slack.com).

### GitHub
Git is a powerful versionning system.
Expand All @@ -109,17 +109,17 @@ continuous development and continuous integration.
This is the case of [GitHub](https://github.com){:target="_blank"} which we have chosen in ARTbio.
[GitLab](https://about.gitlab.com/) is another option, which will not use here.

Good news ! there is a GitHub repository just for your IOC
[**here**](https://github.com/ARTbio/ARTbio_064_IOC_Bulk-RNAseq/tree/main){:target="_blank"}.
<!-- Good news! there is a GitHub repository just for your IOC
[**here**](https://github.com/ARTbio/ARTbio_065_IOC_R/tree/main){:target="_blank"}.
This repository is private. Therefore, to access it, you will need to create a personal
GitHub account, and to communicate your GitHub identifier to be invited to contribute to
(and benefit from) the repository.
We are not going to use the repository intensively
[ARTbio_064_IOC_Bulk-RNAseq](https://github.com/ARTbio/ARTbio_064_IOC_Bulk-RNAseq/tree/main){:target="_blank"}.
[ARTbio_065_IOC_R](https://github.com/ARTbio/ARTbio_065_IOC_R/tree/main){:target="_blank"}.
However, we will try to take advantage of it to introduce you to the notions
of FAIR (Findability, Accessibility, interoperability and reproducibility) and familiarize
you with the continuous integration and transparency of bioinformatics analyses.
you with the continuous integration and transparency of bioinformatics analyses. -->

!!! info "Disclosure"
The learning curve of git and github is not steep for a biologist... which
Expand All @@ -139,7 +139,7 @@ you with the continuous integration and transparency of bioinformatics analyses.
[PSILO](https://psilo.sorbonne-universite.fr/){:target="_blank"} is file storage server with a NextCloud web interface.
If you are affiliated to Sorbonne-Université (and have a corresponding email address), you
may have already an account on PSILO.
In any case, as an IOC participant, whatever your affiliation. We will configure for you
In any case, as an IOC participant, whatever your affiliation, we will configure for you
a PSILO account with the email of your choice and we will send you your credentials to
access to this account.

Expand All @@ -148,43 +148,38 @@ and easy to find with a web search engine.

We will use PSILO to store large files, such as input datasets or important analysis results.
Importantly, we will show you how to quickly transfer files from PSILO to your Galaxy account,
your local computer, GitHub, etc...
your local computer, GitHub, *etc*...

We may also use our ARTbio PSILO account to share files with you !
We may also use our ARTbio PSILO account to share files with you!

You get it: stop exchanging research datasets (including excel tables) using your email client :smile:


### R and RStudio

We do not intend to redo yet another version of the introductory R tutorials: There are
many of them, they are often excellent and deserve to be used!
We do not intend to redo yet another version of the introductory R tutorials:
there are many of them, they are often excellent and deserve to be used!

Therefore, what is following is a rather classical plan to learn R and for each notion to
be learned we made not only one but multiple links to content built by other authors. This
be learned, we made not only one but multiple links to content built by other authors. This
is the occasion here to thank them collectively for their efforts; detailed credits will
be given in addition all along the following pages.

The most specific feature of the programming language R compared to other languages is its
extensive and specialized support for statistical analysis, data manipulation, and
visualization.

In R, vectors are the primary data structure, allowing efficient manipulation and
computation on entire sets of data at once. This vector-centric approach enables concise
and expressive code for tasks like mathematical operations, statistical computations, and
data transformations, making R well-suited for data analysis and scientific research.

#### An overview of R and RStudio

Brief, but the essential is [here](https://www.youtube.com/watch?v=FIrsOBy5k58&t=3s) or
[here](https://youtu.be/yZ0bV2Afkjc). We will do the same, but at your own pace!

* Transcript of the presentation
* Getting started with the r-studio interface
* Getting started with the RStudio interface
* Creating a project
* First contact with the console
* arithmetic operations
* Variables and Variable assignment
* variables and variable assignment
* The history panel
* The script panel
* script creation
Expand All @@ -199,7 +194,7 @@ Brief, but the essential is [here](https://www.youtube.com/watch?v=FIrsOBy5k58&t
-----
#### Import data from Psilo to Rstudio

![](images/toolbox-do-it-yourself.png){: style="width:75px"} **Do it yourself !**
![](images/toolbox-do-it-yourself.png){: style="width:75px"} **Do it yourself!**

- [x] Upload a file from your local computer: either a txt, csv (comma separated values)
or a tsv (tabulated separated values) text file.
Expand Down Expand Up @@ -233,7 +228,7 @@ Brief, but the essential is [here](https://www.youtube.com/watch?v=FIrsOBy5k58&t
- [x] Check it out, by clicking on the file name `chr22_sample.fa` in the `Files` tab of
the RStudio environment.

??? bug "It did not work for you ?"
??? bug "It did not work for you?"
This is most probably because you did not copy the *direct* psilo link but, instead,
the indirect link that display an intermediate "download file" window.

Expand Down
Loading

0 comments on commit de8bcf7

Please sign in to comment.