Opened 11 years ago

Closed 9 years ago

#27 closed defect (duplicate)

Volume Data Master Ticket

Reported by: Scooter Morris Owned by: Tom Goddard
Priority: blocker Milestone: Core API Complete
Component: Volume Data Version:
Keywords: Cc: chimera-programmers
Blocked By: Blocking:
Notify when closed: Platform: all
Project: chimera

Description


Change History (3)

comment:1 by Tom Goddard, 11 years ago

This volume data project includes the Grid_Data class from Chimera 1 (VolumeData/griddata.py) which represents the data saved in 3d image files (e.g. MRC or HDF5 files), plus derived properties of the image data such as its symmetry which may not be included in the file. This project also includes the couple dozen volume data file readers, and the 5 volume data exporters. Also included is the Chimera Volume object (VolumeViewer/volume.py) which layers on top of Grid_Data all of the display properties, contour level, color, mesh style, volumetric display transfer function, displayed subsampling level. This could be included instead in the volume viewer project, but I think the display state is part of the data and the volume viewer ticket should be just the graphical user interface.

There are many API changes from Chimera 1 to consider. Currently Grid_Data mostly consists of directly settable public attributes. Possibly these should be changed to get/set methods. The symmetry representation is a set of 3 by 4 matrices which is very poor, unable to handle the common infinite symmetries like crystal symmetry, or helical symmetry. Symmetry should be handled by a new class that can handle both finite (point) and infinite symmetries. For an infinite symmetry the way of using it would be to ask for all the symmetries which place the object within a specified distance range.

Another API change worth considering is allowing all Grid_Data objects to be writable. Because these objects read dynamically from files, they generally are not writable, and a writable copy has to be made. It would be convenient if any such object was writable, it would not modify the file, but would switch to an full in-memory representation.

The Volume glass which layers the display attributes on top of the primary data also has many APIs in Chimera 1 that should be cleaned up for Chimera 2. The current Chimera 1 Volume code is 2700 lines of Python, Grid_Data and associated code (data caching, in memory arrays) is 1500 lines, and file readers are about 7000 lines of code. It will take significant time to clean this up.

comment:2 by Tom Goddard, 11 years ago

I haven't modified the Grid_Data or Volume class APIs yet. Many small modifications would be desirable. Some larger issues such as whether to treat a map time series as a single map object or as a collection maps need attention. That can complicate tools that act on maps -- for instance, how would I smooth each time point of a map series?

comment:3 by Tom Goddard, 9 years ago

Resolution: duplicate
Status: newclosed

No longer using "master" tickets. Instead use individual tickets for specific features.

Note: See TracTickets for help on using tickets.