Thomas Denecker & Claire Toffano-Nioche

Session 2

25/01/2019

Informations pratiques

Novembre

Janvier

Février

Mars

Avril

Mai

Juin

Juillet

...

26

25

22

29

26

31

28

à définir

...

Pourquoi FAIR ?

Facile à trouver

Les outils utilisés sont des références dans leur domaine


Accessible

Les codes, les slides, le docker sont en ligne 


Interopérable

Les différents outils communiqueront entre eux


Réutilisable / Reproductible

Le protocole est enregistré sous un fichier dont l'exécution rejoue l'ensemble de l'analyse à l'identique

Session 1 : La mémoire du code

  • FAIR : initiation à Git & Github
  • FAIR : installation d'outils (conda)
  • WF : fastq -> table de comptes (FastQC, bowtie2, samtools, HTseq-counts)

 Session 2 : Ceci n'est pas de la magie

Session 4 : Une virée en mer

  • FAIR : maîtriser son environnement de cacul (Docker)
  • WF : dockerfile
  • FAIR : ouvrir un terminal, rapatrier des données (wget, ascp, md5sum)
  • WF : inputs

 Session 3 : Jouer avec les outils d'analyse

Session 5 : I've got the power!

  • FAIR : calculer ailleurs, calcul parallèle sans gestion (snakemake)
  • WF : snakefile
  • FAIR : intégration continue (travis)
  • WF : vos propres données et projet

 Session 6 : LoveR

Session 8 : MYOP (Make Your Own Project)

  • FAIR : valorisation par ajout de dynamisme (Shiny, Binder), partage (GitHub Pages)
  • WF : graphiques dynamiques
  • FAIR : developpement interactif (Jupyter), cahier de manip (Notebook R), initiation à R
  • WF : analyse de l'expression différentielle de gènes (DESeq2)

 Session 7 : Valorisation et partage

Communications

Slack

CompBiol-I2BC chanel : fair_bioinfo

Mail

- thomas.denecker@gmail.com

- claire.toffano-nioche@u-psud.fr

Session 2

Ceci n'est pas de la magie

Le projet

Analyse d'expression différentielle de gènes à partir de données RNAseq

Programme session 2

  • Présentation du projet et de l'application finale
  • Présentation des données
  • Présentation du workflow de l'analyse
  • Ouvrir un terminal (Mac Os, Ubuntu ou Windows)
  • Initialisation du projet sur Git/Github
  • Premier script shell : création de l'arborescence du projet
  • Amélioration du script shell : récupération des données

Les données

Etude du métabolisme du fer chez O. tauri

Origine des données 

Organisme : Ostreococcus tauri

 

Type de données : RNAseq single end

 

Publication : 10.1186/s12864-016-2666-6

Plan d'expérience 

Répliques biologiques : 3

Conditions expérimentales différentes : 16

Etude de la différence +Fe / -Fe à 9h en lumière condition 1

Plan d'expérience 

Répliques biologiques : 3

Conditions expérimentales différentes : 16

Etude de la différence +Fe / -Fe à 9h en lumière condition 2

Démo de l'application finale

Où sont les données?  

47 fichiers d'expériences

Type de données  : FASTQ

Rappel : Format texte permettant de stocker des séquences biologiques et les scores de qualité associés (à chaque base son score). Les séquences sont écrites au format fastq

 

Exemple :

 

@SRR3099585.1 HWI-ST365:427:H8K2HADXX:1:1101:1497:2215/1
CTCCCTTGACATCTCGATGTCCTTGGTGAGCTCGTCAACCGCGTCCGCACGATACATTTGGTATGTCTTGAATACCTTCGGGAATCGTTGACGATCTGGA
+
@@@DADDD8:CFH9E3:?AC?BF>AC<+C+<E?:8C?FEE0?D0@:'--;A?B;>>3(6;@B>5;5B@@A@:3>A#########################
@SRR3099585.2 HWI-ST365:427:H8K2HADXX:1:1101:1653:2087/1
GTCGACGAATATAAAGTTATTGGGAGAGACGCTGAAGGTCGCGTTGGAGATGGACTCAATTGCGCTTCGCGTTCGCCTCGTGGGTGTTCGCCCGGCTCAC
+
@CBFFFFFHHGHHJJJHHJJJJJJJJJIJJJJJJIJJJGHJJJJJJHHHHHFFFFFEEEEEEDDDDDDDDDDDDDDDDDDDDDDBDDDDDDDDDDDDDDD
@SRR3099585.3 HWI-ST365:427:H8K2HADXX:1:1101:1554:2142/1
CGACTCAATAACCTTGTCTTCGATCGGCGGCACGGAGCCAGTGATATCGCATTCGCCGGGGAACCACTCGAGCTCAGTCATCCGAGAGCGCAAGGGCGCT

