Package: chameleontools
ChameleonUCSC TABI presents project Chameleon, a pipeline and software package that optimizes plasmids for bacterial transformation efficiency in non-model organisms.DescriptionChameleon is a software project written for UCSC TABI as a submission for the Best Software award for iGEM 2023. For more information on the Chameleon software project, visit ourteam wikiThe Chameleon project is based around Stealth which is a bioinformatics tool written by our PI David L. Bernick here a UCSC. Stealth statistically finds and reports underrepresented kmer motifs within a genome. The original version of Stealth can be foundhere.Stealth is included in Chameleon under the sub-moduleStealthin thechameleontoolspackage. TheStealthsub-module contains the original Stealth as written by David Bernick with minimal modifications. To see the specific modifications made, see theREADMElocated in theStealthsub-module located insrc/chameleontools/StealthChameleon is published as a python package to the Python Package Index (PyPI) under the packagechameleontools. Find the PyPI page for the projecthere.InstallationInstallation steps are tailored to Mac/Unix-based operating systems. For instruction for Windows, skip toWindows OSMacOS/Linux (Ubuntu 20.04)Chameleon can be installed under the Python packagechameleontools. Installation is made simple with the pip python package installer.The pip installer should be automatically installed with most Python distributions. Check if you have properly installed python and pip installer, the output should look similarusr:~$python--version
Python3.x.x
usr:~$python-mpip--version
pipX.Y.Zfrom/<path>/<to>/<your>/pip(python3.x.x)If your output looks similar, you can skip toInstalling Chameleon.Installing Python / pipFollow this section if your output did not look the same as above.If you do not have Python, get started by installing Python 3.10 or above frompython.org, or through a distriubtion such asanaconda.If you do not have a working pip installer, follow steps foundhere.Validate you have a working Python / pip installer by runningusr:~$python--version
Python3.x.x
usr:~$python-mpip--version
pipX.Y.Zfrom/<path>/<to>/<your>/pip(python3.x.x)and making sure the output looks similar.Installing ChameleonInstalling Chameleon is simple as running the commandusr:~$pipinstallchameleontools# ORusr:~$python-mpipinstallchameleontoolswith a valid pip installer to install the chameleontools package from the Python Package Index (PyPI)Windows InstallationInstallation on Windows requires aPathenvironment variable be set inorder forpstealthto be run as a CLI tool. Firstly, make sure Python 3.10+ is installed frompython.orgor other distribution.Validate that Python and a valid pip installer are installed using the command in the command prompt or Windows powershellC:\usr>python --versionPython 3.x.x
C:\usr>python -m pip --versionpip X.Y.Z from C:\<path>\<to>\<your>\pip (python 3.x.x)Install chameleontools with the commandC:\usr>python -m pip install chameleontoolsIf runningpstealthgives an output that looks like the followingC:\usr>pstealth -h'pstealth' is not recognized as an internal or external command,
operable program or batch file.
C:\usr>continue to the following section. If pstealth runs normally (prints usage information), chameleontools is properly installed and you can ignore the following section.Adding to PathYou must add the PythonScriptsdirectory to yourPathenvironment variables. This can be done by navigating to yourScriptsdirectory wherepstealth.exeis located. This is most likely under the pathC:\Users\<USER>\AppData\Local\Programs\Python\Python3<x>\Scriptswhere<USER>is the local Windows user profile andPython3<x>represents the version of your Python installation (eg.Python310). Once naviagted to yourScriptsdirectory, save the filepath.In the Windows search (hitting the windows button), type and enterrunand then entersysdm.cplinto the dialog box that pops up. This opens up a new window titledSystem Properties. From there, navigate to theAdvancetab and selectEnvironment Variables. From there, scroll until you see aPathvariable, select, and clickEdit. In theEdit Environment Variablewindow, selectNewand paste the filepath you saved into the new text box.If you do not see aPathvariable, simply selectNewin theEnvironment Variableswindow and create a new variable namedPathwith the value of your saved file path.Once done,pstealthshould be able to be used from the commandline as intended.UsagePlasmid-Stealth (pstealth) CLI toolOnce installed, the pipeline can be easily run with the commandpstealth# usagepstealth--genome(-g)<genomeinfile>--plasmid(-p)<plasmidinfile>--outfile-o[outfile|default:stdout]-[zPMmrs]OptionalArgs:--zScore(-z)->[zscorecutoffvalue|default:-4]--pseudo(-P)[pseudo-countvalue|default:0]--max(-M)[maximummotifsize|default:8]--min(-m)[minimummotifsize|default:1]--palindrome(-r)[RemoveRCpalindromesonly|default:off]--silent(-s)[Hidereportmessage|default:show]Thepstealthcommand takes two required arguments--plasmid (-p)and--genome (-g).--plasmidis the annotated plasmid which you wish to Stealth optimize in GenBank record format (.gb/.gbk)--genomeis the genomic sequence of the species you wish transform your plasmid into in GenBank record or FastA format (.gb/.gbk || .fasta/.fa)An example usage is as followsusr:~$pstealth-gM_aeruginosa.gb-ppSPDY.gb-opSPDY_stealth.gb-r...
usr:~$catpSPDY_stealth.gb|head
LOCUSpSPDY8825bpDNAcircularUNA18-AUG-2023
DEFINITIONsyntheticcircularDNA.
ACCESSION
VERSION.
KEYWORDS.
SOURCEsyntheticDNAconstructORGANISMsyntheticDNAconstruct.
FEATURESLocation/Qualifiersmisc_feature1The above example optimizes plasmidpSPDY.gbfor transformation into speciesM_aeruginosa.gb, removing only reverse-complement palindrome motifs identified with StealthV0. The modifed plasmid is saved to a new filepSPDY_stealth.gb, keeping all the same annotations, only changing the plasmid sequence to remove underrepresented motifs in coding regions.chameleontools ModuleDevelopment of the Chameleon project and chameleontools started when we wrote software to process the Stealth output ofM.aeruginosaand realized we could write a pipeline to automate what was a manual and time consuming process. This software ultimately became what is now theStealthParsermodule.We recognized the usefulness of having each submodule perform their own specific tasks and have written the chameleontools package in a way that reflects that ideal.To import chameleontools as a Python module, simply import it as followsimportchameleontools.<submodule>The submodules supported for importing includeimportchameleontools.ChromatoSeq# Motif removal from sequenceimportchameleontools.CodonAnalyzer# Codon Analysis of CDSimportchameleontools.FastAreaderimportchameleontools.ORFfinder# Very basic ORF finderimportchameleontools.SeqParser# Plasmid and Genome input handlingimportchameleontools.Stealth# Stealth analysisimportchameleontools.StealthParser# Stealth output parserFor detailed documentation on the contents of each module, visit theDocumentationon thesoftware pageon our team's wiki.ContributingChameleon is open to any and all contributions.Chameleon was created for the 2023 iGEM competition and will not be maintained on this repository after the conclusion of this year's iGEM cycle. See thePyPIpage forchameleontoolsto look for future maintenance.This software is published under the MIT license. Feel free to use any and all code provided by the project in any way and for any purpose.Authors and acknowledgmentStealth is lab software written by our PI David L. Bernick at UC Santa Cruz; who advised the development of thepstealthpipeline (contact:dbernick@soe.ucsc.edu)Chameleon was written and contributed to byTyler Gaw (contact:tagaw@ucsc.edu)Allison Jaballas (contact:acjaball@ucsc.edu)James Larbaleister (contact:jlarbale@ucsc.edu)Special thanks to Reto Stamm (contact:rstamm@ucsc.edu|github) for guidance in developing and publishing a packge to the Python Package Index