def make_cmd_str(prog_name, opt_dict={}, opt_list=[], **kwargs):
    """
    Create a Unix like command line string from the prog name, a dict named arguments and a list of unmammed arguments
    exemple make_cmd_str("bwa", {"b":None, t":6, "i":"../idx/seq.fa"}, ["../read1", "../read2"])
    * prog_name
        Name (if added to the system path) or path of the program
    * opt_dict
        Dictionary of option arguments such as "-t 5". The option flag have to be the key (without "-") and the the
        option value in the dictionary value. If no value is requested after the option flag "None" had to be assigned
        to the value field.
    * opt_list
        List of simple command line arguments
    """
    cmd = '{} '.format(prog_name)
    if opt_dict:
        for key, value in opt_dict.items():
            if value:
                cmd += '{} {} '.format(key, value)
            else:
                cmd += '{} '.format(key)
    if opt_list:
        for value in opt_list:
            cmd += '{} '.format(value)
    return cmd
