Module for flexibility. More...
Data Types | |
| type | flexible |
| Main class owned by each protein to allow a change in conformation. More... | |
| type | list_flex_type |
| List of set of grid. More... | |
| type | nodeflex |
| Define nodes of list_flex, internal use. More... | |
Functions/Subroutines | |
| subroutine | new_flexible (this, plist_flex) |
| Constructor flexible . | |
| subroutine | delete_flexible (this) |
| Destructor flexible. | |
| subroutine | init_flexible_freq (this) |
| Initialize or reinitialze the time for the next change in conformation : time_next_flex. | |
| subroutine | new_list_flex (this, flex_method_str, list_conf_fname, total_conf, initial_conf, nearest_ngb, frequence, std_freq, internal_energy, imarkov) |
| Constructor of list_flexible. | |
| subroutine | delete_listflex (this) |
| Delete the full list and the associated sogrid. | |
| subroutine | correct_transitionmatrix (this) |
| Checks mod_flexibilty::list_flex_type::transition_matrix for correct input only used when imarkov only for a square transition matrix. | |
| subroutine | correct_stationarydistribution (this) |
| Checks mod_flexibilty::list_flex_type::stationary_distribution for correct inputs and normalizes used when the internal energy calculation option turned on the stationary_distribution corresponds to weights (markovian=false) or to the eigenvector (with eigenvalue=1) of the mod_flexibilty::list_flex_type::transition_matrix (markovian=true) | |
| subroutine | correct_weights (this) |
| Goes through sogrid list and correct the conf_weights depending on single values and/or the sum of all values. | |
| subroutine | delete_last_dataflex (this, status) |
| Deleta the last node of the list and the associated sogrid. | |
| subroutine | delete_first_dataflex (this, status) |
| not used until now, to delete ?? | |
| subroutine | insert_sogrid (this, p_sogrid, head, status) |
| Insert a new sogrid and create a new node. | |
| recursive integer function | associate_to_conformation (this, pnew_node, nb_conf, counter, shift_conf) |
| Associate pointer pnew_node to the conformation number. | |
| subroutine | change_conf_flex (this, conf_nb, shift_conf_opt) |
| Update the p_current_node of flex to conformation nb_conf (== -1 random ) or shift_conf ( +/- 1 ) | |
Variables | |
| integer, parameter | flex_intern = 0 |
| enumeration of node's state for the list | |
| integer, parameter | flex_first = 1 |
| integer, parameter | flex_last = 2 |
| integer, parameter | flex_random = 0 |
| enumeration for the algorithm | |
| integer, parameter | flex_metropolis = 1 |
| integer, parameter | flex_minimum = 2 |
| integer, parameter | flex_time = 3 |
Module for flexibility.
Manage a list of possible conformation ( list of set_of_grid ). define type for flexibility : NodeFlex, list_flex_type and flexible
| recursive integer function mod_flexibility::associate_to_conformation | ( | type ( nodeflex ), target | this, |
| type ( nodeflex ), pointer | pnew_node, | ||
| integer, intent(in) | nb_conf, | ||
| integer, intent(out) | counter, | ||
| integer, intent(in) | shift_conf | ||
| ) |
Associate pointer pnew_node to the conformation number.
set pnew_node to nb_conf or shift ( previous or next ) called by change_conf_flex only, which deals with random numbers
if shift_opt is given moved to a neighbour. if shift not given and nb_conf /= -1, moved to nb_conf using recursive function, needed to loop throught the list.
| this | : instance of NodeFlex |
| pnew_node | : pointer to the NodeFlex, associated if status == 0 |
| nb_conf | : specify the conformation number, used if shift_conf == 0 |
| counter | : return the current conformation in the case nb_conf is specified explictely |
| shift_conf | : if 1 or -1, points to the next or previous node. if 0 use nb_conf |
| subroutine mod_flexibility::change_conf_flex | ( | type ( flexible ) | this, |
| integer, intent(in) | conf_nb, | ||
| integer, optional | shift_conf_opt | ||
| ) |
Update the p_current_node of flex to conformation nb_conf (== -1 random ) or shift_conf ( +/- 1 )
if shift_conf_opt present ( +1 / -1) limited to +/- 1 not present, do not use shift both cases if conf_nb == -1 random if shift ( can be the same) full random (can be the same ) if conf_nb /= -1 and shift_conf is not present : specify the conformation number exactly
| this | : instance of flexible |
| conf_nb | : new conformation number |
| conf_nb | : conformation number, if == -1, random |
| shift_conf_opt | : optionaly if conf_nb different of -1 (=0) apply the given shift |
| subroutine mod_flexibility::correct_stationarydistribution | ( | type ( list_flex_type ) | this | ) |
Checks mod_flexibilty::list_flex_type::stationary_distribution for correct inputs and normalizes used when the internal energy calculation option turned on the stationary_distribution corresponds to weights (markovian=false) or to the eigenvector (with eigenvalue=1) of the mod_flexibilty::list_flex_type::transition_matrix (markovian=true)
| this | instance of a mod_flexibility::list_flex_type |
| subroutine mod_flexibility::correct_transitionmatrix | ( | type ( list_flex_type ) | this | ) |
Checks mod_flexibilty::list_flex_type::transition_matrix for correct input only used when imarkov only for a square transition matrix.
| this | instance of a mod_flexibility::list_flex_type |
| subroutine mod_flexibility::correct_weights | ( | type ( list_flex_type) | this | ) |
Goes through sogrid list and correct the conf_weights depending on single values and/or the sum of all values.
| this | instance of a list_flex_type |
| subroutine mod_flexibility::delete_first_dataflex | ( | type ( list_flex_type ) | this, |
| integer, intent(out) | status | ||
| ) |
not used until now, to delete ??
| subroutine mod_flexibility::delete_flexible | ( | type ( flexible ) | this | ) |
Destructor flexible.
Deallocate array for statistics, nullify the pointer ( no deletion of sogrid )
| this | : instance of a flexible |
| subroutine mod_flexibility::delete_last_dataflex | ( | type ( list_flex_type ) | this, |
| integer, intent(out) | status | ||
| ) |
Deleta the last node of the list and the associated sogrid.
| this | : instance of list_flex_type |
| status | : for error report |
| subroutine mod_flexibility::delete_listflex | ( | type ( list_flex_type ) | this | ) |
Delete the full list and the associated sogrid.
| this | : instance of a list_flex_type |
| subroutine mod_flexibility::init_flexible_freq | ( | type ( flexible ) | this | ) |
Initialize or reinitialze the time for the next change in conformation : time_next_flex.
if std_freq_random > 0, add a random variable else use exactly frequence
| this | : instance of a flexible |
| subroutine mod_flexibility::insert_sogrid | ( | type ( list_flex_type ) | this, |
| type ( sogrid ), pointer | p_sogrid, | ||
| logical, intent(in) | head, | ||
| integer | status | ||
| ) |
Insert a new sogrid and create a new node.
Could increment the size here
| this | : instance of list_flex_type |
| p_sogrid | : pointer to the sogrid to insert |
| head | : if true insert first position, if false last position |
| status | : for error report, not used |
| subroutine mod_flexibility::new_flexible | ( | type ( flexible ) | this, |
| type ( list_flex_type ), target | plist_flex | ||
| ) |
Constructor flexible
.
Called by mod_protein::set_flexible
The list of conformation should be independently created with new_list_flex
Allocate the array for the statistics
| this | : instance of a flexible |
| plist_flex | : the list of sogrid to associate to flexible |
| subroutine mod_flexibility::new_list_flex | ( | type ( list_flex_type ) | this, |
| character ( 128 ) | flex_method_str, | ||
| character ( 128 ) | list_conf_fname, | ||
| integer | total_conf, | ||
| integer | initial_conf, | ||
| logical | nearest_ngb, | ||
| real ( kind=4 ) | frequence, | ||
| real ( kind=4 ) | std_freq, | ||
| logical | internal_energy, | ||
| logical | imarkov | ||
| ) |
Constructor of list_flexible.
| this | : instance of a list_flex_type |
| flex_method_str | : "metropolis", "random", "time" or "minimum" |
| list_conf_fname | : name of the input file with all conformations |
| total_conf | : total number of conformations |
| initial_conf | : specifies if a particular conformation is choosen at the start of a new trajectory |
| nearest_ngb | : logical, nearest neigbour only |
| frequence | : time for changing conformation |
| std_freq | : variance in the frequence |
| internal_energy | : logical, calculate internal energy |
| imarkov | : logical, use transition matrix |
1.9.8
Imprint/Privacy