Hi Bernard, it this is relatively easy. Copy this text: #phil __ON__ xmanip { input { xray_data { file_name = porin.mtz labels = FOFCWT name = map_coef write_out =False } } parameters { action = *manipulate_miller manipulate_miller { task = *custom custom{ code = """ import math map = map_coef.fft_map().real_map_unpadded() data = map.as_1d() mean = flex.mean( data ) std = flex.mean( data*data-mean*mean) std = math.sqrt( std ) data = (data-mean)/std histo = flex.histogram(data,n_slots=30) histo.show() """ } } } } #phil __END__ into something called rupp.def Change the input mtz file and input labels into whatever you need/have . Make sure you have downloaded the latest version of phenix, cci_apps or the cctbx. Then run mmtbx.xmanip rupp.def to get a histogram printed out: -4.3615799 - -3.917308: 81 -3.917308 - -3.4730361: 408 -3.4730361 - -3.0287643: 1965 -3.0287643 - -2.5844924: 9006 -2.5844924 - -2.1402205: 28548 -2.1402205 - -1.6959486: 77763 -1.6959486 - -1.2516767: 186741 -1.2516767 - -0.80740483: 386079 -0.80740483 - -0.36313295: 634365 -0.36313295 - 0.08113894: 785736 0.08113894 - 0.52541082: 698574 0.52541082 - 0.96968271: 451065 0.96968271 - 1.4139546: 221478 1.4139546 - 1.8582265: 96711 1.8582265 - 2.3024984: 52725 2.3024984 - 2.7467702: 35046 2.7467702 - 3.1910421: 25470 3.1910421 - 3.635314: 18111 3.635314 - 4.0795859: 10530 4.0795859 - 4.5238578: 6165 4.5238578 - 4.9681297: 3366 4.9681297 - 5.4124016: 1476 5.4124016 - 5.8566734: 630 5.8566734 - 6.3009453: 252 6.3009453 - 6.7452172: 108 6.7452172 - 7.1894891: 36 7.1894891 - 7.633761: 18 7.633761 - 8.0780329: 9 8.0780329 - 8.5223048: 9 8.5223048 - 8.9665766: 9 Some background: xmanip has a 'custom' function that allows you to push in snippets of python code that deal with models or reflection files. The custom code I wrote is fairly simple as you can see. It saves you the overhead of writing an interface that deals with reading in data etc etc. in the above text, the code that does the histogram stuff is: import math map = map_coef.fft_map().real_map_unpadded() data = map.as_1d() mean = flex.mean( data ) std = flex.mean( data*data-mean*mean) std = math.sqrt( std ) data = (data-mean)/std histo = flex.histogram(data,n_slots=30) histo.show() It should be obvious what is going on. Other parts of rupp.def deal only with reading in the data and telling the jiffy what to do. HTH Peter Bernhard Rupp wrote: > > 2007/8/2, Bernhard Rupp <[log in to unmask]>: > >> Dear All - >> >> before I code ahead - is there a simple program/script available where >> I can read in a map and it gives me a basic 1d density histogram (or >> the tabular data at least) in return? >> >> Thx, br >> ----------------------------------------------------------------- >> Bernhard Rupp >> http://www.ruppweb.org/ >> ----------------------------------------------------------------- >> It is not your aptitude but your attitude that determines your >> altitude. >> ----------------------------------------------------------------- >> >>