Извлечь конкретное поле в матрицу

Я пытаюсь извлечь некоторые поля из .txt файл для создания другой таблицы. Это матрица (размер изменяется время от времени), разделенная; (далее \ в заголовке), каждое поле может иметь>= 1 числовое значение, соответствующее строке в; позиция его заголовка тоже.

Если это поле содержит значение, я хочу скопировать это поле заголовка того же самого; отделите поле и получите что-то вроде ниже. Я пытался обрабатывать каждый столбец один за другим, но я даже не знаю, как awk/grep правильное поле и поставить его как новый столбец.

Если вы посмотрите на исходное изображение, которое я открыл в Excel, как файл, разделенный табуляцией, для более удобного просмотра, заголовок каждого столбца содержит очень длинную строку, разделенную символом " \ ", которая представляет три типа информации: Name \ HGVSc \ HGVSp. Имя всегда одно в столбце, но HGVSc \ HGVSp далее разделяются на переменное число полей с помощью "; ", но число "; " поля всегда одинаковы для заголовка столбца вниз по его строке.

Для каждой "ячейки", которая отделена только "; ", она может иметь номер или просто "." как пустые значения, а позиция числа указывает на подпозицию полей HGVSc и HGVSp в заголовке, к которому относятся эти ячейки.

Например, в первой ячейке строки CLAM19_S18 эти два числа находятся в 1-й и 2-й позиции самих себя и относятся к 1-й и 2-й подстроке HGVSc и HGVSp соответственно.... iec646_647insTGCTCCGTGGGC;c.457_458insGG и.;p.Val153fs

Таким образом, в итоговой таблице будет добавлено три новых столбца для каждого исходного столбца, которые содержат: Имя гена, которое всегда одинаково по столбцу, но HGVSc и HGVSp могут быть разными или пустыми в зависимости от положения ячеек, содержащих числовое значение.

Может кто-нибудь дать мне какое-нибудь предложение или подход? Я новичок в сценариях Bash и Perl, но любой комментарий приветствуется. Спасибо

  • пример

    \   ACD\c.646_647insTGCTCCGTGGGC;c.457_458insGG\.;p.Val153fs    ANKRD26\c.3270_3271insTTCTAGGCTATTGAGTTTACTTTCAGTTTTAAAT;c.2251_2252delTGinsCA;c.1683+1408_1683+1409insTTGTG;c.741-709G>A\p.Ser1091fs;p.Cys751His;.;.   BCOR\c.1260T>C\p.Asp420Asp  CBL\c.298T>A;c.1223_1227+1delGGCAGG;c.1223G>T;c.1536T>A\p.Ser100Thr;p.Trp408fs;p.Trp408Leu;p.Ser512Arg  
    CLAM10_S10  .;. .;.;.;. .   .;.;.;.  
    CLAM11_S11  .;. .;.;0.102;. .   .;.;.;.  
    CLAM12_S12  .;. .;.;.;. .   .;.;.;.  
    CLAM13_S13  .;. .;.;.;. .   .;.;.;.  
    CLAM14_S14  .;. .;.;.;. .   .;.;.;0.038  
    CLAM15_S15  .;. .;.;.;. .   .;.;.;.  
    CLAM16_S16  .;. .;.;.;. .   .;.;.;.  
    CLAM18_S17  .;. .;.;.;. .   .;.;.;.  
    CLAM19_S18  0.073;0.088 .;.;.;. .   .;.;.;.  
    CLAM1_S1    .;. .;.;.;. .   .;.;.;.  
    CLAM20_S19  .;. .;.;.;. .   .;.;0.233;.  
    CLAM21_S20  .;. .;.;.;. .   .;.;.;.  
    CLAM23_S21  .;. .;.;.;. .   .;.;.;.  
    CLAM24_S22  .;. .;.;.;. .   .;.;.;.  
    CLAM25_S23  .;. .;.;.;. .   .;.;.;.  
    CLAM26_S24  .;. .;.;.;. .   .;.;.;.  
    CLAM27_S1   .;. .;.;.;. .   .;.;.;.  
    CLAM28_S2   .;. .;.;.;. .   .;.;.;.  
    CLAM29_S3   .;. .;.;.;. .   .;.;.;.  
    
  • Требуемый разделенный вкладкой результат

    \   ACD ACD_HGVSc   ACD_HGVSp   ACD_VAF ANKRD26 ANKRD26_HGVSc   ANKRD26_HGVSp   ANKRD26_VAF BCOR    BCOR_HGVSc  BCOR_HGVSp  BCOR_VAF    CBL CBL_HGVSc   CBL_HGVSp   CBL_VAF
    CLAM10_S10                                                              
    CLAM11_S11                      c.1683+1408_1683+1409insTTGTG   .   0.102                               
    CLAM12_S12                                                              
    CLAM13_S13                                                              
    CLAM14_S14                                                      c.1536T>A   p.Ser512Arg 0.038
    CLAM15_S15                                                              
    CLAM16_S16                                                              
    CLAM18_S17                                                              
    CLAM19_S18  ACD c.646_647insTGCTCCGTGGGC;c.457_458insGG .;p.Val153fs    0.073;0.088                                             
    CLAM1_S1                                                                
    CLAM20_S19                                                      c.1223G>T   p.Trp408Leu 0.233
    CLAM21_S20                                                              
    CLAM23_S21 
    

Первоначальный источник

Желаемые результаты

0 ответов

Другие вопросы по тегам