Singularity命令无法识别fastq.gz文件的问题求助
问题描述
我正在用Snakemake和Singularity开发鸟枪法宏基因组分析流程,但在Snakemake中执行Singularity命令分析fastq.gz文件时遇到问题。单独运行Singularity命令后发现程序无法识别目标文件。我的Snakefile位于另一个目录,将数据复制到该目录后流程可正常运行,不清楚为何Singularity命令在数据原目录下无法工作。
执行的Singularity命令
singularity exec -B /mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/results/fastqc:/output docker://staphb/fastqc fastqc -o /output /mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/Undetermined_S0_L001_R1_001.fastq.gz /mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/Undetermined_S0_L001_R2_001.fastq.gz
命令输出
Using cached SIF image perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = "pt_BR.UTF-8" are supported and installed on your system. perl: warning: Falling back to the standard locale ("C"). Skipping '/mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/Undetermined_S0_L001_R1_001.fastq.gz' which didn't exist, or couldn't be read Skipping '/mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/Undetermined_S0_L001_R2_001.fastq.gz' which didn't exist, or couldn't be read
文件权限信息
drwxr-xr-x 2 catg catg 0 abr 1 12:26 results -r-xr-xr-x 1 catg catg 608M jan 13 16:06 Undetermined_S0_L001_R1_001.fastq.gz -r-xr-xr-x 1 catg catg 606M jan 13 16:08 Undetermined_S0_L001_R2_001.fastq.gz
解决方案
- 挂载完整数据目录:当前仅挂载了输出目录,fastq文件所在的父目录未被挂载到Singularity容器内,容器无法访问宿主机未挂载的路径,因此找不到文件。修改
-B参数,将数据所在根目录挂载:singularity exec -B /mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN:/metagen docker://staphb/fastqc fastqc -o /metagen/results/fastqc /metagen/Undetermined_S0_L001_R1_001.fastq.gz /metagen/Undetermined_S0_L001_R2_001.fastq.gz - Snakemake中简化路径配置:在Snakefile里用内置的
singularity参数块处理容器映射,避免手动写长路径,示例:
Snakemake会自动处理容器内的路径映射,无需手动指定rule fastqc: input: r1="/mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/Undetermined_S0_L001_R1_001.fastq.gz", r2="/mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/Undetermined_S0_L001_R2_001.fastq.gz" output: "/mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/results/fastqc/Undetermined_S0_L001_R1_fastqc.html", "/mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/results/fastqc/Undetermined_S0_L001_R2_fastqc.html" singularity: "docker://staphb/fastqc" shell: "fastqc -o {output[0].dirname} {input.r1} {input.r2}"-B参数。 - 检查父目录权限:确认从
/mnt/share到/METAGEN的每一层父目录都有执行权限(x权限),否则容器内无法遍历路径。可执行以下命令逐层检查:namei -l /mnt/share/Equipamentos_NTO/Med_Pers/Illumina_NextSeq/Corridas/run142/BIOINFO/METAGEN/Undetermined_S0_L001_R1_001.fastq.gz
内容的提问来源于stack exchange,提问作者Rafaela Carolina dos Anjos Sch
相关产品推荐
相关产品推荐

