如何用tr或Perl将0123更改为ACTG?

时间:2010-04-21 02:21:15

标签: perl bash

我有一个包含此类列表的文件:

100
101
102
103

我想做的是将每个0替换为A,将1替换为C,将2替换为G,将3替换为T. 因此我们希望得到

CAA
CAC
CAG
CAT

5 个答案:

答案 0 :(得分:10)

你自己实际上已经找到了答案。简单地:

tr 0123 ACGT <input_file >output_file

或:

echo 2033010 | tr 0123 ACGT

答案 1 :(得分:7)

下面:

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

验证

$ perl -p -e 'tr/0123/ACGT/' <~/input
CAA
CAC
CAG
CAT

答案 2 :(得分:7)

为了完整性:

sed 'y/0123/ACGT/' file

答案 3 :(得分:4)

$ echo 3210 | tr 0123 ACGT
TGCA

当不使用任何选项时,tr采用两组字符,并从第一组到第二组进行1:1映射。因此,如上所述,0映射到A,1映射到C,2映射到G,3映射到T。

答案 4 :(得分:2)

   $ 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