Le workflow

Mise en place d'un workflow d'analyse

Le choix des outils utilisés et des paramètres associés dépendent de la technologie de séquençage, de l'organisme étudié et de la question scientifique posée

La question scientifique

Quels sont les gènes dont l'expression (~ nombre de transcrits) est modifiée dans un environnement pauvre en fer?

FASTQ

FASTQ

Condition A

Condition B

ostta01g0XXX1

ostta01g0XXX4

ostta01g0XXX9

ostta01g0XX25

ostta01g0XX11

...

Liste de gènes candidats

Les conditions étudiées 

SampleID Iron Light Time Condition
SRR3105699 Depleted Light 9h CondA
SRR3105698 Depleted Light 9h CondA
SRR3105697 Depleted Light 9h CondA
SRR3099587 Standard Light 9h CondB
SRR3099586 Standard Light 9h CondB
SRR3099585 Standard Light 9h CondB

conditions.txt

Worflow d'analyse

Reads (FASTQ)

Génome de référence

Annotations du génome

FASTQC

Bowtie2

SAMtools

IGV

DEseq2

HTSeq

Worflow d'analyse

Reads (FASTQ)

Génome de référence

Annotations du génome

FASTQC

Bowtie2

SAMtools

IGV

DEseq2

HTSeq

De nombreux fichiers engendrés !

Organisation 

Etape 1

Organisation du dossier d'analyse 

A la main ? Non !!! 

Création d'un script qui va créer pour nous les dossiers 

 

Utilisation d'un terminal et écriture d'un script bash (.sh)

Intérêt du script : dès qu'on change de données, il suffit de rejouer le script

Éditeur de texte 

(outils de traitement de texte)

Ouvrir un terminal - Linux (1/2)

Ouvrir un terminal - Linux (2/2)

Ouvrir un terminal sur mac 

1

2

Installer un terminal sur windows

Sur windows store, rechercher et télécharger ubuntu 18.04 LTS

Puis le lancer (installation en quelques minutes)

Configurer le terminal sur windows

Installing, this may take a few minutes...
Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username: tdenecker
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Installation successful!
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

tdenecker@DESKTOP-B8ON598:~$

Ouvrir un terminal sur windows

Script de construction de l'architecture

Etape 1 : Création d'un dossier 

Etape 2 : Création d'un répertoire Github et connexion à Git

Etape 3 : Ecrire le script

Creation d'un dossier en ligne de commande

Création d'un dossier

Vérification de la présence du dossier  

mkdir Fair_project
tdenecker@DESKTOP-B8ON598:~$ ls
Fair_project

Entrer dans le dossier 

tdenecker@DESKTOP-B8ON598:~$ cd Fair_project/
tdenecker@DESKTOP-B8ON598:~/Fair_project$

Création du repository sur Github

Connexion de git et github

echo "# Fair_project" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin https://github.com/thomasdenecker/Fair_project.git
git push -u origin master

Connexion à Github

Création du script

nano FAIR_script.sh

1. Ouverture d'un éditeur de texte ou avec nano

 

 

2. Ecriture du script

 

Comment créer un dossier en ligne de commande?

Création du script

nano FAIR_script.sh

1. Ouverture d'un éditeur de texte ou avec nano

 

2. Ecriture du script

 

 

 

 

 

3. Lancer le script

 

 

tdenecker@DESKTOP-B8ON598:~/Fair_project$ cat Fair_script.sh
mkdir Project
mkdir Project/samples
mkdir Project/annotations
mkdir Project/bowtie2
mkdir Project/fastqc
mkdir Project/genome
mkdir Project/graphics
mkdir Project/htseq
mkdir Project/reference
mkdir Project/samtools
./Fair_script.sh

Architecture du dossier

Installation du package tree

sudo apt-get update
sudo apt-get install tree

Utilisation du package tree

tdenecker@DESKTOP-B8ON598:~/Fair_project$ tree Project/
Project/
├── annotations
├── bowtie2
├── fastqc
├── genome
├── graphics
├── htseq
├── reference
├── samples
└── samtools

9 directories, 0 files

Et maintenant ?

Sur github !

tdenecker@DESKTOP-B8ON598:~/Fair_project$ git status
On branch master
Your branch is up to date with 'origin/master'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        Fair_script.sh

nothing added to commit but untracked files present (use "git add" to track)

tdenecker@DESKTOP-B8ON598:~/Fair_project$ git add .
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git commit -m "Init Fair_script.sh - architecture"
[master 2d2e31b] Init Fair_script.sh - architecture
 1 file changed, 11 insertions(+)
 create mode 100644 Fair_script.sh
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git push origin master
Username for 'https://github.com': thomasdenecker
Password for 'https://thomasdenecker@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 392 bytes | 130.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/thomasdenecker/Fair_project.git
   61310c5..2d2e31b  master -> master

