Package: cloci
NOTEExtensive alpha testing has been conducted, though this software is in a beta state. Errors are expected, often rerunning without changing parameters is sufficient to resume appropriately.
Kindly raise git issues for errors - if you can find the bug, even better!
Documentation is currently in the works.Please also note that this software interfaces with the comparative genomics
software suite, Mycotools. I am hopeful you will find Mycotools useful. Please
find its manuscript and theassociated repository.PURPOSEThe most common gene cluster detection algorithms focus on canonical “core”
biosynthetic functions many gene clusters encode, while overlooking uncommon or
unknown cluster classes. These overlooked clusters are a potential source of
novel natural products and comprise an untold portion of overall gene cluster
repertoires. Unbiased, function-agnostic detection algorithms therefore provide
an opportunity to reveal novel classes of gene clusters and more broadly define
genome organization.CLOCI(Co-occurrence Locus and Orthologous Cluster
Identifier) is an algorithm that identifies gene clusters using multiple
proxies of selection for coordinated gene evolution. In the process,CLOCIcircumscribes loci into homologous locus groups, which is an extension of
orthogroups to the locus-level. Our approach generalizes gene cluster detection and gene cluster family circumscription, improves detection of multiple known functional classes, and unveils noncanonical gene clusters.CLOCIis suitable for genome-enabled specialized metabolite mining, and presents an easily tunable approach for delineating gene cluster families and homologous loci.INSTALLPlease create a conda environment and manually installgraph-toolcondacreate-nclocigraph-toolpythonpipThen install cloci into the environmentcondaactivatecloci
python3-mpipinstallclociA conda package will be available in the future.USEInput datasetCLOCIinputs aMycotoolsDBthat contains genomes ('omes') of interest. It is important
to adequately sample a cluster's distribution to detect it. I thus generally
recommend implementingCLOCIat least at the subphylum-level. This varies
depending on the lineage's rate of microsynteny decay and the phylogenetic distance
with which horizontal transfer occurs.HyperparametersCLOCIdefault parameters have been tuned for our initial dataset on ~2,250
fungi across the kingdom. These should suffice for most analyses. By default,
thresholds for all proxies of coordinated gene evolution are set to 0.
These thresholds will vary for the type of clusters of interest and the
lineage. I recommend compiling a dataset of known cluster reference genes,
runningCLOCI, identifying those genes in the output, determining the
values for the reference cluster proxies, and then implementing the thresholds.There are numerous hyperparameters that will drastically affect output quality.
I suspect our pilot study reached a local maximum in terms of output quality,
though a global maximum perhaps lies with further hyperparameter tuning.ExampleExtract a MycotoolsDB of Agaricomycotinamtdbe-lAgaricomycotina>agaricomycotina.mtdbRunCLOCIrooting upon the MRCA of two inputted genomescloci-dagaricomycotina.mtdb--root"<OME1>,<OME2>"Resume aCLOCIrun, i.e. to add proxy thresholds or resume following errorcloci-dagaricomycotina.mtdb-r<ROOT_OME>-o<PREVIOUS_DIR>ON THE ALGORITHMPipelineRecovery of 68 reference clustersBoundary assessment of 33 reference clustersCommon ErrorsMemory errorOSError: [Errno 12] Cannot allocate memorySimply resume specifying the run output directory in your command via-o <PREVIOUS_OUTPUT_DIR>