Как заполнить поле подмножества данных из основных данных в Linux - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть подмножество данных SNP с rs ids (и другими полями), и я хочу создать два новых столбца с их соответствующим номером хромосомы и местоположением хромосомы.У меня есть мастер-файл со ВСЕМИ SNP (rs ID, номер хромосомы, местоположения и т. Д.), И я хочу заполнить свой файл из мастер-файла с помощью командной строки (в моем подмножестве файла ~ 3 миллиона строк).

Я думал, что-то вроде соединения, и если затем оператор или awk (или какое-то их сочетание)

ДЛЯ ПРИМЕРА, что у меня есть:

file1

SNP A1  A2  Freq1.Hapmap    b   se  p   N
rs1000000   G   A   0.6333  1e-04   0.0043  0.9814  233572
rs10000010  T   C   0.575   -0.0022 0.0029  0.4384  339148

file2

ID  SNP Chromosome  Position    REF Allele  ALT Allele  Contig  Contig Position Band    dbSNP
chr10:1175426:C/G:1 rs1000000   chr10   1175426 C   G   GL000093.1  1115426 p15.3   rs184435191
chr10:31133635:T/C:1    rs143579887 chr10   31133635    T   C   GL000093.1  31073635    p11.23  rs143579887
chr10:33247334:G/T:1    chr10:33247334:G/T:1    chr10   33247334    G   T   GL000093.1  33187334    p11.22  
chr11:118230335:A/G:1   rs10000010  chr11   118230335   A   G   GL000104.1  21792751    q23.3   rs147754044
chr11:132968833:A/C:1   chr11:132968833:A/C:1   chr11   132968833   A   C   GL000104.1  36531249    q25 
chr11:57678793:C/G:-1   rs77482717  chr11   57678793    C   G   GL000103.1  2984588 q12.1   rs77482717
chr11:61722645:C/A:1    chr11:61722645:C/A:1    chr11   61722645    C   A   GL000103.1  7028440 q12.3   rs1109748

Что я хочу:

SNP Chromosome  Position A1 A2  Freq1.Hapmap    b   se  p   N
        rs1000000   chr10   1175426 G   A   0.6333  1e-04   0.0043  0.9814  233572
        rs10000010  chr11   118230335 T C   0.575   -0.0022 0.0029  0.4384  339148

1 Ответ

1 голос
/ 15 апреля 2019

при условии, что ваши файлы разделены табуляцией:

$ awk 'BEGIN{FS=OFS="\t"}NR==FNR{a[$2]=$3 OFS $4;next}{$2=a[$1] OFS $2}1' file2 file1
SNP Chromosome  Position    A1  A2  Freq1.Hapmap    b   se  p   N
rs1000000   chr10   1175426 G   A   0.6333  1e-04   0.0043  0.9814  233572
rs10000010  chr11   118230335   T   C   0.575   -0.0022 0.0029  0.4384  339148

для всех записей в file2: связать каждый SNP с соответствующими значениями хромосомы и положения в массиве, file1: получить связанные значения хромосомы и положенияс каждым SNP из массива и вставьте перед вторым столбцом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...