Etape 2

Téléchargement des fichiers

Méthodes de téléchargement des données étudiées

1. fastq-dump (NCBI) : méthode décrite sur le site SRA

Très fiable

Très lent 

Fichier FASTQ

2. wget (EBI) : méthode proposée par l'EBI

FASTQ.gz

Fiable

Vitesse moyenne

Préparation

3. ascp (EBI) : méthode proposée par l'EBI

FASTQ.gz

Express !

Manque de fiabilité en wifi

Préparation

Trouver les bonnes informations pour le téléchargement

Sur le site SRA, trouver une des expériences

CLICK

Récupérer les SRR (fastq-dump, NCBI) ou le PRJNA (EBI)

ID pour le fasq-dump sur le NCBI

Rechercher cet ID sur l'EBI

Trouver les bonnes informations pour le téléchargement

Méthode Fastq-dump

wget --quiet "https://ftp-trace.ncbi.nlm.nih.gov/sra/sdk/2.9.2/sratoolkit.2.9.2-ubuntu64.tar.gz"
tar -xzf sratoolkit.2.9.2-ubuntu64.tar.gz
rm sratoolkit.2.9.2-ubuntu64.tar.gz
PATH /home/sratoolkit.2.9.2-ubuntu64/bin:$PATH

Installation

fastq-dump SRR3105699

Utilisation

Approche non utilisée par la suite

Méthode wget

Pas d'installation pour wget (de base)

wget ADRESSE

Utilisation

Mais quelle adresse ?

Récupérer l'adresse

En utilisant l'ID pour l'EBI : ici PRJNA304086

Click 

Récupérer l'adresse

Select column

Récupérer l'adresse

Télécharger

Récupérer l'adresse

