Crear múltiples archivos de configuración para datos

Crear múltiples archivos de configuración para datos

Tengo archivos de datos en forma de pares. Por ejemplo, Sample_27931_RNAX_R1.fastq.gz y FASTQ/Sample_27931_RNAX_R2.fastq.gz pertenece a una muestra. A continuación, muestro los datos de 3 muestras, cada una con los pares R1 y R2.

Para ejecutar el análisis, creo una lista de sus rutas por separado, por lo que la lista1 contiene todos los R1 y la lista2 contiene todos los R2.

Aquí está la lista1 para 3 muestras.

$TMPDIR/FASTQ/Sample_27931_RNAX_R1.fastq.gz 
$TMPDIR/FASTQ/Sample_28891_RNAX_R1.fastq.gz 
$TMPDIR/FASTQ/Sample_28897_RNAX_R1.fastq.gz

Aquí está la lista2 de 3 muestras.

$TMPDIR/FASTQ/Sample_27931_RNAX_R2.fastq.gz
$TMPDIR/FASTQ/Sample_28891_RNAX_R2.fastq.gz
$TMPDIR/FASTQ/Sample_28897_RNAX_R2.fastq.gz

Quiero crear archivos de configuración para cada muestra (3 en total). El archivo de configuración debe crearse por separado para cada muestra.

Por ejemplo, a continuación se muestra un archivo de configuración de muestra:

**fastq1        = $TMPDIR/FASTQ/Sample_27931_RNAX_R1.fastq.gz**
**fastq2        = $TMPDIR/FASTQ/Sample_27931_RNAX_R2.fastq.gz**

mailto         = [email protected]
thread_no      = 8

detect_integration = yes   # if no is provided, VirusFinder will not detect virus integrations
detect_mutation    = no   # if no is provided, VirusFinder will not detect viral mutations

Los parámetros fastq1 y fastq2 deben cambiarse utilizando las rutas de list1 y list2, pero el resto del contenido sigue siendo el mismo. ¿Cómo puedo crear varios archivos de configuración utilizando list1 y list2? el nombre de los archivos de configuración debe tomarse automáticamente del nombre de la muestra, como Sample_27931_RNAX.config.txt para Sample_27931_RNAX. Cualquier sugerencia o enlace a publicaciones similares será bueno. No pude encontrar publicaciones similares.

Gracias,

ron

Respuesta1

#!/bin/bash
while IFS= read -r samp1; do

b=${samp1%_R1.fastq.gz} samp2=${b}_R2.fastq.gz

cat - <<eof > "${b##*/}.cfg"
**fastq1        = $samp1**
**fastq2        = $samp2**

mailto         = [email protected]
thread_no      = 8

detect_integration = yes  # if no is provided, VirusFinder will not detect virus integrations
detect_mutation    = no   # if no is provided, VirusFinder will not detect viral
eof
done < LIST1

Tenga en cuenta que List2 realmente no es necesario, ya que podemos injertar el nombre de la segunda muestra fastq del primero.

información relacionada