关键词:reverse; complement; sequence;
**如何得到一段基因序列的反向互补序列?**这是基因测序领域经常遇到的问题。其实答案很简单,许多现成的软件都有这个功能。但是作为一个生信人,当然可以自己实现一个了。
首先想到的也是最基础的方法就是利用**多个if…else…**的语句进行判断选择。这种方法太笨拙,写出来的代码很不好看。今天我们分享几种好一点的方法。
Shell版本:tr命令和rev命令
Python版本:基于字典
代码如下:
这种方法简短优美,一目了然。与使用多个str.replace()函数相比其效率较高,因为上面的代码只需遍历原始字符串一次就够了,而多个str.replace()函数需要遍历字符串多次。
此外,上面的代码中字符串反向用到了一个Pythonic的写法:s[::-1]。更多Pythonic的句法可参考拙作《