study_accession	experiment_accession	run_accession	fastq_md5	fastq_ftp
PRJNA304086	SRX1452060	SRR2960338	e854e5445d32bfc64464c03584500f5b	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/008/SRR2960338/SRR2960338.fastq.gz
PRJNA304086	SRX1452063	SRR2960341	d60f71f8b001c85de09a73170d0b3335	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/001/SRR2960341/SRR2960341.fastq.gz
PRJNA304086	SRX1452064	SRR2960343	057bcfd55bdcccab35ba834b08ee84b9	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/003/SRR2960343/SRR2960343.fastq.gz
PRJNA304086	SRX1452071	SRR2960356	9107eb12bd547a0c06a4129427266cf2	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/006/SRR2960356/SRR2960356.fastq.gz
PRJNA304086	SRX1452072	SRR2960357	db5c44d73023adba175b3b36d628299c	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/007/SRR2960357/SRR2960357.fastq.gz
PRJNA304086	SRX1452073	SRR2960358	97222fb332bf28f0cfe038e241d51508	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/008/SRR2960358/SRR2960358.fastq.gz
PRJNA304086	SRX1452825	SRR2961630	2c7d97815a5b4a03005ff5fd35c71e46	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/000/SRR2961630/SRR2961630.fastq.gz
PRJNA304086	SRX1452828	SRR2961631	b6ff7062e7057f99ecd94645d6715f3b	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/001/SRR2961631/SRR2961631.fastq.gz
PRJNA304086	SRX1452829	SRR2961633	4d7b9451064114c5d7ca0b3a59056b97	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/003/SRR2961633/SRR2961633.fastq.gz
PRJNA304086	SRX1452861	SRR2961666	22d6fdb7253ee11413a99f22212c8807	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/006/SRR2961666/SRR2961666.fastq.gz
PRJNA304086	SRX1452862	SRR2961667	b204cdd9cbd8aaf4ae627389b22f31d4	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/007/SRR2961667/SRR2961667.fastq.gz
PRJNA304086	SRX1452863	SRR2961668	2e243a53705aeebdfdf1c6cc9d6111ea	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/008/SRR2961668/SRR2961668.fastq.gz
PRJNA304086	SRX1453625	SRR2962703	f9b516e5bdb9f4170f87bfcedaba94b1	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/003/SRR2962703/SRR2962703.fastq.gz
PRJNA304086	SRX1453626	SRR2962704	369f37a4e923250d4aa4d858f0447627	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/004/SRR2962704/SRR2962704.fastq.gz
PRJNA304086	SRX1453627	SRR2962705	025153cd56b3f454098a977334a25aed	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/005/SRR2962705/SRR2962705.fastq.gz
PRJNA304086	SRX1456515	SRR2967072	1a4b75baeb33bf239233b1d17e4de01a	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/002/SRR2967072/SRR2967072.fastq.gz
PRJNA304086	SRX1456516	SRR2967073	e38333c18b536bd1b113bb542e8755e2	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/003/SRR2967073/SRR2967073.fastq.gz
PRJNA304086	SRX1456517	SRR2967074	dc7d01a5a2565d5605c557558eede9cb	ftp.sra.ebi.ac.uk/vol1/fastq/SRR296/004/SRR2967074/SRR2967074.fastq.gz
PRJNA304086	SRX1459990	SRR2970594	929c9ebfca1e391fe3ae1a581d80daa1	ftp.sra.ebi.ac.uk/vol1/fastq/SRR297/004/SRR2970594/SRR2970594.fastq.gz
PRJNA304086	SRX1459991	SRR2970597	338d0120e9058b6f569ea748e6416917	ftp.sra.ebi.ac.uk/vol1/fastq/SRR297/007/SRR2970597/SRR2970597.fastq.gz
PRJNA304086	SRX1459992	SRR2970598	21590eb0c98c5d62ea084fbabd301c61	ftp.sra.ebi.ac.uk/vol1/fastq/SRR297/008/SRR2970598/SRR2970598.fastq.gz
PRJNA304086	SRX1460213	SRR2970811	727105f42559583d80a134d7f176c3e2	ftp.sra.ebi.ac.uk/vol1/fastq/SRR297/001/SRR2970811/SRR2970811.fastq.gz
PRJNA304086	SRX1460214	SRR2970812	f8ad982ed839353b24f0d87045f3cf48	ftp.sra.ebi.ac.uk/vol1/fastq/SRR297/002/SRR2970812/SRR2970812.fastq.gz
PRJNA304086	SRX1477552	SRR2989038	a1b9d8eb39797e3ed7852fe84d9d27a3	ftp.sra.ebi.ac.uk/vol1/fastq/SRR298/008/SRR2989038/SRR2989038.fastq.gz
PRJNA304086	SRX1477554	SRR2989041	1402b158a43de2cd4766f719688b11aa	ftp.sra.ebi.ac.uk/vol1/fastq/SRR298/001/SRR2989041/SRR2989041.fastq.gz
PRJNA304086	SRX1477556	SRR2989043	dd27a1818185454a5ad84bb7c193764f	ftp.sra.ebi.ac.uk/vol1/fastq/SRR298/003/SRR2989043/SRR2989043.fastq.gz
PRJNA304086	SRX1529449	SRR3099585	87cf18f083c9954ec16070c306a4a3f0	ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/005/SRR3099585/SRR3099585.fastq.gz
PRJNA304086	SRX1529450	SRR3099586	3f20b8a3d7d37d85d1d6a1b1b8ffd97b	ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/006/SRR3099586/SRR3099586.fastq.gz
PRJNA304086	SRX1529451	SRR3099587	a2ad18cc00016e22f262e4071a03f874	ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/007/SRR3099587/SRR3099587.fastq.gz
PRJNA304086	SRX1530331	SRR3101073	cc2673641d3822b6c7e86eb25402257c	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/003/SRR3101073/SRR3101073.fastq.gz
PRJNA304086	SRX1530332	SRR3101074	df546ffc5ef06f8a179af98e8a74a71d	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/004/SRR3101074/SRR3101074.fastq.gz
PRJNA304086	SRX1530333	SRR3101075	730ffe31b15b3ade59a0dbe22495a6ba	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/005/SRR3101075/SRR3101075.fastq.gz
PRJNA304086	SRX1531908	SRR3103205	ce098794833978225409da09bbad65ba	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/005/SRR3103205/SRR3103205.fastq.gz
PRJNA304086	SRX1531909	SRR3103206	c95444f015fec9be0e70060a3c014485	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/006/SRR3103206/SRR3103206.fastq.gz
PRJNA304086	SRX1531910	SRR3103207	b732b6f0834425dc7a57ad2660b57a9e	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/007/SRR3103207/SRR3103207.fastq.gz
PRJNA304086	SRX1533779	SRR3105362	26cda8d7a82a3eb05e20a5476fc7431b	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/002/SRR3105362/SRR3105362.fastq.gz
PRJNA304086	SRX1533780	SRR3105363	298c560c0733e74945448b9a3f7f1395	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/003/SRR3105363/SRR3105363.fastq.gz
PRJNA304086	SRX1533782	SRR3105364	08cc2bc3466deee0b46eba61869b63f1	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/004/SRR3105364/SRR3105364.fastq.gz
PRJNA304086	SRX1534049	SRR3105697	48bd094825243d03bd59e2801ccf9931	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/007/SRR3105697/SRR3105697.fastq.gz
PRJNA304086	SRX1534051	SRR3105698	0102f812c71517b8e550702f320ac607	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/008/SRR3105698/SRR3105698.fastq.gz
PRJNA304086	SRX1534052	SRR3105699	e7a74957778b75ac332b67a87da495ea	ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/009/SRR3105699/SRR3105699.fastq.gz
PRJNA304086	SRX1540739	SRR3112575	80de77bf3e636f44cb291abbd881ce7d	ftp.sra.ebi.ac.uk/vol1/fastq/SRR311/005/SRR3112575/SRR3112575.fastq.gz
PRJNA304086	SRX1540740	SRR3112576	19055c215668a6c4fc1c57c4b598f064	ftp.sra.ebi.ac.uk/vol1/fastq/SRR311/006/SRR3112576/SRR3112576.fastq.gz
PRJNA304086	SRX1540742	SRR3112577	91cd781fec3647499026d30ee8d2fdbf	ftp.sra.ebi.ac.uk/vol1/fastq/SRR311/007/SRR3112577/SRR3112577.fastq.gz
PRJNA304086	SRX1540743	SRR3112578	7ff7bdf92b6ca204d98ed911179edce8	ftp.sra.ebi.ac.uk/vol1/fastq/SRR311/008/SRR3112578/SRR3112578.fastq.gz
PRJNA304086	SRX1540744	SRR3112579	1cac0a93a87f66db4ba876d24d66b26c	ftp.sra.ebi.ac.uk/vol1/fastq/SRR311/009/SRR3112579/SRR3112579.fastq.gz
PRJNA304086	SRX1540741	SRR3112580	dbc540c1b2af452740eec4d8816e409e	ftp.sra.ebi.ac.uk/vol1/fastq/SRR311/000/SRR3112580/SRR3112580.fastq.gz

