[Chimera-users] marker coordinates
Thomas Goddard
goddard at cgl.ucsf.edu
Mon Jan 26 16:13:52 PST 2009
Hi Giovanni,
The call to save your individual maps would be like
gv.write_file('/tmp/volume%d.mrc' % (i+1), format = 'mrc')
Allowed formats are mrc, dsn6 (O brix format), cmap (Chimera map format
uses HDF5), or netcdf (Chimera only).
Tom
Giovanni Cardone wrote:
> Hi Gabor,
>
> here attached is a python script that I adapted from a pug-in that I
> am writing.
> You need to adjust the box size to your needs, then you can save it as
> a file and open it in Chimera.
> The script extracts subregions from the active volume, around only the
> selected markers.
> The subregions are visualized as separate maps, but they are not saved
> to file (can anyone contribute with that?).
> Since it uses a function (region_matrix) that has been recently
> modified, I can only guarantee that it works with the latest nightly
> builds (however, in the script there is a commented line that should
> work with version 1.2552).
>
> I hope it helps,
> Giovanni
>
>
>
>
> #
> -----------------------------------------------------------------------------
> # Script to extract subregions around selected markers from the active
> volume
> #
> from chimera import selection
> from VolumeData import Array_Grid_Data
> from VolumeViewer import volume_from_grid_data, active_volume
>
> # box size around markers (pixels)
> boxSize = 10
>
> region = active_volume()
> data = region.data
>
> for i,atom in enumerate(selection.currentAtoms()):
> coord = atom.coord()
> # calculate limits and extract subregions
> ijkcoord = map(lambda a: int(round(a)), data.xyz_to_ijk(coord))
> ijk_size = [boxSize]*len(ijkcoord)
> ijk_min = map(lambda a,b: max(0,a-b/2), ijkcoord, ijk_size)
> ijk_size = map(lambda a,b,c,d: min(a-1,b+c/2)-d, data.size,
> ijkcoord, ijk_size, ijk_min)
> ijk_max = map(lambda a,b: a+b-1, ijk_min, ijk_size)
> new_origin = data.ijk_to_xyz(ijk_min)
>
> step = (1,1,1)
> r = (ijk_min, ijk_max, step)
> mtx = region.region_matrix(r)
> # version 1.2552
> # mtx = region.region_matrix(origin = ijk_min, size = ijk_size,
> subsampling = (1,1,1), step = (1,1,1), read_matrix = True)
>
> # show selection
> name = region.name + (' (subregion %d) '%(i+1))
> gg = Array_Grid_Data(mtx, new_origin, data.step, data.cell_angles,
> data.rotation, name = name)
>
> gv = volume_from_grid_data(gg, show_data = False)
> gv.copy_settings_from(region, copy_region = False)
> gv.show()
>
>
>
> On Jan 26, 2009, at 7:43 AM, Gabor Papai wrote:
>
>> Hi,
>>
>> I would like to do the following: I placed markers on density spots. I
>> want to get their coordinates and excise a box around the marked
>> density
>> and save it as a separate file. For this I would like to know how I
>> can
>> retrieve the coordinates of a marker set and possibly how to position
>> exactly a box around a marker to set a subregion (and of course how
>> to
>> set the dimensions of that box). This second feature existed before,
>> but
>> disappeared in the latest releases with the subregion selection tool
>> in
>> the Volume Viewer.
>> Thanks in advance,
>> Gabor
>>
>> --
>> Gabor Papai
>> IGBMC
>> Department of Structural Biology and Genomics
>> 1, rue Laurent Fries, BP 10142
>> 67404 Illkirch, France
>> phone +33-3-88655748
>> Fax +33-3-88653201
>> E-mail: papai at igbmc.u-strasbg.fr
>>
>> _______________________________________________
>> Chimera-users mailing list
>> Chimera-users at cgl.ucsf.edu
>> http://www.cgl.ucsf.edu/mailman/listinfo/chimera-users
>
> _______________________________________________
> Chimera-users mailing list
> Chimera-users at cgl.ucsf.edu
> http://www.cgl.ucsf.edu/mailman/listinfo/chimera-users
More information about the Chimera-users
mailing list