Как я могу изменить 0123 в ACTG с tr или Perl? - PullRequest
3 голосов
/ 21 апреля 2010

У меня есть файл с таким списком:

100
101
102
103

Я хочу заменить каждые 0 на A, 1 на C, 2 на G, 3 на T. Следовательно, мы надеемся получить

CAA
CAC
CAG
CAT

Ответы [ 5 ]

10 голосов
/ 21 апреля 2010

Вы практически выработали ответ самостоятельно. Просто:

tr 0123 ACGT <input_file >output_file

или

echo 2033010 | tr 0123 ACGT
7 голосов
/ 21 апреля 2010

Просто для полноты:

sed 'y/0123/ACGT/' file
7 голосов
/ 21 апреля 2010

Здесь:

perl -p -e 'tr/0123/ACGT/'

Проверка:

$ perl -p -e 'tr/0123/ACGT/' <~/input
CAA
CAC
CAG
CAT
4 голосов
/ 21 апреля 2010
$ echo 3210 | tr 0123 ACGT
TGCA

Если не использовать никаких опций, tr принимает два набора символов и выполняет сопоставление 1: 1 из первого набора во второй набор. Итак, как написано выше, 0 отображает на A, 1 отображает на C, 2 отображает на G и 3 отображает на T.

2 голосов
/ 21 апреля 2010
   $ awk -vFS="" 'BEGIN{_["1"]="C";_["2"]="G";_["3"]="T";_["0"]="A"}{for(i=1;i<=NF;i++){printf _[$i]}print ""}' file
    CAA
    CAC
    CAG
    CAT
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...