Important pour la suite

S'assurer de la qualité de l'échange

Etude de l'empreinte digitale d'un fichier numérique 


Plusieurs algorithmes : 

- MD5 (Message Digest 5)

- 32 caractères SHA1 (Secure Hash Algorithm)

- 40 caractères SHA256 - 64 caractères


Lors d'un téléchargement, le fichier peut être altéré et donc son empreinte change

Trouver la différence

Simple non?

Trouver la différence

> CAGL0I06743g 
ATGCCTAACAAAGTATTTAACGTGGCAGTCTTCTTTGTCGTGTTCAGAGAATGTTTGGAA
GCTGTTGTTATCGTTTCCATTCTATTGTCTTTCCTGAAGCAAGCAATTGGTTCCAAAGAT
ATTAAATTATATCGCAAATTGCGTAAGCATGTTTGGATTGGTGTCGCACTCGGGTTCTTT
ATCTGTTTAGTGATTGGTGCTGGTTTCATTGGTGCCTACTACTCTTTACAGAAAGATATC
TTTGGTTCTACAGAAGATTTATGGGAAGGTATTTTCTGTATGATTGCTACTACTATGATC
AGTATGATGGGTATTCCAATGTTGCGTATTAACAAGTTGCAAAGTAAATGGCGTGTGAAG
CTTGCTCGTTCACTTGTTGATATTCCAAAGAGAAAGCGTGATTACTTCAGGATTGGTTAT
TTGACTAGACGTTATGCGATGTTCATCTTACCTTTCATCACTGTTTTAAGAGAAGGTTTG
GAAGCTGTCGTTTTTGTCGCTGGTGCCGGTATTACCACGAAGGGTTCTCACGCATCCGCT
TATCCTTTACCAGTCGTTGTTGGTCTAATTGCTGGTTTTATAGTTGGATTCCTATTATAT
TACGGTACTTCAAAGTCTTCCATGCAAATCTTTTTAGTTATTTCTACCTCCATTCTTTAC
TTAATTGCAGCCGGTTTGTTCTCAAGAGGTGCTTGGTACTTCGAAAACTACAGATTCAAC
AAGGCAACGGGTGGTGATGCTTCTGAAGGTGGTGACGGTAATGGTTCCTATAATATCGCT
AAATCAGTTTACCATGTTAACTGTTGTAATCCTGAACTGGACAACGGTTGGGATATTTTC
AACGCTTTGTTGGGATGGCAAAATACTGGTTATCTGTCCAGTATTCTTTGTTACAATATT
TACTGGGTTGTTCTAATTATTGTCTTAGGTTTGATGATGCACGAAGAAAGATATGGCCAC
TTACCATTTATGAGAAACGTTGGTATGAGACACTTAAACCCAGGTTATTGGATAAAGAAC
AAGAAGAAGGACGAATTGACTGATGAACAAAAGGCTGAGCTGCTAAACCGTATGGACAAC
ATTCAATTCAATGAAGAAGGTGATATTGTCGCTCATGCTAACGAAGAAGAACACGACCAG
GAGAGTTCTTTGTTGAGAGGCAACTCTAACAAGATGGGATCCAAGGAAGAATTGAACTTC
AAGGTTACCACTACCAGTTCCGACTAA
> CAGL0I06743g 
ATGCCTAACAAAGTATTTAACGTGGCAGTCTTCTTTGTCGTGTTCAGAGAATGTTTGGAA
GCTGTTGTTATCGTTTCCATTCTATTGTCTTTCCTGAAGCAAGCAATTGGTTCCAAAGAT
ATTAAATTATATCGCAAATTGCGTAAGCATGTTTGGATTGGTGTCGCACTCGGGTTCTTT
ATCTGTTTAGTGATTGGTGCTGGTTTCATTGGTGCCTACTACTCTTTACAGAAAGATATC
TTTGGTTCTACAGAAGATTTATGGGAAGGTATTTTCTGTATGATTGCTACTACTATGATC
AGTATGATGGGTATTCCAATGTTGCGTATTAACAAGTTGCAAAGTAAATGGCGTGTGAAG
CTTGCTCGTTCACTTGTTGATATTCCAAAGAGAAAGCGTGATTACTTCAGGATTGGTTAT
TTGACTAGACGTTATGCGATGTTCATCTTACCTTTCATCACTGTTTTAAGAGAAGGTTTG
GAAGCTGTCGTTTTTGTCGCTGGTGCCGGTATTACCACGAAGGGTTCTCACGCATCCGCT
TATCCTTTACCAGTCGTTGTTGGTCTAATTGCTGGTTTTATAGTTGGATTCCTATTATAT
TACGGTACTTCAAAGTCTTCCATGCAAATCTTTTTAGTTATTTCTACCTCCATTCTTTAC
TTAATTGCAGCCGGTTTGTTCTCAAGAGGTGATTGGTACTTCGAAAACTACAGATTCAAC
AAGGCAACGGGTGGTGATGCTTCTGAAGGTGGTGACGGTAATGGTTCCTATAATATCGCT
AAATCAGTTTACCATGTTAACTGTTGTAATCCTGAACTGGACAACGGTTGGGATATTTTC
AACGCTTTGTTGGGATGGCAAAATACTGGTTATCTGTCCAGTATTCTTTGTTACAATATT
TACTGGGTTGTTCTAATTATTGTCTTAGGTTTGATGATGCACGAAGAAAGATATGGCCAC
TTACCATTTATGAGAAACGTTGGTATGAGACACTTAAACCCAGGTTATTGGATAAAGAAC
AAGAAGAAGGACGAATTGACTGATGAACAAAAGGCTGAGCTGCTAAACCGTATGGACAAC
ATTCAATTCAATGAAGAAGGTGATATTGTCGCTCATGCTAACGAAGAAGAACACGACCAG
GAGAGTTCTTTGTTGAGAGGCAACTCTAACAAGATGGGATCCAAGGAAGAATTGAACTTC
AAGGTTACCACTACCAGTTCCGACTAA

