Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fr:impilopedia:genex:rnaseq:airway_project:fetching_raw_data [2026/06/15 07:27] – [Protocole - Pour commencer] foisysfr:impilopedia:genex:rnaseq:airway_project:fetching_raw_data [2026/06/30 08:00] (Version actuelle) – [Obtention des données] foisys
Ligne 15: Ligne 15:
 Pour commencer, il nous faut une liste des fichiers à télécharger à partir d'un serveur distant. Pour notre projet, les auteurs nous disent que les infos se trouvent sur //Gene Expression Omnibus// sous l'identificateur GSE52778. En inspectant cette page, on voit que les données de séquences brutes se trouvent dans le site //Sequence Read Archive//  avec l'identificateur SRP033351. On y est presque! En allant sur le [[https://www.ncbi.nlm.nih.gov/Traces/study|site de la page de sélection des données du SRA]], on fait une recherche avec cet identificateur et on tombe sur la page contenant l'information que nous cherchons!! Dans le panneau //Select//, on voit deux boutons: Metadata ou bien Accession List; cliquer sur Metadata pour obtenir un fichier CSV plus informatif, ''SraRunTable.csv'', qui nous servira pour la suite. Allez mettre ce fichier dans l'arborescence de votre serveur; par ex., créer un répertoire appelé ''z.misc.files'' sous ''/shares/data/rnaseq/airways''. Pour commencer, il nous faut une liste des fichiers à télécharger à partir d'un serveur distant. Pour notre projet, les auteurs nous disent que les infos se trouvent sur //Gene Expression Omnibus// sous l'identificateur GSE52778. En inspectant cette page, on voit que les données de séquences brutes se trouvent dans le site //Sequence Read Archive//  avec l'identificateur SRP033351. On y est presque! En allant sur le [[https://www.ncbi.nlm.nih.gov/Traces/study|site de la page de sélection des données du SRA]], on fait une recherche avec cet identificateur et on tombe sur la page contenant l'information que nous cherchons!! Dans le panneau //Select//, on voit deux boutons: Metadata ou bien Accession List; cliquer sur Metadata pour obtenir un fichier CSV plus informatif, ''SraRunTable.csv'', qui nous servira pour la suite. Allez mettre ce fichier dans l'arborescence de votre serveur; par ex., créer un répertoire appelé ''z.misc.files'' sous ''/shares/data/rnaseq/airways''.
  
-  * La suite: plus à venir...+  * La suite: [[qc_pre_filter|Analyse de la qualité des séquences brutes obtenues]]
 ===== Protocole - Pour commencer ===== ===== Protocole - Pour commencer =====
  
Ligne 71: Ligne 71:
 # Inclure les libraries qui seront nécessaires... # Inclure les libraries qui seront nécessaires...
 import csv import csv
-import gzip 
-import os 
-import shutil 
 import subprocess import subprocess
 import time import time
Ligne 123: Ligne 120:
        uid = i["Run"]        uid = i["Run"]
        cell = i["cell_line"]        cell = i["cell_line"]
-       nameF = treat+"_"+cell+"_"+uid+       nameF = treat+"_"+cell
        #*********************        #*********************
        # Téléchargement        # Téléchargement
        #*********************        #*********************
-       # Ça ne fonctionnera que si l'application est sur $PATH+       # Ça ne fonctionnera que si les applications est sur $PATH
        # L'utilisation de la méthode run assure que les commandes seront        # L'utilisation de la méthode run assure que les commandes seront
        # effectuée une à la fois.        # effectuée une à la fois.
Ligne 170: Ligne 167:
        # Compressons maintenant les fichiers sur notre stockage        # Compressons maintenant les fichiers sur notre stockage
        # Les outils à venir sont tous capables de lire les fichiers         # Les outils à venir sont tous capables de lire les fichiers 
-       # comprimés+       # comprimés.  
 +       # 
 +       # On utilise le progamme bgzip, installé sur Impilo, pour faire 
 +       # une compression multi-fils et accélérer le processus.
        #        #
        # Comme on fait deux fois la même procédure (sur chaque fichier),         # Comme on fait deux fois la même procédure (sur chaque fichier), 
Ligne 178: Ligne 178:
        for k in range(2):        for k in range(2):
          k = k+1          k = k+1
-         with open(f"{saveF}/{nameF}_{k}.fastq", 'rb') as z_in: 
-           with gzip.open(f"{saveF}/{nameF}_{k}.fastq.gz", 'wb') as z_out: 
-             shutil.copyfileobj(z_in, z_out) 
-           z_out.close() 
-         z_in.close() 
          #          #
-         # Le fichier non compressé n'est plus utile..+         # Pas besoin d'effacer le fichier .fastq; bgzip le fera après la  
-         #  +         # compression 
-         os.remove(f"{saveF}/{nameF}_{k}.fastq")+         
 +         subprocess.run(["bgzip","--threads","4",f"{saveF}/{nameF}_{k}.fastq"])
 </sxh> </sxh>
  
-  * À la fin de l'exécution, vous devriez avoir 32 fichiers dont l'extension se termine par ''_x.fastq.gz'' avec x=1 ou x=2.  Les fichiers devraient se trouver dans le bons répertoire avec un nom sous la forme ''traitement_ligneeCellulaire_SRAuid'', ce qui nous facilitera la vie pour la suite :-)+  * À la fin de l'exécution, vous devriez avoir 32 fichiers dont l'extension se termine par ''_x.fastq.gz'' avec x=1 ou x=2.  Les fichiers devraient se trouver dans le bons répertoire avec un nom sous la forme ''traitement_ligneeCellulaire_SRRxyz'', ce qui nous facilitera la vie pour la suite :-)
  
-  * De plus, vous devriez avoir pour certains échantillons un autre fichier se terminant simplement par ''.fastq''; ce fichier existe car certains échantillons ont généré plusieurs lectures qui n'ont pas d'équivalent entre les deux fichiers pour toute sorte de raison: séquences techniques comme les codes barres ou bien des séquences d'amorces ou autres séquences sans correspondance . On ne veut pas utiliser ces fichiers donc le paramètre ''--split-3'' nous permet de les retirer en amont plutôt que de devoir le faire post-alignement.+  * De plus, vous devriez avoir pour certains échantillons un autre fichier se terminant simplement par ''.fastq'' ou sans extension mais avec le même nom; ce fichier existe car certains échantillons ont généré plusieurs lectures qui n'ont pas d'équivalent entre les deux fichiers pour toute sorte de raison: séquences techniques comme les codes barres ou bien des séquences d'amorces ou autres séquences sans correspondance . On ne veut pas utiliser ces fichiers donc le paramètre ''--split-3'' nous permet de les retirer en amont plutôt que de devoir le faire post-alignement.
  
 ===== Protocole - Téléchargement sur serveur et traitement sur grappe de calcul ===== ===== Protocole - Téléchargement sur serveur et traitement sur grappe de calcul =====
Ligne 271: Ligne 267:
        uid = i["Run"]        uid = i["Run"]
        cell = i["cell_line"]        cell = i["cell_line"]
-       nameF = treat+"_"+cell+"_"+uid+       
 +       # On veut une combinaison unique qui permettrait d'identifier 
 +       # cet échantillon pour ensuite réutiliser dans les scripts à 
 +       # venir... 
 +       # 
 +       nameF = treat+"_"+cell
        #*********************        #*********************
        # Téléchargement        # Téléchargement