I am using Orthofinder to generate a tree. I was wondering if there was a way to change the config.json file or write in the job script to use another config.json from my own directory. I would like to run orthofinder with IQtree and the suggestions on the program's github was to add an additional parameter in the config.json file.
- Does OrtoFinder have a CLI flag to specify which config file to use?
No, as far as I can see, this is not possible:
First, it is not mentioned in the help
Second, taking a look at the code, https://github.com/davidemms/OrthoFinder/blob/master/scripts_of/__main__.py#L831,
one can see that the config file used is always called config.json
and is assumed to be in the same folder as the OrtoFinder
executable.
- Can OrtoFinder/config.json be modified to generate a tree using OrthoFinder with IQtree
No, as far as I can see, this is not possible:
First, I failed to find this in the repository Issues (https://github.com/davidemms/OrthoFinder/issues),
even though I did find how to specify using IQTree as the tree inference program
from the command-line interface (at https://github.com/davidemms/OrthoFinder?tab=readme-ov-file#options-controlling-the-programs-used,
which is by doing ./OrthoFinder [regular parameters] -T iqtree -M msa
).
Second, config.json
itself documents variable names that can be used,
and specifying the tree inference program is not among it.
Here is the part of the config.json
, from https://github.com/davidemms/OrthoFinder/blob/master/scripts_of/config.json:
"__comment": "Variable names that can be used:",
"__comment": "INPUT : The full path of the input filename (fasta file of sequences for and msa method, multiple sequence alignment fasta file for tree method)",
"__comment": "BASENAME : Just the filename without the directory path (a number of methods use this to name the output file automatically, see MergeAlign command for an example)",
"__comment": "PATH : Path to the directory containing the input file",
"__comment": "OUTPUT : The full path of the user specified output filename",
"__comment": "BASEOUTNAME : Just the filename without the directory path (of the output filename)",
"__comment": "IDENTIFIER : A name generated by OrthoFinder to uniquely identify the orthogroup (a number of methods use this to name the output file automatically, see RAxML command for an example). Not applicable for program_type search.",
"__comment": "DATABASE : For the search program_type, for use in the search_cmd. The full path of the database to search against",
In the question, however, the user stated:
the suggestions on the program's github was to add an additional parameter in the config.json file
Did I miss it? Could the user share where he found it?
I would like to generate a tree using orthofinder with IQtree
From https://github.com/davidemms/OrthoFinder?tab=readme-ov-file#options-controlling-the-programs-used:
Options controlling the programs used
[..]
-T <opt>: Tree inference program opt=fasttree,raxml,iqtree,... user-extendable (requires '-M msa')
Hence,
[regular call] -T iqtree -M msa
About the config.json file, from https://github.com/davidemms/OrthoFinder?tab=readme-ov-file#configjson--adding-addtional-programs-for-tree-inference-local-alignment-or-msa:
./reproduce.sh