def run_maaslin(read_config_file, maaslin_outfile, pcl_file):
    """Run the maaslin software. You probably don't want to use this
    workflow on its own; the `maaslin` workflow encapsulates this
    workflow and works on any OTU table.

    :param read_config_file: String; file generated based on pcl and metadata

    :param maaslin_outfile: String; one of the output files written by maaslin
    
    :param pcl_file: String; file generated to meet maaslin format requirements

    External dependencies
      - Maaslin: https://bitbucket.org/biobakery/maaslin

    """

    cmd = "Maaslin.R -i " + read_config_file + " " + \
        maaslin_outfile + " " + pcl_file
                
    return {
        "name": "run_maaslin: " + pcl_file,
        "actions": [cmd],
        "file_dep": [read_config_file, pcl_file],
        "targets": [maaslin_outfile]
    }