es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español: “snakemake truncating shell codes”. snakemake está truncando códigos de shell.

Estoy tratando de cambiar la notación del número de cromosoma de [0-9XY] a Chr[0-9XY] utilizando la herramienta samtools reheader en el comando shell de snakemake.

Regla rename:
Entrada:
os.path.join(config[&”input&”], &”{}sample.bam&”),
Salida:
os.path.join(config[&”output&”], &”new_sample/{}sample_chr.bam&”)
Registro:
os.path.join(config[&”log&”], &”samtools/{}sample&”)
Shell:
&”samtools view -H {}input | sed -e ‘s/SN:([0-9XY]*)/SN:chr\1/’ -e ‘s/SN:MT/SN:chrM/’ | samtools reheader – {}input > {}output&”

El código se ejecutó correctamente en la terminal, pero cuando lo utilicé en snakemake, se produjo el siguiente error:

Shell:
samtools view -H /Users/EGA_dataset/cnvkit_snakemake/input/EGAF00000788153_PD11458c.bam | sed -e ‘s/SN:([0-9XY]*)/SN:chr/’ -e ‘s/SN:MT/SN:chrM/’ | samtools reheader – /Users/cnvkit_snakemake/input/EGAF00000788153_PD11458c.bam > /Users/EGA_dataset/cnvkit_snakemake/output/new_sample/EGAF00000788153_PD11458c_chr.bam
(uno de los comandos finalizó con un código de salida distinto de cero; ¡tenga en cuenta que snakemake utiliza el modo estricto de bash!)

Cuando examiné el error, descubrí que snakemake leyó sed -e ‘s/SN:([0-9XY]*)/SN:chr/ como ‘s/SN:([0-9XY])/SN:chr/’. Es decir, truncó el código por razones que no comprendo.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Parece que el problema con el comando sed está relacionado con el uso de comillas simples en el comando de shell del snakemake. Las comillas simples se utilizan para especificar una cadena literal sin interpolación de variables, pero también pueden causar problemas al escapar caracteres como las barras diagonales invertidas y las comillas simples.

    Una solución a este problema es utilizar comillas dobles en lugar de comillas simples para el comando sed, y escapar las comillas dobles dentro del comando sed. Esto permitirá que el comando sed interprete correctamente la expresión regular para cambiar la notación del número de cromosoma.

    El comando de shell actualizado para la regla del snakemake se vería así:

    shell:
        "samtools view -H {input} | sed -e \"s/SN:\\([0-9XY]*\\)/SN:chr\\1\\//\" -e \"s/SN:MT/SN:chrM/\" | samtools reheader - {input} > {output}"
    

    Esto debería cambiar correctamente la notación del número de cromosoma y crear el archivo de salida sin errores.

Comments are closed.