diff options
author | Navan Chauhan <navanchauhan@gmail.com> | 2020-07-03 21:47:55 +0530 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-03 21:47:55 +0530 |
commit | ec85ecce6541cbad15f0789ebfb939441d69fa99 (patch) | |
tree | 7a428a98242f7d19ee86887cdfd80bc34053688a | |
parent | ac2f2ca38089c40ca9c57b33df1395fb6fad7273 (diff) |
Create main_local.sh
-rw-r--r-- | scripts/main_local.sh | 152 |
1 files changed, 152 insertions, 0 deletions
diff --git a/scripts/main_local.sh b/scripts/main_local.sh new file mode 100644 index 0000000..e20ce9c --- /dev/null +++ b/scripts/main_local.sh @@ -0,0 +1,152 @@ +#!/bin/bash +echo "$(pwd)" +currentVersion="0.9" +protein="false" +ligand="false" +docking="false" +visualisations="false" +interactions="false" +proteinPath="" +ligandPath="" +pdfPath="" +smile="" +name="report" +config="" + +usage() +{ + cat <<EOF +Curie-CLI +Description: OwO. +Usage: curie [flags] or curie [-a] [arg] [-s] [arg] + -d Perform Docking using AutoDock Vina + -p Visualisations using PyMOL + -i Protein-Ligand Interactions using PLIP + -s SMILES Code for Ligand + -n Name for ligand if using the -s option + -r Specify Receptor file path (PDBQT Format Only!) + -l Specify Ligand file path (PDBQT Format Only!) + -c Specify AutoDock Vina Configuration File (TXT Format Only!) + -h Show the help + -v Get the tool version +Examples: + ./main.sh -v + ./main.sh -v +EOF +} + + +while getopts "r:l:s:n:c:vhdip" opt; do + case "$opt" in + \?) echo "Invalid option: -$OPTARG" >&2 + exit 1 + ;; + h) usage + exit 0 + ;; + v) echo "Version $currentVersion" + exit 0 + ;; + u) + getConfiguredClient || exit 1 + checkInternet || exit 1 + update + exit 0 + ;; + d) + docking="true" + ;; + i) + interactions="true" + ;; + p) + visualisations="true" + ;; + s) + smile="$OPTARG" + ;; + n) + name="$OPTARG" + ;; + r) + proteinPath="$OPTARG" + ;; + l) + ligandPath="$OPTARG" + ;; + c) + config="$OPTARG" + ;; + a) + artist="true" + if [[ "$(echo "$@" | grep -Eo "\-s")" == "-s" ]];then song="true";fi # wont go through both options if arg spaced and not quoted this solves that issue (dont need this but once had bug on system where it was necessary) + if [[ "$(echo "$@" | grep -Eo "\-f")" == "-f" ]];then filePath=$(echo "$@" | grep -Eo "\-f [ a-z A-Z / 0-9 . \ ]*[ -]?" | sed s/-f//g | sed s/-//g | sed s/^" "//g);fi + ;; + #s) + # song="true" + # if [[ "$(echo "$@" | grep -Eo "\-a")" == "-a" ]];then artist="true";fi # wont go through both options if arg spaced and not quoted this solves that issue (dont need this but once had bug on system where it was necessary) + # if [[ "$(echo "$@" | grep -Eo "\-f")" == "-f" ]];then filePath=$(echo "$@" | grep -Eo "\-f [ a-z A-Z / 0-9 . \ ]*[ -]?" | sed s/-f//g | sed s/-//g | sed s/^" "//g);fi + # ;; + :) echo "Option -$OPTARG requires an argument." >&2 + exit 1 + ;; + esac +done + +if [[ $# == "0" ]]; then + usage ## if calling the tool with no flags and args chances are you want to return usage + exit 0 +elif [[ $# == "1" ]]; then + if [[ $1 == "update" ]]; then + getConfiguredClient || exit 1 + checkInternet || exit 1 + update || exit 1 + exit 0 + elif [[ $1 == "help" ]]; then + usage + exit 0 + fi +fi + +if [[ $docking == "true" ]]; then + if [[ $proteinPath != "" ]]; then + if [[ $smile != "" ]] || [[ $ligandPath != "" ]]; then + if [[ $config == "" ]]; then + echo "Configuration File Not Specified!" + exit 1 + else + dockingCheck="true" + fi + else + echo "WTF Only Protein!" + exit 1 + fi + fi +fi + +if [[ $smile != "" ]]; then + if [[ $name == "" ]]; then + name="ligand" + obabel -:"$smile" --gen3d -opdbqt -O$name.pdbqt + ligandPath="$name.pdbqt" + fi +fi + +if [[ $dockingCheck == "true" ]]; then + echo "" + vina --receptor $proteinPath --ligand $ligandPath --config $config +fi + +if [[ $visualisations == "true" ]]; then + file=$(echo "$ligandPath" | cut -f 1 -d '.') + ./quick-ligand-protein.py -p $proteinPath -l "$(echo $file)_out.pdbqt" +fi + +if [[ $interactions == "true" ]]; then + ./get-best.py -p $proteinPath -l "$(echo $file)_out.pdbqt" + ./plipcmd.py -f best.pdb -qpxy + ./makeReport.py --input . > report.md + pandoc -V geometry:margin=1in report.md --pdf-engine=xelatex -o $name.pdf +fi + +echo "$proteinPath and $ligandPath and $docking and $interactions and $visualisations" |