|
Posted on 2014-08-21 15:07 TWaver 閱讀(629) 評(píng)論(0) 編輯 收藏
生物信息資源更新越來(lái)越快,使用可視化的方法來(lái)分析DNA序列已成為生物信息學(xué)的一個(gè)研究熱點(diǎn),用圖形表示DNA序列的方法也越來(lái)越成熟。2011年,著名雜志《Science》發(fā)表一篇引起轟動(dòng)的文章:《Presenting the Human Genome:Now is 3D!》,這篇文章完全給我們描述了人類基因組測(cè)序未來(lái)的藍(lán)圖,可見3D技術(shù)在很多領(lǐng)域都是發(fā)展方向。 使用mono可以快速的創(chuàng)建DNA分子結(jié)構(gòu)立體模型,效果如下:


 當(dāng)然簡(jiǎn)單的呈現(xiàn)DNA分子結(jié)構(gòu),僅僅是一部分功能,如果將mono和專業(yè)的DNA分析儀結(jié)合,不僅可以發(fā)現(xiàn)病癥,更重要的是預(yù)測(cè)病癥的發(fā)生,治病于未發(fā),這將是人類的福音。除了研究人類基因之外,我們還可以對(duì)農(nóng)作物的進(jìn)行DNA3D模型化,并加以分析,對(duì)農(nóng)業(yè)的發(fā)展和糧食安全方面都會(huì)有積極的意義。 使用mono創(chuàng)建3D模型最大的特點(diǎn)就是快,代碼不過(guò)幾十行,使用Editor更是不需要代碼量。本文的效果圖通過(guò)代碼實(shí)現(xiàn),核心代碼如下: 1 | function createDNA(box, x, y, z, colors){ |
2 | var count= 20 +Math.random()* 50 ; |
4 | var parent=createNode(box, 10 , 0 , 0 , 0 , 'red' ); |
5 | for (var i= 0 ;i<count;i++){ |
6 | var angle=Math.PI* 2 / 360 * 15 *i; |
7 | var radius = (i % 2 == 0 ) ? 10 : 7 ; |
8 | var color = colors[i% 2 ] |
9 | var node1=createPairNode(box, dist, radius, i, angle, color); |
10 | var node2=createPairNode(box, dist* 0.3 , radius, i, angle, color); |
11 | node1.setParent(parent); |
12 | node2.setParent(parent); |
15 | var link=createLink(box, node1, node2, dist, angle, 'gray' ); |
16 | var node3=createPairNode(box, dist* 0.58 , radius* 0.4 , i, angle, 'cyan' ); |
17 | var node4=createPairNode(box, dist* 0.72 , radius* 0.4 , i, angle, 'cyan' ); |
18 | link.setParent(parent); |
19 | node3.setParent(parent); |
20 | node4.setParent(parent); |
23 | parent.setPosition(x,y,z); |
24 | parent.setStyle( 'm.visible' , false ); |
1 | function createPairNode(box, size, radius, index, angle, color){ |
2 | var x=size*Math.sin(angle); |
3 | var z=size*Math.cos(angle); |
5 | var node = createNode(box, radius, x, y, z, color); |
|