Package: cinful
cinful: an in-silico microcin identification pipelinecinfulreads a directory of genome data and identifies class II microcins using a combination of HMM and BLAST. It has functionality that identifies the associated export machinery (MFP & PCAT) and putative immunity protein. Publication of this work is forthcoming and will be cited here.cinfulis developed by theWilke labat theDepartment of Integrative Biologyin collaboration with theDavies labat theDepartment of Molecular Biosciences, both atThe University of Texas at Austin.InstallationThere are two methods for installation; one uses pip and should be more user friendly.Installation from PyPI (recommended)The following includes steps to install dependencies.Setup conda environment (includes python and pip):$condacreate--name<your-env-name>python=3.8.13pip
$condaactivate<your-env-name>Install other dependencies:$condainstallmamba-cconda-forge
$pipinstallcinful
$cinful_initDependencies installed with $ cinful_initseqkit=0.15.0mafft=7.475hmmer=3.3.1blast=2.9.0diamond=2.0.11pandas=1.2.4numpy=1.19.2biopython=1.76snakemake=6.3.0prodigal=2.6.3pyhmmer=0.3.0PyPI dependencies:pyTMHMM==1.3.2seqhash==1.0.0blake3==0.2.0If installed properly, runningcinful -hwill produce the following output:cinful

optional arguments:
  -h, --help            show this help message and exit
  -d DIRECTORY, --directory DIRECTORY
                        Must be a directory containing uncompressed FASTA 
                        formatted genome assemblies with .fna extension. 
                        Files within nested directories are fine
  -o OUTDIR, --outDir OUTDIR
                        This directory will contain all output files. 
                        It will be nested under the input directory.
  -t THREADS, --threads THREADS
                        This specifies how many threads to allow snakemake 
                        to have access to for parallelizationInstallation testI am working on a test to verify installation. As a workaround, you are able to download a test genome that contains microcin, MFP, PCAT, and immunity protein fromhttps://github.com/wilkelab/cinful/blob/main/test/.Once you've downloaded the test file, you can runcinfulon the contents and compare the output to the results stored in the directory cinful_out.Usage notescinfultakes a directory containing genome assemblies as input. All assemblies in the directory must contain the extension.fna. If they end in a different extension, they will be ignored.Nested directories will explored recursively, and all\*.fnafiles will be analyzed bycinful. Nested directories can be a good way to explore output, as the directory tree will be stored as a part of thecinful_idin the output files.Snakemake is the core workflow management used by cinful -- the main snakefile is located under cinful/Snakefile, which issues subroutines located in cinful/rules.cinfulhas been tested on Linux and MacOS.WorkflowWithcinful, the following workflow will be executed.Three output directories will be generated in your --directory <assembly_directory> under a directory called cinful_out (or an -outDir of your choosing):00_dbsThis is the initial location of the databases of verified microcins, CvaB, and immunity proteins.01_orf_homologyProdigal will generate Open Reading Frame (ORF) predictions for the input assembliesThose ORFs will be searched against the previously mentioned databases02_homology_resultsThe results from all the homology searches will be merged here03_best_hitsThe top hits from the homology results will be placed hereRunning from source (not recommended)Clone this repository:gitclonehttps://github.com/wilkelab/cinful.gitAll software dependencies needed to runcinfulare available through conda and are specified incinful_conda.yml, the following helper script can be used to generate thecinfulconda environmentscripts/build_conda_env.sh, to run this script, you will need to have conda installed, as well as mamba (which helps speed up installation). To install mamba, use the following command:condainstallmamba-cconda-forgeTo build the environment, run:bashenv/build_conda_env.shOnce setup is complete, you can activate the environment with:condaactivatecinfulThere is a test dataset with anE. coligenome assembly to testcinfulon undertest/colcinV_Ecoli, you can runcinfulon this dataset by running the following from the initialcinfuldirectory:pythonpath/to/cinful.py-d<genomes_directory>-o<output_directory>-t<threads>Contributingcinfulcurrently exists as a wrapper to a series of snakemake subroutines, so adding functionality to it is as simple as adding additional subroutines. If there are any subroutines that you see are needed, feel free to raise an issue, and I will be glad to guide you through the process of making a pull request to add that feature.Additionally, sincecinfulprimarily works through snakemake, it can also be used by simply running the snakefiles separately, so if additional configuration is needed, in terms of the types of input files, this can probably be achieved that way.