MCMCP¶
- class psynet.trial.mcmcp.MCMCPNetwork(*args, **kwargs)[source]¶
Bases:
ChainNetwork
A Network class for MCMCP chains.
- creation_time¶
the time at which the Network was created.
- details¶
a generic column for storing structured JSON data
- failed¶
boolean indicating whether the Network has failed which prompts Dallinger to ignore it unless specified otherwise. Objects are usually failed to indicate something has gone wrong.
- failed_reason¶
an optional reason the object was failed. If the object is failed as part of a cascading failure triggered from another object, the chain of objects will be captured in this field.
- full¶
Whether the network is currently full
- id¶
a unique number for every entry. 1, 2, 3 and so on…
- make_definition()[source]¶
Derives the definition for the network. This definition represents some collection of attributes that is shared by all nodes/trials in a network, but that may differ between networks.
Suppose one wishes to have multiple networks in the experiment, each characterised by a different value of an attribute (e.g. a different color). One approach would be to sample randomly; however, this would not guarantee an even distribution of attribute values. In this case, a better approach is to use the
psynet.trial.chain.ChainNetwork.balance_across_networks()
method, as follows:colors = ["red", "green", "blue"] return { "color": self.balance_across_networks(colors) }
See
psynet.trial.chain.ChainNetwork.balance_across_networks()
for details on how this balancing works.- Returns:
object – By default this returns an empty dictionary, but this can be customised by subclasses. The object should be suitable for serialisation to JSON.
- max_size¶
How big the network can get, this number is used by the full() method to decide whether the network is full
- property1¶
a generic column that can be used to store experiment-specific details in String form.
- property2¶
a generic column that can be used to store experiment-specific details in String form.
- property3¶
a generic column that can be used to store experiment-specific details in String form.
- property4¶
a generic column that can be used to store experiment-specific details in String form.
- property5¶
a generic column that can be used to store experiment-specific details in String form.
- role¶
The role of the network. By default dallinger initializes all networks as either “practice” or “experiment”
- time_of_death¶
the time at which failing occurred
- type¶
A String giving the name of the class. Defaults to “network”. This allows subclassing.
- vars¶
- class psynet.trial.mcmcp.MCMCPNode(*args, **kwargs)[source]¶
Bases:
ChainNode
A Node class for MCMCP chains.
- create_definition_from_seed(seed, experiment, participant)[source]¶
Creates a node definition from a seed. The seed comes from the previous node in the chain. In many cases (e.g. iterated reproduction) the definition will be trivially equal to the seed, but in some cases we may introduce some kind of stochastic alteration to produce the definition.
- Parameters:
seed (object) – The seed, passed from the previous state in the chain.
experiment – An instantiation of
psynet.experiment.Experiment
, corresponding to the current experiment.participant – The participant who initiated the creation of the node.
- Returns:
object – The derived definition. Should be suitable for serialisation to JSON.
- creation_time¶
the time at which the Network was created.
- details¶
a generic column for storing structured JSON data
- failed¶
boolean indicating whether the Network has failed which prompts Dallinger to ignore it unless specified otherwise. Objects are usually failed to indicate something has gone wrong.
- failed_reason¶
an optional reason the object was failed. If the object is failed as part of a cascading failure triggered from another object, the chain of objects will be captured in this field.
- get_proposal(state, experiment, participant)[source]¶
Implements the proposal function for the MCMP chain.
- Parameters:
state – The current state, with reference to which the proposal state should be constructed.
experiment – An instantiation of
psynet.experiment.Experiment
, corresponding to the current experiment.participant – An instantiation of
psynet.participant.Participant
, corresponding to the current participant.
- Returns:
Object – The proposal state.
- id¶
a unique number for every entry. 1, 2, 3 and so on…
- network¶
the network the node is in
- network_id¶
the id of the network that this node is a part of
- participant¶
the participant the node is associated with
- participant_id¶
the id of the participant whose node this is
- property1¶
a generic column that can be used to store experiment-specific details in String form.
- property2¶
a generic column that can be used to store experiment-specific details in String form.
- property3¶
a generic column that can be used to store experiment-specific details in String form.
- property4¶
a generic column that can be used to store experiment-specific details in String form.
- property5¶
a generic column that can be used to store experiment-specific details in String form.
- summarize_trials(trials, experiment, participant)[source]¶
This method should summarize the answers to the provided trials. A default method is implemented for cases when there is just one trial per node; in this case, the method extracts and returns the parameter values for the chosen stimulus, following the standard definition of MCMCP. The method must be extended if it is to cope with multiple trials per node.
- Parameters:
trials (
list
) – Trials to be summarized. By default only trials that are completed (i.e. have received a response) and processed (i.e. aren’t waiting for an asynchronous process) are provided here.experiment – An instantiation of
psynet.experiment.Experiment
, corresponding to the current experiment.participant – The participant who initiated the creation of the node.
- Returns:
object – The derived seed. Should be suitable for serialisation to JSON.
- time_of_death¶
the time at which failing occurred
- type¶
A String giving the name of the class. Defaults to
node
. This allows subclassing.
- vars¶
- class psynet.trial.mcmcp.MCMCPTrial(*args, **kwargs)[source]¶
Bases:
ChainTrial
A Network class for MCMCP.
- first_stimulus¶
Definition of the first stimulus of the trial. This definition corresponds to a setting of the chain’s free parameters.
- second_stimulus¶
Definition of the second stimulus of the trial, This definition corresponds to a setting of the chain’s free parameters.
- complete¶
whether the info is ‘complete’, i.e. has received its contents
- creation_time¶
the time at which the Network was created.
- details¶
a generic column for storing structured JSON data
- failed¶
boolean indicating whether the Network has failed which prompts Dallinger to ignore it unless specified otherwise. Objects are usually failed to indicate something has gone wrong.
- failed_reason¶
an optional reason the object was failed. If the object is failed as part of a cascading failure triggered from another object, the chain of objects will be captured in this field.
- id¶
a unique number for every entry. 1, 2, 3 and so on…
- make_definition(experiment, participant)[source]¶
In MCMCP, a trial’s definition is created by taking the current state and the proposal from the source
MCMCPNode
and adding a random ordering.- Parameters:
experiment – An instantiation of
psynet.experiment.Experiment
, corresponding to the current experiment.participant – Optional participant with which to associate the trial.
- Returns:
object – The trial’s definition, equal to the node’s definition plus the random ordering.
- network¶
the network the info is in
- network_id¶
the id of the network the info is in
- origin¶
the Node that created the info.
- origin_id¶
the id of the Node that created the info
- property1¶
a generic column that can be used to store experiment-specific details in String form.
- property2¶
a generic column that can be used to store experiment-specific details in String form.
- property3¶
a generic column that can be used to store experiment-specific details in String form.
- property4¶
a generic column that can be used to store experiment-specific details in String form.
- property5¶
a generic column that can be used to store experiment-specific details in String form.
- time_of_death¶
the time at which failing occurred
- type¶
a String giving the name of the class. Defaults to “info”. This allows subclassing.
- vars¶
- class psynet.trial.mcmcp.MCMCPTrialMaker(*, id_, trial_class, node_class, network_class=None, chain_type, expected_trials_per_participant, max_trials_per_participant=<class 'psynet.utils.NoArgumentProvided'>, max_trials_per_block=None, max_nodes_per_chain=None, chains_per_participant=None, chains_per_experiment=None, trials_per_node=1, n_repeat_trials=0, target_n_participants=None, balance_across_chains=False, start_nodes=None, check_performance_at_end=False, check_performance_every_trial=False, recruit_mode='n_participants', fail_trials_on_premature_exit=False, fail_trials_on_participant_performance_check=False, propagate_failure=True, wait_for_networks=False, allow_revisiting_networks_in_across_chains=False, assets=None, choose_participant_group=None, sync_group_type=None, sync_group_max_wait_time=45.0)[source]¶
Bases:
ChainTrialMaker
A TrialMaker class for MCMCP chains; see the documentation for
ChainTrialMaker
for usage instructions.