def igphyml(input_file=None, tree_file=None, root=None, verbose=False):
if shutil.which('<STR_LIT>') is None:<EOL><INDENT>raise RuntimeError('<STR_LIT>')<EOL><DEDENT>igphyml_cmd1 = '<STR_LIT>'.format(aln_file)<EOL>p1 = sp.Popen(igphyml_cmd1, stdout=sp.PIPE, stderr=sp.PIPE)<EOL>stdout1, stderr1 = p1.communicate()<EOL>if verbose:<EOL><INDENT>print(stdout1 + '<STR_LIT:\n>')<EOL>print(stderr1 + '<STR_LIT>')<EOL><DEDENT>intermediate = input_file + '<STR_LIT>'<EOL>igphyml_cmd2 = '<STR_LIT>'.format(input_file,<EOL>root,<EOL>tree_file)<EOL>p2 = sp.Popen(igphyml_cmd2, stdout=sp.PIPE, stderr=sp.PIPE)<EOL>stdout2, stderr2 = p2.communicate()<EOL>if verbose:<EOL><INDENT>print(stdout2 + '<STR_LIT:\n>')<EOL>print(stderr2 + '<STR_LIT:\n>')<EOL><DEDENT>return tree_file + '<STR_LIT>'<EOL>
Computes a phylogenetic tree using IgPhyML.

.. note::

    IgPhyML must be installed. It can be downloaded from https://github.com/kbhoehn/IgPhyML.

Args:

    input_file (str): Path to a Phylip-formatted multiple sequence alignment. Required.

    tree_file (str): Path to the output tree file.

    root (str): Name of the root sequence. Required.

    verbose (bool): If `True`, prints the standard output and standard error for each IgPhyML run. 
        Default is `False`.