**如何得到一段基因序列的dnastar反向互補补序列**这是基因测序领域经常遇到的问题。其实答案很简单许多现成的软件都有这个功能。但是作为一个生信人当然可以自己实現一个了。
首先想到的也是最基础的方法就是利用**多个if…else…**的语句进行判断选择这种方法太笨拙,写出来的代码很不好看今天我们分享几种好一点的方法。
Python版本:基于字典
这种方法简短优美一目了然。与使用多个str.replace()函数相比其效率较高因为上面的代码只需遍历原始字苻串一次就够了,而多个str.replace()函数需要遍历字符串多次
此外,上面的代码中字符串反向用到了一个Pythonic的写法:s[::-1]更多Pythonic的句法可参考拙作《》。
這种方法利用了字符的即可以将字符映射为一个数字。而这个数字又可以转化为字符数组的序号(index)从而完成字符到字符的映射。C的蝂本是目前最快的!
值得注意的是上面代码中的数组不光可以完成“AGCTN”这几种最常见碱基间的映射,还可以实现’B’与’V’、’D’与’H’、’R’与’Y’等简并碱基()间的映射该数组由lh3在中给出。
如果有任何问题欢迎交流!