Изменение индивидуальных текстовых полей в скрипте Bash

Это не ответ, но он показывает двоичную команду, которую вы можете запустить

compgen -c

(при условии bash )

Другие полезные команды

compgen -a # will list all the aliases you could run.
compgen -b # will list all the built-ins you could run.
compgen -k # will list all the keywords you could run.
compgen -A function # will list all the functions you could run.
compgen -A function -abck # will list all the above in one go.
0
08.12.2018, 17:18
2 ответа

Сbash:

#!/bin/bash

pep="AAAAAAAA"

pos=1
while [ "$pos" -le "${#pep}" ]; do
    for aa in A C D E F G H I K L M N P Q R S T V W X Y
    do
        printf '%s%s%s\n' "${pep:0:pos-1}" "$aa" "${pep:pos}"
    done
    pos=$(( pos + 1 ))
done

Внешний whileцикл проходит по позициям в заданной пептидной последовательности, и для каждой позиции действительные коды аминокислот помещаются в пептид один за другим в этой позиции (это использует расширение подстроки части пептид до соответствующего положения, вставляет измененную аминокислоту, а затем выполняет еще одно расширение подстроки для хвостового конца пептида ).

0
28.01.2020, 04:07

Ваша спецификация не СЛИШКОМ ясна. Как далеко

awk -vPS="$PEPTIDE_SEQ" -vLEN=$len -vXCLI="B,J,O,U,X,Z" '
BEGIN   {PS = substr (PS, 2)     
         for (n=split (XCLI, T, ","); n; n--) XCL[T[n]]
         for (i=65; i<=90; i++) {C = sprintf ("%c", i)
                                 if (!(C in XCL)) printf "%s%s ", C, PS
                                }
         printf RS
        }
'
AAAAAAAAA CAAAAAAAA DAAAAAAAA EAAAAAAAA FAAAAAAAA GAAAAAAAA HAAAAAAAA IAAAAAAAA KAAAAAAAA LAAAAAAAA MAAAAAAAA NAAAAAAAA PAAAAAAAA QAAAAAAAA RAAAAAAAA SAAAAAAAA TAAAAAAAA VAAAAAAAA WAAAAAAAA YAAAAAAAA 

понял?

РЕДАКТИРОВАТЬ:Перечитав спецификацию после прочтения вашего комментария, я придумал

awk -vPS="$PEPTIDE_SEQ" -vXCL="B,J,O,U,X,Z" '
BEGIN   {for (i=65; i<=90; i++) if (!(index(XCL, S = sprintf ("%c", i)))) print C[++n] = S, n
         for (i=1; i<=length(PS); i++)  {for (j=1; j<=n; j++) print substr (PS, 1, i-1) C[j] substr (PS, i+1)
                                         print ""
                                        }
        }
'

Это соответствует вашим потребностям? Пожалуйста, имейте в виду, что вам нужно указать только символы -- -для исключения -, а не все «хорошие» символы с отсутствующими «плохими».

0
28.01.2020, 04:07

Теги

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