Basic Local Alignment Search Tool (BLAST) est initialement un outil en ligne basé sur le web qui permet de trouver des régions de similarité entre des séquences biologiques. Le programme compare les séquences de nucléotides à des bases de données de séquences et calcule leur signification statistique. Il existe différents outils spécifiques selon le type de données de séquençage. Dans cet article, nous nous concentrons sur l'alignement des séquences de nucléotides, et donc sur l'utilisation de BlastN.
Le cas test utilise BLAST 2.10.1, sorti en 2020.
Si vous êtes intéressé par une autre version, veuillez nous envoyer un e-mail à qlab@qarnot.com.
Avant de lancer une tâche de calcul, veuillez vous assurer que vous remplissez déjà ces conditions :
Ce cas test est un exemple simple d'utilisation de BLAST, et plus particulièrement de l'outil BlastN, sur Qarnot Cloud, en utilisant le SDK Python. Nous allons aligner une liste de séquences ADN de requête (query) contre une autre liste de séquences ADN de référence. Veuillez trouver un jeu de données contenant deux séquences locales. Décompressez-les et placez-les toutes deux dans un dossier nommé dataset-blastn
. (Trouvez ci-dessous les en-têtes des deux fichiers de séquences locales :)
NC_000006.12 Homo sapiens chromosome 6, GRCh38.p13 Primary Assembly
NM_005514.8 Homo sapiens major histocompatibility complex, class I, B (HLA-B), mRNA
Dans ce même dossier dataset-blastn
, créez un fichier run_blastn.sh
et copiez-y le code suivant.
run_blastn.sh
#!/bin/bash
makeblastdb -in chr6.fna -dbtype nucl -parse_seqids -out chr6
blastn -db chr6 -query hla-b.fsa -out results.out
Ce code contient des instructions pour :
Copiez le code suivant dans un script Python et enregistrez-le dans le même chemin que le dossier dataset-blastn
sous le nom blastn.py
.
blastn.py
#!/usr/bin/env python3
# Import the Qarnot SDK
import qarnot
# Connect to the Qarnot platform
conn=qarnot.connection.Connection(client_token='MY_SECRET_TOKEN')
# Create a task
task = conn.create_task("BLASTN-demo", "docker-batch", 1)
# Create an input bucket with the case files
input_bucket = conn.create_bucket("blastn-demo-input")
input_bucket.sync_directory("dataset-blastn")
task.resources.append(input_bucket)
# Create an output bucket
output_bucket = conn.create_bucket("blastn-demo-output")
task.results = output_bucket
# Give parameters regarding the Docker image to be used
task.constants["DOCKER_REPO"] = "ncbi/blast"
task.constants["DOCKER_TAG"] = "2.10.1"
task.constants['DOCKER_CMD'] = "./run_blastn.sh"
# Submit the task and download results
task.run(output_dir="output")
Assurez-vous d'avoir copié votre jeton d'authentification dans le script (à la place de <<<MY_SECRET_TOKEN>>>
) pour pouvoir lancer la tâche sur Qarnot. Assurez-vous que tous les fichiers d'entrée mentionnés ci-dessus (1 fichier .fna
, 1 fichier .fsa
, 1 fichier .sh
) sont dans le même dossier nommé dataset-blastn
. Votre répertoire de travail devrait ressembler à ceci :
Pour lancer ce script, ouvrez un terminal dans votre répertoire de travail et exécutez python3 blastn.py
.
À tout moment, vous pouvez surveiller l'état de votre tâche sur notre plateforme.
Vous devriez maintenant avoir un dossier output
dans votre répertoire de travail sur votre ordinateur et un bucket blastn-demo-output
contenant tous les fichiers de sortie (base de données construite et scores pour l'alignement des séquences dans le fichier results.out
, voir ci-dessous).
results.out
BLASTN 2.10.1+
Reference: Zheng Zhang, Scott Schwartz, Lukas Wagner, and Webb
Miller (2000), "A greedy algorithm for aligning DNA sequences", J
Comput Biol 2000; 7(1-2):203-14.
Database: chr6.fna
1 sequences; 170,805,979 total letters
Query= NM_005514.8 Homo sapiens major histocompatibility complex, class I,
B (HLA-B), mRNA
Length=1536
Score E
Sequences producing significant alignments: (Bits) Value
NC_000006.12 Homo sapiens chromosome 6, GRCh38.p13 Primary Assembly 784 0.0
>NC_000006.12 Homo sapiens chromosome 6, GRCh38.p13 Primary Assembly
Length=170805979
Score = 784 bits (424), Expect = 0.0
Identities = 424/424 (100%), Gaps = 0/424 (0%)
Strand=Plus/Minus
Query 1113 AGCCTGAGACAGCTGTCTTGTGAGGGACTGAGATGCAGGATTTCTTCACGCCTCCCCTTT 1172
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 31354298 AGCCTGAGACAGCTGTCTTGTGAGGGACTGAGATGCAGGATTTCTTCACGCCTCCCCTTT 31354239
Query 1173 GTGACTTCAAGAGCCTCTGGCATCTCTTTCTGCAAAGGCACCTGAATGTGTCTGCGTCCC 1232
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 31354238 GTGACTTCAAGAGCCTCTGGCATCTCTTTCTGCAAAGGCACCTGAATGTGTCTGCGTCCC 31354179
Query 1233 TGTTAGCATAATGTGAGGAGGTGGAGAGACAGCCCACCCTTGTGTCCACTGTGACCCCTG 1292
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 31354178 TGTTAGCATAATGTGAGGAGGTGGAGAGACAGCCCACCCTTGTGTCCACTGTGACCCCTG 31354119
Query 1293 TTCCCATGCTGACCTGTGTTTCCTCCCCAGTCATCTTTCTTGTTCCAGAGAGGTGGGGCT 1352
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 31354118 TTCCCATGCTGACCTGTGTTTCCTCCCCAGTCATCTTTCTTGTTCCAGAGAGGTGGGGCT 31354059
Query 1353 GGATGTCTCCATCTCTGTCTCAACTTTACGTGCACTGAGCTGCAACTTCTTACTTCCCTA 1412
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 31354058 GGATGTCTCCATCTCTGTCTCAACTTTACGTGCACTGAGCTGCAACTTCTTACTTCCCTA 31353999
Query 1413 CTGAAAATAAGAATCTGAATATAAATTTGTTTTCTCAAATATTTGCTATGAGAGGTTGAT 1472
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 31353998 CTGAAAATAAGAATCTGAATATAAATTTGTTTTCTCAAATATTTGCTATGAGAGGTTGAT 31353939
Query 1473 GGATTAATTAAATAAGTCAATTCCTGGAATTTGAGAGAGCAAATAAAGACCTGAGAACCT 1532
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct 31353938 GGATTAATTAAATAAGTCAATTCCTGGAATTTGAGAGAGCAAATAAAGACCTGAGAACCT 31353879
Query 1533 TCCA 1536
||||
Sbjct 31353878 TCCA 31353875
...
C'est tout ! Si vous avez des questions, veuillez contacter qlab@qarnot.com et ce sera un plaisir pour nous de vous aider !