From: JP C. <jp...@sy...> - 2012-08-21 20:54:13
|
Greetings, I'm currently trying to do some visualization on large structures (in this case, 3iyw in its biological assembly). Exporting the entire isosurface (created using Jason's http://www.pymolwiki.org/index.php/Huge_surfaces trick) is not a problem. However, exporting 1 surface per chain ID (7 chain ID's in total, i.e. 6 surfaces) "works" in that I get my 7 .obj or .wrl files. The problem is that they seem to have undergone a translation about x, y, and/or z (can't make out a pattern). I copied my script over below. I've uploaded a sample image (outside of Pymol) at http://i.imgur.com/f2ws8.png - the red represents 60 copies of the same chain and clearly it is translated. All of them appear to be shifted and overall it breaks the symmetry and accuracy. I'm hoping that I might get some tips or leads in how to resolve this. Also, I'm imported the individual chain exported surfaces into multiple non-Pymol packages and all have the same issue. If I do not delete the chains after every export, I can of course export all the chains, but I end up with a single piece of geometry, which is not what I need. Many thanks, JP Cartailler Script ---------------- # 2012/08/21 # Generate low-resolution surfaces and export for external rendering # # Ref. for surface generation - http://www.pymolwiki.org/index.php/Huge_surfaces # Ref. for get/set_view - http://www.pymolwiki.org/index.php/Get_View # PDB Ref. http://www.rcsb.org/pdb/files/3IYW.pdb1.gz # Load a PDB file (sync at the end, to make sure # the file finishes to load prior to other commands executing load Z:\some_path\3iyw.pdb, sync # show all states # 3iyw has 60 states set all_states, on # Create objects for each chain select A, chain A select B, chain B select C, chain C select H, chain H select K, chain K select L, chain L select M, chain M # delete original object, to save memory delete 3iyw_assembly # hide everything hide all # set the view coordinates, so that # the scene doesn't shift for each chain (don't think # this actually works) set_view (\ 0.200763375, -0.687440515, -0.697939515,\ -0.230375409, 0.659335077, -0.715684593,\ 0.952166438, 0.304471344, -0.025999010,\ 0.000000000, 0.000000000, -1791.385009766,\ -5.000000000, -5.000000000, -5.000000000,\ 734.342590332, 2848.427490234, 0.000000000 ) # create a pseudo-fcalc map (a 3D volumetric scalar field) # set the B-factors nice and high for smoothness alter all, b=40 # ~10 A map resolution set gaussian_resolution, 10 # TODO - create array and loop through the following # 1. create new ~10 A map spacing with a 10 A surrounding buffer # 2. create surface based on map # 3. save the surface # 4./5. cleanup map_new mapA, gaussian, 10, A, 10 isosurface surfA, mapA, 1.0 save chainA.obj delete mapA delete surfA map_new mapB, gaussian, 10, B, 10 isosurface surfB, mapB, 1.0 save chainB.obj delete mapB delete surfB map_new mapC, gaussian, 10, C, 10 isosurface surfC, mapC, 1.0 save chainC.obj delete mapC delete surfC map_new mapH, gaussian, 10, H, 10 isosurface surfH, mapH, 1.0 save chainH.obj delete mapH delete surfH map_new mapK, gaussian, 10, K, 10 isosurface surfK, mapK, 1.0 save chainK.obj delete mapK delete surfK map_new mapL, gaussian, 10, L, 10 isosurface surfL, mapL, 1.0 save chainL.obj delete mapL delete surfL map_new mapM, gaussian, 10, M, 10 isosurface surfM, mapM, 1.0 save chainM.obj delete mapM delete surfM |