Печать шаблона & ldquo; C & rdquo; персонаж

Я хотел бы напечатать шаблон остатка Cys из каждой строки, указанной в файле.tsv. file.tsv имеет две coloumns как sequenceID и Sequence. из второй последовательности столбцов первый символ «C» должен быть напечатан как C, если следующий немедленный остаток не является C, тогда код должен печатать C #. # должно происходить только один раз для n числа различных случаев появления аминокислот.

Итак, когда в столбце, если за «C» следует другой символ, я бы хотел напечатать # после «C». поэтому, если столбец последовательности имеет значение DCFRCGHCC, то он должен печатать в третьем столбце C # C # CC.

Пример ввода:

c32_g1_i1_ 3GQKAKLKVPVFFLHRRGSICSSFYLMFSFEIKKK*TSKN*CFVCVRVRNRERAGVKCAHVYCPMFNGTQTH*IIISSLNS
c32_g1_i1_ 6AV*TADDDLVRLCSIEHGTIHMCTLYTCCTLTVTHTYTHKTLIFACLFFFNFKGEHQIERAANRTSSM*KKHRNF*LGLLAX

Выход должен состоять из трех столбцов: sequenceID, Последовательность, шаблон Cys

c32_g1_i1_3,GQKAKLKVPVFFLHRRGSICSSFYLMFSFEIKKK*TSKN*CFVCVRVRNRERAGVKCAHVYCPMFNGTQTH*IIISSLNS,C#C#C#C#C
c32_g1_i1_6,AV*TADDDLVRLCSIEHGTIHMCTLYTCCTLTVTHTYTHKTLIFACLFFFNFKGEHQIERAANRTSSM*KKHRNF*LGLLAX,C#C#CC#C 
1
задан 8 October 2015 в 14:13

1 ответ

Вот версия awk, которая может сработать для вас

awk '{OFS=","; $3=$2; sub(/[^C]+/,"",$3); gsub(/[^C]+/,"#",$3); print}' file

Она просто дублирует второе поле, затем разбивает любую непустую начальную последовательность символов не-C в дубликате, а затем заменяет каждая оставшаяся последовательность не-C символов в ней с #.

0
ответ дан 23 May 2018 в 16:53
  • 1
    Это также отлично работает! спасибо за объяснение другого способа работы – Trupti 7 October 2015 в 15:45
  • 2
    Это было умно, но, по-видимому, реальный формат входного файла является тем, который в настоящее время отображается в вопросе, поэтому, очевидно, этот ответ также признан недействительным. – kos 7 October 2015 в 17:23
  • 3
    @kos благодарит за хедз-ап - балерит – steeldriver 7 October 2015 в 17:25

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

Похожие вопросы: