├── smalt ├── reads.fastq ├── reference.fasta ├── Dockerfile ├── instructions.sh ├── README.md └── smalt_wrapper.xml ├── catDocker.xml └── README.md /smalt/reads.fastq: -------------------------------------------------------------------------------- 1 | @1 2 | AAAA 3 | + 4 | IIII 5 | @2 6 | AAAA 7 | + 8 | IIII 9 | -------------------------------------------------------------------------------- /smalt/reference.fasta: -------------------------------------------------------------------------------- 1 | >a 2 | AAAAGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 3 | -------------------------------------------------------------------------------- /catDocker.xml: -------------------------------------------------------------------------------- 1 | 2 | tail-to-head 3 | 4 | busybox:ubuntu-12.04 5 | 6 | 7 | echo "Galaxy slots passed through contain as \$GALAXY_SLOTS"; 8 | cat $input1 9 | #for $q in $queries 10 | ${q.input2} 11 | #end for 12 | > $out_file1; 13 | echo "Work dir output" > working_file 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /smalt/Dockerfile: -------------------------------------------------------------------------------- 1 | # Galaxy - SMALT 2 | # From https://toolshed.g2.bx.psu.edu/repository/view_repository?sort=Repository.name&operation=view_or_manage_repository&changeset_revision=54855bd8d107&id=ec70d959cc6d865d 3 | 4 | FROM debian:wheezy 5 | 6 | MAINTAINER Aaron Petkau, aaron.petkau@gmail.com 7 | 8 | # make sure the package repository is up to date 9 | RUN DEBIAN_FRONTEND=noninteractive apt-get -qq update 10 | 11 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y python 12 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y wget 13 | RUN DEBIAN_FRONTEND=noninteractive apt-get install -y mercurial 14 | 15 | RUN mkdir /tmp/smalt 16 | WORKDIR /tmp/smalt 17 | 18 | RUN wget ftp://ftp.sanger.ac.uk/pub4/resources/software/smalt/smalt-0.7.3.tgz 19 | RUN tar -xvvzf smalt-0.7.3.tgz 20 | RUN cp smalt-0.7.3/smalt_x86_64 /usr/bin/smalt_unknown 21 | 22 | RUN hg clone https://toolshed.g2.bx.psu.edu/repos/cjav/smalt smalt_deps 23 | RUN cp smalt_deps/smalt_wrapper.py /usr/bin/smalt_wrapper.py 24 | RUN chmod a+x /usr/bin/smalt_wrapper.py 25 | 26 | RUN apt-get clean && rm -rf /tmp/smalt && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* 27 | -------------------------------------------------------------------------------- /smalt/instructions.sh: -------------------------------------------------------------------------------- 1 | # Run docker image 'debian/wheezy' in interactive mode 2 | sudo docker run -i -t debian:wheezy 3 | 4 | # Run the below in this image 5 | 6 | apt-get update 7 | apt-get install python 8 | apt-get install wget 9 | apt-get install mercurial 10 | 11 | mkdir tool 12 | cd tool 13 | 14 | wget ftp://ftp.sanger.ac.uk/pub4/resources/software/smalt/smalt-0.7.3.tgz 15 | tar -xvvzf smalt-0.7.3.tgz 16 | 17 | # because the smalt_wrapper.py finds the binary name based on `uname -i` which is unknown in docker 18 | mv smalt-0.7.3/smalt_x86_64 smalt_unknown 19 | 20 | hg clone https://toolshed.g2.bx.psu.edu/repos/cjav/smalt smalt_deps 21 | cp smalt_deps/smalt_wrapper.py . 22 | 23 | # add smalt tools to PATH (probably different ways to do this) 24 | ln -s /tool/smalt_unknown /usr/bin 25 | ln -s /tool/smalt_wrapper.py /usr/bin 26 | 27 | # make smalt_wrapper executable 28 | chmod a+x /tool/smalt_wrapper.py 29 | 30 | # exit out of docker image and run the below to commit to new container. replace the number '07b...' with container id for the above docker container. 31 | sudo docker commit -m "make smalt_wrapper executable" -a "Aaron Petkau" 07b937918961 apetkau/smalt:v3 32 | 33 | # push to dockerhub 34 | # please see instructions at http://docs.docker.com/userguide/dockerimages/#push-an-image-to-docker-hub 35 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Integrating Docker-based tools within Galaxy 2 | ============================================ 3 | 4 | This document describes a method for integrating [Docker](http://www.docker.com/) based tools within [Galaxy](http://galaxyproject.org/). Docker is a method for wrapping up a tool along with all of it's dependencies into a single container which can be distrubted with the help of [Dockerhub](https://hub.docker.com/). A method to run docker based tools was added to Galaxy in https://bitbucket.org/galaxy/galaxy-central/pull-request/401/allow-tools-and-deployers-to-specify/diff. 5 | 6 | Initial Galaxy and Docker Setup 7 | ------------------------------- 8 | 9 | ### Setup Latest Galaxy 10 | 11 | Please download and setup the latest Galaxy from galaxy-central. More detailed instructions are found at https://wiki.galaxyproject.org/Admin/GetGalaxy but the two main commands you need to run are: 12 | 13 | ```bash 14 | $ hg clone https://bitbucket.org/galaxy/galaxy-central 15 | $ cd galaxy-central 16 | $ sh run.sh 17 | ``` 18 | 19 | ### Setup Docker Test Tool 20 | 21 | A test tool configuration file `catDocker.xml` is included with Galaxy (or at [catDocker.xml](catDocker.xml)). This can be setup with the following commands (run within `galaxy-central` directory). 22 | 23 | 1. Setup `catDocker.xml` tool 24 | 25 | ```bash 26 | $ mkdir tools/docker 27 | $ cp test/functional/tools/catDocker.xml tools/docker/ 28 | ``` 29 | 30 | Now, in the `tool_conf.xml` file please add a new section for this tool: 31 | 32 | ```xml 33 |
34 | 35 |
36 | ``` 37 | 38 | 2. Construct a `job_conf.xml` which instructs Galaxy to run tools docker-based tools using docker. 39 | 40 | Construct a basic `job_conf.xml` with the following command. 41 | 42 | ```bash 43 | cp job_conf.xml.sample_basic job_conf.xml 44 | ``` 45 | 46 | Add a docker destination in `job_conf.xml` to enable running through docker: 47 | 48 | ```xml 49 | 50 | 51 | 52 | true 53 | 54 | 55 | ``` 56 | 57 | More information can be found in the `job_conf.xml.sample_advanced` file that comes with Galaxy. 58 | 59 | 3. Enable docker to run using sudo without a password. 60 | 61 | Add docker runner to sudoers file (replace `galaxy` with the username you are running galaxy under): 62 | 63 | ``` 64 | galaxy ALL = (root) NOPASSWD: SETENV: /usr/bin/docker 65 | ``` 66 | 67 | 4. Start up Galaxy 68 | 69 | ```bash 70 | $ sh run.sh 71 | ``` 72 | 73 | 5. Test 74 | 75 | Run test tool **Concatenate datasets (in docker)** 76 | 77 | Check log file. If the tool ran you should see entries with `docker` like: 78 | 79 | ``` 80 | command is: sudo docker run -e "GALAXY_SLOTS=$GALAXY_SLOTS" -v /home/aaron/Projects/galaxy-central:/home/aaron/Proje 81 | cts/galaxy-central:ro -v /home/aaron/Projects/galaxy-central/tools/docker:/home/aaron/Projects/galaxy-central/tools/docker:ro -v /home/aaron/Projects/galaxy-central/datab 82 | ase/job_working_directory/000/6:/home/aaron/Projects/galaxy-central/database/job_working_directory/000/6:rw -v /home/aaron/Projects/galaxy-central/database/files:/home/aa 83 | ron/Projects/galaxy-central/database/files:rw -w /home/aaron/Projects/galaxy-central/database/job_working_directory/000/6 --net none busybox:ubuntu-14.04 /home/aaron/Projects/galaxy-central/database/job_working_directory/000/6/container.sh; return_code=$?; if [ -f /home/aaron/Projects/galaxy-central/database/job_working_directory/000/6/wo 84 | rking_file ] ; then cp /home/aaron/Projects/galaxy-central/database/job_working_directory/000/6/working_file /home/aaron/Projects/galaxy-central/database/files/000/dataset_10.dat ; fi; sh -c "exit $return_code" 85 | ``` 86 | 87 | Integrating SMALT with Docker 88 | ----------------------------- 89 | 90 | This contains information on how to integrated a more complicated tool (SMALT) with Docker. Please see documentation at [SMALT+Docker](smalt/). 91 | -------------------------------------------------------------------------------- /smalt/README.md: -------------------------------------------------------------------------------- 1 | Integration of SMALT into Galaxy and Docker 2 | =========================================== 3 | 4 | This describes a way to construct a docker image and modify a tool within Galaxy to work with Docker. The tool I use is SMALT from https://toolshed.g2.bx.psu.edu/repository/find_tools?sort=Repository.name&operation=view_or_manage_repository&id=61631a13f8a13237. 5 | 6 | 1. Building a Docker Image 7 | ========================== 8 | 9 | There are two different methods to construct a docker image for a tool: 10 | 11 | 1. Interactively 12 | 2. Using a `Dockerfile` 13 | 14 | 1. Building a Docker Image Interactively 15 | ---------------------------------------- 16 | 17 | The interactive method of constructing a docker image is a good method for installing all the dependencies for a tool if you're not quite sure exactly what commands you need to run to get the tool working. This method involves starting up a docker container, and running commands within this container to get your tool working. Then, you can **commit** this container to an image and save to dockerhub for re-use. 18 | 19 | ### Step 1: Starting up a Docker base Image 20 | 21 | To build a docker image we need a starting point. The base image we will use is **debian/wheezy** since it contains `apt-get` for installing more software. To start up this image in an interactive mode please run: 22 | 23 | ```bash 24 | $ sudo docker run -i -t debian:wheezy 25 | ``` 26 | 27 | This should bring up a prompt that looks like: 28 | 29 | ``` 30 | root@2c1077a38bce:/# 31 | ``` 32 | 33 | Note that the id `2c1077a38bce` can be used later for saving this container to an image. 34 | 35 | ### Step 2: Installing Basic Dependencies 36 | 37 | A few dependencies are required to install SMALT. These can be installed with: 38 | 39 | ```bash 40 | $ apt-get update 41 | $ apt-get install python 42 | $ apt-get install wget 43 | $ apt-get install mercurial 44 | ``` 45 | 46 | ### Step 3: Installing SMALT 47 | 48 | We will install SMALT by downloading the necessary software and copying to `/usr/bin`. This can be accomplished with: 49 | 50 | ```bash 51 | $ mkdir tool 52 | $ cd tool 53 | 54 | $ wget ftp://ftp.sanger.ac.uk/pub4/resources/software/smalt/smalt-0.7.3.tgz 55 | $ tar -xvvzf smalt-0.7.3.tgz 56 | 57 | # because the smalt_wrapper.py finds the binary name based on `uname -i` which is unknown in docker 58 | $ mv smalt-0.7.3/smalt_x86_64 smalt_unknown 59 | 60 | $ hg clone https://toolshed.g2.bx.psu.edu/repos/cjav/smalt smalt_deps 61 | $ cp smalt_deps/smalt_wrapper.py . 62 | 63 | # add smalt tools to /usr/bin so they're on the PATH 64 | $ ln -s /tool/smalt_unknown /usr/bin 65 | $ ln -s /tool/smalt_wrapper.py /usr/bin 66 | 67 | # make smalt_wrapper executable 68 | $ chmod a+x /tool/smalt_wrapper.py 69 | ``` 70 | 71 | You can test out SMALT by trying to run `smalt_unknown` and `smalt_wrapper.py` in the docker container. 72 | 73 | ### Step 4: Building an Image 74 | 75 | To build the docker image from the container, please exit the container and run the following: 76 | 77 | ```bash 78 | $ sudo docker commit -m "make smalt image" -a "Aaron Petkau" 2c1077a38bce apetkau/smalt-galaxy 79 | ``` 80 | 81 | Please fill in the appropriate information for your image. In particular, make sure the container id `2c1077a38bce` is correct. 82 | 83 | To push this image to dockerhub you can run: 84 | 85 | ```bash 86 | $ sudo docker push apetkau/smalt-galaxy 87 | ``` 88 | 89 | 2. Building an image using a `Dockerfile` 90 | ----------------------------------------- 91 | 92 | Alternatively, instead of building an image interactively, you can build an image with a `Dockerfile`. An example Dockerfile can be found in this repository at [Dockerfile](Dockerfile). To build an image please run: 93 | 94 | ```bash 95 | $ sudo docker build -t apetkau/smalt-galaxy . 96 | ``` 97 | 98 | More information on Dockerfiles can be found at https://docs.docker.com/reference/builder/. 99 | 100 | 2. Installing Tool configuration 101 | ================================ 102 | 103 | ### Installing Example file 104 | 105 | Once a Docker image has been built, it can be integrated into a tool by modifying the tool configuration XML file. For SMALT, the configuration file is [smalt_wrapper.xml](smalt_wrapper.xml). This is based on https://toolshed.g2.bx.psu.edu/repos/cjav/smalt/file/54855bd8d107/smalt_wrapper.xml. And can be installed by running: 106 | 107 | ```bash 108 | $ cp smalt_wrapper.xml galaxy-central/tools/docker/smalt_wrapper.xml 109 | ``` 110 | 111 | Then, please add this tool to the `tool_conf.xml` by adding: 112 | 113 | ```xml 114 | 115 | ``` 116 | 117 | ### List of Changes 118 | 119 | The exact changes you I needed to make are: 120 | 121 | 1. I added the specific docker image name to the requirements by changing: 122 | 123 | ```xml 124 | 125 | smalt 126 | 127 | ``` 128 | 129 | To 130 | 131 | ```xml 132 | 133 | apetkau/smalt-galaxy 134 | 135 | ``` 136 | 137 | 2. I had to remove `interpreter` from the command attribute by changing 138 | 139 | ```xml 140 | 141 | smalt_wrapper.py 142 | ``` 143 | 144 | To 145 | 146 | ```xml 147 | 148 | smalt_wrapper.py 149 | ``` 150 | 151 | 3. Running Galaxy 152 | ================= 153 | 154 | Once the tool is installed, please run Galaxy. And test out the tool. Some example files (reference.fasta and reads.fastq) are included. To make sure it's running in docker you can look for the following `sudo docker run` in the logs: 155 | 156 | ``` 157 | galaxy.jobs.runners DEBUG 2014-06-28 16:50:00,930 (18) command is: sudo docker run -e "GALAXY_SLOTS=$GALAXY_SLOTS" -v /home/aaron/Projects/galaxy-central:/home/aaron/Proj 158 | ects/galaxy-central:ro -v /home/aaron/Projects/galaxy-central/tools/docker:/home/aaron/Projects/galaxy-central/tools/docker:ro -v /home/aaron/Projects/galaxy-central/data 159 | base/job_working_directory/000/18:/home/aaron/Projects/galaxy-central/database/job_working_directory/000/18:rw -v /home/aaron/Projects/galaxy-central/database/files:/home 160 | /aaron/Projects/galaxy-central/database/files:rw -w /home/aaron/Projects/galaxy-central/database/job_working_directory/000/18 --net none apetkau/smalt:v3 /home/aaron/Proj 161 | ects/galaxy-central/database/job_working_directory/000/18/container.sh 162 | ``` 163 | -------------------------------------------------------------------------------- /smalt/smalt_wrapper.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | apetkau/smalt-galaxy 4 | 5 | maps query reads onto the reference sequences 6 | 7 | smalt_wrapper.py 8 | --threads="4" 9 | 10 | ## reference source 11 | --fileSource=$genomeSource.refGenomeSource 12 | #if $genomeSource.refGenomeSource == "history": 13 | ##build index on the fly 14 | --ref="${genomeSource.ownFile}" 15 | --dbkey=$dbkey 16 | #else: 17 | ##use precomputed indexes 18 | --ref="${genomeSource.indices.fields.path}" 19 | --do_not_build_index 20 | #end if 21 | 22 | ## input file(s) 23 | --input1=$paired.input1 24 | #if $paired.sPaired == "paired": 25 | --input2=$paired.input2 26 | #end if 27 | 28 | ## output file 29 | --output=$output 30 | 31 | ## run parameters 32 | --genAlignType=$paired.sPaired 33 | --params=$params.source_select 34 | #if $params.source_select != "pre_set": 35 | --scorDiff=$params.scorDiff 36 | #if $paired.sPaired == "paired": 37 | --insertMax=$params.insertMax 38 | --insertMin=$params.insertMin 39 | --pairTyp=$params.pairTyp 40 | #end if 41 | --minScor=$params.minScor 42 | --partialAlignments=$params.partialAlignments 43 | --minBasq=$params.minBasq 44 | --seed=$params.seed 45 | --complexityWeighted=$params.complexityWeighted 46 | --exhaustiveSearch=$params.cExhaustiveSearch.exhaustiveSearch 47 | #if $params.cExhaustiveSearch.exhaustiveSearch == "true" 48 | --minCover=$params.cExhaustiveSearch.minCover 49 | #end if 50 | --minId=$params.minId 51 | #end if 52 | 53 | ## suppress output SAM header 54 | --suppressHeader=$suppressHeader 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 125 | 126 | 127 | 128 | 129 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | **What it does** 139 | 140 | SMALT is a pairwise sequence alignment program for the experimentingcient mapping of DNA sequencing reads onto genomic reference sequences. It uses a combination of short-word hashing and dynamic programming. Most types of sequencing platforms are supported including paired-end sequencing reads. 141 | 142 | ------ 143 | 144 | Please cite the website "http://www.sanger.ac.uk/resources/software/smalt/". 145 | 146 | ------ 147 | 148 | **Know what you are doing** 149 | 150 | .. class:: warningmark 151 | 152 | There is no such thing (yet) as an automated gearshift in short read mapping. It is all like stick-shift driving in San Francisco. In other words = running this tool with default parameters will probably not give you meaningful results. A way to deal with this is to **understand** the parameters by carefully reading the `documentation`__ and experimenting. Fortunately, Galaxy makes experimenting easy. 153 | 154 | .. __: http://www.sanger.ac.uk/resources/software/smalt/ 155 | 156 | ------ 157 | 158 | **Input formats** 159 | 160 | SMALT accepts files in Sanger FASTQ format (galaxy type *fastqsanger*). Use the FASTQ Groomer to prepare your files. 161 | 162 | ------ 163 | 164 | **A Note on Built-in Reference Genomes** 165 | 166 | The default variant for all genomes is "Full", defined as all primary chromosomes (or scaffolds/contigs) including mitochondrial plus associated unmapped, plasmid, and other segments. When only one version of a genome is available in this tool, it represents the default "Full" variant. Some genomes will have more than one variant available. The "Canonical Male" or sometimes simply "Canonical" variant contains the primary chromosomes for a genome. For example a human "Canonical" variant contains chr1-chr22, chrX, chrY, and chrM. The "Canonical Female" variant contains the primary chromosomes excluding chrY. 167 | 168 | ------ 169 | 170 | **Outputs** 171 | 172 | The output is in SAM format. 173 | 174 | ------- 175 | 176 | **SMALT parameter list** 177 | 178 | This is an exhaustive list of SMALT options: 179 | 180 | For **map**:: 181 | 182 | -a 183 | Output explicit alignments along with the mappings. 184 | 185 | -c <mincover> 186 | Only consider mappings where the k-mer word seeds cover the query read to 187 | a minimum extent. If <mincover> is an integer or floating point > 1.0, at 188 | least this many bases of the read must be covered by k-mer word seeds. If 189 | <mincover> is a floating point <= 1.0, it specifies the fraction of the 190 | query read length that must be covered by k-mer word seeds. This option 191 | is only valid in conjunction with the '-x' flag. 192 | 193 | -d <scordiff> 194 | Set a threshold of the Smith-Waterman alignment score relative to the 195 | maximum score. When mapping single reads, all alignments are reported 196 | that have Smith-Waterman scores within <scorediff> of the maximum. 197 | Mappings with lower scores are skipped. If <scorediff> is set to to a 198 | value < 0, all alignments are printed that have scores above the 199 | threshold specified with the '-m <minscor>' option. 200 | For paired reads, only a value of 0 is supported. With the option '-d 0' 201 | all aligments (pairings) with the best score are output. By default 202 | (without the option '-d 0') single reads/mates with multiple best mappings 203 | are reported as 'not mapped'. 204 | 205 | -f <format> 206 | Specifies the output format. <format> can be either 'bam', 'cigar', 'gff', 207 | 'sam' (default), 'samsoft' or 'ssaha'. Optional extension 'sam:nohead,clip' 208 | (see manual) 209 | 210 | -F <inform> 211 | Specifies the input format. <inform> can be either 'fastq' (default), 212 | 'sam' or 'bam' (see: samtools.sourceforge.net). SAM and BAM formats 213 | require additional libraries to be installed. 214 | 215 | -g <insfil> 216 | Use the distribution of insert sizes stored in the file <insfil>. This 217 | file is in ASCII format and can be generated using the 'sample' task see 218 | 'smalt sample -H' for help). 219 | 220 | -H 221 | Print these instructions. 222 | 223 | -i <insertmax> 224 | Maximum insert size (only in paired-end mode). The default is 500. 225 | 226 | -j <insertmin> 227 | Minimum insert size (only in paired-end mode). The default is 0. 228 | 229 | -l <pairtyp> 230 | Type of read pair library. <pairtyp> can be either 'pe', i.e. for 231 | the Illumina paired-end library for short inserts (|--> <--|). 'mp' 232 | for the Illumina mate-pair library for long inserts (<--| |-->) or 233 | 'pp' for mates sequenced on the same strand (|--> |-->). 'pe' is the 234 | default. 235 | 236 | -m <minscor> 237 | Sets an absolute threshold of the Smith-Waterman scores. Mappings with 238 | scores below that threshold will not be reported. The default is 239 | <minscor> = <wordlen> + <stepsiz> - 1 240 | 241 | -n <nthreads> 242 | Run smalt using mutiple threads. <nthread> is the number of additional 243 | threads forked from the main thread. The order of the reads in the 244 | input files is not preserved for the output unless '-O' is also specified. 245 | 246 | -o <oufilnam> 247 | Write mapping output (e.g. SAM lines) to a separate file. If this option 248 | is not specified, mappings are written to standard output together with 249 | other messages. 250 | 251 | -O 252 | Output mappings in the order of the reads in the input files when using 253 | multiple threads (option '-n <nthreads>'). 254 | 255 | -p 256 | Report partial alignments if they are complementary on the read (split 257 | reads). 258 | 259 | -q <minbasq> 260 | Sets a base quality threshold (0 <= minbasq <= 10, default 0). 261 | K-mer words of the read with nucleotides that have a base quality below 262 | this threshold are not looked up in the hash index. 263 | 264 | -r <seed> 265 | If <seed> >= 0 report an alignment selected at random where there are 266 | multiple mappings with the same best alignment score. With <seed> = 0 267 | (default) a seed is derived from the current calendar time. If <seed> 268 | < 0 reads with multiple best mappings are reported as 'not mapped'. 269 | 270 | -T <tmp_dir> 271 | Write temporary files to directory <tmp_dir> (used with input files in 272 | SAM/BAM format). 273 | 274 | -w 275 | Smith-Waterman scores are complexity weighted. 276 | 277 | -x 278 | This flag triggers a more exhaustive search for alignments at the cost 279 | of decreased speed. In paired-end mode each mate is mapped independently. 280 | (By default the mate with fewer hits in the hash index is mapped first 281 | and the vicinity is searched for mappings of its mate.) 282 | 283 | -y <minid> 284 | Sets an identity threshold for a mapping to be reported (default: 0). 285 | <minid> specifies the number of exactly matching nucleotides either as 286 | a positive integer or as a fraction of the read length (<= 1.0). 287 | 288 | 289 | 290 | 291 | 292 | --------------------------------------------------------------------------------