Et là ?

S'assurer de la qualité de l'échange

Le programme md5sum permet de calculer l'emprunte d'un fichier.

Bonne pratique de contrôler !

 

tdenecker@DESKTOP-B8ON598:~/Fair_project$ cat conditions.txt
SampleID        Iron    Light   Time    Condition_Name  wget    MD5
SRR3105699      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/009/SRR3105699/SRR3105699.fastq.gz  e7a74957778b75ac332b67a87da495ea
SRR3105698      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/008/SRR3105698/SRR3105698.fastq.gz  0102f812c71517b8e550702f320ac607
SRR3105697      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/007/SRR3105697/SRR3105697.fastq.gz  48bd094825243d03bd59e2801ccf9931
SRR3099587      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/007/SRR3099587/SRR3099587.fastq.gz  a2ad18cc00016e22f262e4071a03f874
SRR3099586      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/006/SRR3099586/SRR3099586.fastq.gz  3f20b8a3d7d37d85d1d6a1b1b8ffd97b
SRR3099585      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/005/SRR3099585/SRR3099585.fastq.gz  87cf18f083c9954ec16070c306a4a3f0
tdenecker@DESKTOP-B8ON598:~/Fair_project$ md5sum conditions.txt
6b61f0cae78171f3837b69446b41e5aa  conditions.txt

tdenecker@DESKTOP-B8ON598:~/Fair_project$ cat conditions.txt
SampleID        Iron    Light   Time    Condition_Name  wget    MD5
SRR3105699      DEPLETED        LIGHT   9H      CondC   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/009/SRR3105699/SRR3105699.fastq.gz  e7a74957778b75ac332b67a87da495ea
SRR3105698      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/008/SRR3105698/SRR3105698.fastq.gz  0102f812c71517b8e550702f320ac607
SRR3105697      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/007/SRR3105697/SRR3105697.fastq.gz  48bd094825243d03bd59e2801ccf9931
SRR3099587      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/007/SRR3099587/SRR3099587.fastq.gz  a2ad18cc00016e22f262e4071a03f874
SRR3099586      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/006/SRR3099586/SRR3099586.fastq.gz  3f20b8a3d7d37d85d1d6a1b1b8ffd97b
SRR3099585      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/005/SRR3099585/SRR3099585.fastq.gz  87cf18f083c9954ec16070c306a4a3f0
tdenecker@DESKTOP-B8ON598:~/Fair_project$ md5sum conditions.txt
3302fdec76f8a7db3b08abefee7727b6  conditions.txt

