Eu tenho um arquivo de referência:
Arquivo de renovação
Dpse\GA30012 FBgn0000447 chr2 26607738 26607962 -1
Dpse\GA19764 FBgn0085819 chrX 28571020 28571736 -1
Dpse\ttk FBgn0000100 chr2 16553824 16561652 -1
Dpse\GA30195 FBgn0085742 chr3 22629640 22630440 -1
e um arquivo de entrada:
arquivo
FBgn0000447 1 11 HWI-ST1083:68:C0YYUACXX:8:1111:20915:34957 255 -
FBgn0000100 1 11 HWI-ST1083:68:C0YYUACXX:8:1113:9591:98803 255 -
FBgn0085819 1 11 HWI-ST1083:68:C0YYUACXX:8:1204:9035:56108 255 -
FBgn0085742 1 11 HWI-ST1083:68:C0YYUACXX:8:1204:9035:56108 255 -
FBgn0037963 47752 47802 HWI-ST1083:68:C0YYUACXX:8:1215:21263:59372 255 -
FBgn0001257 11527 11577 HWI-ST1083:68:C0YYUACXX:8:1311:2957:12154 255 -
FBgn0034315 158 208 HWI-ST1083:68:C0YYUACXX:8:2113:4139:83177 255 -
FBgn0000559 3316 3365 HWI-ST484:183:C167BACXX:7:1101:1926:2031 255 +
FBgn0262975 39033 39082 HWI-ST484:183:C167BACXX:7:1101:1726:2030 255 +
FBgn0032505 1 50 HWI-ST484:183:C167BACXX:7:1101:5095:2042 255 +
FBgn0005593 403 452 HWI-ST484:183:C167BACXX:7:1101:3906:2209 255 +
FBgn0013686 692 741 HWI-ST484:183:C167BACXX:7:1101:3218:2247 255 -
FBgn0000556 3793 3842 HWI-ST484:183:C167BACXX:7:1101:5288:2041 255 +
FBgn0015521 438 487 HWI-ST484:183:C167BACXX:7:1101:5731:2170 255 -
FBgn0033912 1121 1170 HWI-ST484:183:C167BACXX:7:1101:8602:2063 255 -
Eu criei uma coluna vazia entre a primeira e a segunda colunas, o file
se tornou esta saída2:
Output2
FBgn0000447 435 485 HWI-ST1083:68:C0YYUACXX:8:1111:20915:34957 255 -
FBgn0000100 704 754 HWI-ST1083:68:C0YYUACXX:8:1113:9591:98803 255 -
FBgn0085819 154 204 HWI-ST1083:68:C0YYUACXX:8:1204:9035:56108 255 -
FBgn0085742 389 439 HWI-ST1083:68:C0YYUACXX:8:1204:9035:56108 255 -
FBgn0037963 47752 47802 HWI-ST1083:68:C0YYUACXX:8:1215:21263:59372 255 -
FBgn0001257 11527 11577 HWI-ST1083:68:C0YYUACXX:8:1311:2957:12154 255 -
FBgn0034315 158 208 HWI-ST1083:68:C0YYUACXX:8:2113:4139:83177 255 -
FBgn0000559 3316 3365 HWI-ST484:183:C167BACXX:7:1101:1926:2031 255 +
FBgn0262975 39033 39082 HWI-ST484:183:C167BACXX:7:1101:1726:2030 255 +
FBgn0032505 1 50 HWI-ST484:183:C167BACXX:7:1101:5095:2042 255 +
FBgn0005593 403 452 HWI-ST484:183:C167BACXX:7:1101:3906:2209 255 +
FBgn0013686 692 741 HWI-ST484:183:C167BACXX:7:1101:3218:2247 255 -
FBgn0000556 3793 3842 HWI-ST484:183:C167BACXX:7:1101:5288:2041 255 +
FBgn0015521 438 487 HWI-ST484:183:C167BACXX:7:1101:5731:2170 255 -
FBgn0033912 1121 1170 HWI-ST484:183:C167BACXX:7:1101:8602:2063 255 -
Aqui está a saída ideal:
Para cada ID na coluna 1 no arquivo output2
, para o ID correspondente na coluna 2 no reference file
, preencha a coluna output2
do arquivo 2 com o valor da coluna de referência 3. Para cada id na coluna 1 em o arquivo output2
, para o id correspondente na coluna 2 no arquivo de referência, a coluna 3 do arquivo output2 será igual a (coluna 3 + referência 4 - 1) (como resultado do cálculo) e a coluna 4 será igual a (coluna 4 + referência 4 - 1).
Este meu current code
e eu não consigo obter o arquivo de saída ideal:
Código atual
awk -v OFS="\t" '
NR==FNR {a[$2]=$3; b[$2]=$4; next};
{if ($1 in a) $2=a[$1]; print};
{if ($1 in b) $3=b[$1]+$3-1; $4=b[$1]+$4-1; print}
' $ref $output2 > $output3
A saída ideal deve ser semelhante (para as primeiras 4 linhas):
Saída (desejada)
FBgn0000447 chr2 26607738 26607748 HWI-ST1083:68:C0YYUACXX:8:1111:20915:34957 255 -
FBgn0000100 chr2 28571020 28571030 HWI-ST1083:68:C0YYUACXX:8:1113:9591:98803 255 -
FBgn0085819 chrX 16553824 16553834 HWI-ST1083:68:C0YYUACXX:8:1204:9035:56108 255 -
FBgn0085742 chr3 22629640 22629650 HWI-ST1083:68:C0YYUACXX:8:1204:9035:56108 255 -
Não tenho certeza se isso é devido a alguma restrição do valor numérico na matriz awk ou algo está errado.
Muito obrigado pela ajuda!
P.S. Lembro-me de um problema, pois reference file
nem todos os ids da coluna 2 possuem valores correspondentes na coluna 3/4. Então é por isso que não consigo obter valores em output2
, como devo resolver isso? preencha o que com o espaço vazio é o melhor?
Obrigado novamente