需要处理文本如下,比对序列前的4个空格替换为tab键分割
msa.txt:
>XP_022282837.1
GBGT2_HUMAN -------------------------------------MAQDLSEKDLLKMEVEQLKKEVKNTRIPISKAGKEIKEYVEAQAGNDPFLKGIP
GBGT2_BOVIN -------------------------------------MAQELSEKELLKMEVEQLKKEVKNPRALISKTGKEIKDYVEAEAGNDPLLKGIP
GBGT2_MOUSE -------------------------------------MAQDLSEKELLRMEVEQLKKEVKNPRDLISKTGKEIKDYVEAQAGTDPLLKGIP
XP_022282837.1 MYPCTLPAEINRRSVCYYHLLKSGKATPRTGQKMPVINIEDLTEKDKLKMEVDQLKKEVTLERMLVSKCCEEVRDYVEERSGEDPLVKGIP
GBG11_RAT ---------------------------------MPALHIEDLPEKEKLKMEVEQLRKEVKLQRQQVSKCSEEIKNYIEERSGEDPLVKGIP
sed 命令行操作:
# 1. 不能直接替换空格,因为id和比对序列之间的空格数不定,最少为4个空格,最多为 4 + max([len(id)...])- min([len(id)...]), 所以需要借助有边界进行锚定
sed 's/ \([A-Z-]\)/\t\1/' msa.txt > msa.tsv # \(需要保留的字符\) # 需要保留的字符会被自动添加索引,只有一个为1,多个按照位置顺序
网友评论