SeekDeep
  • Home
  • Installing
    • Mac OS
    • Ubuntu
    • Windows
    • Vagrant/virtual image (any system)
  • Code
    • Github
  • Usages

    • Pipeline
    • extractor/extractorPairedEnd
    • makeSampleDirectories
    • qluster
    • processClusters
    • popClusteringViewer

    • Pipeline Wrapper
    • setupTarAmpAnalysis

    • Utilities
    • genTargetInfoFromGenomes
    • SeekDeep control mixture benchmarking
    • SeekDeep Variant Calling
  • Tutorials

    • Single End
    • Ion Torrent with MIDs

    • Illumina Paired End
    • Paired End No MIDs/Barcodes
    • Paired End With MIDs/Barcodes
  • Misc Info
    • Illumina Paired End Info
  • References
    • versions
    • References

    Contents

    • SeekDeep
    • Downloading code
    • Installing Dependencies
      • Compliers
        • Libraries
    • Configuring
      • Installing Further Dependencies Libraries
    • Compiling
    • Adding SeekDeep to path
    • Adding auto flag completion
    • Adding additional tools.
    • Calling SeekDeep commands

    • Show All Code
    • Hide All Code

    • View Source

    SeekDeep

    SeekDeep is one command line program that contains several programs within that all combined together make up the SeekDeep targeted sequencing analysis pipeline. Currently installs only MAC, Ubuntu, and other UNIX based systems is supported.

    Downloading code

    back to top
    Source code for the program is hosted at github and can be downloaded by either using git (recommended) or by downloading a compressed folder of the code
    The recommended approach is to use git to clone the repository for the code because this is the easiest way to keep the code up to date.

    Code
    cd ~
    git clone https://github.com/bailey-lab/SeekDeep
    cd SeekDeep

    Or downloading compressed folder, latest version is v3.0.1, this is not recommended as this will make it harder to keep the code up to date

    Code
    cd ~
    wget https://github.com/bailey-lab/SeekDeep/archive/v3.0.1.tar.gz
    tar zxvf v3.0.1.tar.gz 
    cd SeekDeep-v3.0.1/

    Installing Dependencies

    back to top

    To install extra packages on Mac OS X the easier way is to use a package manager like brew (recommended) or macports. Instructions on brew found here.

    Code
    #install homebrew
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    #run brew doctor 
    brew doctor

    You will most likely need to install Xcode as well which is free via the app store and then you also need to install the Xcode command line tools

    Code
    xcode-select --install

    Compliers

    back to top
    You need to have either clang or g++ installed. For mac the easiest is to just use the mac packaged clang package ### Clang back to top
    Mac comes packaged with clang though you might have to install Xcode to get it to be accessible. Xcode is free and can be download via the app store though you might also have to make sure the Xcode command line tools are also installed.

    Code
    xcode-select --install

    Libraries

    To install cmake the following brew commands can be used

    Code
    brew update
    brew upgrade
    brew install cmake 

    Configuring

    back to top
    Once code has been downloaded it needs to be compiled but first come dependencies have to be downloaded and a compiler has to be chosen. SeekDeep requires > g++-10 or clang++-3.8 to be compiled. It has been extensively tested on clang++ and therefore is more likely to compile without problems using clang++. clang++ has also been demonstrated to install a faster final executable for SeekDeep than gcc.

    Code
    #configure and choose compilers
    #no arguments assumes clang++ or whatever environmental CC and CXX are set to 
    ./configure.py

    Installing Further Dependencies Libraries

    back to top
    Calling configure will create a file called compfile.mk which will contain info on the libraries needed and what compilers to use, this is give to setup.py to download the libraries SeekDeep relay on. This may take some time especially if being done on a machine that doesn’t have many cores. Some of these dependencies might be worked out in future releases making install easier.

    Code
    # will install dependent libaries in a folder called external
    ./setup.py --compfile compfile.mk --outMakefile makefile-common.mk

    This command should report on whether anything failed to install, if this does happen, contact Nick Hathaway at Nicholas.Hathaway@umassmed.edu to complain to him his install is annoying and therefore failing, and send along any errors messages that can be found.

    Compiling

    back to top
    If the setup.py was able to install everything, next is to make SeekDeep itself which takes a simple make command and will compile SeekDeep in a directory called bin/ in the SeekDeep directory

    Code
    make

    To use more cores to speed up make use -j, below would use 4 cores

    Code
    make -j 4

    Again if this fails to compile, complain to Nick (Nicholas.Hathaway@umassmed.edu) that he should get his act together to make this an easier install.

    Adding SeekDeep to path

    back to top
    To call SeekDeep from the command line it will need to be called either with it’s full name or adding the bin directory in the SeekDeep directory to your environmental path. This is done by modifying your ~/.profile file (on MAC it’s ~/.bash_profile). Also this won’t take effect until this file is sourced either on your next log in or by called source ~/.profile

    Code
    #add the following to your ~/.bash_profile and replace $HOME/ with the path where SeekDeep was downloaded
    export PATH=$HOME/SeekDeep/bin/:$PATH

    Adding auto flag completion

    back to top
    A lot of the flags in SeekDeep can be long and annoying to type in so and auto flag completion has been added in folder called bash_completion.d in a file called SeekDeep. The content of this file should be added to ~/.bash_completion though your shell environment must already be set up for bash completion which is true for most Ubuntu machines but not always of Macs but brew can help set it up. There is also a command in ./setup.py that will add this to .bash_completion for you (it simply does what was said above and puts the contents of the file in bashCompletes to ~/.bash_completion)

    Code
    brew install bash-completion
    Code
    ./setup.py --addBashCompletion

    Adding additional tools.

    muscle is a third party tools that SeekDeep call and should be installed as

    Code
    #add other tools 
    ./setup.py --libs muscle:3.8.31 --symlinkBin --overWrite

    Calling SeekDeep commands

    To get a list of commands that SeekDeep can call simply call it without any arguments

    Code
    SeekDeep
    Version 3.0.2-dev
    Programs
    Use SeekDeep [PROGRAM] --help to see more details about each program
    Commands are not case sensitive
    SeekDeep
    1) extractor
    2) extractorByKmerMatching
    3) extractorPairedEnd
    4) kluster
    5) makeSampleDirectories
    6) processClusters
    7) qluster
    SeekDeepServer
    1) genProjectConfig
    2) popClusteringViewer
    SeekDeepUtils
    01) benchmarkControlMixturesOnProcessedClustersDir
    02) benchmarkMultiTarAmpControlMixtures
    03) benchmarkTarAmpControlMixtures
    04) combineBasicResultsFiles
    05) deRepPopClusDir
    06) dryRunQualityFiltering
    07) gatherInfoOnTargetedAmpliconSeqFile
    08) genTargetInfoFromGenomes
    09) getPossibleSampleNamesFromRawInput
    10) primersToFasta
    11) rBind
    12) replaceUnderscores
    13) runMultipleCommands
    14) SampleBarcodeFileToSeekDeepInput
    15) setupTarAmpAnalysis
    16) variantCallOnSeqAndProtein

    Then to call a sub-command just type it’s name after SeekDeep, and without adding arguments will automatically print it’s help message

    Code
    SeekDeep qluster
    
    #or with -help/-h 
    SeekDeep qluster --help

    Also the commands and flags of SeekDeep are not case sensitive so all the below would work

    Code
    SeekDeep qluster --help 
    SeekDeep qluster --HELP
    SeekDeep qluster --HeLP
    SeekDeep qluster --HeLp
    SeekDeep QLUSTER --HeLP
    SeekDeep qluster --HeLp
    SeekDeep qlUstEr --HeLp
    Source Code
    # SeekDeep
    SeekDeep is one command line program that contains several programs within that all combined together make up the SeekDeep targeted sequencing analysis pipeline.  Currently installs only MAC, Ubuntu, and other UNIX based systems is supported.  
    
    # Downloading code
    [back to top](#TOC)  
    Source code for the program is hosted at [github](https://github.com/bailey-lab/SeekDeep) and can be downloaded by either using git (recommended) or by downloading a compressed folder of the code  
    The recommended approach is to use git to clone the repository for the code because this is the easiest way to keep the code up to date.  
    ```{r downloading-git, echo=T, eval=FALSE, engine='bash'}
    cd ~
    git clone https://github.com/bailey-lab/SeekDeep
    cd SeekDeep
    ```
    
    **Or** downloading compressed folder, latest version is v3.0.1, this is not recommended as this will make it harder to keep the code up to date
    ```{r downloading-tar, echo=T, eval=FALSE, engine='bash'}
    cd ~
    wget https://github.com/bailey-lab/SeekDeep/archive/v3.0.1.tar.gz
    tar zxvf v3.0.1.tar.gz 
    cd SeekDeep-v3.0.1/
    ```
    
    
    # Installing Dependencies
    [back to top](#TOC)  
    
    To install extra packages on Mac OS X the easier way is to use a package manager like brew (recommended) or macports.  Instructions on brew found [here](http://brew.sh/).
    ```{r , echo=T, eval=FALSE, engine='bash'}
    #install homebrew
    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    #run brew doctor 
    brew doctor
    ```
    You will most likely need to install Xcode as well which is free via the app store and then you also need to install the Xcode command line tools 
    ```{r , echo=T, eval=FALSE, engine='bash'}
    xcode-select --install
    ```
    
    ## Compliers
    [back to top](#TOC)  
    You need to have either clang or g++ installed. For mac the easiest is to just use the mac packaged clang package
    ### Clang
    [back to top](#TOC)  
    Mac comes packaged with clang though you might have to install Xcode to get it to be accessible.  Xcode is free and can be download via the app store though you might also have to make sure the Xcode command line tools are also installed.
    ```{r , echo=T, eval=FALSE, engine='bash'}
    xcode-select --install
    ```
    
    
    ### Libraries
    To install cmake the following brew commands can be used 
    ```{r , echo=T, eval=FALSE, engine='bash'}
    brew update
    brew upgrade
    brew install cmake 
    ```
    
    # Configuring
    [back to top](#TOC)  
    Once code has been downloaded it needs to be compiled but first come dependencies have to be downloaded and a compiler has to be chosen.  SeekDeep requires > g++-10 or clang++-3.8 to be compiled.  It has been extensively tested on clang++ and therefore is more likely to compile without problems using clang++.  clang++ has also been demonstrated to install a faster final executable for SeekDeep than gcc.   
    ```{r configuring, echo=T, eval=FALSE, engine='bash'}
    #configure and choose compilers
    #no arguments assumes clang++ or whatever environmental CC and CXX are set to 
    ./configure.py
    ```
    
    ## Installing Further Dependencies Libraries
    [back to top](#TOC)  
    Calling configure will create a file called compfile.mk which will contain info on the libraries needed and what compilers to use, this is give to setup.py to download the libraries SeekDeep relay on.  This may take some time especially if being done on a machine that doesn't have many cores.  Some of these dependencies might be worked out in future releases making install easier.
    ```{r install_dependencies, echo=T, eval=FALSE, engine='bash'}
    # will install dependent libaries in a folder called external
    ./setup.py --compfile compfile.mk --outMakefile makefile-common.mk
    ```
    This command should report on whether anything failed to install, if this does happen, contact Nick Hathaway at Nicholas.Hathaway@umassmed.edu to complain to him his install is annoying and therefore failing, and send along any errors messages that can be found.  
    
    # Compiling
    [back to top](#TOC)  
    If the setup.py was able to install everything, next is to make SeekDeep itself which takes a simple `make` command and will compile SeekDeep in a directory called bin/ in the SeekDeep directory
    ```{r compiling, echo=T, eval=FALSE, engine='bash'}
    make
    ```
    To use more cores to speed up make use -j, below would use 4 cores
    ```{r compiling-threaded, echo=T, eval=FALSE, engine='bash'}
    make -j 4
    
    ```
    Again if this fails to compile, complain to Nick (Nicholas.Hathaway@umassmed.edu) that he should get his act together to make this an easier install.  
    
    # Adding SeekDeep to path
    [back to top](#TOC)  
    To call SeekDeep from the command line it will need to be called either with it's full name or adding the bin directory in the SeekDeep directory to your environmental path.  This is done by modifying your ~/.profile file (on MAC it's ~/.bash_profile).  Also this won't take effect until this file is sourced either on your next log in or by called `source ~/.profile`  
    ```{r adding_to_path, echo=T, eval=FALSE, engine='bash'}
    #add the following to your ~/.bash_profile and replace $HOME/ with the path where SeekDeep was downloaded
    export PATH=$HOME/SeekDeep/bin/:$PATH
    ```
    
    # Adding auto flag completion
    [back to top](#TOC)  
    A lot of the flags in **SeekDeep** can be long and annoying to type in so and auto flag completion has been added in folder called bash_completion.d in a file called SeekDeep.  The content of this file should be added to ~/.bash_completion though your shell environment must already be set up for bash completion which is true for most Ubuntu machines but not always of Macs but brew can help set it up.  There is also a command in `./setup.py` that will add this to .bash_completion for you (it simply does what was said above and puts the contents of the file in bashCompletes to ~/.bash_completion)
    ```{r auto_complete 1 , echo=T, eval=FALSE, engine='bash'}
    brew install bash-completion
    ```
    ```{r auto_complete 2, echo=T, eval=FALSE, engine='bash'}
    ./setup.py --addBashCompletion
    ```
    
    # Adding additional tools.  
    muscle is a third party tools that SeekDeep call and should be installed as 
    ```{r, echo=T, eval=FALSE, engine='bash'}
    #add other tools 
    ./setup.py --libs muscle:3.8.31 --symlinkBin --overWrite
    ```
    
    # Calling SeekDeep commands
    To get a list of commands that SeekDeep can call simply call it without any arguments
    ```{r callingSeekDeep, echo=T, eval=FALSE, engine='bash'}
    SeekDeep
    ```
    ```{r, echo=F, eval=T, engine='bash'}
    SeekDeep
    ```
    
    Then to call a sub-command just type it's name after SeekDeep, and without adding arguments will automatically print it's help message
    ```{r , echo=T, eval=FALSE, engine='bash'}
    SeekDeep qluster
    
    #or with -help/-h 
    SeekDeep qluster --help
    ```
    ```{r, echo=F, eval=F, engine='bash'}
    SeekDeep qluster --help |  gsed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g" | head -15
    echo ....
    ```
    Also the commands and flags of SeekDeep are not case sensitive so all the below would work 
    ```{r, engine='bash',comment="",eval=FALSE}
    SeekDeep qluster --help 
    SeekDeep qluster --HELP
    SeekDeep qluster --HeLP
    SeekDeep qluster --HeLp
    SeekDeep QLUSTER --HeLP
    SeekDeep qluster --HeLp
    SeekDeep qlUstEr --HeLp
    ```