Customising data analysis

It is possible to specify alternative likelihoods, default priors, source models, and suchlike through the ini file. Each of these are done by passing a full python path, for example, to use a WaveformGenerator class and source model from some external package the following should be included in the ini file.

waveform-generator-class = my_package.submodule.CustomWaveformGenerator
frequency-domain-source-model = my_package.submodule.custom_source_model

In order to be compatible with the bilby_pipe analysis scripts, custom classes should take the same arguments as their parent classes. If you do not want to hard code all such arguments, you can use **kwargs to capture (and ignore) additional arguments. Parameters used for instantiating a waveform-generator-class can be passed with the argument --waveform-generator-constructor-dict (for the template) or --injection-waveform-generator-constructor-dict (for the injection).

An exception to this is when passing custom likelihood classes. In this case additional keyword arguments can be passed through the ini file, as below

likelihood-type = my_package.submodule.CustomLikelihood
extra-likelihood-kwargs = {new_argument: value, other_argument: other_value}

Specifically, the following options allow one to pass a python path:

analysis-executable-parser
conversion-function
default-prior
frequency-domain-source-model
generation-function
likelihood-type
waveform-generator-class