forked from estonshi/spipy
-
Notifications
You must be signed in to change notification settings - Fork 3
simulate
YC.S edited this page Apr 23, 2018
·
23 revisions
Simulation by direct Fourier transform of electron density map, and return photon-count patterns
+ work_dir:str
+ config_default:dict
+ :void = generate_config_files (pbd_file:str, #workdir:str/None, #params:dict/{})
+ :void = run_simulation()
- parameters : refer to Example
- "parameters|detd" : distance between sample and detector [unit : mm]
- "parameters|lambda" : wave length of laser [unit : angstrom]
- "parameters|detsize" : detector size in width/height [unit : pixel]
- "parameters|pixsize" : pixel size of detector [unit : mm]
- "parameters|stoprad" : radius of a circle region at the center of pattern that to be masked out [unit : pixel]
- "parameters|polarization" : correction due to incident beam polarization, value from 'x', 'y' or 'none'
- "make_data|num_data" : how many patterns do you want to generate
- "make_data|fluence" : laser fluence [unit : photons/pulse], usually 1e10 ~ 1e14 is reasonable for most situations
--
- work_dir : directory you project locates
--
- config_default : default configuration parameters, a dict:
{'parameters|detd' : 200, 'parameters|lambda' : 2.5,
'parameters|detsize' : 128, 'parameters|pixsize' : 0.3,
'parameters|stoprad' : 0, 'parameters|polarization' : 'x',
'make_data|num_data' : 100, 'make_data|fluence' : 1e14}
--
-
generate_config_files : configure simulation parameters, make project dir and copy neccessary files to your work_dir, NO return
- pdb_file : path of your pdb file used in simulation [/..../xx.pdb]
- #workpath : choose a path to set up your project, ABSOLUTE PATH ! default is current dir
- #name : give your project a name, default is None, program will choose a name for you
- #params : parameters dict, { "section_1|param_1": value_1, ... }, for default program will use 'config_default'
--
-
run_simulation : start simulation after configuing, NO return
- NO input
Simulation by atom scattering calculation, and return adu patterns. SLOWER but ACCURATE & FLEXIBLE
We are very sorry that since now the program takes 3~4 seconds to generate a pattern, please be patient and we are working on the acceleration strategies
+:void = multi_process (save_dir:str, pdb_file:str, param:dict, #euler_mode:str/'random', #euler_order:str/'zxz', #euler_range:numpy.2darray/None, #predefined:numpy.2darray/None, #njobs:int/2)
+:dict = single_process (pdb_file:str, param:dict, #euler_mode:str/'random', #euler_order:str/'zxz', #euler_range:numpy.2darray/None, #predefined:numpy.2darray/None, #save_dir:str/None)
- parameters : The parameters are totally the same with spipy.simulate.sim
--
-
multi_process : simulation in parallel, use a powerful computer ;)
- save_dir : path to save simulation result, a directory path
- pdb_file : path of your input pdb file
- param : simulation parameters, the same with 'spipy.simulate.sim' module
- euler_mode : how to genreate euler angles, str, chosen from 'random', 'helix' and 'predefined', default='random'
- euler_order : rotation order, such as 'zxz' or 'zyz'..., default='zxz'
- euler_range : the range of euler angles to rotate object, numpy.array([ [alpha_min,alpha_max], [beta_min,beta_max], [gamma_min,gamma_max] ]), shape=(3,2)), default=None
- predefined : if euler_mode is 'predefined', then you have to specify all euler angles used for object rotation, shape=(Ne,3), default=None
- njobs : number of jobs, int, default=2
-
single_process : simulation entrance function, using a single process, return simulated dataset, a dict containing all information and result of the simulation, only if you set 'save_dir=None'
- pdb_file : path of your input pdb file
- param : simulation parameters, the same with 'spipy.simulate.sim' module
- euler_mode : how to genreate euler angles, str, chosen from 'random', 'helix' and 'predefined', default='random'
- euler_order : rotation order, such as 'zxz' or 'zyz'..., default='zxz'
- euler_range : the range of euler angles to rotate object, numpy.array([ [alpha_min,alpha_max], [beta_min,beta_max], [gamma_min,gamma_max] ]), shape=(3,2)), default=None
- predefined : if euler_mode is 'predefined', then you have to specify all euler angles used for object rotation, shape=(Ne,3), default=None
- save_dir : path to save simulation result, a directory path, default=None and the result will be returned
Any questions or bug report please contact [email protected]