一行代码去除atcg/ATCG之外的碱基的序列
不管是测序的序列,还是从数据库中下载的序列,部分序列中含有位置的碱基n或者简并碱基如W,R, K等,这些碱基可能很可能是测序质量不佳或者对后续分析不利需要去除,可以使用一行代码去除
- 去除含有n的序列
awk '{if($0~/^>/)a=$0;else{if($0!~/n/)print a"\n"$0}}' yourfile.fa >yourfile_pure.fa
- 如何序列含有w,k,r之类的非atcg碱基,使用以下代码:
awk '{if($0~/^>/)a=$0;else{if($0!~/[^atcgATCG]/)print a"\n"$0}}' yourfile.fa >yourfile_pure.fa
推荐使用这个代码,小写的atcg和大写的ATCG序列均适合
- 查询多少序列含atcg外的碱基:
grep -v ">" yourfile.fa|grep -i [^atcg]|wc -l