Skip to content
Commits on Source (13)
......@@ -24,6 +24,11 @@ mvn install
Upon first build all dependencies will be downloaded to the repo, this may require some time.
Also special parameter "-o" allows to use local repostiory after downloading the samples once:
mvn install -o
The current online repostiory org.bioinfo is not available due to some reasons, but there is a local version to download available
3) Run Qualimap
The built jar can be found in target/install subdir of sources folder.
......
#/bin/bash
export QUALIMAP_VERSION=`head pom.xml | grep "<version>" | awk 'BEGIN{FS="<";}{print $2}' | awk 'BEGIN{FS=">";}{print $2}'`
export OUTPUT_DIR=qualimap-v$QUALIMAP_VERSION-src
export TIME=`date +%d-%m-%y`
mkdir $OUTPUT_DIR
mvn license:check -Dyear=2016
rc=$?
if [[ $rc != 0 ]] ; then
exit $rc
fi
git checkout-index --prefix=$OUTPUT_DIR/ -a
zip -r qualimap_v${QUALIMAP_VERSION}_src.zip $OUTPUT_DIR
#cleanup
rm -rf $OUTPUT_DIR
#/bin/bash
# working dir of this script should be ROOT of the sources
# get qualimap version from pom.xml
export QUALIMAP_VERSION=`head pom.xml | grep "<version>" | awk 'BEGIN{FS="<";}{print $2}' | awk 'BEGIN{FS=">";}{print $2}'`
export QUALIMAP_DIR=qualimap_v$QUALIMAP_VERSION
mvn install
mkdir $QUALIMAP_DIR
cp -vR target/install/* $QUALIMAP_DIR
make -C doc latexpdf
cp -v doc/_build/latex/QualimapManual.pdf $QUALIMAP_DIR
zip -r qualimap_v${QUALIMAP_VERSION}.zip $QUALIMAP_DIR
#cleanup
rm -rf $QUALIMAP_DIR
Version Release History
=======================
Version 2.2 - January 29, 2016
------------------------------
* BAM QC: added a novel option to control the skipping of duplicate alignments (reported by Patrik Smeds and Vlad Saveliev ) The default mode was switched to marked duplicates only.
* BAM QC: fixed issue with processing alignments (reported by Roberto Spreafico)
* BAM QC: fixed fail when zero mapped reads inside of region (reported by Jochen Singer)
* BAM QC: improved the number of windows output (reported by Alexander Peltzer)
* BAM QC: integrate mm10 support to command line
* BAM QC: fixed insert size histogram computation
* Multisample BAM QC: implmeneted support for per sample groups/conditions
* Multisample BAM QC: added novel statistics report and global coverage plot (suggested by Angela Heck )
* RNA-seq QC: fixed the numbers of reads computation for paired-end reads (reported by Priyanka Jain )
* Documentation: updates in BAM QC, Multisample BAM QC, RNA-seq QC
Version 2.1.3 - October 29, 2015
----------------------------------
* Fixed a problem with removal of provided existing output folder in command line mode (reported by Nathan McNeil)
* BAM QC: added the mm10 GC-content distribution template (suggested by Priyank Shukla )
* BAM QC: fixed issue with report of duplication rate in regions ( thanks to Christian for report )
* BAM QC: stabilzed default text output number format (reported by Max Koeppel and Henri-Jean Garchon )
* Counts QC: fixed issues with single sample adaption ( reported by Yung-Chih Lai )
* Documentation: update introudction, BAM QC, RNA-seq QC and F.A.Q. blocks
Version 2.1.2 - September 23, 2015
----------------------------------
......
......@@ -63,7 +63,7 @@ done
shell_path=`dirname "$prg"`;
absolute=`echo $shell_path | grep "^/"`;
if [ -z $absolute ]
if [ -z "$absolute" ]
then
export QUALIMAP_HOME="`pwd`/$shell_path"
else
......@@ -77,7 +77,7 @@ fi
set -o errexit
java $java_options -classpath $QUALIMAP_HOME/qualimap.jar:$QUALIMAP_HOME/lib/* org.bioinfo.ngs.qc.qualimap.main.NgsSmartMain "${ARGS[@]}"
java $java_options -classpath "$QUALIMAP_HOME"/qualimap.jar:"$QUALIMAP_HOME"/lib/* org.bioinfo.ngs.qc.qualimap.main.NgsSmartMain "${ARGS[@]}"
if [ -n "$OUTPUT_ADDITIONAL_HELP" ]; then
echo "Special arguments: "
......
qualimap (2.1.3+dfsg-1) UNRELEASED; urgency=low
qualimap (2.2.1+dfsg-1) UNRELEASED; urgency=low
* Initial release (Closes: #<bug>)
TODO: http://www.massapi.com/package/org/bioinfo/index.html
TODO: What package provides /usr/share/java/sam.jar
-- Andreas Tille <tille@debian.org> Tue, 17 Nov 2015 14:47:59 +0100
-- Andreas Tille <tille@debian.org> Tue, 30 Oct 2018 09:15:18 +0100
......@@ -3,7 +3,7 @@ Maintainer: Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.
Uploaders: Andreas Tille <tille@debian.org>
Section: science
Priority: optional
Build-Depends: debhelper (>= 9),
Build-Depends: debhelper (>= 11~),
default-jdk,
javahelper,
maven-debian-helper,
......@@ -11,12 +11,11 @@ Build-Depends: debhelper (>= 9),
libmaven-dependency-plugin-java,
libmaven-install-plugin-java,
picard-tools,
libsam-java,
libmiglayout-java,
libejml-java
Standards-Version: 3.9.6
Vcs-Browser: https://anonscm.debian.org/cgit/debian-med/qualimap.git
Vcs-Git: git://anonscm.debian.org/debian-med/qualimap.git
Standards-Version: 4.2.1
Vcs-Browser: https://salsa.debian.org/med-team/qualimap
Vcs-Git: https://salsa.debian.org/med-team/qualimap.git
Homepage: http://qualimap.bioinfo.cipf.es/
Package: qualimap
......
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
Upstream-Name: QualiMap
Upstream-Contact: https://groups.google.com/forum/#!forum/qualimap
Source: http://qualimap.bioinfo.cipf.es/
......
......@@ -2,19 +2,6 @@
# DH_VERBOSE := 1
# some helpful variables - uncomment them if needed
# shamelessly stolen from http://jmtd.net/log/awk/
#DEBVERS := $(shell dpkg-parsechangelog | awk '/^Version:/ {print $$2}')
#VERSION := $(shell echo '$(DEBVERS)' | sed -e 's/^[0-9]*://' -e 's/-.*//')
#DEBFLAVOR := $(shell dpkg-parsechangelog | awk '/^Distribution:/ {print $$2}')
#DEBPKGNAME := $(shell dpkg-parsechangelog | awk '/^Source:/ {print $$2}')
#DEBIAN_BRANCH := $(shell awk 'BEGIN{FS="[= ]+"} /debian-branch/ {print $$2}' debian/gbp.conf)
#GIT_TAG := $(subst ~,_,$(VERSION))
# alternatively to manually set those variables, you can
# include /usr/share/dpkg/default.mk
# and use what is set there.
JAVA_HOME=/usr/lib/jvm/default-java
%:
......@@ -38,5 +25,3 @@ override_dh_auto_configure:
-Dversion=fake \
-Dpackaging=jar
get-orig-source:
uscan --verbose --force-download --repack --compress xz
......@@ -55,12 +55,13 @@ Input Parameters
:guilabel:`Compare GC content distribution with`
This allows to **compare** the **GC distribution** of the sample with the selected pre-calculated **genome** GC distribution. Currently two genome distributions are available: human (hg19) and mouse (mm9). More species will be included in future releases.
:guilabel:`Skip duplicates`
This option allows to skip duplicated alignments from analysis. If the duplicates are not flagged in BAM file, then they will be detected by Qualimap. Type of skipped duplicates will be shown in report.
:guilabel:`Detect overlapping paired-end reads`
In case of small insert size the paired-end read alignmetns might overlap in high proportion. Using this option detection of overlapping pairs can be activated. Additionally, adapted mean coverage is calcualted based on extraction of pair overlap-region.
:guilabel:`Skip duplicates`
This option allows to skip duplicate alignments from analysis. There are three modes of this option. By default, the duplicates are skipped only if they are flagged in BAM file and remaining alignments are futher analyzed by Qualimap. Additionally it is possible to skip only the duplicates detected by Qualimap method (based on duplication rate estimation) or aplly both approaches. Number of skipped duplicates will be shown in the report.
Advanced parameters
"""""""""""""""""""
......@@ -242,14 +243,18 @@ Output
*Reads alignment*
The assignment of read counts per-category:
- total number of mapped reads
- total number of mapped reads (left/right in case of paired-end reads, secondary alignments are ignored)
- total number of alignments
- number of secondary alignments (duplicates are marked as SAM flag)
- number of non-unique alignments (SAM format "NH" tag of a read is more than one)
- number of reads aligned to genes, also without any feature (intronic and intergenic)
- number of ambiguous alignments
- number of secondary alignments ( SAM flag for multi-mapped reads )
- number of non-unique alignments ( SAM format "NH" tag of a read is more than one, by default not taken into account during further analysis )
- number of reads aligned to genes
- number of ambiguous alignments (belong to several genes, ignored during counting procedure)
- number of alignments without any feature (intronic and intergenic)
- number of ignored alignments when the chromsome is not found in annotation
- number of unmapped reads.
Additionally, if default *non-strand-specific* protocol is stated in the settings, *forward-* and *reverse-strand-specificitiy* is estimated based on the strands of the read alginments. Similarity of computed proportions (i.e ~0.5 forward, ~0.5 reverse) confirms non-strand-specificity, while domination of a certain strand estimates possible protocol ( i.e. reverse SSP in case of ~0.1 forward, ~0.9 reverse)
*Transcript coverage profile*
The profile provides ratios between mean coverage at the 5' region, the 3' region and the whole transcript. The 5' bias is the ratio between mean coverage at the 5' region and the whole transcript, while the 3' bias is the ratio between mean coverage at the 3' region and the whole transcript. 5'-3' bias is the ratio between both biases.
......@@ -258,7 +263,7 @@ Output
*Reads genomic origin*
Shows how many alignments fall into exonic, intronic and intergenic regions along with number of intronic/intergenic alignments overlapping exons. Exonic region includes 5'UTR,protein coding region and 3'UTR region.
Shows how many alignments fall into exonic, intronic and intergenic regions along with a number of intronic/intergenic alignments overlapping exons. Exonic region includes 5'UTR,protein coding region and 3'UTR region.
*Junction analysis*
......@@ -477,9 +482,13 @@ When **Compare conditions** option is selected, additional plots comparing data
Multi-sample BAM QC
-------------------
Very often in genomics one has to work with multiple samples, which could represent sequencing results from either biological replicates or different conditions. For example, to reliably detect significant mutations from sequencing data in cancer it is required to analyze tens or even hundreds of samples from matched normal-tumor data. When performing such large scale experiments it is always important to know if all samples pass the quality controls. To detect possible outliers one can compare results of :ref:`BAM QC analysis<bamqc>` performed on each individual sample.
Very often in genomics one has to work with multiple samples, which could represent sequencing results from either biological replicates or different conditions. For example, to reliably detect significant mutations from sequencing data in cancer it is required to analyze tens or even hundreds of samples from matched normal-tumor data. When performing such large scale experiments it is always important to know if all samples belonging to a specific group pass the quality controls. To detect possible outliers one can compare results of :ref:`BAM QC analysis<bamqc>` performed on each individual sample.
QualiMap provides an automated solution for this task. Basically, the QC metrics computed in *BAM QC analysis* are combined together for all samples. Additionally **Principal Component Analysis** is performed to analyze variability and detect outliers.
QualiMap provides an automated solution for this task. Basically, the QC metrics computed in *BAM QC analysis* are combined together for all samples. Additionally **Principal Component Analysis** is performed to analyze variability and detect outliers.
.. note::
Starting from version 2.2 it is possible to assign groups marking biolobical or technical conditions of the samples.
One can apply multi-sample analysis for precomputed results of QualiMap BAM QC or directly for raw BAM files. In latter case firstly BAM QC analysis will be performed for each input file and then multi-sample analysis will be executed.
......@@ -488,9 +497,13 @@ To start a new multi-sample BAM QC analysis activate main menu item :menuselecti
Examples
^^^^^^^^
- `gH2AX Chip-seq data: 4 conditions, 3 replicates per condition <http://kokonech.github.io/qualimap/gh2ax_multibamqc/multisampleBamQcReport.html>`_. Example report for a ChIP-seq experiment having 12 samples.
- `gh2ax chip-seq data: 12 samples <http://rawgit.com/kokonech/kokonech.github.io/master/qualimap/gh2ax_multibamqc/multisampleBamQcReport.html>`_: example report for a ChIP-seq experiment having 12 samples.
- `gh2ax chip-seq data: 4 conditions, 3 replicates per condition <http://rawgit.com/kokonech/kokonech.github.io/master/qualimap/gh2ax_groups_multibamqc/multisampleBamQcReport.html>`_: example report for the same ChIP-seq experiment with 4 biological conditions marked. Each condition group includes 3 samples.
- See the :ref:`Sample data <samples>` section for more details about the data used in the example.
See the :ref:`Sample data <samples>` section for more details about the data used in the example.
Input Parameters
^^^^^^^^^^^^^^^^
......@@ -507,16 +520,18 @@ The input samples can be added using button :guilabel:`Add`. For each sample one
2. **Path** to the folder with which contains results of BAM QC analysis performed on the sample. The folder must include file **genome_results.txt** and subfolder **raw_data_qualimapReport** containing data of BAM QC plots. If **"Raw data" mode** is activated then the path to the BAM file should be provided.
3. **Group** of the sample. This option allows to combine the samples of the same condition. After the group is assigned, the samples in the plots belonging to the group will have the same color. Importantly, if the groups are avaialble, they should be provided for **each sample**. Empty value will mean no group.
.. note::
In QualiMap version <= 2.0 directory with raw data of BAM QC analysis was called **raw_data**. This name is also supported.
Each added sample will be shown in **Samples** table. One can edit samples using button :guilabel:`Edit` and remove them using button :guilabel:`Remove`.
Additionally it is possible to import configuration file, that is applied for command line interface using button :guilabel:`Import configuration...`. The configuration file is explained in :ref:`the overview of the command line mode<cmdline-multibamqc>`.
:guilabel:`"Raw data" mode: run BAM QC on input samples`
Activate this checkbox to analyze BAM files directly. A selected set of options is available to customize *BAM QC* process. One can read detailed explantion of these options in a :ref:`corresponding section<bamqc>` of the manual.
......@@ -528,7 +543,7 @@ Output
:guilabel:`Summary`
The summary table contains comparison of selected critical alignment metrics for all samples. The metrics include mean and standard deviation of coverage, mean GC content, mean insert size and mean mapping qualities.
The summary table contains comparison of selected critical alignment metrics for all samples. The metrics include mean and standard deviation of coverage, mean GC content, mean insert size and mean mapping qualities. If the sample groups are provided, they are also shown for each sample.
:guilabel:`Input`
......@@ -540,7 +555,7 @@ Output
:guilabel:`Coverage Across Reference`, :guilabel:`Coverage Histogram (0-50X)` , :guilabel:`Genome Fraction Coverage`, :guilabel:`Duplication Rate Histogram`, :guilabel:`Mapped Reads GC Content`, :guilabel:`Mapped Reads GC Content Distribution`, :guilabel:`Mapped Reads Clipping Profile`, :guilabel:`Mapping Quality Across Reference`, :guilabel:`Mapping Quality Histogram`, :guilabel:`Insert Size Across Reference`, :guilabel:`Insert Size Histogram`
The following plots demonstrate the comparison of samples using data from corresponding plots computed during BAM QC analysis. Each curve on a plot represents a single sample.
The following plots demonstrate the comparison of samples using data from corresponding plots computed during BAM QC analysis. Each curve on a plot represents a single sample.
Please refer to documentation of :ref:`BAM QC<bamqc>` for detailed information about the plots.
......
......@@ -91,11 +91,17 @@ The following command allows to perform BAM QC analysis::
strand-specific-forward,
strand-specific-reverse or
non-strand-specific (default)
-sd,--skip-duplicated Activate this option to skip duplicated
alignments from analysis. If the
-sd,--skip-duplicated Activate this option to skip duplicate
alignments from the analysis. If the
duplicates are not flagged in BAM file,
then they will be detected by Qualimap.
then they will be detected by Qualimap
and can be selected for skipping.
-sdmode,--skip-dup-mode <arg> Specific type of duplicated alignments to
skip (if this option is activated).
0 : only flagged duplicates (default)
1 : only estimated by Qualimap
2 : both flagged and estimated
| The only required parameter is :guilabel:`bam` -- the input mapping file.
......@@ -133,6 +139,13 @@ To perform RNA-seq QC analysis use the following command::
strand-specific-forward,
strand-specific-reverse or non-strand-specific
(default)
-pe,--paired Setting this flag for paired-end experiments
will result in counting fragments instead of
reads.
-s,--sorted This flag indicates that the input file is
already sorted by name. If not set, additional
sorting by name will be performed. Only
required for paired-end analysis.
| The required parameteres for this type of analysis are the spliced-alignment file in BAM format and annotations in GTF format.
......@@ -181,7 +194,21 @@ To perform multi-sample BAM QC use the following command::
will be performed.
| The main argument for this command is the configuration file describing input data (-d). This has to be a 2-column tab-delimted file. The first column should contain the sample name and the second column should contain either path to the results of BAM QC analysis or path to the BAM file (if -r mode is activated). The path for the data could be absolute or relative to the location of the configuration file.
| The main argument for this command is the configuration file describing input data (-d). This has to be a 2- or 3-column tab-delimted file. The first column should contain the sample name and the second column should contain either path to the results of BAM QC analysis or path to the BAM file (if -r mode is activated). The path for the data could be absolute or relative to the location of the configuration file. Additionally the third optional column can provide the condition of the sample. This is an optional column. However, if conditions are available they should be provided for each sample.
| Here's an example of configuration file describing samples with conditions:
``sample_1 sample_1_stats group_1``
``sample_2 sample_2_stats group_1``
``sample_3 sample_3_stats group_1``
``sample_4 sample_4_stats group_2``
``sample_5 sample_5_stats group_2``
``sample_6 sample_6_stats group_2``
| Detailed explanation of the analysis can be found here :ref:`here<multibamqc>`.
......
/*
* agogo.css_t
* ~~~~~~~~~~~
*
* Sphinx stylesheet -- agogo theme.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
* {
margin: 0px;
padding: 0px;
}
body {
font-family: "Verdana", Arial, sans-serif;
line-height: 1.4em;
color: black;
background-color: #eeeeec;
}
/* Page layout */
div.header, div.content, div.footer {
width: 70em;
margin-left: auto;
margin-right: auto;
}
div.header-wrapper {
background: url(bgtop.png) top left repeat-x;
border-bottom: 3px solid #2e3436;
}
/* Default body styles */
a {
color: #ce5c00;
}
div.bodywrapper a, div.footer a {
text-decoration: underline;
}
.clearer {
clear: both;
}
.left {
float: left;
}
.right {
float: right;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
h1, h2, h3, h4 {
font-family: "Georgia", "Times New Roman", serif;
font-weight: normal;
color: #3465a4;
margin-bottom: .8em;
}
h1 {
color: #204a87;
}
h2 {
padding-bottom: .5em;
border-bottom: 1px solid #3465a4;
}
a.headerlink {
visibility: hidden;
color: #dddddd;
padding-left: .3em;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
img {
border: 0;
}
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 2px 7px 1px 7px;
border-left: 0.2em solid black;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
dt:target, .highlighted {
background-color: #fbe54e;
}
/* Header */
div.header {
padding-top: 10px;
padding-bottom: 10px;
}
div.header .headertitle {
font-family: "Georgia", "Times New Roman", serif;
font-weight: normal;
font-size: 180%;
letter-spacing: .08em;
margin-bottom: .8em;
}
div.header .headertitle a {
color: white;
}
div.header div.rel {
margin-top: 1em;
}
div.header div.rel a {
color: #fcaf3e;
letter-spacing: .1em;
text-transform: uppercase;
}
p.logo {
float: right;
}
img.logo {
border: 0;
}
/* Content */
div.content-wrapper {
background-color: white;
padding-top: 20px;
padding-bottom: 20px;
}
div.document {
width: 50em;
float: left;
}
div.body {
padding-right: 2em;
text-align: justify;
}
div.document h1 {
line-height: 120%;
}
div.document ul {
margin: 1.5em;
list-style-type: square;
}
div.document dd {
margin-left: 1.2em;
margin-top: .4em;
margin-bottom: 1em;
}
div.document .section {
margin-top: 1.7em;
}
div.document .section:first-child {
margin-top: 0px;
}
div.document div.highlight {
padding: 3px;
background-color: #eeeeec;
border-top: 2px solid #dddddd;
border-bottom: 2px solid #dddddd;
margin-top: .8em;
margin-bottom: .8em;
}
div.document h2 {
margin-top: .7em;
}
div.document p {
margin-bottom: .5em;
}
div.document li.toctree-l1 {
margin-bottom: 1em;
}
div.document .descname {
font-weight: bold;
}
div.document .docutils.literal {
background-color: #eeeeec;
padding: 1px;
}
div.document .docutils.xref.literal {
background-color: transparent;
padding: 0px;
}
div.document blockquote {
margin: 1em;
}
div.document ol {
margin: 1.5em;
}
/* Sidebar */
div.sidebar {
width: 20em;
float: right;
font-size: .9em;
}
div.sidebar a, div.header a {
text-decoration: none;
}
div.sidebar a:hover, div.header a:hover {
text-decoration: underline;
}
div.sidebar h3 {
color: #2e3436;
text-transform: uppercase;
font-size: 130%;
letter-spacing: .1em;
}
div.sidebar ul {
list-style-type: none;
}
div.sidebar li.toctree-l1 a {
display: block;
padding: 1px;
border: 1px solid #dddddd;
background-color: #eeeeec;
margin-bottom: .4em;
padding-left: 3px;
color: #2e3436;
}
div.sidebar li.toctree-l2 a {
background-color: transparent;
border: none;
margin-left: 1em;
border-bottom: 1px solid #dddddd;
}
div.sidebar li.toctree-l3 a {
background-color: transparent;
border: none;
margin-left: 2em;
border-bottom: 1px solid #dddddd;
}
div.sidebar li.toctree-l2:last-child a {
border-bottom: none;
}
div.sidebar li.toctree-l1.current a {
border-right: 5px solid #fcaf3e;
}
div.sidebar li.toctree-l1.current li.toctree-l2 a {
border-right: none;
}
div.sidebar input[type="text"] {
width: 170px;
}
div.sidebar input[type="submit"] {
width: 30px;
}
/* Footer */
div.footer-wrapper {
background: url(bgfooter.png) top left repeat-x;
border-top: 4px solid #babdb6;
padding-top: 10px;
padding-bottom: 10px;
min-height: 80px;
}
div.footer, div.footer a {
color: #888a85;
}
div.footer .right {
text-align: right;
}
div.footer .left {
text-transform: uppercase;
}
/* Styles copied from basic theme */
img.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
img.align-center-qualimap {
display: block;
margin-left: auto;
margin-right: auto;
width: 100%
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-right {
text-align: right;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li div.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable dl, table.indextable dd {
margin-top: 0;
margin-bottom: 0;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
/* -- viewcode extension ---------------------------------------------------- */
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family:: "Verdana", Arial, sans-serif;
}
div.viewcode-block:target {
margin: -1px -3px;
padding: 0 3px;
background-color: #f4debf;
border-top: 1px solid #ac9;
border-bottom: 1px solid #ac9;
}
/*
* basic.css
* ~~~~~~~~~
*
* Sphinx stylesheet -- basic theme.
*
* :copyright: Copyright 2007-2011 by the Sphinx team, see AUTHORS.
* :license: BSD, see LICENSE for details.
*
*/
/* -- main layout ----------------------------------------------------------- */
div.clearer {
clear: both;
}
/* -- relbar ---------------------------------------------------------------- */
div.related {
width: 100%;
font-size: 90%;
}
div.related h3 {
display: none;
}
div.related ul {
margin: 0;
padding: 0 0 0 10px;
list-style: none;
}
div.related li {
display: inline;
}
div.related li.right {
float: right;
margin-right: 5px;
}
/* -- sidebar --------------------------------------------------------------- */
div.sphinxsidebarwrapper {
padding: 10px 5px 0 10px;
}
div.sphinxsidebar {
float: left;
width: 0px;
margin-left: -100%;
font-size: 90%;
}
div.sphinxsidebar ul {
list-style: none;
}
div.sphinxsidebar ul ul,
div.sphinxsidebar ul.want-points {
margin-left: 20px;
list-style: square;
}
div.sphinxsidebar ul ul {
margin-top: 0;
margin-bottom: 0;
}
div.sphinxsidebar form {
margin-top: 10px;
}
div.sphinxsidebar input {
border: 1px solid #98dbcc;
font-family: sans-serif;
font-size: 1em;
}
div.sphinxsidebar #searchbox input[type="text"] {
width: 170px;
}
div.sphinxsidebar #searchbox input[type="submit"] {
width: 30px;
}
img {
border: 0;
}
/* -- search page ----------------------------------------------------------- */
ul.search {
margin: 10px 0 0 20px;
padding: 0;
}
ul.search li {
padding: 5px 0 5px 20px;
background-image: url(file.png);
background-repeat: no-repeat;
background-position: 0 7px;
}
ul.search li a {
font-weight: bold;
}
ul.search li div.context {
color: #888;
margin: 2px 0 0 30px;
text-align: left;
}
ul.keywordmatches li.goodmatch a {
font-weight: bold;
}
/* -- index page ------------------------------------------------------------ */
table.contentstable {
width: 90%;
}
table.contentstable p.biglink {
line-height: 150%;
}
a.biglink {
font-size: 1.3em;
}
span.linkdescr {
font-style: italic;
padding-top: 5px;
font-size: 90%;
}
/* -- general index --------------------------------------------------------- */
table.indextable {
width: 100%;
}
table.indextable td {
text-align: left;
vertical-align: top;
}
table.indextable dl, table.indextable dd {
margin-top: 0;
margin-bottom: 0;
}
table.indextable tr.pcap {
height: 10px;
}
table.indextable tr.cap {
margin-top: 10px;
background-color: #f2f2f2;
}
img.toggler {
margin-right: 3px;
margin-top: 3px;
cursor: pointer;
}
div.modindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
div.genindex-jumpbox {
border-top: 1px solid #ddd;
border-bottom: 1px solid #ddd;
margin: 1em 0 1em 0;
padding: 0.4em;
}
/* -- general body styles --------------------------------------------------- */
a.headerlink {
visibility: hidden;
}
h1:hover > a.headerlink,
h2:hover > a.headerlink,
h3:hover > a.headerlink,
h4:hover > a.headerlink,
h5:hover > a.headerlink,
h6:hover > a.headerlink,
dt:hover > a.headerlink {
visibility: visible;
}
div.body p.caption {
text-align: inherit;
}
div.body td {
text-align: left;
}
.field-list ul {
padding-left: 1em;
}
.first {
margin-top: 0 !important;
}
p.rubric {
margin-top: 30px;
font-weight: bold;
}
img.align-left, .figure.align-left, object.align-left {
clear: left;
float: left;
margin-right: 1em;
}
img.align-right, .figure.align-right, object.align-right {
clear: right;
float: right;
margin-left: 1em;
}
img.align-center, .figure.align-center, object.align-center {
display: block;
margin-left: auto;
margin-right: auto;
}
.align-left {
text-align: left;
}
.align-center {
text-align: center;
}
.align-right {
text-align: right;
}
/* -- sidebars -------------------------------------------------------------- */
div.sidebar {
margin: 0 0 0.5em 1em;
border: 1px solid #ddb;
padding: 7px 7px 0 7px;
background-color: #ffe;
width: 40%;
float: right;
}
p.sidebar-title {
font-weight: bold;
}
/* -- topics ---------------------------------------------------------------- */
div.topic {
border: 1px solid #ccc;
padding: 7px 7px 0 7px;
margin: 10px 0 10px 0;
}
p.topic-title {
font-size: 1.1em;
font-weight: bold;
margin-top: 10px;
}
/* -- admonitions ----------------------------------------------------------- */
div.admonition {
margin-top: 10px;
margin-bottom: 10px;
padding: 7px;
}
div.admonition dt {
font-weight: bold;
}
div.admonition dl {
margin-bottom: 0;
}
p.admonition-title {
margin: 0px 10px 5px 0px;
font-weight: bold;
}
div.body p.centered {
text-align: center;
margin-top: 25px;
}
/* -- tables ---------------------------------------------------------------- */
table.docutils {
border: 0;
border-collapse: collapse;
}
table.docutils td, table.docutils th {
padding: 1px 8px 1px 5px;
border-top: 0;
border-left: 0;
border-right: 0;
border-bottom: 1px solid #aaa;
}
table.field-list td, table.field-list th {
border: 0 !important;
}
table.footnote td, table.footnote th {
border: 0 !important;
}
th {
text-align: left;
padding-right: 5px;
}
table.citation {
border-left: solid 1px gray;
margin-left: 1px;
}
table.citation td {
border-bottom: none;
}
/* -- other body styles ----------------------------------------------------- */
ol.arabic {
list-style: decimal;
}
ol.loweralpha {
list-style: lower-alpha;
}
ol.upperalpha {
list-style: upper-alpha;
}
ol.lowerroman {
list-style: lower-roman;
}
ol.upperroman {
list-style: upper-roman;
}
dl {
margin-bottom: 15px;
}
dd p {
margin-top: 0px;
}
dd ul, dd table {
margin-bottom: 10px;
}
dd {
margin-top: 3px;
margin-bottom: 10px;
margin-left: 30px;
}
dt:target, .highlighted {
background-color: #fbe54e;
}
dl.glossary dt {
font-weight: bold;
font-size: 1.1em;
}
.field-list ul {
margin: 0;
padding-left: 1em;
}
.field-list p {
margin: 0;
}
.refcount {
color: #060;
}
.optional {
font-size: 1.3em;
}
.versionmodified {
font-style: italic;
}
.system-message {
background-color: #fda;
padding: 5px;
border: 3px solid red;
}
.footnote:target {
background-color: #ffa;
}
.line-block {
display: block;
margin-top: 1em;
margin-bottom: 1em;
}
.line-block .line-block {
margin-top: 0;
margin-bottom: 0;
margin-left: 1.5em;
}
.guilabel, .menuselection {
font-family: sans-serif;
}
.accelerator {
text-decoration: underline;
}
.classifier {
font-style: oblique;
}
abbr, acronym {
border-bottom: dotted 1px;
cursor: help;
}
/* -- code displays --------------------------------------------------------- */
pre {
overflow: auto;
overflow-y: hidden; /* fixes display issues on Chrome browsers */
}
td.linenos pre {
padding: 5px 0px;
border: 0;
background-color: transparent;
color: #aaa;
}
table.highlighttable {
margin-left: 0.5em;
}
table.highlighttable td {
padding: 0 0.5em 0 0.5em;
}
tt.descname {
background-color: transparent;
font-weight: bold;
font-size: 1.2em;
}
tt.descclassname {
background-color: transparent;
}
tt.xref, a tt {
background-color: transparent;
font-weight: bold;
}
h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt {
background-color: transparent;
}
.viewcode-link {
float: right;
}
.viewcode-back {
float: right;
font-family: sans-serif;
}
div.viewcode-block:target {
margin: -1px -10px;
padding: 0 10px;
}
/* -- math display ---------------------------------------------------------- */
img.math {
vertical-align: middle;
}
div.body div.math p {
text-align: center;
}
span.eqno {
float: right;
}
/* -- printout stylesheet --------------------------------------------------- */
@media print {
div.document,
div.documentwrapper,
div.bodywrapper {
margin: 0 !important;
width: 100%;
}
div.sphinxsidebar,
div.related,
div.footer,
#top-link {
display: none;
}
}
\ No newline at end of file