md5 différents !

Etape 3

Préparation du design file

Information dans le design file 

Fichier indispensable pour l'analyse différentielle et utile pour le worflow 

 

Le seul fichier fait à la main

 

Informations obligatoires :

- Un nom unique (pour ne pas mélanger les données)

- Un moyen de distinguer les deux conditions

 

En plus dans notre fichier :

- adresse pour le wget (pour automatiser le téléchargement)

- informations pour faire la différence avec les autres expériences

Création du fichier

Avec Excel (exception)

Sauvegarder sous le nom : conditions.txt dans le dossier principal

Évidemment possible en éditeur de texte ! (avec des tabulations pour séparer les colonnes)

Sauvegarde du fichier

Texte (séparateur : tabulation) : conditions.txt

Et maintenant ?

Github !!

Texte (séparateur : tabulation) : conditions.txt

tdenecker@DESKTOP-B8ON598:~/Fair_project$ cat conditions.txt
        Light   Time    Condition_Name  wget
SRR3105699      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/009/SRR3105699/SRR3105699.fastq.gz
SRR3105698      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/008/SRR3105698/SRR3105698.fastq.gz
SRR3105697      DEPLETED        LIGHT   9H      CondA   ftp.sra.ebi.ac.uk/vol1/fastq/SRR310/007/SRR3105697/SRR3105697.fastq.gz
SRR3099587      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/007/SRR3099587/SRR3099587.fastq.gz
SRR3099586      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/006/SRR3099586/SRR3099586.fastq.gz 
SRR3099585      STANDARD        LIGHT   9H      CondB   ftp.sra.ebi.ac.uk/vol1/fastq/SRR309/005/SRR3099585/SRR3099585.fastq.gz
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git add conditions.txt
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git commit -m "Design file"
[master 3533518] Design file
 1 file changed, 8 insertions(+)
 create mode 100644 conditions.txt
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git push origin master
Username for 'https://github.com': thomasdenecker
Password for 'https://thomasdenecker@github.com':
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 538 bytes | 179.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/thomasdenecker/Fair_project.git
   2d2e31b..3533518  master -> master

Etape 4

Automatisation du téléchargement

Amélioration du script

Objectifs

  • Parcourir le fichier conditions.txt
  • Pour chaque ligne :
    • Récupération des informations importantes : id (colonne 1), adresse (colonne 6) et md5 (colonne 7)
    • Téléchargement du fastq.gz
    • Calcul du md5 du fichier téléchargé
    • Confirmation du téléchargement correct (comparaison des md5)

Décomposition du script

echo "=============================================================="
echo "Download data from SRA"
echo "=============================================================="

1- Afficher l'étape dans le script

cd Project/samples

2- Se déplacer dans le dossier où seront les fasq.gz

Décomposition du script

3- Création de la boucle : lecture du fichier conditions.txt ligne par ligne

IFS=$'\n'       # make newlines the only separator
for j in $(tail -n +2 ../../conditions.txt)
do
   
done

for j in $(tail -n +2 ../../conditions.txt)
do

    access=$( echo "$j" | cut -f6 )
    id=$( echo "$j" | cut -f1 )
    md5=$( echo "$j" | cut -f7 )

done

4- Récupération de l'adresse, de l'id et du md5

Décomposition du script

5- Ajout du status

IFS=$'\n'       # make newlines the only separator
for j in $(tail -n +2 ../../conditions.txt)
do

    access=$( echo "$j" | cut -f6 )
    id=$( echo "$j" | cut -f1 )
    md5=$( echo "$j" | cut -f7 )

    echo "--------------------------------------------------------------"
    echo ${id}
    echo "--------------------------------------------------------------"
    
done

Décomposition du script

6- Téléchargement des fastq.gz

echo "=============================================================="
echo "Download data from SRA"
echo "=============================================================="

cd Project/samples

IFS=$'\n'       # make newlines the only separator
for j in $(tail -n +2 ../../conditions.txt)
do

    access=$( echo "$j" | cut -f6 )
    id=$( echo "$j" | cut -f1 )
    md5=$( echo "$j" | cut -f7 )

    echo "--------------------------------------------------------------"
    echo ${id}
    echo "--------------------------------------------------------------"
    
    wget ${access} # wget method
done

cd ../..

Décomposition du script

7- Calcul du md5sum du fichier téléchargé

