| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
| fr:impilopedia:genex:rnaseq:airway_project:fetching_raw_data [2026/06/15 07:27] – [Protocole - Pour commencer] foisys | fr:impilopedia:genex:rnaseq:airway_project:fetching_raw_data [2026/06/30 08:00] (Version actuelle) – [Obtention des données] foisys |
|---|
| 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 ===== |
| |
| # 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 |
| 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. |
| # 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), |
| 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 ===== |
| 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 |