Skip to content
Snippets Groups Projects
generate_references.py 1.79 KiB
Newer Older
#!/usr/bin/env python

Venkat Malladi's avatar
Venkat Malladi committed
#
# * --------------------------------------------------------------------------
# * Licensed under MIT (https://git.biohpc.swmed.edu/BICF/Astrocyte/chipseq_analysis/LICENSE.md)
# * --------------------------------------------------------------------------
#

'''Make header for HTML of references.'''

import argparse
import subprocess
import shlex
import logging

EPILOG = '''
For more details:
        %(prog)s --help
'''

# SETTINGS

logger = logging.getLogger(__name__)
logger.addHandler(logging.NullHandler())
logger.propagate = False
logger.setLevel(logging.INFO)


def get_args():
    '''Define arguments.'''

    parser = argparse.ArgumentParser(
        description=__doc__, epilog=EPILOG,
        formatter_class=argparse.RawDescriptionHelpFormatter)

    parser.add_argument('-r', '--reference',
                        help="The reference file (markdown format).",
                        required=True)

    parser.add_argument('-o', '--output',
                        help="The out file name.",
                        default='references')

    args = parser.parse_args()
    return args


def main():
    args = get_args()
    reference = args.reference
    output = args.output

    out_filename = output + '_mqc.yaml'

    # Header for HTML
    print('''
        id: 'Software References'
        section_name: 'Software References'
        description: 'This section describes references for the tools used.'
        plot_type: 'html'
        data: |
        '''
    , file = open(out_filename, "w")
    )

    # Turn Markdown into HTML
    references_html = 'bash -c "pandoc -p {} | sed \'s/^/                /\' >> {}"'
    references_html = references_html.format(reference, out_filename)
    subprocess.check_call(shlex.split(references_html))


if __name__ == '__main__':
    main()