Crie vários arquivos de configuração para dados

Crie vários arquivos de configuração para dados

Tenho arquivos de dados na forma de pares. Por exemplo, Sample_27931_RNAX_R1.fastq.gz & FASTQ/Sample_27931_RNAX_R2.fastq.gz pertence a uma amostra. Abaixo mostrei os dados de 3 amostras, cada uma com pares R1 e R2.

Para executar a análise, eu crio uma lista dos caminhos deles separadamente. Portanto, lista1 contém todos os R1 e lista2 contém todos os R2.

Aqui está a lista1 para 3 amostras

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

Aqui está a lista2 para 3 amostras

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

Quero criar arquivos de configuração para cada amostra (total 3). O arquivo de configuração precisa ser criado separadamente para cada amostra.

por exemplo, um arquivo de configuração de amostra está abaixo:

**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

Os parâmetros fastq1 e fastq2 precisam ser alterados usando os caminhos de list1 e list2, mas o restante do conteúdo permanece o mesmo. Como criar vários arquivos de configuração usando list1 e list2? o nome dos arquivos de configuração deve ser retirado automaticamente do nome da amostra, como Sample_27931_RNAX.config.txt para Sample_27931_RNAX. Qualquer sugestão ou link para postagens semelhantes será bom. Não consegui encontrar postagens semelhantes.

Obrigado,

Rony

Responder1

#!/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

Observe que List2 realmente não é necessário, pois podemos enxertar o nome da segunda amostra fastq da primeira.

informação relacionada