IFS=$'\n'       # make newlines the only separator
for j in $(tail -n +2 ../../conditions.txt)
do

    access=$( echo "$j" | cut -f6 )
    id=$( echo "$j" | cut -f1 )
    md5=$( echo "$j" | cut -f7 )

    echo "--------------------------------------------------------------"
    echo ${id}
    echo "--------------------------------------------------------------"
    
    wget ${access} # wget method
    
    md5_local="$(md5sum $id.fastq.gz | cut -d' ' -f1)"
    echo $md5_local

done

Décomposition du script

8- Confirmation que le téléchargement est correct

IFS=$'\n'       # make newlines the only separator
for j in $(tail -n +2 ../../conditions.txt)
do

    access=$( echo "$j" | cut -f6 )
    id=$( echo "$j" | cut -f1 )
    md5=$( echo "$j" | cut -f7 )

    echo "--------------------------------------------------------------"
    echo ${id}
    echo "--------------------------------------------------------------"
    
    wget ${access} # wget method
    md5_local="$(md5sum $id.fastq.gz | cut -d' ' -f1)"
    echo $md5_local

    if [ "$md5_local" == "$md5" ]
    then
        echo "MD5SUM : Ok"
    else
        echo "MD5SUM : error"
        exit 1
    fi
done

Décomposition du script

9- Retour au dossier source

cd ../..

Script en fin de session 2

##------------------------------------------------------------------------------
## FAIR script
## Author: T. Denecker & C. Toffano-Nioche
## Affiliation: I2BC
## Aim: A workflow to process RNA-Seq.
## Organism: O. tauri
## Date: Jan 2019
## Step :
## 1- Create tree structure
## 2- Download data from SRA
##------------------------------------------------------------------------------

echo "=============================================================="
echo "Creation of tree structure"
echo "=============================================================="

mkdir Project
mkdir Project/samples
mkdir Project/annotations
mkdir Project/bowtie2
mkdir Project/fastqc
mkdir Project/genome
mkdir Project/graphics
mkdir Project/htseq
mkdir Project/reference
mkdir Project/samtools

echo "=============================================================="
echo "Download data from SRA"
echo "=============================================================="

cd Project/samples

IFS=$'\n'       # make newlines the only separator
for j in $(tail -n +2 ../../conditions.txt)
do
    
    # Get important information from the line
    access=$( echo "$j" | cut -f6 )
    id=$( echo "$j" | cut -f1 )
    md5=$( echo "$j" | cut -f7 )

    echo "--------------------------------------------------------------"
    echo ${id}
    echo "--------------------------------------------------------------"

    # Download file
    wget ${access} # wget method

    # Get md5 of downloaded file
    md5_local="$(md5sum $id.fastq.gz | cut -d' ' -f1)"
    echo $md5_local
    
    # Test md5 
    if [ "$md5_local" == "$md5" ]
    then
        echo "Done"
    else
        echo "Nope"
        exit 1
    fi
done

cd ../..

Ajout d'un fichier .gitignore

tdenecker@DESKTOP-B8ON598:~/Fair_project$ nano .gitignore
tdenecker@DESKTOP-B8ON598:~/Fair_project$ cat .gitignore
Project/

On ne souhaite pas que les données du projet se retrouvent sur github

- Trop lourd

- Les données peuvent être privées

Versionner et lancer le script

tdenecker@DESKTOP-B8ON598:~/Fair_project$ git add .
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git commit -m "add download part"
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git push origin master
tdenecker@DESKTOP-B8ON598:~/Fair_project$ git status

Github

Lancer

Vérifier que le .gitignore fonctionne

tdenecker@DESKTOP-B8ON598:~/Fair_project$ bash Fair_script.sh

Architecture à la fin de la session 2

tdenecker@DESKTOP-B8ON598:~/Fair_project$ tree Project/
Project/
├── annotations
├── bowtie2
├── fastqc
├── genome
├── graphics
├── htseq
├── reference
├── samples
│   ├── SRR3099585.fastq.gz
│   ├── SRR3099586.fastq.gz
│   ├── SRR3099587.fastq.gz
│   ├── SRR3105697.fastq.gz
│   ├── SRR3105698.fastq.gz
│   └── SRR3105699.fastq.gz
└── samtools

9 directories, 6 files

Conclusion

 

Bilan de la session

Création d'un script qui permet :

- Création d'une architecture de dossier

- Téléchargement et contrôle des données nécessaires pour l'analyse différentielle

 

Savoir FAIRe

- Utiliser un terminal

- Un script bash

- Utiliser git et github dans le cadre d'un projet

 

Pour la prochaine fois

Reproduire la session 2 (si pas fait lors de la session) :

  • Utiliser le script et avoir les 6 fichiers fastq.gz
  • Un github à jour 

Bon courage !

RDV sur Slack en cas de problème

Remerciements

Cette session a été élaborée à partir de cours de  : 

- Pierre Poulain

- Gaëlle Lelandais