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 <[EMAIL PROTECTED]>:
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.
-----------------------------------------------------------------

Reply via email to