Simple interface to the CODEML application.

class gc3libs.application.codeml.CodemlApplication(*ctls, **extra_args)

Run a CODEML job with the specified ‘.ctl’ files.

The given ‘.ctl’ input files are parsed and the ‘.phy’ and ‘.nwk’ files mentioned therein are added to the list of files to be copied to the execution site.

static aux_files(ctl_path)

Return full path to the seqfile and treefile referenced in the ‘.ctl’ file given as arguments.


Set the exit code of a CodemlApplication job by inspecting its .mlc output files.

An output file is valid iff its last line of each output file reads Time used: MM:SS or Time used: HH:MM:SS

The exit status of the whole job is a bit field composed as follows:

bit no. meaning
0 H1.mlc valid (0=valid, 1=invalid)
1 H1.mlc present (0=present, 1=no file)
2 H0.mlc valid (0=valid, 1=invalid)
3 H0.mlc present (0=present, 1=not present)
7 error running codeml (1=error, 0=ok)

The special value 127 is returned in case codeml did not run at all (Grid or remote cluster error).

So, exit code 0 means that all files processed successfully, code 1 means that H0.mlc has not been downloaded (for whatever reason).

  • Check if the stderr is empty.