Closed TomKLHui closed 2 months ago
I don't think this script ever accepted the --gene-caller
flag.
In anvi'o v8, we split this program into three parts depending on input type - the equivalent program for what you want to do in v8 would be anvi-compute-functional-enrichment-across-genomes
(https://anvio.org/help/8/programs/anvi-compute-functional-enrichment-across-genomes/) - and none of those 3 programs accept the --gene-caller
flag. So using your custom gene caller is not possible even in anvi'o v8. This is something that we would have to implement in anvi'o dev.
So I guess there is no point in upgrading your anvi'o since this is not yet implemented. But for future reference, we usually try to make it so that you don't lose any data when you upgrade. There is this program called anvi-migrate
(https://anvio.org/help/8/programs/anvi-migrate/) which updates your databases to be compatible with newer versions of anvi'o, and most of the time it doesn't get rid of any data (there are a few exceptions, like in our most recent update to SCG taxonomy which gets rid of the old taxonomy information and requires people to re-run anvi-run-scg-taxonomy
). I believe you could safely update to v8 (and if you are worried about it, keep a copy of the older databases before migrating). But like I said, there is no point to upgrading for this specific issue since we haven't implemented this flag for the enrichment programs, and I'm not sure when that will happen.
If you want, there is a silly hack you could do, which is to modify the genes_in_contigs
table in your contigs databases to change your custom gene caller name of Prodigal_v2.6.3
to the default gene caller name prodigal
(in the source
column of that table). You'd have to write an SQL update command to do it, and run that on each database. Once you have the gene caller named with the string prodigal
, this script would be able to extract those gene calls and run the enrichment test. If you try it and it still doesn't work, let us know :)
Thanks for the prompt response! The silly little hack works well so i guess its not so silly afterall :D
Short description of the problem
followed the error message upon running anvi-compute-functional-enrichment to include a gene caller name, but surprised to find that the script cannot specify gene caller name as it suggested.
anvi'o version
Anvi'o .......................................: hope (v7)
Profile database .............................: 35 Contigs database .............................: 20 Pan database .................................: 14 Genome data storage ..........................: 7 Auxiliary data storage .......................: 2 Structure database ...........................: 2 Metabolic modules database ...................: 2 tRNA-seq database ............................: 1
System info
Ubuntu 20.04.2 LTS (GNU/Linux 5.4.0-171-generic x86_64) conda installed anvio-7 enrvironment
Detailed description of the issue
but when i run the same command with an additional --gene-caller flag it just return the help message indicating unknown arguments.
I wonder if there is any way I could change the name of gene caller (to remove the _v2.6.3" after, or make the script recognize other gene callers? I know v7 is a very old version of anvio, but i imported the CONTIG.db and PROFILE.db from other pipelines with prepared annotations and prefer not to rerun the whole annotation/mapping process if i could.
If this issue is solved in v8, would it be practical/compatible to do it in the anvio-8 environment? or do i have to (sadly) run all the things all over again because the additional information provided on the gene-caller?
Thanks, Tom