短文列表,要选择至少2个字母不同的行

the*_*ile 2 awk grep text r

我有一个8个字母的DNA序列列表,例如:

    GGAGACAA  
    GGATACAA 
    AATCAGTC 
    ACACCTGG 
Run Code Online (Sandbox Code Playgroud)

我想选择位置上至少2个字母不同于其他所有行的所有行.理想情况下,我想保留3,4和1或2行(但不关心哪一行).但至少,我想保留3和4.最重要的是,没有包含的线与任何其他保留线只有一个位置基差.

你会怎么做?R,grep/gawk是我常用的工具,但我无法弄清楚如何使用那些看似简单的任务.

ETA-第一和第二行只有一个字母彼此不同(G与第四位的T).这就是为什么我不想保留它们的原因.有大约65,000个可能的8个碱基的组合,所以我的大多数(~4000行)列表应该满足这2个不同于所有其他行标准的字母.我很难弄清楚如何找到那些没有的人.

Mar*_*gan 6

stringdist封装具有功能stringdistmatrix和许多不同的距离度量.

> library(stringdist)
> stringdistmatrix(x, x)
     [,1] [,2] [,3] [,4]
[1,]    0    1    7    7
[2,]    1    0    6    7
[3,]    7    6    0    5
[4,]    7    7    5    0
Run Code Online (Sandbox Code Playgroud)

现在由您决定"2个字母不同"的意思!