bisulfite mapper (bowtie)SCRIPT_PATHsamtoolsbowtie
bismark_wrapper.py
--bismark_path \$SCRIPT_PATH
##
## Bismark Genome Preparation, if desired.
##
## Handle reference file.
#if $refGenomeSource.genomeSource == "history":
--own-file=$refGenomeSource.ownFile
#else:
--indexes-path ${refGenomeSource.index.fields.path}
#end if
##
## Input parameters
##
#if $singlePaired.sPaired == "single":
--single-paired $singlePaired.input_singles
#if $singlePaired.input_singles.ext == "fastqillumina":
--phred64-quals
--fastq
#elif $singlePaired.input_singles.ext == "fastqsanger":
--fastq
#elif $singlePaired.input_singles.ext == "fasta":
--fasta
#end if
#else:
--mate-paired
#set $mate1 = list()
#set $mate2 = list()
#for $mate_pair in $singlePaired.mate_list
$mate1.append( str($mate_pair.input_mate1) )
$mate2.append( str($mate_pair.input_mate2) )
#end for
--mate1 #echo ','.join($mate1)
--mate2 #echo ','.join($mate2)
#if $singlePaired.mate_list[0].input_mate1.ext == "fastqillumina":
--phred64-quals
--fastq
#elif $singlePaired.mate_list[0].input_mate1.ext == "fastqsanger":
--fastq
#elif $singlePaired.mate_list[0].input_mate1.ext == "fasta":
--fasta
#end if
-I $singlePaired.minInsert
-X $singlePaired.maxInsert
#end if
## for now hardcode the value for the required memory per thread in --best mode
--chunkmbs 512
#if $params.settingsType == "custom":
## default 20
--seed-len $params.seed_len
## default 0
--seed-mismatches $params.seed_mismatches
## default 70
##--maqerr $params.maqerr
## default unlimited
#if $params.qupto != 0:
--qupto $params.qupto
#end if
#if $params.skip_reads != 0:
--skip-reads $params.skip_reads
#end if
#if $params.bismark_stdout:
--stdout $output_stdout
#end if
#if $params.isReportOutput:
--output-report-file $report_file
#end if
#end if
##
## Output parameters.
##
--output $output
##$suppress_header
#if str( $singlePaired.sPaired ) == "single"
#if $output_unmapped_reads_l
--output-unmapped-reads $output_unmapped_reads_l
#end if
#if $output_suppressed_reads_l
--output-suppressed-reads $output_suppressed_reads_l
#end if
#else
#if $output_unmapped_reads_l and $output_unmapped_reads_r
--output-unmapped-reads-l $output_unmapped_reads_l
--output-unmapped-reads-r $output_unmapped_reads_r
#end if
#if $output_suppressed_reads_l and $output_suppressed_reads_l
--output-suppressed-reads-l $output_suppressed_reads_l
--output-suppressed-reads-r $output_suppressed_reads_r
#end if
#end if
((
params['settingsType'] == "custom" and
params['isReportOutput'] is True
))
((
params['settingsType'] == "custom" and
params['bismark_stdout'] is True
))
((
params['settingsType'] == "custom" and
params['suppressed_read_file'] is True
))
singlePaired['sPaired'] == "paired"params['settingsType'] == "custom"params['supressed_read_file'] is True
((
params['settingsType'] == "custom" and
params['unmapped_read_file'] is True
))
singlePaired['sPaired'] == "paired"params['settingsType'] == "custom"params['unmapped_read_file'] is True
**What it does**
Bismark_ is a bisulfite mapper and methylation caller. Bismark takes in FastA or FastQ files and aligns the
reads to a specified bisulfite genome. Sequence reads are transformed into a bisulfite converted forward strand
version (C->T conversion) or into a bisulfite treated reverse strand (G->A conversion of the forward strand).
Each of these reads are then aligned to bisulfite treated forward strand index of a reference genome
(C->T converted) and a bisulfite treated reverse strand index of the genome (G->A conversion of the
forward strand, by doing this alignments will produce the same positions). These 4 instances of Bowtie (1 or 2)
are run in parallel. The sequence file(s) are then read in again sequence by sequence to pull out the original
sequence from the genome and determine if there were any protected C's present or not.
.. _Bismark: http://www.bioinformatics.babraham.ac.uk/projects/bismark/
As of version 0.7.0 Bismark will only run 2 alignment threads for OT and OB in parallel, the 4 strand mode can be
re-enabled by using non_directional mode.
It is developed by Krueger F and Andrews SR. at the Babraham Institute. Krueger F, Andrews SR. (2011) Bismark: a flexible aligner and methylation caller for Bisulfite-Seq applications. Bioinformatics, 27, 1571-2.
------
**Know what you are doing**
.. class:: warningmark
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.
.. __: http://www.bioinformatics.babraham.ac.uk/projects/bismark/
.. class:: warningmark
Make sure all your input reads are in the correct and same format. If thats not the case please adjust/convert the filetype with galaxy's build-in converters.
------
**Input formats**
Bismark accepts files in either Sanger FASTQ format (galaxy type *fastqsanger*), Illumina FASTQ format (galaxy type *fastqillumina*) or FASTA format (galaxy type *fasta*). Use the FASTQ Groomer to prepare your files.
------
**A Note on Built-in Reference Genomes**
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.
------
The final output of Bismark is in SAM format by default.
**Outputs**
The output is in SAM format, and has the following columns::
Column Description
-------- --------------------------------------------------------
1 QNAME seq-ID
2 FLAG this flag tries to take the strand a bisulfite read
originated from into account
(this is different from ordinary DNA alignment flags!)
3 RNAME chromosome
4 POS start position
5 MAPQ always 255
6 CIGAR extended CIGAR string
7 MRNM Mate Reference sequence NaMe ('=' if same as RNAME)
8 MPOS 1-based Mate POSition
9 ISIZE Inferred insert SIZE
10 SEQ query SEQuence on the same strand as the reference
11 QUAL Phred33 scale
12 NM-tag edit distance to the reference)
13 XX-tag base-by-base mismatches to the reference.
This does not include indels.
14 XM-tag methylation call string
15 XR-tag read conversion state for the alignment
16 XG-tag genome conversion state for the alignment
Each read of paired-end alignments is written out in a separate line in the above format.
It looks like this (scroll sideways to see the entire example)::
QNAME FLAG RNAME POS MAPQ CIAGR MRNM MPOS ISIZE SEQ QUAL OPT
HWI-EAS91_1_30788AAXX:1:1:1761:343 4 * 0 0 * * 0 0 AAAAAAANNAAAAAAAAAAAAAAAAAAAAAAAAAAACNNANNGAGTNGNNNNNNNGCTTCCCACAGNNCTGG hhhhhhh;;hhhhhhhhhhh^hOhhhhghhhfhhhgh;;h;;hhhh;h;;;;;;;hhhhhhghhhh;;Phhh
HWI-EAS91_1_30788AAXX:1:1:1578:331 4 * 0 0 * * 0 0 GTATAGANNAATAAGAAAAAAAAAAATGAAGACTTTCNNANNTCTGNANNNNNNNTCTTTTTTCAGNNGTAG hhhhhhh;;hhhhhhhhhhhhhhhhhhhhhhhhhhhh;;h;;hhhh;h;;;;;;;hhhhhhhhhhh;;hhVh
-------
**Bismark settings**
All of the options have a default value. You can change any of them. If any Bismark function is missing please contact the tool author or your Galaxy admin.
------
**Bismark parameter list**
This is an exhaustive list of Bismark options.
Input::
--singles A comma- or space-separated list of files containing the reads to be aligned (e.g.
lane1.fq,lane2.fq lane3.fq). Reads may be a mix of different lengths. Bismark will
produce one mapping result and one report file per input file.
-1 mates1 Comma-separated list of files containing the #1 mates (filename usually includes
"_1"), e.g. flyA_1.fq,flyB_1.fq). Sequences specified with this option must
correspond file-for-file and read-for-read with those specified in mates2.
Reads may be a mix of different lengths. Bismark will produce one mapping result
and one report file per paired-end input file pair.
-2 mates2 Comma-separated list of files containing the #2 mates (filename usually includes
"_2"), e.g. flyA_1.fq,flyB_1.fq). Sequences specified with this option must
correspond file-for-file and read-for-read with those specified in mates1.
Reads may be a mix of different lengths.
-q/--fastq The query input files (specified as mate1,mate2 or singles are FASTQ
files (usually having extension .fg or .fastq). This is the default. See also
--solexa-quals.
-f/--fasta The query input files (specified as mate1,mate2 or singles are FASTA
files (usually havin extension .fa, .mfa, .fna or similar). All quality values
are assumed to be 40 on the Phred scale.
-s/--skip INT Skip (i.e. do not align) the first INT reads or read pairs from the input.
-u/--upto INT Only aligns the first INT reads or read pairs from the input. Default: no limit.
--phred33-quals FASTQ qualities are ASCII chars equal to the Phred quality plus 33. Default: on.
--phred64-quals FASTQ qualities are ASCII chars equal to the Phred quality plus 64. Default: off.
--solexa-quals Convert FASTQ qualities from solexa-scaled (which can be negative) to phred-scaled
(which can't). The formula for conversion is:
phred-qual = 10 * log(1 + 10 ** (solexa-qual/10.0)) / log(10). Used with -q. This
is usually the right option for use with (unconverted) reads emitted by the GA
Pipeline versions prior to 1.3. Works only for Bowtie 1. Default: off.
--solexa1.3-quals Same as --phred64-quals. This is usually the right option for use with (unconverted)
reads emitted by GA Pipeline version 1.3 or later. Default: off.
Alignment::
-n/--seedmms INT The maximum number of mismatches permitted in the "seed", i.e. the first L base pairs
of the read (where L is set with -l/--seedlen). This may be 0, 1, 2 or 3 and the
default is 1. This option is only available for Bowtie 1 (for Bowtie 2 see -N).
-l/--seedlen The "seed length"; i.e., the number of bases of the high quality end of the read to
which the -n ceiling applies. The default is 28. Bowtie (and thus Bismark) is faster for
larger values of -l. This option is only available for Bowtie 1 (for Bowtie 2 see -L).
-e/--maqerr INT Maximum permitted total of quality values at all mismatched read positions throughout
the entire alignment, not just in the "seed". The default is 70. Like Maq, bowtie rounds
quality values to the nearest 10 and saturates at 30. This value is not relevant for
Bowtie 2.
--chunkmbs INT The number of megabytes of memory a given thread is given to store path descriptors in
--best mode. Best-first search must keep track of many paths at once to ensure it is
always extending the path with the lowest cumulative cost. Bowtie tries to minimize the
memory impact of the descriptors, but they can still grow very large in some cases. If
you receive an error message saying that chunk memory has been exhausted in --best mode,
try adjusting this parameter up to dedicate more memory to the descriptors. This value
is not relevant for Bowtie 2. Default: 512.
-I/--minins INT The minimum insert size for valid paired-end alignments. E.g. if -I 60 is specified and
a paired-end alignment consists of two 20-bp alignments in the appropriate orientation
with a 20-bp gap between them, that alignment is considered valid (as long as -X is also
satisfied). A 19-bp gap would not be valid in that case. Default: 0.
-X/--maxins INT The maximum insert size for valid paired-end alignments. E.g. if -X 100 is specified and
a paired-end alignment consists of two 20-bp alignments in the proper orientation with a
60-bp gap between them, that alignment is considered valid (as long as -I is also satisfied).
A 61-bp gap would not be valid in that case. Default: 500.
Output::
--non_directional The sequencing library was constructed in a non strand-specific manner, alignments to all four
bisulfite strands will be reported. Default: OFF.
(The current Illumina protocol for BS-Seq is directional, in which case the strands complementary
to the original strands are merely theoretical and should not exist in reality. Specifying directional
alignments (which is the default) will only run 2 alignment threads to the original top (OT)
or bottom (OB) strands in parallel and report these alignments. This is the recommended option
for sprand-specific libraries).
--sam-no-hd Suppress SAM header lines (starting with @). This might be useful when very large input files are
split up into several smaller files to run concurrently and the output files are to be merged.
--quiet Print nothing besides alignments.
--vanilla Performs bisulfite mapping with Bowtie 1 and prints the 'old' output (as in Bismark 0.5.X) instead
of SAM format output.
-un/--unmapped Write all reads that could not be aligned to a file in the output directory. Written reads will
appear as they did in the input, without any translation of quality values that may have
taken place within Bowtie or Bismark. Paired-end reads will be written to two parallel files with _1
and _2 inserted in their filenames, i.e. _unmapped_reads_1.txt and unmapped_reads_2.txt. Reads
with more than one valid alignment with the same number of lowest mismatches (ambiguous mapping)
are also written to _unmapped_reads.txt unless the option --ambiguous is specified as well.
--ambiguous Write all reads which produce more than one valid alignment with the same number of lowest
mismatches or other reads that fail to align uniquely to a file in the output directory.
Written reads will appear as they did in the input, without any of the translation of quality
values that may have taken place within Bowtie or Bismark. Paired-end reads will be written to two
parallel files with _1 and _2 inserted in theit filenames, i.e. _ambiguous_reads_1.txt and
_ambiguous_reads_2.txt. These reads are not written to the file specified with --un.
-o/--output_dir DIR Write all output files into this directory. By default the output files will be written into
the same folder as the input file(s). If the specified folder does not exist, Bismark will attempt
to create it first. The path to the output folder can be either relative or absolute.
--temp_dir DIR Write temporary files to this directory instead of into the same directory as the input files. If
the specified folder does not exist, Bismark will attempt to create it first. The path to the
temporary folder can be either relative or absolute.