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.
>> -----------------------------------------------------------------
>>
>>
|