Editando arquivos em subdiretórios diferentes usando condições

0

Eu tenho um diretório /gwas_test e dentro dele eu tenho centenas de pastas de cada número de 1-200. Dentro de cada uma dessas pastas numeradas há outra pasta (que eu não preciso fazer nada) e 1 arquivo com estatísticas resumidas de estudos de associação genomewide (que eu preciso). Quero filtrar as variantes em p-value threshold (coluna $14 ) de <5e-08 e substituir o arquivo _imputed.txt mais antigo.

Formato de diretório

/panfs/panasas01/ssm/rkl/gwas_test/47/47_imputed.txt
/panfs/panasas01/ssm/rkl/gwas_test/50/50_imputed.txt
etc....

Formato de dados de amostra (por exemplo, 47_imputed.txt)

SNP     CHR     BP      GENPOS  ALLELE1 ALLELE0 A1FREQ  INFO    CHISQ_LINREG    P_LINREG        BETA    SE      CHISQ_BOLT_LMM_INF      P_BOLT_LMM_INF
rs10399793      1       49298   0       T       C       0.376316        0.338912        0.377712        5.4E-01 -0.0211143      0.0362302       0.339636        5.6E-01
rs2462492       1       54676   0       C       T       0.598932        0.337095        0.0074522       9.3E-01 0.00137975      0.0358395       0.00148209      9.7E-01
rs114608975     1       86028   0       T       C       0.896535        0.340982        2.25213 1.3E-01 0.0878816       0.0573706       2.34648 1.3E-01
rs6702460       1       91536   0       G       T       0.542851        0.335954        0.00774451      9.3E-01 0.00564083      0.0352847       0.0255572       8.7E-01

Aqui está o código que usei:

find /panfs/panasas01/ssm/rkl/gwas_test/ -name "*_imputed.txt" -type f | while read fname;do
fileBaseName='basename "${fname}" '
fileDirName='dirname "${fname}" '
fileBaseName='basename "${fname}" '
fileDirName='dirname "${fname}" '
awk -v outputPath="${fileDirName}"
awk '($14<=5e-08) {print $1,$2,$3,$5,$6,$7,$11,$12,$14}' $fname > outputPath "{$fileDirName}/$fname"
done
    
por rkl 02.11.2018 / 20:00

0 respostas

Tags