Usage de Kraken : BD?

Je vois que tu as remplacé le ${1} de mon code par ${21_144_S1_L001} dans le tien.
Or, si mon ${1} (il s'agit d'une variable bash définie par défaut) prend sa valeur par la ligne de commande (j'avais indiqué SRRxxx dans mon exemple), ton ${21_144_S1_L001}, qui définit une variable bash qui se nomme "21_144_S1_L001" ne correspond à aucune valeur et bash n'arrive pas à faire la "substitution", ie. remplacer ${21_144_S1_L001} par une valeur (c'est ce que raconte le slurm).
Je suppose que tes fichiers fastq se nomment "21_144_S1_L001_R1_001.fq.gz" (et idem pour le R2). Donc, il faut simplement que tu supprimes le "${" et "}" dans les lignes qui commencent par "SAMPLE" et cela devrait marcher. Ou, autre solution, tu utilises la version de mon script avec ${1} mais en lançant "sbatch MonScript 21_144_S1_L001" (là, le ${1} sera substitué par "21_144_S1_L001").
Claire.

Merci Claire, j'ai utilisée ton script comme tel avec ${1} mais en lançant "sbatch TonScript 21_144_S1_L001" et cela marche. Mais je ne comprends pas pourquoi avec mon script que j'avais fait ne marchais pas, le voilà:

#!/bin/bash
#SBATCH --nodes=1
#SBATCH --cpus-per-task=40
#SBATCH --mem=500G
module load kraken2/2.1.2

Numéro des échantillons à analyser.

samples="21-144_S1_L001 21-145_S2_L001 21-149_S6_L001 21-150_S7_L001 21-151_S8_L001 21-152_S9_L001 21-153_SA_L001 21-154_S3_L001 21-155_S4_L001"

Détection contaminants dans les reads

for sample in ${samples}
do
echo "=============================================================="
echo "Contaminant detection - échantillon ${sample}"
echo "=============================================================="

srun kraken2 -t 16 --use-names --db /shared/bank/nt/nt_2021-01-29/kraken2/2021-02-02/ --output ${sample}.output.txt --classified-out ${sample}_classified#.fastq --report ${sample}.report.txt --paired ${sample}_L001_R1_001.fastq ${sample}_L001_R2_001.fastq
done

Je pense que c'est parce que tu mets 2 fois le "_L001" : une fois dans la liste des samples et une autre fois dans la ligne du srun, or tes fichiers n'ont probablement qu'un seul _L001 dans leur nom. En théorie, cette information devrait être visible dans le slurm-xxx.out.
Il y a aussi un "#" (juste après le "classified") dans la ligne du srun qui me pose question, mais là encore, le slurm-xxx.out correspondant pourrait donner des pistes + précises que mes remarques.

oui tu as raison, j'ai mis 2 fois le "_L001". Merci pour ton aide.
Pour le "#" (juste après le "classified") est utilisé lorsqu'on utilise l'option --classified-out, cela permet d'avoir les 2 read fastq en sortie avec les séquences classified.

Ah ! ok. merci pour l'info "#" que je ne connaissais pas.
Claire.

Je t'en prie et merci pour ton aide.
BK.