【发布时间】:2017-08-10 20:58:24
【问题描述】:
我们如何从其代码中编码反向完整的 DNA 序列?
一个 DNA 序列可以包含 4 个不同的字符 A、C、G、T;其中A是T的补码,C是G的补码。
A DNA 序列的反向补码是序列的补码,但方式相反(我们从右到左计算每个字符的补码)。
例子:(AA)的补码是:TT,(AC)的补码是GT等等……
一般来说,使用 python,我们通过将每个字符映射到一个从 0 到 3 的数字来编码一个序列,
{A:0, C:1, G:2, T:3}
那么AA的编码是:0,AC的编码是:
AC = 0*4^0+1*4^1 = 4
GT的编码是:
GT = 2*4^0+3*4^1 = 14
如何在不创建字典的情况下将每个序列的代码转换为 python 中的反向补码?对于上面的示例:将 4 转换为 14?和 0 到 15 ...
【问题讨论】:
-
你不能只使用位掩码吗?听起来像预先计算并将它们存储在字典中可能会更容易。
-
这对你有帮助或者给你一些提示吗? stackoverflow.com/questions/1604464/… 我同意 @beoliver,为什么不使用位掩码?
-
你是从教科书上复制sn-ps还是什么?我们没有给出一个例子,对整数进行四舍五入是没有意义的。他们的意思是轮换吗?如果是这样的话,它们会非常具体,因为这只适用于两个符号,并且说你正在交换它们比改变任何一个方向更有意义。
-
我建议你从具体的操作中退后一步,向我们解释1)什么是序列的“反向完成”,2)序列存储为什么格式。从这个描述中,我只能猜测成对的位可能映射到这 4 个字母,但不能猜测它们是什么或为什么相互关联。
标签: python bit-shift twos-complement