总是有很多idea,但是一般都会忘记了。看看写下来会不会有好处!
1。用JAVA写个小程序
目的: 分析已有的蛋白质3D结构之间的相互作用,比如分子间,和分子内的。
想法: 蛋白质的三维结构,在数据存储表现上,实际就是一个三维点阵,用一个三维(XYZ)的坐标表示原子的相对位置。
目前想实现的是快速找到和总结两个蛋白质分子之间靠的比较近的残基。
实现方法: 用一个比较笨的方法: 计算所有的距离:
从分子A的第一原子开始, 依次计算它与分子B的所有的原子之间的相对距离(很简单:就是XYZ对X'Y'Z'的距离),
依次计算分子A的所有原子。
for {set i 0} {incr i} {
for {set j 0} {incr j} {
if {[set dis [expr pow(pow(x($i)-x($j),2)+pow(y($i)-y($j), 2)+pow(z($i)-z($j),2),0.5)]]<=$indist} {
如果dis小于某个数值,就将两个原子打印出来。
改进: 对于算法,我是基本没办法了,不过有几个功能还是很需要的
1。 可以针对不同的原子类型,作出筛选
2。 可以根据给的一个dis的值,一次算出以这个值以下(一次-1)为限制条件的所有步骤,比如dis=10,那么9,8,7等等也被分别算出。
3。 最好可以把算出来的蛋白质残基remap到原来的结构上去。