Я хотел бы напечатать шаблон остатка 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
Вот версия awk, которая может сработать для вас
awk '{OFS=","; $3=$2; sub(/[^C]+/,"",$3); gsub(/[^C]+/,"#",$3); print}' file
Она просто дублирует второе поле, затем разбивает любую непустую начальную последовательность символов не-C в дубликате, а затем заменяет каждая оставшаяся последовательность не-C символов в ней с #.