A customizable scientific software pipeline written in python3 for detecting, categorizing, and viewing single pulse candidates that may be Fast Radio Burst (FRB) sources in Radio Astronomy data.
You can run the pipeline either by issuing ./pipeline.py
or with python pipeline.py
. Either method requires including the configuration file as a positional argument and running from the Pipeline directory (or including the path to it). Here's a simple example:
$ ./pipeline.py Templates/hello_world.cfg
If no configuration file is included, then the default.cfg
template will be used. To get help, use -h
.
A method is essentially a task for the pipeline to perform. Each method consists of a single python file that is named to reflect what it does, followed by _method.py
, and is stored in the Methods directory. For example, the "Hello World!" method file is named hello_world_method.py
.
In order to run a method, it must be specified in the cofiguration file you choose when you run the pipeline. Simple methods are self-contained, but larger or more complex methods use supporting modules. There are several existing methods to choose from, some of which call functions from underlying modules.
A configuration file (.cfg
) is all that is needed to run the pipeline with existing methods. This file specifies which methods you would like to perform and all of the necessary or desired parameters, inputs, directory locations, etc. for those methods. A method is specified by name as a section key without the _method
part of the name. For example, to run the "Hello World!" method, your configuration file must include [hello_world]
.
Configuration files are parsed by the pipeline to add values to a dictionary (called hotpotato
), which is passed around to each method that is called. Each of the key-value pairs defined in a section for a method become values for values used within the method. The file format support comments following the ;
or #
characters. When the configuration file is read by the pipeline, these comments and any trailing spaces (on the left or right side) will be removed before key-value pairs are stored in a dictionary.
Configuration Files (Including Templates)
Method files are typically short python 3 files that take in a dictionary from the pipeline and return a dictionary to the pipeline when completed. In-between, they perform any necessary setup of variables, parameters, etc. to be able to run the module file, and then call the module file. If any dictionary values are changed during the execution of the module, and you want the pipeline to use these changes going forward, you will need to return the values to the dictionary before passing it back.
pipeline.py
, parser, and other components for setting up and running the pipeline.
A python 3 python 2 re-write (needs to be written for python 3) of the modulation index functionality from the PALFA2 pipeline as modified by Laura Spitler.