├── .gitignore ├── img └── browserstack-logo-600x315.png ├── plugins.json ├── LICENSE ├── package.json ├── update.sh ├── desktop-unix-install.md ├── desktop-windows-install.md ├── install.sh ├── browser-unix-install.md └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /node_modules/ 2 | plugins/ -------------------------------------------------------------------------------- /img/browserstack-logo-600x315.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bhofmei/bhofmei-jbplugins/HEAD/img/browserstack-logo-600x315.png -------------------------------------------------------------------------------- /plugins.json: -------------------------------------------------------------------------------- 1 | { 2 | "HierarchicalCheckboxPlugin": true, 3 | "MethylationPlugin": true, 4 | "MotifDensityPlugin": true, 5 | "SeqViewsPlugin": true, 6 | "ScreenShotPlugin": true, 7 | "SmallRNAPlugin": true, 8 | "StrandedPlotPlugin": true, 9 | "TrackScorePlugin": true, 10 | "WiggleSVGPlotPlugin": true, 11 | "YScaleMenuPlugin": true 12 | } 13 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright 2018 Brigitte Hofmeister 2 | 3 | Licensed under the Apache License, Version 2.0 (the "License"); 4 | you may not use this file except in compliance with the License. 5 | You may obtain a copy of the License at 6 | 7 | http://www.apache.org/licenses/LICENSE-2.0 8 | 9 | Unless required by applicable law or agreed to in writing, software 10 | distributed under the License is distributed on an "AS IS" BASIS, 11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 | See the License for the specific language governing permissions and 13 | limitations under the License. -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "bhofmei-jbplugins", 3 | "version": "1.0.1", 4 | "description": "All jbrowse plugins created by Brigitte Hofmeister", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+https://github.com/bhofmei/bhofmei-jbplugins.git" 12 | }, 13 | "keywords": [ 14 | "jbrowse" 15 | ], 16 | "author": "Brigitte Hofmeister", 17 | "license": "Apache-2.0", 18 | "homepage": "https://github.com/bhofmei/bhofmei-jbplugins#readme", 19 | "dependencies":{ 20 | "MethylationPlugin": "git+https://github.com/bhofmei/jbplugin-methylation", 21 | "SmallRNAPlugin": "git+https://github.com/bhofmei/jbplugin-smallrna", 22 | "StrandedPlotPlugin": "git+https://github.com/bhofmei/jbplugin-strandedplot", 23 | "HierarchicalCheckboxPlugin": "git+https://github.com/bhofmei/jbplugin-hierarchicalcheckbox", 24 | "MotifDensityPlugin": "git+https://github.com/bhofmei/jbplugin-motifdens", 25 | "ScreenShotPlugin": "git+https://github.com/bhofmei/jbplugin-screenshot", 26 | "SeqViewsPlugin": "git+https://github.com/bhofmei/jbplugin-seqview", 27 | "TrackScorePlugin": "git+https://github.com/bhofmei/jbplugin-trackscores", 28 | "WiggleSVGPlotPlugin": "git+https://github.com/bhofmei/jbplugin-wigglesvg", 29 | "YScaleMenuPlugin": "git+https://github.com/bhofmei/jbplugin-yscale" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # UPDATE SCRIPT 4 | 5 | # assumes that getopts is installed 6 | # possible options: 7 | # -h (print usage) 8 | # -q (quiet do not print progress) 9 | # -p (path to install, default is ../) 10 | # -c (config file that has plugins, default plugins.json) 11 | 12 | function readJSON { 13 | VALUE=`grep -m 1 "\"${2}\"" ${1} | sed 's/^ *//;s/.*: *//;s/,?//' | sed 's/,//'` 14 | if [ ! "$VALUE" ]; then 15 | echo false; 16 | else 17 | echo $VALUE; 18 | fi; 19 | } 20 | 21 | function useage(){ 22 | echo "" 23 | echo "Usage: update.sh [-h] [-p ] [-c ]" 24 | echo "" 25 | echo " Will updated the plugins specified in the config file located at path" 26 | echo "" 27 | echo "Options:" 28 | echo "-h Print help menu" 29 | echo "-q Quiet; don't print progress" 30 | echo "-p prefix Install in this directory; default is '../' which" 31 | echo " should be the JBrowse plugin folder" 32 | echo "-c config JSON file specifying which plugins to update" 33 | echo " default is 'plugins.json'" 34 | } 35 | 36 | function updatePlugin { 37 | # $1 PREFIX $2 name $3 quiet 38 | prefix=$1 39 | name=$2 40 | quiet=$3 41 | cu=`pwd` 42 | cd ${prefix}${name} 43 | #echo "git pull" >&2 44 | git pull ${quiet} 45 | cd $cu 46 | } 47 | 48 | PREFIX="../" 49 | CONFIG="plugins.json" 50 | QUIET="" 51 | 52 | while getopts "hqp:c:" opt; do 53 | case $opt in 54 | q) 55 | QUIET="-q" 56 | ;; 57 | p) 58 | PREFIX=$OPTARG 59 | ;; 60 | c) 61 | CONFIG=$OPTARG 62 | ;; 63 | h) 64 | useage 65 | exit 1 66 | ;; 67 | \?) 68 | echo "Invalid option: -$OPTARG" >&2 69 | echo "Use -h for help" 70 | exit 1 71 | ;; 72 | :) 73 | echo "Option -$OPTARG requires an argument" >&2 74 | echo "Use -h for help" 75 | exit 1 76 | ;; 77 | esac 78 | done 79 | 80 | 81 | # make sure path ends in / 82 | PREFIX=`echo "${PREFIX}/" | sed 's/\/\//\//'` 83 | 84 | BASE=https://github.com/bhofmei/ 85 | URLS=(jbplugin-hierarchicalcheckbox jbplugin-methylation jbplugin-motifdens jbplugin-seqview jbplugin-screenshot jbplugin-smallrna jbplugin-strandedplot jbplugin-trackscores jbplugin-wigglesvg jbplugin-yscale) 86 | NAMES=(HierarchicalCheckboxPlugin MethylationPlugin MotifDensityPlugin SeqViewsPlugin ScreenShotPlugin SmallRNAPlugin StrandedPlotPlugin TrackScorePlugin WiggleSVGPlotPlugin YScaleMenuPlugin) 87 | 88 | 89 | for i in ${!NAMES[@]}; do 90 | name=${NAMES[i]} 91 | b=`readJSON ${CONFIG} ${name}` 92 | if [[ $b == "true" ]]; then 93 | if [[ $QUIET == "" ]]; then 94 | echo "Updating ${name}" 95 | fi; 96 | t=`updatePlugin ${PREFIX} ${name} ${QUIET}` 97 | fi; 98 | done 99 | 100 | -------------------------------------------------------------------------------- /desktop-unix-install.md: -------------------------------------------------------------------------------- 1 | # Desktop JBrowse Installation on UNIX Systems 2 | 3 | ## Hierarchical Checkbox Plugin 4 | 1. In destination directory, run 5 | ``` 6 | git clone https://github.com/bhofmei/jbplugin-hierarchicalcheckbox HierarchicalCheckboxPlugin 7 | ``` 8 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 9 | ``` 10 | [plugins.HierarchicalCheckboxPlugin] 11 | location = full-path-to-plugin/HierarchicalCheckboxPlugin 12 | ``` 13 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-hierarchicalcheckbox) for usage information. 14 | 15 | ## Methylation Plugin 16 | 1. In destination directory, run 17 | ``` 18 | git clone https://github.com/bhofmei/jbplugin-methylation MethylationPlugin 19 | ``` 20 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 21 | ``` 22 | [plugins.MethylationPlugin] 23 | location = full-path-to-plugin/MethylationPlugin 24 | isAnimal = false 25 | extendedModifications = false 26 | ``` 27 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-methylation) for additional [configuration options](https://github.com/bhofmei/jbplugin-methylation#plugin-configuration-options) and usage information. 28 | 29 | ## Motif Density Plugin 30 | 1. In destination directory, run 31 | ``` 32 | git clone https://github.com/bhofmei/jbplugin-motifdens MotifDensityPlugin 33 | ``` 34 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 35 | ``` 36 | [plugins.MotifDensityPlugin] 37 | location = full-path-to-plugin/MotifDensityPlugin 38 | ``` 39 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-motifdens) for usage information. 40 | 41 | ## Screenshot Plugin 42 | The screenshot plugin **DOES NOT** work for the desktop version of JBrowse because internet-accessible URLs are necessary to create the screenshot. 43 | 44 | 45 | ## Sequence Views Plugins 46 | 1. In destination directory, run 47 | ``` 48 | git clone https://github.com/bhofmei/jbplugin-seqview SeqViewsPlugin 49 | ``` 50 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 51 | ``` 52 | [plugins.SeqViewsPlugin] 53 | location = full-path-to-plugin/SeqViewsPlugin 54 | ``` 55 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-seqview) for usage information. 56 | 57 | ## Small RNA Plugin 58 | 1. In destination directory, run 59 | ``` 60 | git clone https://github.com/bhofmei/jbplugin-smallrna SmallRNAPlugin 61 | ``` 62 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 63 | ``` 64 | [plugins.SmallRNAPlugin] 65 | location = full-path-to-plugin/SmallRNAPlugin 66 | isAnimal = false 67 | ``` 68 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-smallrna) for additional configuration options and usage information. 69 | 70 | ## Stranded Plot Plugin 71 | 1. In destination directory, run 72 | ``` 73 | git clone https://github.com/bhofmei/jbplugin-strandedplot StrandedPlotPlugin 74 | ``` 75 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 76 | ``` 77 | [plugins.StrandedPlotPlugin] 78 | location = full-path-to-plugin/StrandedPlotPlugin 79 | ``` 80 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-strandedplot) for usage information. 81 | 82 | ## Track Scores Plugin 83 | 1. In destination directory, run 84 | ``` 85 | git clone https://github.com/bhofmei/jbplugin-trackscores TrackScorePlugin 86 | ``` 87 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 88 | ``` 89 | [plugins.TrackScorePlugin] 90 | location = full-path-to-plugin/TrackScorePlugin 91 | ``` 92 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-trackscores) for usage information. 93 | 94 | ## Wiggle SVG Plot Plugin 95 | This plugin will work for Desktop JBrowse, but is not recommended to be used. The primary goal of the Wiggle SVG Plot Plugin is for screenshots with the [Screenshot Plugin](#screenshot-plugin) and the Screenshot Plugin does not work for Desktop JBrowse. 96 | 97 | ## Y-Scale Menu Plugin 98 | 1. In destination directory, run 99 | ``` 100 | git clone https://github.com/bhofmei/jbplugin-yscale YScaleMenuPlugin 101 | ``` 102 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 103 | ``` 104 | [plugins.YScaleMenuPlugin] 105 | location = full-path-to-plugin/YScaleMenuPlugin 106 | ``` 107 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-yscale) for usage information. -------------------------------------------------------------------------------- /desktop-windows-install.md: -------------------------------------------------------------------------------- 1 | # Desktop JBrowse Installation on Windows Systems 2 | 3 | ## Hierarchical Checkbox Plugin 4 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-hierarchicalcheckbox/archive/master.zip)** to desitination directory. 5 | 2. Unzip the download and rename the folder `HierarchicalCheckboxPlugin`. 6 | 3. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 7 | ``` 8 | [plugins.HierarchicalCheckboxPlugin] 9 | location = full-path-to-plugin/HierarchicalCheckboxPlugin 10 | ``` 11 | 4. See [plugin repository](https://github.com/bhofmei/jbplugin-hierarchicalcheckbox) for usage information. 12 | 13 | ## Methylation Plugin 14 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-methylation/archive/master.zip)** to desitination directory. 15 | 2. Unzip the download and rename the folder `MethylationPlugin`. 16 | 3. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 17 | ``` 18 | [plugins.MethylationPlugin] 19 | location = full-path-to-plugin/MethylationPlugin 20 | isAnimal = false 21 | extendedModifications = false 22 | ``` 23 | 4. See [plugin repository](https://github.com/bhofmei/jbplugin-methylation) for additional [configuration options](https://github.com/bhofmei/jbplugin-methylation#plugin-configuration-options) and usage information. 24 | 25 | ## Motif Density Plugin 26 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-motifdens/archive/master.zip)** to desitination directory. 27 | 2. Unzip the download and rename the folder `MotifDensityPlugin`. 28 | 3. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 29 | ``` 30 | [plugins.MotifDensityPlugin] 31 | location = full-path-to-plugin/MotifDensityPlugin 32 | ``` 33 | 4. See [plugin repository](https://github.com/bhofmei/jbplugin-motifdens) for usage information. 34 | 35 | ## Screenshot Plugin 36 | The screenshot plugin **DOES NOT** work for the desktop version of JBrowse because internet-accessible URLs are necessary to create the screenshot. 37 | 38 | 39 | ## Sequence Views Plugins 40 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-seqview/archive/master.zip)** to desitination directory. 41 | 2. Unzip the download and rename the folder `SeqViewsPlugin`. 42 | 2. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 43 | ``` 44 | [plugins.SeqViewsPlugin] 45 | location = full-path-to-plugin/SeqViewsPlugin 46 | ``` 47 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-seqview) for usage information. 48 | 49 | ## Small RNA Plugin 50 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-smallrna/archive/master.zip)** to desitination directory. 51 | 2. Unzip the download and rename the folder `SmallRNAPlugin`. 52 | 3. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 53 | ``` 54 | [plugins.SmallRNAPlugin] 55 | location = full-path-to-plugin/SmallRNAPlugin 56 | isAnimal = false 57 | ``` 58 | 4. See [plugin repository](https://github.com/bhofmei/jbplugin-smallrna) for additional configuration options and usage information. 59 | 60 | ## Stranded Plot Plugin 61 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-strandedplot/archive/master.zip)** to desitination directory. 62 | 2. Unzip the download and rename the folder `StrandedPlotPlugin`. 63 | 3. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 64 | ``` 65 | [plugins.StrandedPlotPlugin] 66 | location = full-path-to-plugin/StrandedPlotPlugin 67 | ``` 68 | 4. See [plugin repository](https://github.com/bhofmei/jbplugin-strandedplot) for usage information. 69 | 70 | ## Track Scores Plugin 71 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-trackscores/archive/master.zip)** to desitination directory. 72 | 2. Unzip the download and rename the folder `TrackScorePlugin`. 73 | 3. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 74 | ``` 75 | [plugins.TrackScorePlugin] 76 | location = full-path-to-plugin/TrackScorePlugin 77 | ``` 78 | 4. See [plugin repository](https://github.com/bhofmei/jbplugin-trackscores) for usage information. 79 | 80 | ## Wiggle SVG Plot Plugin 81 | This plugin will work for Desktop JBrowse, but is not recommended to be used. The primary goal of the Wiggle SVG Plot Plugin is for screenshots with the [Screenshot Plugin](#screenshot-plugin) and the Screenshot Plugin does not work for Desktop JBrowse. 82 | 83 | ## Y-Scale Menu Plugin 84 | 1. Download **[plugin](https://github.com/bhofmei/jbplugin-yscale/archive/master.zip)** to desitination directory. 85 | 2. Unzip the download and rename the folder `YScaleMenuPlugin`. 86 | 3. In _tracks.conf_ of datset directory to be opened in Desktop JBrowse, add 87 | ``` 88 | [plugins.YScaleMenuPlugin] 89 | location = full-path-to-plugin/YScaleMenuPlugin 90 | ``` 91 | 4. See [plugin repository](https://github.com/bhofmei/jbplugin-yscale) for usage information. 92 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # INSTALL SCRIPT 4 | 5 | # assumes that getopts is installed 6 | # possible options: 7 | # -h (print usage) 8 | # -q (quiet do not print progress) 9 | # -d (desktop install, use full path in config) 10 | # -j (print config in JSON format) 11 | # -p (path to install, default is ../) 12 | # -c (config file that has plugins, default plugins.json) 13 | 14 | function readJSON { 15 | VALUE=`grep -m 1 "\"${2}\"" ${1} | sed 's/^ *//;s/.*: *//;s/,?//' | sed 's/,//'` 16 | if [ ! "$VALUE" ]; then 17 | echo false; 18 | else 19 | echo $VALUE; 20 | fi; 21 | } 22 | 23 | function useage(){ 24 | echo "" 25 | echo "Usage: install.sh [-h] [-j] [-d] [-p ] [-c ]" 26 | echo "" 27 | echo " Will install the plugins specified in the config file located at path" 28 | echo " When '-d' is not set, will print JBrowse config for the plugins installed to be included in" 29 | echo " 'jbrowse.conf' or 'jbrowse_conf.json' when -j is specified" 30 | echo "" 31 | echo "Options:" 32 | echo "-h Print help menu" 33 | echo "-q Quiet; don't print progress" 34 | echo "-j Output JBrowse config in JSON format for 'jbrowse_conf.json'" 35 | echo " Default outputs for 'jbrowse.conf'" 36 | echo "-d Desktop install - always use full path in output config" 37 | echo "-p prefix Install in this directory; default is '../' which" 38 | echo " should be the JBrowse plugin folder" 39 | echo "-c config JSON file specifying which plugins to install" 40 | echo " default is 'plugins.json'" 41 | } 42 | 43 | function normalizePath { 44 | # remove /./ sequences 45 | local path=${1//\/.\//\/} 46 | # Remove first dir/.. sequence. 47 | local npath=$(echo $path | sed -e 's;[^/][^/]*/\.\./;;') 48 | 49 | # Remove remaining dir/.. sequence. 50 | while [[ $npath != $path ]] 51 | do 52 | path=$npath 53 | npath=$(echo $path | sed -e 's;[^/][^/]*/\.\./;;') 54 | done 55 | echo $path 56 | } 57 | 58 | function getConfPath { 59 | # $1 isDesktop? $2 currentPath $3 prefix 60 | desktop=$1 61 | curpath=$2 62 | prefix=$3 63 | isAbs=`echo $3 | grep -E '^\/' | wc -l` 64 | 65 | if [[ ${isAbs} -gt 0 ]]; then 66 | echo ${prefix} 67 | else 68 | if [[ $prefix == "../" && ${curpath} =~ plugins/(BhofmeiPlugins|bhofmei-jbplugins) && $desktop != "true" ]]; then 69 | echo "plugins/" 70 | else 71 | m=`normalizePath $curpath/$prefix` 72 | echo $m 73 | fi; 74 | fi; 75 | } 76 | 77 | function installPlugin { 78 | # $1 PREFIX $2 name $3 URL $4 isJson $5 configpath $quiet 79 | prefix=$1 80 | name=$2 81 | url=$3 82 | json=$4 83 | configpath=$5 84 | quiet=$6 85 | 86 | #echo "git clone ${quiet} ${url} ${prefix}${name}" >&2 87 | git clone ${quiet} ${url} ${prefix}${name} 88 | if [[ $json == "true" ]]; then 89 | echo " \"${2}\" : { \"location\" : \"${configpath}${name}\" }," 90 | else 91 | echo -e "[plugins.${name}]\nlocation = ${configpath}${name}" 92 | fi 93 | } 94 | 95 | PREFIX="../" 96 | JSON=false 97 | DESKTOP=false 98 | CONFIG="plugins.json" 99 | QUIET="" 100 | 101 | while getopts "hqjdp:c:" opt; do 102 | case $opt in 103 | j) 104 | JSON=true 105 | ;; 106 | d) 107 | DESKTOP=true 108 | ;; 109 | q) 110 | QUIET="-q" 111 | ;; 112 | p) 113 | PREFIX=$OPTARG 114 | ;; 115 | c) 116 | CONFIG=$OPTARG 117 | ;; 118 | h) 119 | useage 120 | exit 1 121 | ;; 122 | \?) 123 | echo "Invalid option: -$OPTARG" >&2 124 | echo "Use -h for help" 125 | exit 1 126 | ;; 127 | :) 128 | echo "Option -$OPTARG requires an argument" >&2 129 | echo "Use -h for help" 130 | exit 1 131 | ;; 132 | esac 133 | done 134 | 135 | curpath=`pwd` 136 | 137 | # make sure path ends in / 138 | PREFIX=`echo "${PREFIX}/" | sed 's/\/\//\//'` 139 | EXPPATH=$PREFIX 140 | 141 | ## get the path to specify in the config file 142 | EXPPATH=`getConfPath $DESKTOP $curpath $PREFIX` 143 | 144 | BASE=https://github.com/bhofmei/ 145 | URLS=(jbplugin-hierarchicalcheckbox jbplugin-methylation jbplugin-motifdens jbplugin-seqview jbplugin-screenshot jbplugin-smallrna jbplugin-strandedplot jbplugin-trackscores jbplugin-wigglesvg jbplugin-yscale) 146 | NAMES=(HierarchicalCheckboxPlugin MethylationPlugin MotifDensityPlugin SeqViewsPlugin ScreenShotPlugin SmallRNAPlugin StrandedPlotPlugin TrackScorePlugin WiggleSVGPlotPlugin YScaleMenuPlugin) 147 | 148 | CONFTXT="" # output configuration text used for installation 149 | 150 | for i in ${!NAMES[@]}; do 151 | name=${NAMES[i]} 152 | b=`readJSON ${CONFIG} ${name}` 153 | if [[ $b == "true" ]]; then 154 | u=${BASE}${URLS[i]} 155 | t=`installPlugin ${PREFIX} ${name} $u ${JSON} ${EXPPATH} ${QUIET}` 156 | CONFTXT=`echo -e "${CONFTXT}\n${t}"` 157 | #CONFTXT="${CONFTXT}${t}" 158 | fi; 159 | done 160 | # remove trailing comma if json format and add plugin section 161 | if [[ $JSON == "true" ]]; then 162 | CONFTXT=${CONFTXT%?} 163 | CONFTXT=`echo -e "\"plugins\" : {${CONFTXT}\n}"` 164 | fi; 165 | 166 | # output results for config 167 | echo "" 168 | echo "" 169 | if [[ $JSON == "true" ]]; then 170 | echo "Include in 'jbrowse_conf.json' or 'trackList.json" 171 | echo "" 172 | echo "$CONFTXT" 173 | echo "" 174 | echo "Double check for correct JSON syntax" 175 | else 176 | echo "Include in [GENERAL] section of 'jbrowse.conf' or 'tracks.conf'" 177 | echo -e "$CONFTXT" 178 | fi 179 | exit 0 180 | -------------------------------------------------------------------------------- /browser-unix-install.md: -------------------------------------------------------------------------------- 1 | # Web Browser JBrowse Installation on UNIX Systems 2 | 3 | ## Hierarchical Checkbox Plugin 4 | 1. In the JBrowse _plugins_ folder, run 5 | ``` 6 | git clone https://github.com/bhofmei/jbplugin-hierarchicalcheckbox HierarchicalCheckboxPlugin 7 | ``` 8 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 9 | ``` 10 | [plugins.HierarchicalCheckboxPlugin] 11 | location = plugins/HierarchicalCheckboxPlugin 12 | ``` 13 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-hierarchicalcheckbox) for usage information. 14 | 15 | ## Methylation Plugin 16 | 1. In the JBrowse _plugins_ folder, run 17 | ``` 18 | git clone https://github.com/bhofmei/jbplugin-methylation MethylationPlugin 19 | ``` 20 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 21 | ``` 22 | [plugins.MethylationPlugin] 23 | location = plugins/MethylationPlugin 24 | isAnimal = false 25 | extendedModifications = false 26 | ``` 27 | 28 | While plugin declaration should not be included in both _jbrowse.conf_ and _tracks.conf_, configuration options can be changed. 29 | 30 | For example, if most data sets don't need extended modifications, include in _jbrowse.conf_ 31 | ``` 32 | [plugins.MethylationPlugin] 33 | location = plugins/MethylationPlugin 34 | extendedModifications = false 35 | ``` 36 | 37 | For the data which **does** need extended modifications, include in _tracks.conf_ 38 | ``` 39 | [plugins.MethylationPlugin] 40 | extendedModifications = true 41 | ``` 42 | 43 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-methylation) for additional [configuration options](https://github.com/bhofmei/jbplugin-methylation#plugin-configuration-options) and usage information. 44 | 45 | ## Motif Density Plugin 46 | 1. In the JBrowse _plugins_ folder, run 47 | ``` 48 | git clone https://github.com/bhofmei/jbplugin-motifdens MotifDensityPlugin 49 | ``` 50 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 51 | ``` 52 | [plugins.MotifDensityPlugin] 53 | location = plugins/MotifDensityPlugin 54 | ``` 55 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-motifdens) for usage information. 56 | 57 | ## Screenshot Plugin 58 | 1. In the JBrowse _plugins_ folder, run 59 | ``` 60 | git clone https://github.com/bhofmei/jbplugin-screenshot ScreenShotPlugin 61 | ``` 62 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 63 | ``` 64 | [plugins.ScreenShotPlugin] 65 | location = plugins/ScreenShotPlugin 66 | apiKey = 67 | htmlFeatures = false 68 | ``` 69 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-screenshot) for additional configuration options and usage information. 70 | 71 | ## Sequence Views Plugins 72 | 1. In the JBrowse _plugins_ folder, run 73 | ``` 74 | git clone https://github.com/bhofmei/jbplugin-seqview SeqViewsPlugin 75 | ``` 76 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 77 | ``` 78 | [plugins.SeqViewsPlugin] 79 | location = plugins/SeqViewsPlugin 80 | ``` 81 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-seqview) for usage information. 82 | 83 | ## Small RNA Plugin 84 | 1. In the JBrowse _plugins_ folder, run 85 | ``` 86 | git clone https://github.com/bhofmei/jbplugin-smallrna SmallRNAPlugin 87 | ``` 88 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 89 | ``` 90 | [plugins.SmallRNAPlugin] 91 | location = plugins/SmallRNAPlugin 92 | isAnimal = false 93 | ``` 94 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-smallrna) for additional configuration options and usage information. 95 | 96 | ## Stranded Plot Plugin 97 | 1. In the JBrowse _plugins_ folder, run 98 | ``` 99 | git clone https://github.com/bhofmei/jbplugin-strandedplot StrandedPlotPlugin 100 | ``` 101 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 102 | ``` 103 | [plugins.StrandedPlotPlugin] 104 | location = plugins/StrandedPlotPlugin 105 | ``` 106 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-strandedplot) for usage information. 107 | 108 | ## Track Scores Plugin 109 | 1. In the JBrowse _plugins_ folder, run 110 | ``` 111 | git clone https://github.com/bhofmei/jbplugin-trackscores TrackScorePlugin 112 | ``` 113 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 114 | ``` 115 | [plugins.TrackScorePlugin] 116 | location = plugins/TrackScorePlugin 117 | ``` 118 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-trackscores) for usage information. 119 | 120 | ## Wiggle SVG Plot Plugin 121 | 1. In the JBrowse _plugins_ folder, run 122 | ``` 123 | git clone https://github.com/bhofmei/jbplugin-wigglesvg WiggleSVGPlotPlugin 124 | ``` 125 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 126 | ``` 127 | [plugins.WiggleSVGPlotPlugin] 128 | location = plugins/WiggleSVGPlotPlugin 129 | ``` 130 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-wigglesvg) for usage information. 131 | 132 | ## Y-Scale Menu Plugin 133 | 1. In the JBrowse _plugins_ folder, run 134 | ``` 135 | git clone https://github.com/bhofmei/jbplugin-yscale YScaleMenuPlugin 136 | ``` 137 | 2. In _jbrowse.conf_ (all datatsets can use it) or _tracks.conf_ (specific dataset uses it), add 138 | ``` 139 | [plugins.YScaleMenuPlugin] 140 | location = plugins/YScaleMenuPlugin 141 | ``` 142 | 3. See [plugin repository](https://github.com/bhofmei/jbplugin-yscale) for usage information. -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Brigitte Hofmeister's JBrowse Plugins 2 | All JBrowse plugins created by [Brigitte Hofmeister](https://github.com/bhofmei) 3 | 4 | To see all the plugins in action, go to [https://bhofmei.github.io/bhofmei-jbplugins/](https://bhofmei.github.io/bhofmei-jbplugins/). 5 | ------------- 6 | 7 | ## Contents 8 | - Epigenomics Visualization 9 | - [DNA Methylation Plugin](https://github.com/bhofmei/jbplugin-methylation): Visualize bp-resolution methylation levels colored by sequence context 10 | - [Small RNA Plugin](https://github.com/bhofmei/jbplugin-smallrna): Visualize small RNA alignments colored by size and stranded y-axis positioning 11 | - [Stranded Plot Plugin](https://github.com/bhofmei/jbplugin-strandedplot): Visualize plus and minus strand coverage in a single track simulataneously 12 | - Additional Features 13 | - [Hierarchical Checkbox Plugin](https://github.com/bhofmei/jbplugin-hierarchicalcheckbox): "Select all" (or deselect all) tracks of a category in the hierarchical track list 14 | - [Motif Density Plugin](https://github.com/bhofmei/jbplugin-motifdens.git): Density map of user-specified sequence motifs and multiple color configuration options 15 | - [Screenshot Plugin](https://github.com/bhofmei/jbplugin-screenshot): Makes taking screenshots easy with PhantomJS 16 | - [Wiggle SVG Plot Plugin](https://github.com/bhofmei/jbplugin-wigglesvg): SVG-based track type for wiggle plots; most useful for screenshots 17 | - User Experience 18 | - [Sequence Views Plugins](https://github.com/bhofmei/jbplugin-seqview): Force feature or histogram views 19 | - [Track Scores Plugin](https://github.com/bhofmei/jbplugin-trackscores): Adds a track menu item to change between autoscale types and manual limits 20 | - [Y-Scale Plugin](https://github.com/bhofmei/jbplugin-yscale): Adds global menu option to set the y-scale position of all visible tracks 21 | 22 | ## Citation 23 | 24 | If these plugins are used for research or publication, please cite the following. I've spent a lot of time on these and would appreciate the recognition. 25 | 26 | Enhanced JBrowse plugins for epigenomics data visualization 27 | Brigitte T. Hofmeister, Robert J. Schmitz 28 | BMC Bioinformatics 19(159); doi: 10.1186/s12859-018-2160-z 29 | 30 | You can read the original article at [BMC Bioinformatics](https://bmcbioinformatics.biomedcentral.com/articles/10.1186/s12859-018-2160-z). 31 | 32 | ## JBrowse Versions 33 | 34 | These plugins are designed for JBrowse v1.11.6 - v1.12.6. Installation directions are for these versions. 35 | 36 | JBrowse v1.13.0+ uses a radically different system to download dependencies and build the site. The plugins are likely to work as-is but have not been tested extensively. See the [JBrowse documentation](http://jbrowse.org/jbrowse-1-13-0-release/) for more information. 37 | 38 | ## Installation for Unix Systems 39 | 40 | ### For Web-Browser-Based JBrowse 41 | 42 | #### Bulk installation 43 | 1. Add this repositiory to the plugin folder of JBrowse, i.e. `jbrowse-root/plugins/`. 44 | ``` 45 | git clone https://github.com/bhofmei/bhofmei-jbplugins BhofmeiPlugins 46 | ``` 47 | 2. Update `plugins.json` to install the plugins you are interested in 48 | - Default is to install all 49 | - Set to `false` for plugins not to install 50 | 3. Run `install.sh` 51 | - Assumes that this script is located at `jbrowse-root/plugins/BhofmeiPlugins` 52 | - Use `-p prefix` to specify the install directory if this script is located elsewhere 53 | - See `install.sh -h` for additional parameters 54 | 4. Copy the output to `jbrowse.conf` or a dataset `tracks.conf` as applicable 55 | - If you prefer to use the JSON specification for `jbrowse_conf.json` or `trackList.json`, run as `install.sh -j` 56 | 5. See the indivual plugin repositiories for plugin-specific configuration options 57 | 58 | #### Individual plugin installation 59 | See [browser-unix-install.md](browser-unix-install.md). 60 | 61 | ### For Desktop-Based JBrowse 62 | #### Bulk installation 63 | 1. Install this repository in desired directory 64 | ``` 65 | git clone https://github.com/bhofmei/bhofmei-jbplugins BhofmeiPlugins 66 | ``` 67 | 2. Update `plugins.json` to install the plugins you are interested in 68 | - Default is to install all 69 | - Set to `false` for plugins not to install 70 | 3. Run `install.sh -d -p ` 71 | - Use `-p ` to specify the directory to install the plugins. The default is `../` 72 | - When prefix is a relative path, it resolves the path and uses the absolute path for the output config 73 | 4. Copy the output to `tracks.conf` for the dataset directory to be opened 74 | - If you prefer the JSON specification, run with the `-j` option and copy output to `trackList.json` 75 | 5. See the indivual plugin repositiories for plugin-specific configuration options 76 | 77 | #### Individual plugin installation 78 | See [desktop-unix-install.md](desktop-unix-install.md). 79 | 80 | ## Installation for Windows Systems Desktop-Based JBrowse 81 | See [windows desktop installation](desktop-windows-install.md) for steps to download plugins of interest. 82 | 83 | ## Updating for Unix Systems 84 | 85 | #### Bulk updating 86 | 1. In `plugins.json`, specify which plugins to update 87 | - Use `true` to update 88 | - Use `false` if not installed or don't want updated 89 | 2. Run `update.sh` 90 | - By default, looks for plugins at `../`. If they are installed elsewhere, you `-p ` where `` is the aboslute or relative path to the directory where all plugins are installed. 91 | - Run `update.sh -h` to see the other options 92 | 93 | #### Individual plugin updating 94 | To update a single plugin, run `git pull` within the plugin directory 95 | 96 | ## Updating for Windows Systems 97 | 98 | Plugin must be reinstalled; see [windows installation](desktop-windows-install.md) and replace the existing plugin. 99 | 100 | ## Testing 101 | 102 | Many of the individual plugins have their own unit tests and test data sets. 103 | 104 | Additionally, manual integration testing has been done with [BrowserStack](https://www.browserstack.com/) to verify compatibility with different web browsers and versions. 105 | 106 | 107 | 108 | #### Fine Print 109 | All plugins are distributed under the Apache License, Version 2.0. 110 | --------------------------------------------------------------------------------