mirror of
https://github.com/metabarcoding/obitools4.git
synced 2025-06-29 16:20:46 +00:00
Beginning of the documentation
This commit is contained in:
229
doc/01_OBITools_doc.Rmd
Normal file
229
doc/01_OBITools_doc.Rmd
Normal file
@ -0,0 +1,229 @@
|
||||
# The OBITools
|
||||
|
||||
## Aims of *OBITools*
|
||||
|
||||
## File formats usable with *OBITools*
|
||||
|
||||
### The sequence files
|
||||
|
||||
Sequences can be stored following various format. OBITools knows some of
|
||||
them. The central formats for sequence files manipulated by OBITools
|
||||
scripts are the `fasta` and fastq format. OBITools extends the both
|
||||
these formats by specifying a syntax to include in the definition line
|
||||
data qualifying the sequence. All file formats use the `IUPAC` code for
|
||||
encoding nucleotides.
|
||||
|
||||
### The IUPAC Code
|
||||
|
||||
The International Union of Pure and Applied Chemistry (IUPAC\_) defined
|
||||
the standard code for representing protein or DNA sequences.
|
||||
|
||||
#### Nucleic IUPAC Code {#DNA-IUPAC}
|
||||
|
||||
| **Code** | **Nucleotide** |
|
||||
|----------|-----------------------------|
|
||||
| A | Adenine |
|
||||
| C | Cytosine |
|
||||
| G | Guanine |
|
||||
| T | Thymine |
|
||||
| U | Uracil |
|
||||
| R | Purine (A or G) |
|
||||
| Y | Pyrimidine (C, T, or U) |
|
||||
| M | C or A |
|
||||
| K | T, U, or G |
|
||||
| W | T, U, or A |
|
||||
| S | C or G |
|
||||
| B | C, T, U, or G (not A) |
|
||||
| D | A, T, U, or G (not C) |
|
||||
| H | A, T, U, or C (not G) |
|
||||
| V | A, C, or G (not T, not U) |
|
||||
| N | Any base (A, C, G, T, or U) |
|
||||
|
||||
### The *fasta* format {#classical-fasta}
|
||||
|
||||
The **fasta format** is certainly the most widely used sequence file
|
||||
format. This is certainly due to its great simplicity. It was originally
|
||||
created for the Lipman and Pearson [FASTA
|
||||
program](http://www.ncbi.nlm.nih.gov/pubmed/3162770?dopt=Citation).
|
||||
OBITools use in more of the classical :ref:`fasta` format an
|
||||
:ref:`extended version` of this format where structured data are
|
||||
included in the title line.
|
||||
|
||||
In *fasta* format a sequence is represented by a title line beginning
|
||||
with a **`>`** character and the sequences by itself following the
|
||||
:doc:`iupac` code. The sequence is usually split other severals lines of
|
||||
the same length (expect for the last one)
|
||||
|
||||
>my_sequence this is my pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
|
||||
This is no special format for the title line excepting that this line
|
||||
should be unique. Usually the first word following the **\>** character
|
||||
is considered as the sequence identifier. The end of the title line
|
||||
corresponding to a description of the sequence. Several sequences can be
|
||||
concatenated in a same file. The description of the next sequence is
|
||||
just pasted at the end of the record of the previous one
|
||||
|
||||
>sequence_A this is my first pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
>sequence_B this is my second pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
>sequence_C this is my third pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
|
||||
### The *fastq* sequence format {#classical-fastq}
|
||||
|
||||
.. note::
|
||||
|
||||
This article uses material from the Wikipedia article
|
||||
`FASTQ format `
|
||||
which is released under the
|
||||
`Creative Commons Attribution-Share-Alike License 3.0 `
|
||||
|
||||
**fastq format** is a text-based format for storing both a biological
|
||||
sequence (usually nucleotide sequence) and its corresponding quality
|
||||
scores. Both the sequence letter and quality score are encoded with a
|
||||
single ASCII character for brevity. It was originally developed at the
|
||||
`Wellcome Trust Sanger Institute` to bundle a [fasta](#classical-fasta)
|
||||
sequence and its quality data, but has recently become the *de facto*
|
||||
standard for storing the output of high throughput sequencing
|
||||
instruments such as the Illumina Genome Analyzer Illumina. [1]\_
|
||||
|
||||
#### Format
|
||||
|
||||
A fastq file normally uses four lines per sequence.
|
||||
|
||||
- Line 1 begins with a '\@' character and is followed by a sequence
|
||||
identifier and an *optional* description (like a :ref:`fasta` title
|
||||
line).
|
||||
- Line 2 is the raw sequence letters.
|
||||
- Line 3 begins with a '+' character and is *optionally* followed by
|
||||
the same sequence identifier (and any description) again.
|
||||
- Line 4 encodes the quality values for the sequence in Line 2, and
|
||||
must contain the same number of symbols as letters in the sequence.
|
||||
|
||||
A fastq file containing a single sequence might look like this:
|
||||
|
||||
@SEQ_ID
|
||||
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
|
||||
+
|
||||
!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65
|
||||
|
||||
The character '!' represents the lowest quality while '\~' is the
|
||||
highest. Here are the quality value characters in left-to-right
|
||||
increasing order of quality (`ASCII`):
|
||||
|
||||
!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~
|
||||
|
||||
The original Sanger FASTQ files also allowed the sequence and quality
|
||||
strings to be wrapped (split over multiple lines), but this is generally
|
||||
discouraged as it can make parsing complicated due to the unfortunate
|
||||
choice of "\@" and "+" as markers (these characters can also occur in
|
||||
the quality string).
|
||||
|
||||
#### Variations
|
||||
|
||||
##### Quality
|
||||
|
||||
A quality value *Q* is an integer mapping of *p* (i.e., the probability
|
||||
that the corresponding base call is incorrect). Two different equations
|
||||
have been in use. The first is the standard Sanger variant to assess
|
||||
reliability of a base call, otherwise known as Phred quality score:
|
||||
|
||||
$$
|
||||
Q_\text{sanger} = -10 \, \log_{10} p
|
||||
$$
|
||||
|
||||
The Solexa pipeline (i.e., the software delivered with the Illumina
|
||||
Genome Analyzer) earlier used a different mapping, encoding the odds
|
||||
$\mathbf{p}/(1-\mathbf{p})$ instead of the probability $\mathbf{p}$:
|
||||
|
||||
$$
|
||||
Q_\text{solexa-prior to v.1.3} = -10 \, \log_{10} \frac{p}{1-p}
|
||||
$$
|
||||
|
||||
Although both mappings are asymptotically identical at higher quality
|
||||
values, they differ at lower quality levels (i.e., approximately
|
||||
$\mathbf{p} > 0.05$, or equivalently, $\mathbf{Q} < 13$).
|
||||
|
||||
\|Relationship between *Q* and *p* using the Sanger (red) and Solexa
|
||||
(black) equations (described above). The vertical dotted line indicates
|
||||
$\mathbf{p}= 0.05$, or equivalently, $Q = 13$.\|
|
||||
|
||||
#### Encoding
|
||||
|
||||
- Sanger format can encode a Phred quality score from 0 to 93 using
|
||||
ASCII 33 to 126 (although in raw read data the Phred quality score
|
||||
rarely exceeds 60, higher scores are possible in assemblies or read
|
||||
maps).
|
||||
- Solexa/Illumina 1.0 format can encode a Solexa/Illumina quality
|
||||
score from -5 to 62 using ASCII 59 to 126 (although in raw read data
|
||||
Solexa scores from -5 to 40 only are expected)
|
||||
- Starting with Illumina 1.3 and before Illumina 1.8, the format
|
||||
encoded a Phred quality score from 0 to 62 using ASCII 64 to 126
|
||||
(although in raw read data Phred scores from 0 to 40 only are
|
||||
expected).
|
||||
- Starting in Illumina 1.5 and before Illumina 1.8, the Phred scores 0
|
||||
to 2 have a slightly different meaning. The values 0 and 1 are no
|
||||
longer used and the value 2, encoded by ASCII 66 "B".
|
||||
|
||||
Sequencing Control Software, Version 2.6, Catalog \# SY-960-2601, Part
|
||||
\# 15009921 Rev. A, November
|
||||
2009] [[http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\\\\](http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\){.uri}]([http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\\](http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf)%7B.uri%7D){.uri}
|
||||
(page 30) states the following: *If a read ends with a segment of mostly
|
||||
low quality (Q15 or below), then all of the quality values in the
|
||||
segment are replaced with a value of 2 (encoded as the letter B in
|
||||
Illumina's text-based encoding of quality scores)... This Q2 indicator
|
||||
does not predict a specific error rate, but rather indicates that a
|
||||
specific final portion of the read should not be used in further
|
||||
analyses.* Also, the quality score encoded as "B" letter may occur
|
||||
internally within reads at least as late as pipeline version 1.6, as
|
||||
shown in the following example:
|
||||
|
||||
@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
|
||||
TTAATTGGTAAATAAATCTCCTAATAGCTTAGATNTTACCTTNNNNNNNNNNTAGTTTCTTGAGATTTGTTGGGGGAGACATTTTTGTGATTGCCTTGAT
|
||||
+HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
|
||||
efcfffffcfeefffcffffffddf`feed]`]_Ba_^__[YBBBBBBBBBBRTT\]][]dddd`ddd^dddadd^BBBBBBBBBBBBBBBBBBBBBBBB
|
||||
|
||||
An alternative interpretation of this ASCII encoding has been proposed.
|
||||
Also, in Illumina runs using PhiX controls, the character 'B' was
|
||||
observed to represent an "unknown quality score". The error rate of 'B'
|
||||
reads was roughly 3 phred scores lower the mean observed score of a
|
||||
given run.
|
||||
|
||||
- Starting in Illumina 1.8, the quality scores have basically returned
|
||||
to the use of the Sanger format (Phred+33).
|
||||
|
||||
## File extension
|
||||
|
||||
There is no standard file extension for a FASTQ file, but .fq and
|
||||
.fastq, are commonly used.
|
||||
|
||||
## See also
|
||||
|
||||
- :ref:`fasta`
|
||||
|
||||
## References
|
||||
|
||||
.. [1] Cock et al (2009) The Sanger FASTQ file format for sequences with
|
||||
quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids
|
||||
Research,
|
||||
|
||||
.. [2] Illumina Quality Scores, Tobias Mann, Bioinformatics, San Diego,
|
||||
Illumina `1`\_\_
|
||||
|
||||
.. \|Relationship between *Q* and *p* using the Sanger (red) and Solexa
|
||||
(black) equations (described above). The vertical dotted line indicates
|
||||
*p* = 0.05, or equivalently, *Q* Å 13.\| image:: Probability metrics.png
|
||||
|
||||
See <http://en.wikipedia.org/wiki/FASTQ_format>
|
||||
|
||||
|
95
doc/02_OBITools_doc.Rmd
Normal file
95
doc/02_OBITools_doc.Rmd
Normal file
@ -0,0 +1,95 @@
|
||||
# The *OBITools* commands
|
||||
|
||||
## Specifying the input files to *OBITools* commands
|
||||
|
||||
## Options common to most of the *OBITools* commands
|
||||
|
||||
### Specifying input format
|
||||
|
||||
Five sequence formats are accepted for input files. [Fasta](#fasta-classical "Fasta format description") and [Fastq](#fastq-classical "Fastq format description") are the main ones, EMBL and Genbank allow the use of flat files produced by these two international databases. The last one, ecoPCR, is maintained for compatibility with previous *OBITools* and allows to read *ecoPCR* outputs as sequence files.
|
||||
|
||||
- `--ecopcr` : Read data following the *ecoPCR* output format.
|
||||
- `--embl` Read data following the *EMBL* flatfile format.
|
||||
- `--genbank` Read data following the *Genbank* flatfile format.
|
||||
|
||||
Several encoding schemes have been proposed for quality scores in [Fastq](#fastq-classical "Fastq format description") format. Currently, *OBITools* considers Sanger encoding as the standard. For reasons of compatibility with older datasets produced with *Solexa* sequencers, it is possible, by using the following option, to force the use of the corresponding quality encoding scheme when reading these older files.
|
||||
|
||||
- `--solexa` Decodes quality string according to the Solexa specification. (default: false)
|
||||
|
||||
### Specifying output format
|
||||
|
||||
Only two output sequence formats are supported by OBITools, Fasta and Fastq. Fastq is used when output sequences are associated with quality information. Otherwise, Fasta is the default format. However, it is possible to force the output format by using one of the following two options. Forcing the use of Fasta results in the loss of quality information. Conversely, when the Fastq format is forced with sequences that have no quality data, dummy qualities set to 40 for each nucleotide are added.
|
||||
|
||||
- `--fasta-output` Read data following the ecoPCR output format.
|
||||
- `--fastq-output` Read data following the EMBL flatfile format.
|
||||
|
||||
OBITools allows multiple input files to be specified for a single command.
|
||||
|
||||
- `--no-order` When several input files are provided, indicates that there is no order among them. (default: false)
|
||||
|
||||
### Format of the annotations in Fasta and Fastq files
|
||||
|
||||
OBITools extend the [Fasta](#fasta-classical "Fasta format description") and [Fastq](#fastq-classical "Fastq format description") formats by introducing a format for the title lines of these formats allowing to annotate every sequence. While the previous version of OBITools used an *ad-hoc* format for these annotation, this new version introduce the usage of the standard JSON format to store them.
|
||||
|
||||
On input, OBITools automatically recognize the format of the annotations, but two options allows to force the parsing following one of them. You should normally not need to use these options.
|
||||
|
||||
- `--input-OBI-header` FASTA/FASTQ title line annotations follow OBI format. (default: false)
|
||||
|
||||
- `--input-json-header` FASTA/FASTQ title line annotations follow json format. (default: false)
|
||||
|
||||
On output, by default annotation are formatted using the new JSON format. For compatibility with previous version of OBITools and with external scripts and software, it is possible to force the usage of the previous OBITools format.
|
||||
|
||||
- `--output-OBI-header|-O` output FASTA/FASTQ title line annotations follow OBI format. (default: false)
|
||||
|
||||
- `--output-json-header` output FASTA/FASTQ title line annotations follow json format. (default: false)
|
||||
|
||||
#### System related options
|
||||
|
||||
- `--debug` (default: false)
|
||||
- `--help\|-h\|-?` (default: false)
|
||||
- `--max-cpu <int>` Number of parallele threads computing the result (default: 10)
|
||||
- `--workers\|-w <int>` Number of parallele threads computing the result (default: 9)
|
||||
|
||||
## Metabarcode design and quality assessment
|
||||
|
||||
#### `obipcr`
|
||||
|
||||
> Replace the `ecoPCR` original *OBITools*
|
||||
|
||||
## File format conversions
|
||||
|
||||
#### `obiconvert`
|
||||
|
||||
## Sequence annotations
|
||||
|
||||
#### `obitag`
|
||||
|
||||
## Computations on sequences
|
||||
|
||||
### `obipairing`
|
||||
|
||||
> Replace the `illuminapairedends` original *OBITools*
|
||||
|
||||
#### `obimultiplex`
|
||||
|
||||
> Replace the `ngsfilter` original *OBITools*
|
||||
|
||||
#### `obicomplement`
|
||||
|
||||
#### `obiclean`
|
||||
|
||||
#### `obiuniq`
|
||||
|
||||
## Sequence sampling and filtering
|
||||
|
||||
#### `obigrep`
|
||||
|
||||
### Utilities
|
||||
|
||||
#### `obicount`
|
||||
|
||||
#### `obidistribute`
|
||||
|
||||
#### `obifind`
|
||||
|
||||
> Replace the `ecofind` original *OBITools.*
|
157
doc/03_OBITools_doc.Rmd
Normal file
157
doc/03_OBITools_doc.Rmd
Normal file
@ -0,0 +1,157 @@
|
||||
# Reference documentation for the GO *OBITools* library
|
||||
|
||||
## BioSequence
|
||||
|
||||
The `BioSequence` class is used to represent biological sequences. It
|
||||
allows for storing : - the sequence itself as a `[]byte` - the
|
||||
sequencing quality score as a `[]byte` if needed - an identifier as a
|
||||
`string` - a definition as a `string` - a set of *(key, value)* pairs in
|
||||
a `map[sting]interface{}`
|
||||
|
||||
BioSequence is defined in the obiseq module and is included using the
|
||||
code
|
||||
|
||||
``` go
|
||||
import (
|
||||
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"
|
||||
)
|
||||
```
|
||||
|
||||
### Creating new instances
|
||||
|
||||
To create new instance, use
|
||||
|
||||
- `MakeBioSequence(id string, sequence []byte, definition string) obiseq.BioSequence`
|
||||
- `NewBioSequence(id string, sequence []byte, definition string) *obiseq.BioSequence`
|
||||
|
||||
Both create a `BioSequence` instance, but when the first one returns the
|
||||
instance, the second returns a pointer on the new instance. Two other
|
||||
functions `MakeEmptyBioSequence`, and `NewEmptyBioSequence` do the same
|
||||
job but provide an uninitialized objects.
|
||||
|
||||
- `id` parameters corresponds to the unique identifier of the
|
||||
sequence. It mist be a string constituted of a single word (not
|
||||
containing any space).
|
||||
- `sequence` is the DNA sequence itself, provided as a `byte` array
|
||||
(`[]byte`).
|
||||
- `definition` is a `string`, potentially empty, but usualy containing
|
||||
a sentence explaining what is that sequence.
|
||||
|
||||
``` go
|
||||
import (
|
||||
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"
|
||||
)
|
||||
|
||||
func main() {
|
||||
myseq := obiseq.NewBiosequence(
|
||||
"seq_GH0001",
|
||||
bytes.FromString("ACGTGTCAGTCG"),
|
||||
"A short test sequence",
|
||||
)
|
||||
}
|
||||
```
|
||||
|
||||
When formated as fasta the parameters correspond to the following schema
|
||||
|
||||
>id definition containing potentially several words
|
||||
sequence
|
||||
|
||||
### End of life of a `BioSequence` instance
|
||||
|
||||
When a `BioSequence` instance is no more used, it is normally taken in
|
||||
charge by the GO garbage collector. You can if you want call the
|
||||
`Recycle` method on the instance to store the allocated memory element
|
||||
in a `pool` to limit allocation effort when many sequences are
|
||||
manipulated.
|
||||
|
||||
### Accessing to the elements of a sequence
|
||||
|
||||
The different elements of an `obiseq.BioSequence` must be accessed using
|
||||
a set of methods. For the three main elements provided during the
|
||||
creation of a new instance methodes are :
|
||||
|
||||
- `Id() string`
|
||||
- `Sequence() []byte`
|
||||
- `Definition() string`
|
||||
|
||||
It exists pending method to change the value of these elements
|
||||
|
||||
- `SetId(id string)`
|
||||
- `SetSequence(sequence []byte)`
|
||||
- `SetDefinition(definition string)`
|
||||
|
||||
``` go
|
||||
import (
|
||||
"fmt"
|
||||
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"
|
||||
)
|
||||
|
||||
func main() {
|
||||
myseq := obiseq.NewBiosequence(
|
||||
"seq_GH0001",
|
||||
bytes.FromString("ACGTGTCAGTCG"),
|
||||
"A short test sequence",
|
||||
)
|
||||
|
||||
fmt.Println(myseq.Id())
|
||||
myseq.SetId("SPE01_0001")
|
||||
fmt.Println(myseq.Id())
|
||||
}
|
||||
```
|
||||
|
||||
#### Different ways for accessing an editing the sequence
|
||||
|
||||
If `Sequence()`and `SetSequence(sequence []byte)` methods are the basic
|
||||
ones, several other methods exist.
|
||||
|
||||
- `String() string` return the sequence directly converted to a
|
||||
`string` instance.
|
||||
- The `Write` method family allows for extending an existing sequence
|
||||
following the buffer protocol.
|
||||
- `Write(data []byte) (int, error)` allows for appending a byte
|
||||
array on 3' end of the sequence.
|
||||
- `WriteString(data string) (int, error)` allows for appending a
|
||||
`string`.
|
||||
- `WriteByte(data byte) error` allows for appending a single
|
||||
`byte`.
|
||||
|
||||
The `Clear` method empties the sequence buffer.
|
||||
|
||||
``` go
|
||||
import (
|
||||
"fmt"
|
||||
"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"
|
||||
)
|
||||
|
||||
func main() {
|
||||
myseq := obiseq.NewEmptyBiosequence()
|
||||
|
||||
myseq.WriteString("accc")
|
||||
myseq.WriteByte(byte('c'))
|
||||
fmt.Println(myseq.String())
|
||||
}
|
||||
```
|
||||
|
||||
#### Sequence quality scores
|
||||
|
||||
Sequence quality scores cannot be initialized at the time of instance
|
||||
creation. You must use dedicated methods to add quality scores to a
|
||||
sequence.
|
||||
|
||||
To be coherent the length of both the DNA sequence and que quality score
|
||||
sequence must be equal. But assessment of this constraint is realized.
|
||||
It is of the programmer responsability to check that invariant.
|
||||
|
||||
While accessing to the quality scores relies on the method
|
||||
`Quality() []byte`, setting the quality need to call one of the
|
||||
following method. They run similarly to their sequence dedicated
|
||||
conterpart.
|
||||
|
||||
- `SetQualities(qualities Quality)`
|
||||
- `WriteQualities(data []byte) (int, error)`
|
||||
- `WriteByteQualities(data byte) error`
|
||||
|
||||
In a way analogous to the `Clear` method, `ClearQualities()` empties the
|
||||
sequence of quality scores.
|
||||
|
||||
|
82
doc/04_OBITools_doc.Rmd
Normal file
82
doc/04_OBITools_doc.Rmd
Normal file
@ -0,0 +1,82 @@
|
||||
# Annexes
|
||||
|
||||
### Sequence attributes
|
||||
|
||||
#### Reserved sequence attributes
|
||||
|
||||
##### `ali_dir`
|
||||
|
||||
###### Type : `string`
|
||||
|
||||
The attribute can contain 2 string values `"left"` or `"right".`
|
||||
|
||||
###### Set by the *obipairing* tool
|
||||
|
||||
The alignment generated by *obipairing* is a 3'-end gap free algorithm.
|
||||
Two cases can occur when aligning the forward and reverse reads. If the
|
||||
barcode is long enough, both the reads overlap only on their 3' ends. In
|
||||
such case, the alignment direction `ali_dir` is set to *left*. If the
|
||||
barcode is shorter than the read length, the paired reads overlap by
|
||||
their 5' ends, and the complete barcode is sequenced by both the reads.
|
||||
In that later case, `ali_dir` is set to *right*.
|
||||
|
||||
##### `ali_length`
|
||||
|
||||
###### Set by the *obipairing* tool
|
||||
|
||||
Length of the aligned parts when merging forward and reverse reads
|
||||
|
||||
##### `count` : the number of sequence occurrences
|
||||
|
||||
###### Set by the *obiuniq* tool
|
||||
|
||||
The `count` attribute indicates how-many strictly identical sequences
|
||||
have been merged in a single record. It contains an integer value. If it
|
||||
is absent this means that the sequence record represents a single
|
||||
occurrence of the sequence.
|
||||
|
||||
###### Getter : method `Count()`
|
||||
|
||||
The `Count()` method allows to access to the count attribute as an
|
||||
integer value. If the `count` attribute is not defined for the given
|
||||
sequence, the value *1* is returned
|
||||
|
||||
##### `merged_*`
|
||||
|
||||
###### Type : `map[string]int`
|
||||
|
||||
###### Set by the *obiuniq* tool
|
||||
|
||||
The `-m` option of the *obiuniq* tools allows for keeping track of the
|
||||
distribution of the values stored in given attribute of interest. Often
|
||||
this option is used to summarise distribution of a sequence variant
|
||||
accross samples when *obiuniq* is run after running *obimultiplex*. The
|
||||
actual name of the attribute depends on the name of the monitored
|
||||
attribute. If `-m` option is used with the attribute *sample*, then this
|
||||
attribute names *merged_sample*.
|
||||
|
||||
##### `mode`
|
||||
|
||||
###### Set by the *obipairing* tool
|
||||
|
||||
**`obitag_ref_index`**
|
||||
|
||||
###### Set by the *obirefidx* tool.
|
||||
|
||||
It resumes to which taxonomic annotation a match to that sequence must
|
||||
lead according to the number of differences existing between the query
|
||||
sequence and the reference sequence having that tag.
|
||||
|
||||
###### Getter : method `Count()`
|
||||
|
||||
##### `pairing_mismatches`
|
||||
|
||||
###### Set by the *obipairing* tool
|
||||
|
||||
##### `score`
|
||||
|
||||
###### Set by the *obipairing* tool
|
||||
|
||||
##### `score_norm`
|
||||
|
||||
###### Set by the *obipairing* tool
|
282
doc/_book/404.html
Normal file
282
doc/_book/404.html
Normal file
@ -0,0 +1,282 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="" xml:lang="">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>Page not found | The GO OBITools</title>
|
||||
<meta name="description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="generator" content="bookdown 0.29 and GitBook 2.6.7" />
|
||||
|
||||
<meta property="og:title" content="Page not found | The GO OBITools" />
|
||||
<meta property="og:type" content="book" />
|
||||
|
||||
<meta property="og:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="github-repo" content="seankross/bookdown-start" />
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="Page not found | The GO OBITools" />
|
||||
|
||||
<meta name="twitter:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
|
||||
|
||||
<meta name="author" content="SEric Coissac" />
|
||||
|
||||
|
||||
<meta name="date" content="2022-08-25" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
|
||||
|
||||
|
||||
<script src="book_assets/jquery-3.6.0/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script>
|
||||
<link href="book_assets/gitbook-2.6.7/css/style.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" />
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" />
|
||||
<script src="book_assets/anchor-sections-1.1.0/anchor-sections.js"></script>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||
.sourceCode { overflow: visible; }
|
||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||
pre.sourceCode { margin: 0; }
|
||||
@media screen {
|
||||
div.sourceCode { overflow: auto; }
|
||||
}
|
||||
@media print {
|
||||
pre > code.sourceCode { white-space: pre-wrap; }
|
||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||
}
|
||||
pre.numberSource code
|
||||
{ counter-reset: source-line 0; }
|
||||
pre.numberSource code > span
|
||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||
pre.numberSource code > span > a:first-child::before
|
||||
{ content: counter(source-line);
|
||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||
border: none; display: inline-block;
|
||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||
-khtml-user-select: none; -moz-user-select: none;
|
||||
-ms-user-select: none; user-select: none;
|
||||
padding: 0 4px; width: 4em;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
|
||||
div.sourceCode
|
||||
{ }
|
||||
@media screen {
|
||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||
}
|
||||
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
|
||||
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
|
||||
code span.at { color: #7d9029; } /* Attribute */
|
||||
code span.bn { color: #40a070; } /* BaseN */
|
||||
code span.bu { } /* BuiltIn */
|
||||
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
|
||||
code span.ch { color: #4070a0; } /* Char */
|
||||
code span.cn { color: #880000; } /* Constant */
|
||||
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
|
||||
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
|
||||
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
|
||||
code span.dt { color: #902000; } /* DataType */
|
||||
code span.dv { color: #40a070; } /* DecVal */
|
||||
code span.er { color: #ff0000; font-weight: bold; } /* Error */
|
||||
code span.ex { } /* Extension */
|
||||
code span.fl { color: #40a070; } /* Float */
|
||||
code span.fu { color: #06287e; } /* Function */
|
||||
code span.im { } /* Import */
|
||||
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
|
||||
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
|
||||
code span.op { color: #666666; } /* Operator */
|
||||
code span.ot { color: #007020; } /* Other */
|
||||
code span.pp { color: #bc7a00; } /* Preprocessor */
|
||||
code span.sc { color: #4070a0; } /* SpecialChar */
|
||||
code span.ss { color: #bb6688; } /* SpecialString */
|
||||
code span.st { color: #4070a0; } /* String */
|
||||
code span.va { color: #19177c; } /* Variable */
|
||||
code span.vs { color: #4070a0; } /* VerbatimString */
|
||||
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
|
||||
|
||||
<div class="book-summary">
|
||||
<nav role="navigation">
|
||||
|
||||
<ul class="summary">
|
||||
<li class="chapter" data-level="1" data-path="the-obitools.html"><a href="the-obitools.html"><i class="fa fa-check"></i><b>1</b> The OBITools</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.1" data-path="the-obitools.html"><a href="the-obitools.html#aims-of-obitools"><i class="fa fa-check"></i><b>1.1</b> Aims of <em>OBITools</em></a></li>
|
||||
<li class="chapter" data-level="1.2" data-path="the-obitools.html"><a href="the-obitools.html#file-formats-usable-with-obitools"><i class="fa fa-check"></i><b>1.2</b> File formats usable with <em>OBITools</em></a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.2.1" data-path="the-obitools.html"><a href="the-obitools.html#the-sequence-files"><i class="fa fa-check"></i><b>1.2.1</b> The sequence files</a></li>
|
||||
<li class="chapter" data-level="1.2.2" data-path="the-obitools.html"><a href="the-obitools.html#the-iupac-code"><i class="fa fa-check"></i><b>1.2.2</b> The IUPAC Code</a></li>
|
||||
<li class="chapter" data-level="1.2.3" data-path="the-obitools.html"><a href="the-obitools.html#classical-fasta"><i class="fa fa-check"></i><b>1.2.3</b> The <em>fasta</em> format</a></li>
|
||||
<li class="chapter" data-level="1.2.4" data-path="the-obitools.html"><a href="the-obitools.html#classical-fastq"><i class="fa fa-check"></i><b>1.2.4</b> The <em>fastq</em> sequence format</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="1.3" data-path="the-obitools.html"><a href="the-obitools.html#file-extension"><i class="fa fa-check"></i><b>1.3</b> File extension</a></li>
|
||||
<li class="chapter" data-level="1.4" data-path="the-obitools.html"><a href="the-obitools.html#see-also"><i class="fa fa-check"></i><b>1.4</b> See also</a></li>
|
||||
<li class="chapter" data-level="1.5" data-path="the-obitools.html"><a href="the-obitools.html#references"><i class="fa fa-check"></i><b>1.5</b> References</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html"><i class="fa fa-check"></i><b>2</b> The <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-the-input-files-to-obitools-commands"><i class="fa fa-check"></i><b>2.1</b> Specifying the input files to <em>OBITools</em> commands</a></li>
|
||||
<li class="chapter" data-level="2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#options-common-to-most-of-the-obitools-commands"><i class="fa fa-check"></i><b>2.2</b> Options common to most of the <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-input-format"><i class="fa fa-check"></i><b>2.2.1</b> Specifying input format</a></li>
|
||||
<li class="chapter" data-level="2.2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-output-format"><i class="fa fa-check"></i><b>2.2.2</b> Specifying output format</a></li>
|
||||
<li class="chapter" data-level="2.2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#format-of-the-annotations-in-fasta-and-fastq-files"><i class="fa fa-check"></i><b>2.2.3</b> Format of the annotations in Fasta and Fastq files</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#metabarcode-design-and-quality-assessment"><i class="fa fa-check"></i><b>2.3</b> Metabarcode design and quality assessment</a></li>
|
||||
<li class="chapter" data-level="2.4" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#file-format-conversions"><i class="fa fa-check"></i><b>2.4</b> File format conversions</a></li>
|
||||
<li class="chapter" data-level="2.5" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-annotations"><i class="fa fa-check"></i><b>2.5</b> Sequence annotations</a></li>
|
||||
<li class="chapter" data-level="2.6" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#computations-on-sequences"><i class="fa fa-check"></i><b>2.6</b> Computations on sequences</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.6.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#obipairing"><i class="fa fa-check"></i><b>2.6.1</b> <code>obipairing</code></a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.7" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-sampling-and-filtering"><i class="fa fa-check"></i><b>2.7</b> Sequence sampling and filtering</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.7.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#utilities"><i class="fa fa-check"></i><b>2.7.1</b> Utilities</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html"><i class="fa fa-check"></i><b>3</b> Reference documentation for the GO <em>OBITools</em> library</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#biosequence"><i class="fa fa-check"></i><b>3.1</b> BioSequence</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#creating-new-instances"><i class="fa fa-check"></i><b>3.1.1</b> Creating new instances</a></li>
|
||||
<li class="chapter" data-level="3.1.2" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#end-of-life-of-a-biosequence-instance"><i class="fa fa-check"></i><b>3.1.2</b> End of life of a <code>BioSequence</code> instance</a></li>
|
||||
<li class="chapter" data-level="3.1.3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#accessing-to-the-elements-of-a-sequence"><i class="fa fa-check"></i><b>3.1.3</b> Accessing to the elements of a sequence</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="4" data-path="annexes.html"><a href="annexes.html"><i class="fa fa-check"></i><b>4</b> Annexes</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="4.0.1" data-path="annexes.html"><a href="annexes.html#sequence-attributes"><i class="fa fa-check"></i><b>4.0.1</b> Sequence attributes</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header" role="navigation">
|
||||
<h1>
|
||||
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">The GO <em>OBITools</em></a>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-wrapper" tabindex="-1" role="main">
|
||||
<div class="page-inner">
|
||||
|
||||
<section class="normal" id="section-">
|
||||
<div id="page-not-found" class="section level1">
|
||||
<h1>Page not found</h1>
|
||||
<p>The page you requested cannot be found (perhaps it was moved or renamed).</p>
|
||||
<p>You may want to try searching to find the page's new location, or use
|
||||
the table of contents to find the page you are looking for.</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script src="book_assets/gitbook-2.6.7/js/app.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/clipboard.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-search.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-sharing.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-bookdown.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/jquery.highlight.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-clipboard.js"></script>
|
||||
<script>
|
||||
gitbook.require(["gitbook"], function(gitbook) {
|
||||
gitbook.start({
|
||||
"sharing": {
|
||||
"github": false,
|
||||
"facebook": true,
|
||||
"twitter": true,
|
||||
"linkedin": false,
|
||||
"weibo": false,
|
||||
"instapaper": false,
|
||||
"vk": false,
|
||||
"whatsapp": false,
|
||||
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
|
||||
},
|
||||
"fontsettings": {
|
||||
"theme": "white",
|
||||
"family": "sans",
|
||||
"size": 2
|
||||
},
|
||||
"edit": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"history": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"view": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"download": ["_main.pdf"],
|
||||
"search": {
|
||||
"engine": "fuse",
|
||||
"options": null
|
||||
},
|
||||
"toc": {
|
||||
"collapse": "subsection"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- dynamically load mathjax for compatibility with self-contained -->
|
||||
<script>
|
||||
(function () {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
var src = "true";
|
||||
if (src === "" || src === "true") src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/latest.js?config=TeX-MML-AM_CHTML";
|
||||
if (location.protocol !== "file:")
|
||||
if (/^https?:/.test(src))
|
||||
src = src.replace(/^https?:/, '');
|
||||
script.src = src;
|
||||
document.getElementsByTagName("head")[0].appendChild(script);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
BIN
doc/_book/_main.pdf
Normal file
BIN
doc/_book/_main.pdf
Normal file
Binary file not shown.
376
doc/_book/annexes.html
Normal file
376
doc/_book/annexes.html
Normal file
@ -0,0 +1,376 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="" xml:lang="">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>4 Annexes | The GO OBITools</title>
|
||||
<meta name="description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="generator" content="bookdown 0.29 and GitBook 2.6.7" />
|
||||
|
||||
<meta property="og:title" content="4 Annexes | The GO OBITools" />
|
||||
<meta property="og:type" content="book" />
|
||||
|
||||
<meta property="og:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="github-repo" content="seankross/bookdown-start" />
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="4 Annexes | The GO OBITools" />
|
||||
|
||||
<meta name="twitter:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
|
||||
|
||||
<meta name="author" content="SEric Coissac" />
|
||||
|
||||
|
||||
<meta name="date" content="2022-08-25" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
|
||||
<link rel="prev" href="reference-documentation-for-the-go-obitools-library.html"/>
|
||||
|
||||
<script src="book_assets/jquery-3.6.0/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script>
|
||||
<link href="book_assets/gitbook-2.6.7/css/style.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" />
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" />
|
||||
<script src="book_assets/anchor-sections-1.1.0/anchor-sections.js"></script>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||
.sourceCode { overflow: visible; }
|
||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||
pre.sourceCode { margin: 0; }
|
||||
@media screen {
|
||||
div.sourceCode { overflow: auto; }
|
||||
}
|
||||
@media print {
|
||||
pre > code.sourceCode { white-space: pre-wrap; }
|
||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||
}
|
||||
pre.numberSource code
|
||||
{ counter-reset: source-line 0; }
|
||||
pre.numberSource code > span
|
||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||
pre.numberSource code > span > a:first-child::before
|
||||
{ content: counter(source-line);
|
||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||
border: none; display: inline-block;
|
||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||
-khtml-user-select: none; -moz-user-select: none;
|
||||
-ms-user-select: none; user-select: none;
|
||||
padding: 0 4px; width: 4em;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
|
||||
div.sourceCode
|
||||
{ }
|
||||
@media screen {
|
||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||
}
|
||||
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
|
||||
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
|
||||
code span.at { color: #7d9029; } /* Attribute */
|
||||
code span.bn { color: #40a070; } /* BaseN */
|
||||
code span.bu { } /* BuiltIn */
|
||||
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
|
||||
code span.ch { color: #4070a0; } /* Char */
|
||||
code span.cn { color: #880000; } /* Constant */
|
||||
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
|
||||
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
|
||||
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
|
||||
code span.dt { color: #902000; } /* DataType */
|
||||
code span.dv { color: #40a070; } /* DecVal */
|
||||
code span.er { color: #ff0000; font-weight: bold; } /* Error */
|
||||
code span.ex { } /* Extension */
|
||||
code span.fl { color: #40a070; } /* Float */
|
||||
code span.fu { color: #06287e; } /* Function */
|
||||
code span.im { } /* Import */
|
||||
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
|
||||
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
|
||||
code span.op { color: #666666; } /* Operator */
|
||||
code span.ot { color: #007020; } /* Other */
|
||||
code span.pp { color: #bc7a00; } /* Preprocessor */
|
||||
code span.sc { color: #4070a0; } /* SpecialChar */
|
||||
code span.ss { color: #bb6688; } /* SpecialString */
|
||||
code span.st { color: #4070a0; } /* String */
|
||||
code span.va { color: #19177c; } /* Variable */
|
||||
code span.vs { color: #4070a0; } /* VerbatimString */
|
||||
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
|
||||
|
||||
<div class="book-summary">
|
||||
<nav role="navigation">
|
||||
|
||||
<ul class="summary">
|
||||
<li class="chapter" data-level="1" data-path="the-obitools.html"><a href="the-obitools.html"><i class="fa fa-check"></i><b>1</b> The OBITools</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.1" data-path="the-obitools.html"><a href="the-obitools.html#aims-of-obitools"><i class="fa fa-check"></i><b>1.1</b> Aims of <em>OBITools</em></a></li>
|
||||
<li class="chapter" data-level="1.2" data-path="the-obitools.html"><a href="the-obitools.html#file-formats-usable-with-obitools"><i class="fa fa-check"></i><b>1.2</b> File formats usable with <em>OBITools</em></a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.2.1" data-path="the-obitools.html"><a href="the-obitools.html#the-sequence-files"><i class="fa fa-check"></i><b>1.2.1</b> The sequence files</a></li>
|
||||
<li class="chapter" data-level="1.2.2" data-path="the-obitools.html"><a href="the-obitools.html#the-iupac-code"><i class="fa fa-check"></i><b>1.2.2</b> The IUPAC Code</a></li>
|
||||
<li class="chapter" data-level="1.2.3" data-path="the-obitools.html"><a href="the-obitools.html#classical-fasta"><i class="fa fa-check"></i><b>1.2.3</b> The <em>fasta</em> format</a></li>
|
||||
<li class="chapter" data-level="1.2.4" data-path="the-obitools.html"><a href="the-obitools.html#classical-fastq"><i class="fa fa-check"></i><b>1.2.4</b> The <em>fastq</em> sequence format</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="1.3" data-path="the-obitools.html"><a href="the-obitools.html#file-extension"><i class="fa fa-check"></i><b>1.3</b> File extension</a></li>
|
||||
<li class="chapter" data-level="1.4" data-path="the-obitools.html"><a href="the-obitools.html#see-also"><i class="fa fa-check"></i><b>1.4</b> See also</a></li>
|
||||
<li class="chapter" data-level="1.5" data-path="the-obitools.html"><a href="the-obitools.html#references"><i class="fa fa-check"></i><b>1.5</b> References</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html"><i class="fa fa-check"></i><b>2</b> The <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-the-input-files-to-obitools-commands"><i class="fa fa-check"></i><b>2.1</b> Specifying the input files to <em>OBITools</em> commands</a></li>
|
||||
<li class="chapter" data-level="2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#options-common-to-most-of-the-obitools-commands"><i class="fa fa-check"></i><b>2.2</b> Options common to most of the <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-input-format"><i class="fa fa-check"></i><b>2.2.1</b> Specifying input format</a></li>
|
||||
<li class="chapter" data-level="2.2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-output-format"><i class="fa fa-check"></i><b>2.2.2</b> Specifying output format</a></li>
|
||||
<li class="chapter" data-level="2.2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#format-of-the-annotations-in-fasta-and-fastq-files"><i class="fa fa-check"></i><b>2.2.3</b> Format of the annotations in Fasta and Fastq files</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#metabarcode-design-and-quality-assessment"><i class="fa fa-check"></i><b>2.3</b> Metabarcode design and quality assessment</a></li>
|
||||
<li class="chapter" data-level="2.4" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#file-format-conversions"><i class="fa fa-check"></i><b>2.4</b> File format conversions</a></li>
|
||||
<li class="chapter" data-level="2.5" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-annotations"><i class="fa fa-check"></i><b>2.5</b> Sequence annotations</a></li>
|
||||
<li class="chapter" data-level="2.6" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#computations-on-sequences"><i class="fa fa-check"></i><b>2.6</b> Computations on sequences</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.6.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#obipairing"><i class="fa fa-check"></i><b>2.6.1</b> <code>obipairing</code></a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.7" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-sampling-and-filtering"><i class="fa fa-check"></i><b>2.7</b> Sequence sampling and filtering</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.7.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#utilities"><i class="fa fa-check"></i><b>2.7.1</b> Utilities</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html"><i class="fa fa-check"></i><b>3</b> Reference documentation for the GO <em>OBITools</em> library</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#biosequence"><i class="fa fa-check"></i><b>3.1</b> BioSequence</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#creating-new-instances"><i class="fa fa-check"></i><b>3.1.1</b> Creating new instances</a></li>
|
||||
<li class="chapter" data-level="3.1.2" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#end-of-life-of-a-biosequence-instance"><i class="fa fa-check"></i><b>3.1.2</b> End of life of a <code>BioSequence</code> instance</a></li>
|
||||
<li class="chapter" data-level="3.1.3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#accessing-to-the-elements-of-a-sequence"><i class="fa fa-check"></i><b>3.1.3</b> Accessing to the elements of a sequence</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="4" data-path="annexes.html"><a href="annexes.html"><i class="fa fa-check"></i><b>4</b> Annexes</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="4.0.1" data-path="annexes.html"><a href="annexes.html#sequence-attributes"><i class="fa fa-check"></i><b>4.0.1</b> Sequence attributes</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header" role="navigation">
|
||||
<h1>
|
||||
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">The GO <em>OBITools</em></a>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-wrapper" tabindex="-1" role="main">
|
||||
<div class="page-inner">
|
||||
|
||||
<section class="normal" id="section-">
|
||||
<div id="annexes" class="section level1 hasAnchor" number="4">
|
||||
<h1><span class="header-section-number">4</span> Annexes<a href="annexes.html#annexes" class="anchor-section" aria-label="Anchor link to header"></a></h1>
|
||||
<div id="sequence-attributes" class="section level3 hasAnchor" number="4.0.1">
|
||||
<h3><span class="header-section-number">4.0.1</span> Sequence attributes<a href="annexes.html#sequence-attributes" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<div id="reserved-sequence-attributes" class="section level4 hasAnchor" number="4.0.1.1">
|
||||
<h4><span class="header-section-number">4.0.1.1</span> Reserved sequence attributes<a href="annexes.html#reserved-sequence-attributes" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<div id="ali_dir" class="section level5 hasAnchor" number="4.0.1.1.1">
|
||||
<h5><span class="header-section-number">4.0.1.1.1</span> <code>ali_dir</code><a href="annexes.html#ali_dir" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="type-string" class="section level6 hasAnchor" number="4.0.1.1.1.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.1.1</span> Type : <code>string</code><a href="annexes.html#type-string" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p>The attribute can contain 2 string values <code>"left"</code> or <code>"right".</code></p>
|
||||
</div>
|
||||
<div id="set-by-the-obipairing-tool" class="section level6 hasAnchor" number="4.0.1.1.1.2">
|
||||
<h6><span class="header-section-number">4.0.1.1.1.2</span> Set by the <em>obipairing</em> tool<a href="annexes.html#set-by-the-obipairing-tool" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p>The alignment generated by <em>obipairing</em> is a 3’-end gap free algorithm.
|
||||
Two cases can occur when aligning the forward and reverse reads. If the
|
||||
barcode is long enough, both the reads overlap only on their 3’ ends. In
|
||||
such case, the alignment direction <code>ali_dir</code> is set to <em>left</em>. If the
|
||||
barcode is shorter than the read length, the paired reads overlap by
|
||||
their 5’ ends, and the complete barcode is sequenced by both the reads.
|
||||
In that later case, <code>ali_dir</code> is set to <em>right</em>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="ali_length" class="section level5 hasAnchor" number="4.0.1.1.2">
|
||||
<h5><span class="header-section-number">4.0.1.1.2</span> <code>ali_length</code><a href="annexes.html#ali_length" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="set-by-the-obipairing-tool-1" class="section level6 hasAnchor" number="4.0.1.1.2.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.2.1</span> Set by the <em>obipairing</em> tool<a href="annexes.html#set-by-the-obipairing-tool-1" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p>Length of the aligned parts when merging forward and reverse reads</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="count-the-number-of-sequence-occurrences" class="section level5 hasAnchor" number="4.0.1.1.3">
|
||||
<h5><span class="header-section-number">4.0.1.1.3</span> <code>count</code> : the number of sequence occurrences<a href="annexes.html#count-the-number-of-sequence-occurrences" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="set-by-the-obiuniq-tool" class="section level6 hasAnchor" number="4.0.1.1.3.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.3.1</span> Set by the <em>obiuniq</em> tool<a href="annexes.html#set-by-the-obiuniq-tool" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p>The <code>count</code> attribute indicates how-many strictly identical sequences
|
||||
have been merged in a single record. It contains an integer value. If it
|
||||
is absent this means that the sequence record represents a single
|
||||
occurrence of the sequence.</p>
|
||||
</div>
|
||||
<div id="getter-method-count" class="section level6 hasAnchor" number="4.0.1.1.3.2">
|
||||
<h6><span class="header-section-number">4.0.1.1.3.2</span> Getter : method <code>Count()</code><a href="annexes.html#getter-method-count" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p>The <code>Count()</code> method allows to access to the count attribute as an
|
||||
integer value. If the <code>count</code> attribute is not defined for the given
|
||||
sequence, the value <em>1</em> is returned</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="merged_" class="section level5 hasAnchor" number="4.0.1.1.4">
|
||||
<h5><span class="header-section-number">4.0.1.1.4</span> <code>merged_*</code><a href="annexes.html#merged_" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="type-mapstringint" class="section level6 hasAnchor" number="4.0.1.1.4.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.4.1</span> Type : <code>map[string]int</code><a href="annexes.html#type-mapstringint" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
</div>
|
||||
<div id="set-by-the-obiuniq-tool-1" class="section level6 hasAnchor" number="4.0.1.1.4.2">
|
||||
<h6><span class="header-section-number">4.0.1.1.4.2</span> Set by the <em>obiuniq</em> tool<a href="annexes.html#set-by-the-obiuniq-tool-1" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p>The <code>-m</code> option of the <em>obiuniq</em> tools allows for keeping track of the
|
||||
distribution of the values stored in given attribute of interest. Often
|
||||
this option is used to summarise distribution of a sequence variant
|
||||
accross samples when <em>obiuniq</em> is run after running <em>obimultiplex</em>. The
|
||||
actual name of the attribute depends on the name of the monitored
|
||||
attribute. If <code>-m</code> option is used with the attribute <em>sample</em>, then this
|
||||
attribute names <em>merged_sample</em>.</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="mode" class="section level5 hasAnchor" number="4.0.1.1.5">
|
||||
<h5><span class="header-section-number">4.0.1.1.5</span> <code>mode</code><a href="annexes.html#mode" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="set-by-the-obipairing-tool-2" class="section level6 hasAnchor" number="4.0.1.1.5.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.5.1</span> Set by the <em>obipairing</em> tool<a href="annexes.html#set-by-the-obipairing-tool-2" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p><strong><code>obitag_ref_index</code></strong></p>
|
||||
</div>
|
||||
<div id="set-by-the-obirefidx-tool." class="section level6 hasAnchor" number="4.0.1.1.5.2">
|
||||
<h6><span class="header-section-number">4.0.1.1.5.2</span> Set by the <em>obirefidx</em> tool.<a href="annexes.html#set-by-the-obirefidx-tool." class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
<p>It resumes to which taxonomic annotation a match to that sequence must
|
||||
lead according to the number of differences existing between the query
|
||||
sequence and the reference sequence having that tag.</p>
|
||||
</div>
|
||||
<div id="getter-method-count-1" class="section level6 hasAnchor" number="4.0.1.1.5.3">
|
||||
<h6><span class="header-section-number">4.0.1.1.5.3</span> Getter : method <code>Count()</code><a href="annexes.html#getter-method-count-1" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
</div>
|
||||
</div>
|
||||
<div id="pairing_mismatches" class="section level5 hasAnchor" number="4.0.1.1.6">
|
||||
<h5><span class="header-section-number">4.0.1.1.6</span> <code>pairing_mismatches</code><a href="annexes.html#pairing_mismatches" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="set-by-the-obipairing-tool-3" class="section level6 hasAnchor" number="4.0.1.1.6.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.6.1</span> Set by the <em>obipairing</em> tool<a href="annexes.html#set-by-the-obipairing-tool-3" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
</div>
|
||||
</div>
|
||||
<div id="score" class="section level5 hasAnchor" number="4.0.1.1.7">
|
||||
<h5><span class="header-section-number">4.0.1.1.7</span> <code>score</code><a href="annexes.html#score" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="set-by-the-obipairing-tool-4" class="section level6 hasAnchor" number="4.0.1.1.7.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.7.1</span> Set by the <em>obipairing</em> tool<a href="annexes.html#set-by-the-obipairing-tool-4" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
</div>
|
||||
</div>
|
||||
<div id="score_norm" class="section level5 hasAnchor" number="4.0.1.1.8">
|
||||
<h5><span class="header-section-number">4.0.1.1.8</span> <code>score_norm</code><a href="annexes.html#score_norm" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<div id="set-by-the-obipairing-tool-5" class="section level6 hasAnchor" number="4.0.1.1.8.1">
|
||||
<h6><span class="header-section-number">4.0.1.1.8.1</span> Set by the <em>obipairing</em> tool<a href="annexes.html#set-by-the-obipairing-tool-5" class="anchor-section" aria-label="Anchor link to header"></a></h6>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="reference-documentation-for-the-go-obitools-library.html" class="navigation navigation-prev navigation-unique" aria-label="Previous page"><i class="fa fa-angle-left"></i></a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<script src="book_assets/gitbook-2.6.7/js/app.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/clipboard.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-search.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-sharing.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-bookdown.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/jquery.highlight.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-clipboard.js"></script>
|
||||
<script>
|
||||
gitbook.require(["gitbook"], function(gitbook) {
|
||||
gitbook.start({
|
||||
"sharing": {
|
||||
"github": false,
|
||||
"facebook": true,
|
||||
"twitter": true,
|
||||
"linkedin": false,
|
||||
"weibo": false,
|
||||
"instapaper": false,
|
||||
"vk": false,
|
||||
"whatsapp": false,
|
||||
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
|
||||
},
|
||||
"fontsettings": {
|
||||
"theme": "white",
|
||||
"family": "sans",
|
||||
"size": 2
|
||||
},
|
||||
"edit": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"history": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"view": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"download": ["_main.pdf"],
|
||||
"search": {
|
||||
"engine": "fuse",
|
||||
"options": null
|
||||
},
|
||||
"toc": {
|
||||
"collapse": "subsection"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- dynamically load mathjax for compatibility with self-contained -->
|
||||
<script>
|
||||
(function () {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
var src = "true";
|
||||
if (src === "" || src === "true") src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/latest.js?config=TeX-MML-AM_CHTML";
|
||||
if (location.protocol !== "file:")
|
||||
if (/^https?:/.test(src))
|
||||
src = src.replace(/^https?:/, '');
|
||||
script.src = src;
|
||||
document.getElementsByTagName("head")[0].appendChild(script);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,2 @@
|
||||
/* Styles for section anchors */
|
||||
a.anchor-section::before {content: '#';font-size: 80%;}
|
@ -0,0 +1,4 @@
|
||||
/* Styles for section anchors */
|
||||
a.anchor-section {margin-left: 10px; visibility: hidden; color: inherit;}
|
||||
.hasAnchor:hover a.anchor-section {visibility: visible;}
|
||||
ul > li > .anchor-section {display: none;}
|
@ -0,0 +1,11 @@
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// If section divs is used, we need to put the anchor in the child header
|
||||
const headers = document.querySelectorAll("div.hasAnchor.section[class*='level'] > :first-child")
|
||||
|
||||
headers.forEach(function (x) {
|
||||
// Add to the header node
|
||||
if (!x.classList.contains('hasAnchor')) x.classList.add('hasAnchor')
|
||||
// Remove from the section or div created by Pandoc
|
||||
x.parentElement.classList.remove('hasAnchor')
|
||||
})
|
||||
})
|
Binary file not shown.
105
doc/_book/book_assets/gitbook-2.6.7/css/plugin-bookdown.css
Normal file
105
doc/_book/book_assets/gitbook-2.6.7/css/plugin-bookdown.css
Normal file
@ -0,0 +1,105 @@
|
||||
.book .book-header h1 {
|
||||
padding-left: 20px;
|
||||
padding-right: 20px;
|
||||
}
|
||||
.book .book-header.fixed {
|
||||
position: fixed;
|
||||
right: 0;
|
||||
top: 0;
|
||||
left: 0;
|
||||
border-bottom: 1px solid rgba(0,0,0,.07);
|
||||
}
|
||||
span.search-highlight {
|
||||
background-color: #ffff88;
|
||||
}
|
||||
@media (min-width: 600px) {
|
||||
.book.with-summary .book-header.fixed {
|
||||
left: 300px;
|
||||
}
|
||||
}
|
||||
@media (max-width: 1240px) {
|
||||
.book .book-body.fixed {
|
||||
top: 50px;
|
||||
}
|
||||
.book .book-body.fixed .body-inner {
|
||||
top: auto;
|
||||
}
|
||||
}
|
||||
@media (max-width: 600px) {
|
||||
.book.with-summary .book-header.fixed {
|
||||
left: calc(100% - 60px);
|
||||
min-width: 300px;
|
||||
}
|
||||
.book.with-summary .book-body {
|
||||
transform: none;
|
||||
left: calc(100% - 60px);
|
||||
min-width: 300px;
|
||||
}
|
||||
.book .book-body.fixed {
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.book .book-body.fixed .body-inner {
|
||||
top: 50px;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal sub, .book .book-body .page-wrapper .page-inner section.normal sup {
|
||||
font-size: 85%;
|
||||
}
|
||||
|
||||
@media print {
|
||||
.book .book-summary, .book .book-body .book-header, .fa {
|
||||
display: none !important;
|
||||
}
|
||||
.book .book-body.fixed {
|
||||
left: 0px;
|
||||
}
|
||||
.book .book-body,.book .book-body .body-inner, .book.with-summary {
|
||||
overflow: visible !important;
|
||||
}
|
||||
}
|
||||
.kable_wrapper {
|
||||
border-spacing: 20px 0;
|
||||
border-collapse: separate;
|
||||
border: none;
|
||||
margin: auto;
|
||||
}
|
||||
.kable_wrapper > tbody > tr > td {
|
||||
vertical-align: top;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal table tr.header {
|
||||
border-top-width: 2px;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal table tr:last-child td {
|
||||
border-bottom-width: 2px;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal table td, .book .book-body .page-wrapper .page-inner section.normal table th {
|
||||
border-left: none;
|
||||
border-right: none;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal table.kable_wrapper > tbody > tr, .book .book-body .page-wrapper .page-inner section.normal table.kable_wrapper > tbody > tr > td {
|
||||
border-top: none;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal table.kable_wrapper > tbody > tr:last-child > td {
|
||||
border-bottom: none;
|
||||
}
|
||||
|
||||
div.theorem, div.lemma, div.corollary, div.proposition, div.conjecture {
|
||||
font-style: italic;
|
||||
}
|
||||
span.theorem, span.lemma, span.corollary, span.proposition, span.conjecture {
|
||||
font-style: normal;
|
||||
}
|
||||
div.proof>*:last-child:after {
|
||||
content: "\25a2";
|
||||
float: right;
|
||||
}
|
||||
.header-section-number {
|
||||
padding-right: .5em;
|
||||
}
|
||||
#header .multi-author {
|
||||
margin: 0.5em 0 -0.5em 0;
|
||||
}
|
||||
#header .date {
|
||||
margin-top: 1.5em;
|
||||
}
|
18
doc/_book/book_assets/gitbook-2.6.7/css/plugin-clipboard.css
Normal file
18
doc/_book/book_assets/gitbook-2.6.7/css/plugin-clipboard.css
Normal file
@ -0,0 +1,18 @@
|
||||
div.sourceCode {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.copy-to-clipboard-button {
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
.copy-to-clipboard-button:focus {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
div.sourceCode:hover > .copy-to-clipboard-button {
|
||||
visibility: visible;
|
||||
}
|
303
doc/_book/book_assets/gitbook-2.6.7/css/plugin-fontsettings.css
Normal file
303
doc/_book/book_assets/gitbook-2.6.7/css/plugin-fontsettings.css
Normal file
@ -0,0 +1,303 @@
|
||||
/*
|
||||
* Theme 1
|
||||
*/
|
||||
.color-theme-1 .dropdown-menu {
|
||||
background-color: #111111;
|
||||
border-color: #7e888b;
|
||||
}
|
||||
.color-theme-1 .dropdown-menu .dropdown-caret .caret-inner {
|
||||
border-bottom: 9px solid #111111;
|
||||
}
|
||||
.color-theme-1 .dropdown-menu .buttons {
|
||||
border-color: #7e888b;
|
||||
}
|
||||
.color-theme-1 .dropdown-menu .button {
|
||||
color: #afa790;
|
||||
}
|
||||
.color-theme-1 .dropdown-menu .button:hover {
|
||||
color: #73553c;
|
||||
}
|
||||
/*
|
||||
* Theme 2
|
||||
*/
|
||||
.color-theme-2 .dropdown-menu {
|
||||
background-color: #2d3143;
|
||||
border-color: #272a3a;
|
||||
}
|
||||
.color-theme-2 .dropdown-menu .dropdown-caret .caret-inner {
|
||||
border-bottom: 9px solid #2d3143;
|
||||
}
|
||||
.color-theme-2 .dropdown-menu .buttons {
|
||||
border-color: #272a3a;
|
||||
}
|
||||
.color-theme-2 .dropdown-menu .button {
|
||||
color: #62677f;
|
||||
}
|
||||
.color-theme-2 .dropdown-menu .button:hover {
|
||||
color: #f4f4f5;
|
||||
}
|
||||
.book .book-header .font-settings .font-enlarge {
|
||||
line-height: 30px;
|
||||
font-size: 1.4em;
|
||||
}
|
||||
.book .book-header .font-settings .font-reduce {
|
||||
line-height: 30px;
|
||||
font-size: 1em;
|
||||
}
|
||||
|
||||
/* sidebar transition background */
|
||||
div.book.color-theme-1 {
|
||||
background: #f3eacb;
|
||||
}
|
||||
.book.color-theme-1 .book-body {
|
||||
color: #704214;
|
||||
background: #f3eacb;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section {
|
||||
background: #f3eacb;
|
||||
}
|
||||
|
||||
/* sidebar transition background */
|
||||
div.book.color-theme-2 {
|
||||
background: #1c1f2b;
|
||||
}
|
||||
|
||||
.book.color-theme-2 .book-body {
|
||||
color: #bdcadb;
|
||||
background: #1c1f2b;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section {
|
||||
background: #1c1f2b;
|
||||
}
|
||||
.book.font-size-0 .book-body .page-inner section {
|
||||
font-size: 1.2rem;
|
||||
}
|
||||
.book.font-size-1 .book-body .page-inner section {
|
||||
font-size: 1.4rem;
|
||||
}
|
||||
.book.font-size-2 .book-body .page-inner section {
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
.book.font-size-3 .book-body .page-inner section {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
.book.font-size-4 .book-body .page-inner section {
|
||||
font-size: 4rem;
|
||||
}
|
||||
.book.font-family-0 {
|
||||
font-family: Georgia, serif;
|
||||
}
|
||||
.book.font-family-1 {
|
||||
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal {
|
||||
color: #704214;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal a {
|
||||
color: inherit;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h3,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h4,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h5,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
|
||||
color: inherit;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h1,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h2 {
|
||||
border-color: inherit;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal h6 {
|
||||
color: inherit;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal hr {
|
||||
background-color: inherit;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal blockquote {
|
||||
border-color: #c4b29f;
|
||||
opacity: 0.9;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
|
||||
background: #fdf6e3;
|
||||
color: #657b83;
|
||||
border-color: #f8df9c;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal .highlight {
|
||||
background-color: inherit;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table th,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table td {
|
||||
border-color: #f5d06c;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr {
|
||||
color: inherit;
|
||||
background-color: #fdf6e3;
|
||||
border-color: #444444;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
|
||||
background-color: #fbeecb;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal {
|
||||
color: #bdcadb;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal a {
|
||||
color: #3eb1d0;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h3,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h4,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h5,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
|
||||
color: #fffffa;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h1,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h2 {
|
||||
border-color: #373b4e;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal h6 {
|
||||
color: #373b4e;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal hr {
|
||||
background-color: #373b4e;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal blockquote {
|
||||
border-color: #373b4e;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
|
||||
color: #9dbed8;
|
||||
background: #2d3143;
|
||||
border-color: #2d3143;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal .highlight {
|
||||
background-color: #282a39;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table th,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table td {
|
||||
border-color: #3b3f54;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr {
|
||||
color: #b6c2d2;
|
||||
background-color: #2d3143;
|
||||
border-color: #3b3f54;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n) {
|
||||
background-color: #35394b;
|
||||
}
|
||||
.book.color-theme-1 .book-header {
|
||||
color: #afa790;
|
||||
background: transparent;
|
||||
}
|
||||
.book.color-theme-1 .book-header .btn {
|
||||
color: #afa790;
|
||||
}
|
||||
.book.color-theme-1 .book-header .btn:hover {
|
||||
color: #73553c;
|
||||
background: none;
|
||||
}
|
||||
.book.color-theme-1 .book-header h1 {
|
||||
color: #704214;
|
||||
}
|
||||
.book.color-theme-2 .book-header {
|
||||
color: #7e888b;
|
||||
background: transparent;
|
||||
}
|
||||
.book.color-theme-2 .book-header .btn {
|
||||
color: #3b3f54;
|
||||
}
|
||||
.book.color-theme-2 .book-header .btn:hover {
|
||||
color: #fffff5;
|
||||
background: none;
|
||||
}
|
||||
.book.color-theme-2 .book-header h1 {
|
||||
color: #bdcadb;
|
||||
}
|
||||
.book.color-theme-1 .book-body .navigation {
|
||||
color: #afa790;
|
||||
}
|
||||
.book.color-theme-1 .book-body .navigation:hover {
|
||||
color: #73553c;
|
||||
}
|
||||
.book.color-theme-2 .book-body .navigation {
|
||||
color: #383f52;
|
||||
}
|
||||
.book.color-theme-2 .book-body .navigation:hover {
|
||||
color: #fffff5;
|
||||
}
|
||||
/*
|
||||
* Theme 1
|
||||
*/
|
||||
.book.color-theme-1 .book-summary {
|
||||
color: #afa790;
|
||||
background: #111111;
|
||||
border-right: 1px solid rgba(0, 0, 0, 0.07);
|
||||
}
|
||||
.book.color-theme-1 .book-summary .book-search {
|
||||
background: transparent;
|
||||
}
|
||||
.book.color-theme-1 .book-summary .book-search input,
|
||||
.book.color-theme-1 .book-summary .book-search input:focus {
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
.book.color-theme-1 .book-summary ul.summary li.divider {
|
||||
background: #7e888b;
|
||||
box-shadow: none;
|
||||
}
|
||||
.book.color-theme-1 .book-summary ul.summary li i.fa-check {
|
||||
color: #33cc33;
|
||||
}
|
||||
.book.color-theme-1 .book-summary ul.summary li.done > a {
|
||||
color: #877f6a;
|
||||
}
|
||||
.book.color-theme-1 .book-summary ul.summary li a,
|
||||
.book.color-theme-1 .book-summary ul.summary li span {
|
||||
color: #877f6a;
|
||||
background: transparent;
|
||||
font-weight: normal;
|
||||
}
|
||||
.book.color-theme-1 .book-summary ul.summary li.active > a,
|
||||
.book.color-theme-1 .book-summary ul.summary li a:hover {
|
||||
color: #704214;
|
||||
background: transparent;
|
||||
font-weight: normal;
|
||||
}
|
||||
/*
|
||||
* Theme 2
|
||||
*/
|
||||
.book.color-theme-2 .book-summary {
|
||||
color: #bcc1d2;
|
||||
background: #2d3143;
|
||||
border-right: none;
|
||||
}
|
||||
.book.color-theme-2 .book-summary .book-search {
|
||||
background: transparent;
|
||||
}
|
||||
.book.color-theme-2 .book-summary .book-search input,
|
||||
.book.color-theme-2 .book-summary .book-search input:focus {
|
||||
border: 1px solid transparent;
|
||||
}
|
||||
.book.color-theme-2 .book-summary ul.summary li.divider {
|
||||
background: #272a3a;
|
||||
box-shadow: none;
|
||||
}
|
||||
.book.color-theme-2 .book-summary ul.summary li i.fa-check {
|
||||
color: #33cc33;
|
||||
}
|
||||
.book.color-theme-2 .book-summary ul.summary li.done > a {
|
||||
color: #62687f;
|
||||
}
|
||||
.book.color-theme-2 .book-summary ul.summary li a,
|
||||
.book.color-theme-2 .book-summary ul.summary li span {
|
||||
color: #c1c6d7;
|
||||
background: transparent;
|
||||
font-weight: 600;
|
||||
}
|
||||
.book.color-theme-2 .book-summary ul.summary li.active > a,
|
||||
.book.color-theme-2 .book-summary ul.summary li a:hover {
|
||||
color: #f4f4f5;
|
||||
background: #252737;
|
||||
font-weight: 600;
|
||||
}
|
426
doc/_book/book_assets/gitbook-2.6.7/css/plugin-highlight.css
Normal file
426
doc/_book/book_assets/gitbook-2.6.7/css/plugin-highlight.css
Normal file
@ -0,0 +1,426 @@
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code {
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
/* Tomorrow Comment */
|
||||
/* Tomorrow Red */
|
||||
/* Tomorrow Orange */
|
||||
/* Tomorrow Yellow */
|
||||
/* Tomorrow Green */
|
||||
/* Tomorrow Aqua */
|
||||
/* Tomorrow Blue */
|
||||
/* Tomorrow Purple */
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-title {
|
||||
color: #8e908c;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
|
||||
color: #c82829;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-number,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-params,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
|
||||
color: #f5871f;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
|
||||
color: #eab700;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-string,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-value,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-header,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
|
||||
color: #718c00;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
|
||||
color: #3e999f;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-function,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
|
||||
color: #4271ae;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
|
||||
color: #8959a8;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .hljs,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .hljs {
|
||||
display: block;
|
||||
background: white;
|
||||
color: #4d4d4c;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .css,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .css,
|
||||
.book .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
|
||||
.book .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
|
||||
opacity: 0.5;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code {
|
||||
/*
|
||||
|
||||
Orginal Style from ethanschoonover.com/solarized (c) Jeremy Hull <sourdrums@gmail.com>
|
||||
|
||||
*/
|
||||
/* Solarized Green */
|
||||
/* Solarized Cyan */
|
||||
/* Solarized Blue */
|
||||
/* Solarized Yellow */
|
||||
/* Solarized Orange */
|
||||
/* Solarized Red */
|
||||
/* Solarized Violet */
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs {
|
||||
display: block;
|
||||
padding: 0.5em;
|
||||
background: #fdf6e3;
|
||||
color: #657b83;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-template_comment,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-template_comment,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-header,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-header,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-doctype,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-doctype,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pi,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pi,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-string,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-string,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-javadoc,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-javadoc {
|
||||
color: #93a1a1;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-winutils,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-winutils,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .method,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .method,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-addition,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-addition,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-tag,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-tag,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-request,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-request,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-status,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-status,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .nginx .hljs-title,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .nginx .hljs-title {
|
||||
color: #859900;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-command,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-command,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag .hljs-value,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-tag .hljs-value,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-rules .hljs-value,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-rules .hljs-value,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-phpdoc,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-phpdoc,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-hexcolor,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-hexcolor,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_url,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_url {
|
||||
color: #2aa198;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-title,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-localvars,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-localvars,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-chunk,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-chunk,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-decorator,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-decorator,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-identifier,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-identifier,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .vhdl .hljs-literal,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .vhdl .hljs-literal,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-id,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-id,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-function,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-function {
|
||||
color: #268bd2;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .lisp .hljs-body,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .lisp .hljs-body,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .smalltalk .hljs-number,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .smalltalk .hljs-number,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-constant,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-class .hljs-title,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-class .hljs-title,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-parent,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-parent,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .haskell .hljs-type,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .haskell .hljs-type,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_reference,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_reference {
|
||||
color: #b58900;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor .hljs-keyword,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor .hljs-keyword,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-shebang,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-shebang,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-symbol .hljs-string,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-symbol .hljs-string,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .diff .hljs-change,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .diff .hljs-change,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-special,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-special,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-attr_selector,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-attr_selector,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-subst,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-subst,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-cdata,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-cdata,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .clojure .hljs-title,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .clojure .hljs-title,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-header {
|
||||
color: #cb4b16;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-deletion,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-deletion,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-important,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-important {
|
||||
color: #dc322f;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .hljs-link_label,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .hljs-link_label {
|
||||
color: #6c71c4;
|
||||
}
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
|
||||
.book.color-theme-1 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula {
|
||||
background: #eee8d5;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code {
|
||||
/* Tomorrow Night Bright Theme */
|
||||
/* Original theme - https://github.com/chriskempson/tomorrow-theme */
|
||||
/* http://jmblog.github.com/color-themes-for-google-code-highlightjs */
|
||||
/* Tomorrow Comment */
|
||||
/* Tomorrow Red */
|
||||
/* Tomorrow Orange */
|
||||
/* Tomorrow Yellow */
|
||||
/* Tomorrow Green */
|
||||
/* Tomorrow Aqua */
|
||||
/* Tomorrow Blue */
|
||||
/* Tomorrow Purple */
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-comment,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-comment,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-title {
|
||||
color: #969896;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-variable,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-variable,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-attribute,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-attribute,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-tag,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-tag,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-regexp,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-regexp,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-constant,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-constant,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-tag .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-tag .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-pi,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-pi,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-doctype,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-doctype,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .html .hljs-doctype,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .html .hljs-doctype,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-id,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-id,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-class,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-class,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-pseudo,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-pseudo {
|
||||
color: #d54e53;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-number,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-number,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-preprocessor,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-preprocessor,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-pragma,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-pragma,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-built_in,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-built_in,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-literal,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-literal,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-params,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-params,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-constant,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-constant {
|
||||
color: #e78c45;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-class .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-class .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-rules .hljs-attribute,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-rules .hljs-attribute {
|
||||
color: #e7c547;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-string,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-string,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-value,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-value,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-inheritance,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-inheritance,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-header,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-header,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-symbol,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-symbol,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
|
||||
color: #b9ca4a;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .css .hljs-hexcolor,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .css .hljs-hexcolor {
|
||||
color: #70c0b1;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-function,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-function,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-decorator,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-decorator,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .python .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .python .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-function .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-function .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .ruby .hljs-title .hljs-keyword,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .ruby .hljs-title .hljs-keyword,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .perl .hljs-sub,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .perl .hljs-sub,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .hljs-title,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .hljs-title {
|
||||
color: #7aa6da;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs-keyword,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs-keyword,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .hljs-function,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .hljs-function {
|
||||
color: #c397d8;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .hljs,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .hljs {
|
||||
display: block;
|
||||
background: black;
|
||||
color: #eaeaea;
|
||||
padding: 0.5em;
|
||||
}
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .coffeescript .javascript,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .coffeescript .javascript,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .javascript .xml,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .javascript .xml,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .tex .hljs-formula,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .tex .hljs-formula,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .javascript,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .javascript,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .vbscript,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .vbscript,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .css,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .css,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal pre .xml .hljs-cdata,
|
||||
.book.color-theme-2 .book-body .page-wrapper .page-inner section.normal code .xml .hljs-cdata {
|
||||
opacity: 0.5;
|
||||
}
|
31
doc/_book/book_assets/gitbook-2.6.7/css/plugin-search.css
Normal file
31
doc/_book/book_assets/gitbook-2.6.7/css/plugin-search.css
Normal file
@ -0,0 +1,31 @@
|
||||
.book .book-summary .book-search {
|
||||
padding: 6px;
|
||||
background: transparent;
|
||||
position: absolute;
|
||||
top: -50px;
|
||||
left: 0px;
|
||||
right: 0px;
|
||||
transition: top 0.5s ease;
|
||||
}
|
||||
.book .book-summary .book-search input,
|
||||
.book .book-summary .book-search input:focus,
|
||||
.book .book-summary .book-search input:hover {
|
||||
width: 100%;
|
||||
background: transparent;
|
||||
border: 1px solid #ccc;
|
||||
box-shadow: none;
|
||||
outline: none;
|
||||
line-height: 22px;
|
||||
padding: 7px 4px;
|
||||
color: inherit;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
.book.with-search .book-summary .book-search {
|
||||
top: 0px;
|
||||
}
|
||||
.book.with-search .book-summary ul.summary {
|
||||
top: 50px;
|
||||
}
|
||||
.with-search .summary li[data-level] a[href*=".html#"] {
|
||||
display: none;
|
||||
}
|
1
doc/_book/book_assets/gitbook-2.6.7/css/plugin-table.css
Normal file
1
doc/_book/book_assets/gitbook-2.6.7/css/plugin-table.css
Normal file
@ -0,0 +1 @@
|
||||
.book .book-body .page-wrapper .page-inner section.normal table{display:table;width:100%;border-collapse:collapse;border-spacing:0;overflow:auto}.book .book-body .page-wrapper .page-inner section.normal table td,.book .book-body .page-wrapper .page-inner section.normal table th{padding:6px 13px;border:1px solid #ddd}.book .book-body .page-wrapper .page-inner section.normal table tr{background-color:#fff;border-top:1px solid #ccc}.book .book-body .page-wrapper .page-inner section.normal table tr:nth-child(2n){background-color:#f8f8f8}.book .book-body .page-wrapper .page-inner section.normal table th{font-weight:700}
|
13
doc/_book/book_assets/gitbook-2.6.7/css/style.css
Normal file
13
doc/_book/book_assets/gitbook-2.6.7/css/style.css
Normal file
File diff suppressed because one or more lines are too long
1
doc/_book/book_assets/gitbook-2.6.7/js/app.min.js
vendored
Normal file
1
doc/_book/book_assets/gitbook-2.6.7/js/app.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
7
doc/_book/book_assets/gitbook-2.6.7/js/clipboard.min.js
vendored
Normal file
7
doc/_book/book_assets/gitbook-2.6.7/js/clipboard.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
86
doc/_book/book_assets/gitbook-2.6.7/js/jquery.highlight.js
Normal file
86
doc/_book/book_assets/gitbook-2.6.7/js/jquery.highlight.js
Normal file
@ -0,0 +1,86 @@
|
||||
gitbook.require(["jQuery"], function(jQuery) {
|
||||
|
||||
/*
|
||||
* jQuery Highlight plugin
|
||||
*
|
||||
* Based on highlight v3 by Johann Burkard
|
||||
* http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html
|
||||
*
|
||||
* Code a little bit refactored and cleaned (in my humble opinion).
|
||||
* Most important changes:
|
||||
* - has an option to highlight only entire words (wordsOnly - false by default),
|
||||
* - has an option to be case sensitive (caseSensitive - false by default)
|
||||
* - highlight element tag and class names can be specified in options
|
||||
*
|
||||
* Copyright (c) 2009 Bartek Szopka
|
||||
*
|
||||
* Licensed under MIT license.
|
||||
*
|
||||
*/
|
||||
|
||||
jQuery.extend({
|
||||
highlight: function (node, re, nodeName, className) {
|
||||
if (node.nodeType === 3) {
|
||||
var match = node.data.match(re);
|
||||
if (match) {
|
||||
var highlight = document.createElement(nodeName || 'span');
|
||||
highlight.className = className || 'highlight';
|
||||
var wordNode = node.splitText(match.index);
|
||||
wordNode.splitText(match[0].length);
|
||||
var wordClone = wordNode.cloneNode(true);
|
||||
highlight.appendChild(wordClone);
|
||||
wordNode.parentNode.replaceChild(highlight, wordNode);
|
||||
return 1; //skip added node in parent
|
||||
}
|
||||
} else if ((node.nodeType === 1 && node.childNodes) && // only element nodes that have children
|
||||
!/(script|style)/i.test(node.tagName) && // ignore script and style nodes
|
||||
!(node.tagName === nodeName.toUpperCase() && node.className === className)) { // skip if already highlighted
|
||||
for (var i = 0; i < node.childNodes.length; i++) {
|
||||
i += jQuery.highlight(node.childNodes[i], re, nodeName, className);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
});
|
||||
|
||||
jQuery.fn.unhighlight = function (options) {
|
||||
var settings = { className: 'highlight', element: 'span' };
|
||||
jQuery.extend(settings, options);
|
||||
|
||||
return this.find(settings.element + "." + settings.className).each(function () {
|
||||
var parent = this.parentNode;
|
||||
parent.replaceChild(this.firstChild, this);
|
||||
parent.normalize();
|
||||
}).end();
|
||||
};
|
||||
|
||||
jQuery.fn.highlight = function (words, options) {
|
||||
var settings = { className: 'highlight', element: 'span', caseSensitive: false, wordsOnly: false };
|
||||
jQuery.extend(settings, options);
|
||||
|
||||
if (words.constructor === String) {
|
||||
words = [words];
|
||||
// also match 'foo-bar' if search for 'foo bar'
|
||||
if (/\s/.test(words[0])) words.push(words[0].replace(/\s+/, '-'));
|
||||
}
|
||||
words = jQuery.grep(words, function(word, i){
|
||||
return word !== '';
|
||||
});
|
||||
words = jQuery.map(words, function(word, i) {
|
||||
return word.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&");
|
||||
});
|
||||
if (words.length === 0) { return this; }
|
||||
|
||||
var flag = settings.caseSensitive ? "" : "i";
|
||||
var pattern = "(" + words.join("|") + ")";
|
||||
if (settings.wordsOnly) {
|
||||
pattern = "\\b" + pattern + "\\b";
|
||||
}
|
||||
var re = new RegExp(pattern, flag);
|
||||
|
||||
return this.each(function () {
|
||||
jQuery.highlight(this, re, settings.element, settings.className);
|
||||
});
|
||||
};
|
||||
|
||||
});
|
259
doc/_book/book_assets/gitbook-2.6.7/js/plugin-bookdown.js
Normal file
259
doc/_book/book_assets/gitbook-2.6.7/js/plugin-bookdown.js
Normal file
@ -0,0 +1,259 @@
|
||||
gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) {
|
||||
|
||||
var gs = gitbook.storage;
|
||||
|
||||
gitbook.events.bind("start", function(e, config) {
|
||||
|
||||
// add the Edit button (edit on Github)
|
||||
var edit = config.edit;
|
||||
if (edit && edit.link) gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-edit',
|
||||
label: edit.text || 'Edit',
|
||||
position: 'left',
|
||||
onClick: function(e) {
|
||||
e.preventDefault();
|
||||
window.open(edit.link);
|
||||
}
|
||||
});
|
||||
|
||||
// add the History button (file history on Github)
|
||||
var history = config.history;
|
||||
if (history && history.link) gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-history',
|
||||
label: history.text || 'History',
|
||||
position: 'left',
|
||||
onClick: function(e) {
|
||||
e.preventDefault();
|
||||
window.open(history.link);
|
||||
}
|
||||
});
|
||||
|
||||
// add the View button (file view on Github)
|
||||
var view = config.view;
|
||||
if (view && view.link) gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-eye',
|
||||
label: view.text || 'View Source',
|
||||
position: 'left',
|
||||
onClick: function(e) {
|
||||
e.preventDefault();
|
||||
window.open(view.link);
|
||||
}
|
||||
});
|
||||
|
||||
// add the Download button
|
||||
var down = config.download;
|
||||
var normalizeDownload = function() {
|
||||
if (!down || !(down instanceof Array) || down.length === 0) return;
|
||||
if (down[0] instanceof Array) return down;
|
||||
return $.map(down, function(file, i) {
|
||||
return [[file, file.replace(/.*[.]/g, '').toUpperCase()]];
|
||||
});
|
||||
};
|
||||
down = normalizeDownload(down);
|
||||
if (down) if (down.length === 1 && /[.]pdf$/.test(down[0][0])) {
|
||||
gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-file-pdf-o',
|
||||
label: down[0][1],
|
||||
position: 'left',
|
||||
onClick: function(e) {
|
||||
e.preventDefault();
|
||||
window.open(down[0][0]);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-download',
|
||||
label: 'Download',
|
||||
position: 'left',
|
||||
dropdown: $.map(down, function(item, i) {
|
||||
return {
|
||||
text: item[1],
|
||||
onClick: function(e) {
|
||||
e.preventDefault();
|
||||
window.open(item[0]);
|
||||
}
|
||||
};
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
// add the Information button
|
||||
var info = ['Keyboard shortcuts (<> indicates arrow keys):',
|
||||
'<left>/<right>: navigate to previous/next page',
|
||||
's: Toggle sidebar'];
|
||||
if (config.search !== false) info.push('f: Toggle search input ' +
|
||||
'(use <up>/<down>/Enter in the search input to navigate through search matches; ' +
|
||||
'press Esc to cancel search)');
|
||||
if (config.info !== false) gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-info',
|
||||
label: 'Information about the toolbar',
|
||||
position: 'left',
|
||||
onClick: function(e) {
|
||||
e.preventDefault();
|
||||
window.alert(info.join('\n\n'));
|
||||
}
|
||||
});
|
||||
|
||||
// highlight the current section in TOC
|
||||
var href = window.location.pathname;
|
||||
href = href.substr(href.lastIndexOf('/') + 1);
|
||||
// accentuated characters need to be decoded (#819)
|
||||
href = decodeURIComponent(href);
|
||||
if (href === '') href = 'index.html';
|
||||
var li = $('a[href^="' + href + location.hash + '"]').parent('li.chapter').first();
|
||||
var summary = $('ul.summary'), chaps = summary.find('li.chapter');
|
||||
if (li.length === 0) li = chaps.first();
|
||||
li.addClass('active');
|
||||
chaps.on('click', function(e) {
|
||||
chaps.removeClass('active');
|
||||
$(this).addClass('active');
|
||||
gs.set('tocScrollTop', summary.scrollTop());
|
||||
});
|
||||
|
||||
var toc = config.toc;
|
||||
// collapse TOC items that are not for the current chapter
|
||||
if (toc && toc.collapse) (function() {
|
||||
var type = toc.collapse;
|
||||
if (type === 'none') return;
|
||||
if (type !== 'section' && type !== 'subsection') return;
|
||||
// sections under chapters
|
||||
var toc_sub = summary.children('li[data-level]').children('ul');
|
||||
if (type === 'section') {
|
||||
toc_sub.hide()
|
||||
.parent().has(li).children('ul').show();
|
||||
} else {
|
||||
toc_sub.children('li').children('ul').hide()
|
||||
.parent().has(li).children('ul').show();
|
||||
}
|
||||
li.children('ul').show();
|
||||
var toc_sub2 = toc_sub.children('li');
|
||||
if (type === 'section') toc_sub2.children('ul').hide();
|
||||
summary.children('li[data-level]').find('a')
|
||||
.on('click.bookdown', function(e) {
|
||||
if (href === $(this).attr('href').replace(/#.*/, ''))
|
||||
$(this).parent('li').children('ul').toggle();
|
||||
});
|
||||
})();
|
||||
|
||||
// add tooltips to the <a>'s that are truncated
|
||||
$('a').each(function(i, el) {
|
||||
if (el.offsetWidth >= el.scrollWidth) return;
|
||||
if (typeof el.title === 'undefined') return;
|
||||
el.title = el.text;
|
||||
});
|
||||
|
||||
// restore TOC scroll position
|
||||
var pos = gs.get('tocScrollTop');
|
||||
if (typeof pos !== 'undefined') summary.scrollTop(pos);
|
||||
|
||||
// highlight the TOC item that has same text as the heading in view as scrolling
|
||||
if (toc && toc.scroll_highlight !== false && li.length > 0) (function() {
|
||||
// scroll the current TOC item into viewport
|
||||
var ht = $(window).height(), rect = li[0].getBoundingClientRect();
|
||||
if (rect.top >= ht || rect.top <= 0 || rect.bottom <= 0) {
|
||||
summary.scrollTop(li[0].offsetTop);
|
||||
}
|
||||
// current chapter TOC items
|
||||
var items = $('a[href^="' + href + '"]').parent('li.chapter'),
|
||||
m = items.length;
|
||||
if (m === 0) {
|
||||
items = summary.find('li.chapter');
|
||||
m = items.length;
|
||||
}
|
||||
if (m === 0) return;
|
||||
// all section titles on current page
|
||||
var hs = bookInner.find('.page-inner').find('h1,h2,h3'), n = hs.length,
|
||||
ts = hs.map(function(i, el) { return $(el).text(); });
|
||||
if (n === 0) return;
|
||||
var scrollHandler = function(e) {
|
||||
var ht = $(window).height();
|
||||
clearTimeout($.data(this, 'scrollTimer'));
|
||||
$.data(this, 'scrollTimer', setTimeout(function() {
|
||||
// find the first visible title in the viewport
|
||||
for (var i = 0; i < n; i++) {
|
||||
var rect = hs[i].getBoundingClientRect();
|
||||
if (rect.top >= 0 && rect.bottom <= ht) break;
|
||||
}
|
||||
if (i === n) return;
|
||||
items.removeClass('active');
|
||||
for (var j = 0; j < m; j++) {
|
||||
if (items.eq(j).children('a').first().text() === ts[i]) break;
|
||||
}
|
||||
if (j === m) j = 0; // highlight the chapter title
|
||||
// search bottom-up for a visible TOC item to highlight; if an item is
|
||||
// hidden, we check if its parent is visible, and so on
|
||||
while (j > 0 && items.eq(j).is(':hidden')) j--;
|
||||
items.eq(j).addClass('active');
|
||||
}, 250));
|
||||
};
|
||||
bookInner.on('scroll.bookdown', scrollHandler);
|
||||
bookBody.on('scroll.bookdown', scrollHandler);
|
||||
})();
|
||||
|
||||
// do not refresh the page if the TOC item points to the current page
|
||||
$('a[href="' + href + '"]').parent('li.chapter').children('a')
|
||||
.on('click', function(e) {
|
||||
bookInner.scrollTop(0);
|
||||
bookBody.scrollTop(0);
|
||||
return false;
|
||||
});
|
||||
|
||||
var toolbar = config.toolbar;
|
||||
if (!toolbar || toolbar.position !== 'static') {
|
||||
var bookHeader = $('.book-header');
|
||||
bookBody.addClass('fixed');
|
||||
bookHeader.addClass('fixed')
|
||||
.css('background-color', bookBody.css('background-color'))
|
||||
.on('click.bookdown', function(e) {
|
||||
// the theme may have changed after user clicks the theme button
|
||||
bookHeader.css('background-color', bookBody.css('background-color'));
|
||||
});
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
gitbook.events.bind("page.change", function(e) {
|
||||
// store TOC scroll position
|
||||
var summary = $('ul.summary');
|
||||
gs.set('tocScrollTop', summary.scrollTop());
|
||||
});
|
||||
|
||||
var bookBody = $('.book-body'), bookInner = bookBody.find('.body-inner');
|
||||
var chapterTitle = function() {
|
||||
return bookInner.find('.page-inner').find('h1,h2').first().text();
|
||||
};
|
||||
var saveScrollPos = function(e) {
|
||||
// save scroll position before page is reloaded
|
||||
gs.set('bodyScrollTop', {
|
||||
body: bookBody.scrollTop(),
|
||||
inner: bookInner.scrollTop(),
|
||||
focused: document.hasFocus(),
|
||||
title: chapterTitle()
|
||||
});
|
||||
};
|
||||
$(document).on('servr:reload', saveScrollPos);
|
||||
|
||||
// check if the page is loaded in an iframe (e.g. the RStudio preview window)
|
||||
var inIFrame = function() {
|
||||
var inIframe = true;
|
||||
try { inIframe = window.self !== window.top; } catch (e) {}
|
||||
return inIframe;
|
||||
};
|
||||
if (inIFrame()) {
|
||||
$(window).on('blur unload', saveScrollPos);
|
||||
}
|
||||
|
||||
$(function(e) {
|
||||
var pos = gs.get('bodyScrollTop');
|
||||
if (pos) {
|
||||
if (pos.title === chapterTitle()) {
|
||||
if (pos.body !== 0) bookBody.scrollTop(pos.body);
|
||||
if (pos.inner !== 0) bookInner.scrollTop(pos.inner);
|
||||
}
|
||||
}
|
||||
if ((pos && pos.focused) || !inIFrame()) bookInner.find('.page-wrapper').focus();
|
||||
// clear book body scroll position
|
||||
gs.remove('bodyScrollTop');
|
||||
});
|
||||
|
||||
});
|
33
doc/_book/book_assets/gitbook-2.6.7/js/plugin-clipboard.js
Normal file
33
doc/_book/book_assets/gitbook-2.6.7/js/plugin-clipboard.js
Normal file
@ -0,0 +1,33 @@
|
||||
gitbook.require(["gitbook", "jQuery"], function(gitbook, $) {
|
||||
|
||||
var copyButton = '<button type="button" class="copy-to-clipboard-button" title="Copy to clipboard" aria-label="Copy to clipboard"><i class="fa fa-copy"></i></button>';
|
||||
var clipboard;
|
||||
|
||||
gitbook.events.bind("page.change", function() {
|
||||
|
||||
if (!ClipboardJS.isSupported()) return;
|
||||
|
||||
// the page.change event is thrown twice: before and after the page changes
|
||||
if (clipboard) {
|
||||
// clipboard is already defined but we are on the same page
|
||||
if (clipboard._prevPage === window.location.pathname) return;
|
||||
// clipboard is already defined and url path change
|
||||
// we can deduct that we are before page changes
|
||||
clipboard.destroy(); // destroy the previous events listeners
|
||||
clipboard = undefined; // reset the clipboard object
|
||||
return;
|
||||
}
|
||||
|
||||
$(copyButton).prependTo("div.sourceCode");
|
||||
|
||||
clipboard = new ClipboardJS(".copy-to-clipboard-button", {
|
||||
text: function(trigger) {
|
||||
return trigger.parentNode.textContent;
|
||||
}
|
||||
});
|
||||
|
||||
clipboard._prevPage = window.location.pathname
|
||||
|
||||
});
|
||||
|
||||
});
|
152
doc/_book/book_assets/gitbook-2.6.7/js/plugin-fontsettings.js
Normal file
152
doc/_book/book_assets/gitbook-2.6.7/js/plugin-fontsettings.js
Normal file
@ -0,0 +1,152 @@
|
||||
gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) {
|
||||
var fontState;
|
||||
|
||||
var THEMES = {
|
||||
"white": 0,
|
||||
"sepia": 1,
|
||||
"night": 2
|
||||
};
|
||||
|
||||
var FAMILY = {
|
||||
"serif": 0,
|
||||
"sans": 1
|
||||
};
|
||||
|
||||
// Save current font settings
|
||||
function saveFontSettings() {
|
||||
gitbook.storage.set("fontState", fontState);
|
||||
update();
|
||||
}
|
||||
|
||||
// Increase font size
|
||||
function enlargeFontSize(e) {
|
||||
e.preventDefault();
|
||||
if (fontState.size >= 4) return;
|
||||
|
||||
fontState.size++;
|
||||
saveFontSettings();
|
||||
};
|
||||
|
||||
// Decrease font size
|
||||
function reduceFontSize(e) {
|
||||
e.preventDefault();
|
||||
if (fontState.size <= 0) return;
|
||||
|
||||
fontState.size--;
|
||||
saveFontSettings();
|
||||
};
|
||||
|
||||
// Change font family
|
||||
function changeFontFamily(index, e) {
|
||||
e.preventDefault();
|
||||
|
||||
fontState.family = index;
|
||||
saveFontSettings();
|
||||
};
|
||||
|
||||
// Change type of color
|
||||
function changeColorTheme(index, e) {
|
||||
e.preventDefault();
|
||||
|
||||
var $book = $(".book");
|
||||
|
||||
if (fontState.theme !== 0)
|
||||
$book.removeClass("color-theme-"+fontState.theme);
|
||||
|
||||
fontState.theme = index;
|
||||
if (fontState.theme !== 0)
|
||||
$book.addClass("color-theme-"+fontState.theme);
|
||||
|
||||
saveFontSettings();
|
||||
};
|
||||
|
||||
function update() {
|
||||
var $book = gitbook.state.$book;
|
||||
|
||||
$(".font-settings .font-family-list li").removeClass("active");
|
||||
$(".font-settings .font-family-list li:nth-child("+(fontState.family+1)+")").addClass("active");
|
||||
|
||||
$book[0].className = $book[0].className.replace(/\bfont-\S+/g, '');
|
||||
$book.addClass("font-size-"+fontState.size);
|
||||
$book.addClass("font-family-"+fontState.family);
|
||||
|
||||
if(fontState.theme !== 0) {
|
||||
$book[0].className = $book[0].className.replace(/\bcolor-theme-\S+/g, '');
|
||||
$book.addClass("color-theme-"+fontState.theme);
|
||||
}
|
||||
};
|
||||
|
||||
function init(config) {
|
||||
var $bookBody, $book;
|
||||
|
||||
//Find DOM elements.
|
||||
$book = gitbook.state.$book;
|
||||
$bookBody = $book.find(".book-body");
|
||||
|
||||
// Instantiate font state object
|
||||
fontState = gitbook.storage.get("fontState", {
|
||||
size: config.size || 2,
|
||||
family: FAMILY[config.family || "sans"],
|
||||
theme: THEMES[config.theme || "white"]
|
||||
});
|
||||
|
||||
update();
|
||||
};
|
||||
|
||||
|
||||
gitbook.events.bind("start", function(e, config) {
|
||||
var opts = config.fontsettings;
|
||||
if (!opts) return;
|
||||
|
||||
// Create buttons in toolbar
|
||||
gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-font',
|
||||
label: 'Font Settings',
|
||||
className: 'font-settings',
|
||||
dropdown: [
|
||||
[
|
||||
{
|
||||
text: 'A',
|
||||
className: 'font-reduce',
|
||||
onClick: reduceFontSize
|
||||
},
|
||||
{
|
||||
text: 'A',
|
||||
className: 'font-enlarge',
|
||||
onClick: enlargeFontSize
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
text: 'Serif',
|
||||
onClick: _.partial(changeFontFamily, 0)
|
||||
},
|
||||
{
|
||||
text: 'Sans',
|
||||
onClick: _.partial(changeFontFamily, 1)
|
||||
}
|
||||
],
|
||||
[
|
||||
{
|
||||
text: 'White',
|
||||
onClick: _.partial(changeColorTheme, 0)
|
||||
},
|
||||
{
|
||||
text: 'Sepia',
|
||||
onClick: _.partial(changeColorTheme, 1)
|
||||
},
|
||||
{
|
||||
text: 'Night',
|
||||
onClick: _.partial(changeColorTheme, 2)
|
||||
}
|
||||
]
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
// Init current settings
|
||||
init(opts);
|
||||
});
|
||||
});
|
||||
|
||||
|
270
doc/_book/book_assets/gitbook-2.6.7/js/plugin-search.js
Normal file
270
doc/_book/book_assets/gitbook-2.6.7/js/plugin-search.js
Normal file
@ -0,0 +1,270 @@
|
||||
gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) {
|
||||
var index = null;
|
||||
var fuse = null;
|
||||
var _search = {engine: 'lunr', opts: {}};
|
||||
var $searchInput, $searchLabel, $searchForm;
|
||||
var $highlighted = [], hi, hiOpts = { className: 'search-highlight' };
|
||||
var collapse = false, toc_visible = [];
|
||||
|
||||
function init(config) {
|
||||
// Instantiate search settings
|
||||
_search = gitbook.storage.get("search", {
|
||||
engine: config.search.engine || 'lunr',
|
||||
opts: config.search.options || {},
|
||||
});
|
||||
};
|
||||
|
||||
// Save current search settings
|
||||
function saveSearchSettings() {
|
||||
gitbook.storage.set("search", _search);
|
||||
}
|
||||
|
||||
// Use a specific index
|
||||
function loadIndex(data) {
|
||||
// [Yihui] In bookdown, I use a character matrix to store the chapter
|
||||
// content, and the index is dynamically built on the client side.
|
||||
// Gitbook prebuilds the index data instead: https://github.com/GitbookIO/plugin-search
|
||||
// We can certainly do that via R packages V8 and jsonlite, but let's
|
||||
// see how slow it really is before improving it. On the other hand,
|
||||
// lunr cannot handle non-English text very well, e.g. the default
|
||||
// tokenizer cannot deal with Chinese text, so we may want to replace
|
||||
// lunr with a dumb simple text matching approach.
|
||||
if (_search.engine === 'lunr') {
|
||||
index = lunr(function () {
|
||||
this.ref('url');
|
||||
this.field('title', { boost: 10 });
|
||||
this.field('body');
|
||||
});
|
||||
data.map(function(item) {
|
||||
index.add({
|
||||
url: item[0],
|
||||
title: item[1],
|
||||
body: item[2]
|
||||
});
|
||||
});
|
||||
return;
|
||||
}
|
||||
fuse = new Fuse(data.map((_data => {
|
||||
return {
|
||||
url: _data[0],
|
||||
title: _data[1],
|
||||
body: _data[2]
|
||||
};
|
||||
})), Object.assign(
|
||||
{
|
||||
includeScore: true,
|
||||
threshold: 0.1,
|
||||
ignoreLocation: true,
|
||||
keys: ["title", "body"]
|
||||
},
|
||||
_search.opts
|
||||
));
|
||||
}
|
||||
|
||||
// Fetch the search index
|
||||
function fetchIndex() {
|
||||
return $.getJSON(gitbook.state.basePath+"/search_index.json")
|
||||
.then(loadIndex); // [Yihui] we need to use this object later
|
||||
}
|
||||
|
||||
// Search for a term and return results
|
||||
function search(q) {
|
||||
let results = [];
|
||||
switch (_search.engine) {
|
||||
case 'fuse':
|
||||
if (!fuse) return;
|
||||
results = fuse.search(q).map(function(result) {
|
||||
var parts = result.item.url.split('#');
|
||||
return {
|
||||
path: parts[0],
|
||||
hash: parts[1]
|
||||
};
|
||||
});
|
||||
break;
|
||||
case 'lunr':
|
||||
default:
|
||||
if (!index) return;
|
||||
results = _.chain(index.search(q)).map(function(result) {
|
||||
var parts = result.ref.split("#");
|
||||
return {
|
||||
path: parts[0],
|
||||
hash: parts[1]
|
||||
};
|
||||
})
|
||||
.value();
|
||||
}
|
||||
|
||||
// [Yihui] Highlight the search keyword on current page
|
||||
$highlighted = $('.page-inner')
|
||||
.unhighlight(hiOpts).highlight(q, hiOpts).find('span.search-highlight');
|
||||
scrollToHighlighted(0);
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
// [Yihui] Scroll the chapter body to the i-th highlighted string
|
||||
function scrollToHighlighted(d) {
|
||||
var n = $highlighted.length;
|
||||
hi = hi === undefined ? 0 : hi + d;
|
||||
// navignate to the previous/next page in the search results if reached the top/bottom
|
||||
var b = hi < 0;
|
||||
if (d !== 0 && (b || hi >= n)) {
|
||||
var path = currentPath(), n2 = toc_visible.length;
|
||||
if (n2 === 0) return;
|
||||
for (var i = b ? 0 : n2; (b && i < n2) || (!b && i >= 0); i += b ? 1 : -1) {
|
||||
if (toc_visible.eq(i).data('path') === path) break;
|
||||
}
|
||||
i += b ? -1 : 1;
|
||||
if (i < 0) i = n2 - 1;
|
||||
if (i >= n2) i = 0;
|
||||
var lnk = toc_visible.eq(i).find('a[href$=".html"]');
|
||||
if (lnk.length) lnk[0].click();
|
||||
return;
|
||||
}
|
||||
if (n === 0) return;
|
||||
var $p = $highlighted.eq(hi);
|
||||
$p[0].scrollIntoView();
|
||||
$highlighted.css('background-color', '');
|
||||
// an orange background color on the current item and removed later
|
||||
$p.css('background-color', 'orange');
|
||||
setTimeout(function() {
|
||||
$p.css('background-color', '');
|
||||
}, 2000);
|
||||
}
|
||||
|
||||
function currentPath() {
|
||||
var href = window.location.pathname;
|
||||
href = href.substr(href.lastIndexOf('/') + 1);
|
||||
return href === '' ? 'index.html' : href;
|
||||
}
|
||||
|
||||
// Create search form
|
||||
function createForm(value) {
|
||||
if ($searchForm) $searchForm.remove();
|
||||
if ($searchLabel) $searchLabel.remove();
|
||||
if ($searchInput) $searchInput.remove();
|
||||
|
||||
$searchForm = $('<div>', {
|
||||
'class': 'book-search',
|
||||
'role': 'search'
|
||||
});
|
||||
|
||||
$searchLabel = $('<label>', {
|
||||
'for': 'search-box',
|
||||
'aria-hidden': 'false',
|
||||
'hidden': ''
|
||||
});
|
||||
|
||||
$searchInput = $('<input>', {
|
||||
'id': 'search-box',
|
||||
'type': 'search',
|
||||
'class': 'form-control',
|
||||
'val': value,
|
||||
'placeholder': 'Type to search (Enter for navigation)',
|
||||
'title': 'Use Enter or the <Down> key to navigate to the next match, or the <Up> key to the previous match'
|
||||
});
|
||||
|
||||
$searchLabel.append("Type to search");
|
||||
$searchLabel.appendTo($searchForm);
|
||||
$searchInput.appendTo($searchForm);
|
||||
$searchForm.prependTo(gitbook.state.$book.find('.book-summary'));
|
||||
}
|
||||
|
||||
// Return true if search is open
|
||||
function isSearchOpen() {
|
||||
return gitbook.state.$book.hasClass("with-search");
|
||||
}
|
||||
|
||||
// Toggle the search
|
||||
function toggleSearch(_state) {
|
||||
if (isSearchOpen() === _state) return;
|
||||
if (!$searchInput) return;
|
||||
|
||||
gitbook.state.$book.toggleClass("with-search", _state);
|
||||
|
||||
// If search bar is open: focus input
|
||||
if (isSearchOpen()) {
|
||||
gitbook.sidebar.toggle(true);
|
||||
$searchInput.focus();
|
||||
} else {
|
||||
$searchInput.blur();
|
||||
$searchInput.val("");
|
||||
gitbook.storage.remove("keyword");
|
||||
gitbook.sidebar.filter(null);
|
||||
$('.page-inner').unhighlight(hiOpts);
|
||||
}
|
||||
}
|
||||
|
||||
function sidebarFilter(results) {
|
||||
gitbook.sidebar.filter(_.pluck(results, "path"));
|
||||
toc_visible = $('ul.summary').find('li:visible');
|
||||
}
|
||||
|
||||
// Recover current search when page changed
|
||||
function recoverSearch() {
|
||||
var keyword = gitbook.storage.get("keyword", "");
|
||||
|
||||
createForm(keyword);
|
||||
|
||||
if (keyword.length > 0) {
|
||||
if(!isSearchOpen()) {
|
||||
toggleSearch(true); // [Yihui] open the search box
|
||||
}
|
||||
sidebarFilter(search(keyword));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
gitbook.events.bind("start", function(e, config) {
|
||||
// [Yihui] disable search
|
||||
if (config.search === false) return;
|
||||
init(config);
|
||||
collapse = !config.toc || config.toc.collapse === 'section' ||
|
||||
config.toc.collapse === 'subsection';
|
||||
|
||||
// Pre-fetch search index and create the form
|
||||
fetchIndex()
|
||||
// [Yihui] recover search after the page is loaded
|
||||
.then(recoverSearch);
|
||||
|
||||
|
||||
// Type in search bar
|
||||
$(document).on("keyup", ".book-search input", function(e) {
|
||||
var key = (e.keyCode ? e.keyCode : e.which);
|
||||
// [Yihui] Escape -> close search box; Up/Down/Enter: previous/next highlighted
|
||||
if (key == 27) {
|
||||
e.preventDefault();
|
||||
toggleSearch(false);
|
||||
} else if (key == 38) {
|
||||
scrollToHighlighted(-1);
|
||||
} else if (key == 40 || key == 13) {
|
||||
scrollToHighlighted(1);
|
||||
}
|
||||
}).on("input", ".book-search input", function(e) {
|
||||
var q = $(this).val().trim();
|
||||
if (q.length === 0) {
|
||||
gitbook.sidebar.filter(null);
|
||||
gitbook.storage.remove("keyword");
|
||||
$('.page-inner').unhighlight(hiOpts);
|
||||
} else {
|
||||
var results = search(q);
|
||||
sidebarFilter(results);
|
||||
gitbook.storage.set("keyword", q);
|
||||
}
|
||||
});
|
||||
|
||||
// Create the toggle search button
|
||||
gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-search',
|
||||
label: 'Search',
|
||||
position: 'left',
|
||||
onClick: toggleSearch
|
||||
});
|
||||
|
||||
// Bind keyboard to toggle search
|
||||
gitbook.keyboard.bind(['f'], toggleSearch);
|
||||
});
|
||||
|
||||
// [Yihui] do not try to recover search; always start fresh
|
||||
// gitbook.events.bind("page.change", recoverSearch);
|
||||
});
|
116
doc/_book/book_assets/gitbook-2.6.7/js/plugin-sharing.js
Normal file
116
doc/_book/book_assets/gitbook-2.6.7/js/plugin-sharing.js
Normal file
@ -0,0 +1,116 @@
|
||||
gitbook.require(["gitbook", "lodash", "jQuery"], function(gitbook, _, $) {
|
||||
var SITES = {
|
||||
'github': {
|
||||
'label': 'Github',
|
||||
'icon': 'fa fa-github',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
var repo = $('meta[name="github-repo"]').attr('content');
|
||||
if (typeof repo === 'undefined') throw("Github repo not defined");
|
||||
window.open("https://github.com/"+repo);
|
||||
}
|
||||
},
|
||||
'facebook': {
|
||||
'label': 'Facebook',
|
||||
'icon': 'fa fa-facebook',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
window.open("http://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(location.href));
|
||||
}
|
||||
},
|
||||
'twitter': {
|
||||
'label': 'Twitter',
|
||||
'icon': 'fa fa-twitter',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
window.open("http://twitter.com/intent/tweet?text="+encodeURIComponent(document.title)+"&url="+encodeURIComponent(location.href)+"&hashtags=rmarkdown,bookdown");
|
||||
}
|
||||
},
|
||||
'linkedin': {
|
||||
'label': 'LinkedIn',
|
||||
'icon': 'fa fa-linkedin',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
window.open("https://www.linkedin.com/shareArticle?mini=true&url="+encodeURIComponent(location.href)+"&title="+encodeURIComponent(document.title));
|
||||
}
|
||||
},
|
||||
'weibo': {
|
||||
'label': 'Weibo',
|
||||
'icon': 'fa fa-weibo',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
window.open("http://service.weibo.com/share/share.php?content=utf-8&url="+encodeURIComponent(location.href)+"&title="+encodeURIComponent(document.title));
|
||||
}
|
||||
},
|
||||
'instapaper': {
|
||||
'label': 'Instapaper',
|
||||
'icon': 'fa fa-italic',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
window.open("http://www.instapaper.com/text?u="+encodeURIComponent(location.href));
|
||||
}
|
||||
},
|
||||
'vk': {
|
||||
'label': 'VK',
|
||||
'icon': 'fa fa-vk',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
window.open("http://vkontakte.ru/share.php?url="+encodeURIComponent(location.href));
|
||||
}
|
||||
},
|
||||
'whatsapp': {
|
||||
'label': 'Whatsapp',
|
||||
'icon': 'fa fa-whatsapp',
|
||||
'onClick': function(e) {
|
||||
e.preventDefault();
|
||||
var url = encodeURIComponent(location.href);
|
||||
window.open((isMobile() ? "whatsapp://send" : "https://web.whatsapp.com/send") + "?text=" + url);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
function isMobile() {
|
||||
return !!navigator.maxTouchPoints;
|
||||
}
|
||||
|
||||
gitbook.events.bind("start", function(e, config) {
|
||||
var opts = config.sharing;
|
||||
if (!opts) return;
|
||||
|
||||
// Create dropdown menu
|
||||
var menu = _.chain(opts.all)
|
||||
.map(function(id) {
|
||||
var site = SITES[id];
|
||||
if (!site) return;
|
||||
return {
|
||||
text: site.label,
|
||||
onClick: site.onClick
|
||||
};
|
||||
})
|
||||
.compact()
|
||||
.value();
|
||||
|
||||
// Create main button with dropdown
|
||||
if (menu.length > 0) {
|
||||
gitbook.toolbar.createButton({
|
||||
icon: 'fa fa-share-alt',
|
||||
label: 'Share',
|
||||
position: 'right',
|
||||
dropdown: [menu]
|
||||
});
|
||||
}
|
||||
|
||||
// Direct actions to share
|
||||
_.each(SITES, function(site, sideId) {
|
||||
if (!opts[sideId]) return;
|
||||
|
||||
gitbook.toolbar.createButton({
|
||||
icon: site.icon,
|
||||
label: site.label,
|
||||
title: site.label,
|
||||
position: 'right',
|
||||
onClick: site.onClick
|
||||
});
|
||||
});
|
||||
});
|
||||
});
|
2
doc/_book/book_assets/jquery-3.6.0/jquery-3.6.0.min.js
vendored
Normal file
2
doc/_book/book_assets/jquery-3.6.0/jquery-3.6.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
461
doc/_book/index.html
Normal file
461
doc/_book/index.html
Normal file
@ -0,0 +1,461 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="" xml:lang="">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>The GO OBITools</title>
|
||||
<meta name="description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="generator" content="bookdown 0.29 and GitBook 2.6.7" />
|
||||
|
||||
<meta property="og:title" content="The GO OBITools" />
|
||||
<meta property="og:type" content="book" />
|
||||
|
||||
<meta property="og:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="github-repo" content="seankross/bookdown-start" />
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="The GO OBITools" />
|
||||
|
||||
<meta name="twitter:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
|
||||
|
||||
<meta name="author" content="SEric Coissac" />
|
||||
|
||||
|
||||
<meta name="date" content="2022-08-25" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
|
||||
|
||||
<link rel="next" href="the-obitools-commands.html"/>
|
||||
<script src="book_assets/jquery-3.6.0/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script>
|
||||
<link href="book_assets/gitbook-2.6.7/css/style.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" />
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" />
|
||||
<script src="book_assets/anchor-sections-1.1.0/anchor-sections.js"></script>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||
.sourceCode { overflow: visible; }
|
||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||
pre.sourceCode { margin: 0; }
|
||||
@media screen {
|
||||
div.sourceCode { overflow: auto; }
|
||||
}
|
||||
@media print {
|
||||
pre > code.sourceCode { white-space: pre-wrap; }
|
||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||
}
|
||||
pre.numberSource code
|
||||
{ counter-reset: source-line 0; }
|
||||
pre.numberSource code > span
|
||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||
pre.numberSource code > span > a:first-child::before
|
||||
{ content: counter(source-line);
|
||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||
border: none; display: inline-block;
|
||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||
-khtml-user-select: none; -moz-user-select: none;
|
||||
-ms-user-select: none; user-select: none;
|
||||
padding: 0 4px; width: 4em;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
|
||||
div.sourceCode
|
||||
{ }
|
||||
@media screen {
|
||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||
}
|
||||
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
|
||||
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
|
||||
code span.at { color: #7d9029; } /* Attribute */
|
||||
code span.bn { color: #40a070; } /* BaseN */
|
||||
code span.bu { } /* BuiltIn */
|
||||
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
|
||||
code span.ch { color: #4070a0; } /* Char */
|
||||
code span.cn { color: #880000; } /* Constant */
|
||||
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
|
||||
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
|
||||
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
|
||||
code span.dt { color: #902000; } /* DataType */
|
||||
code span.dv { color: #40a070; } /* DecVal */
|
||||
code span.er { color: #ff0000; font-weight: bold; } /* Error */
|
||||
code span.ex { } /* Extension */
|
||||
code span.fl { color: #40a070; } /* Float */
|
||||
code span.fu { color: #06287e; } /* Function */
|
||||
code span.im { } /* Import */
|
||||
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
|
||||
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
|
||||
code span.op { color: #666666; } /* Operator */
|
||||
code span.ot { color: #007020; } /* Other */
|
||||
code span.pp { color: #bc7a00; } /* Preprocessor */
|
||||
code span.sc { color: #4070a0; } /* SpecialChar */
|
||||
code span.ss { color: #bb6688; } /* SpecialString */
|
||||
code span.st { color: #4070a0; } /* String */
|
||||
code span.va { color: #19177c; } /* Variable */
|
||||
code span.vs { color: #4070a0; } /* VerbatimString */
|
||||
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
|
||||
|
||||
<div class="book-summary">
|
||||
<nav role="navigation">
|
||||
|
||||
<ul class="summary">
|
||||
<li class="chapter" data-level="1" data-path="index.html"><a href="index.html"><i class="fa fa-check"></i><b>1</b> The OBITools</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.1" data-path="index.html"><a href="index.html#aims-of-obitools"><i class="fa fa-check"></i><b>1.1</b> Aims of <em>OBITools</em></a></li>
|
||||
<li class="chapter" data-level="1.2" data-path="index.html"><a href="index.html#file-formats-usable-with-obitools"><i class="fa fa-check"></i><b>1.2</b> File formats usable with <em>OBITools</em></a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.2.1" data-path="index.html"><a href="index.html#the-sequence-files"><i class="fa fa-check"></i><b>1.2.1</b> The sequence files</a></li>
|
||||
<li class="chapter" data-level="1.2.2" data-path="index.html"><a href="index.html#classical-fasta"><i class="fa fa-check"></i><b>1.2.2</b> The <em>fasta</em> format</a></li>
|
||||
<li class="chapter" data-level="1.2.3" data-path="index.html"><a href="index.html#the-fastq-sequence-format"><i class="fa fa-check"></i><b>1.2.3</b> The <em>fastq</em> sequence format</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="1.3" data-path="index.html"><a href="index.html#file-extension"><i class="fa fa-check"></i><b>1.3</b> File extension</a></li>
|
||||
<li class="chapter" data-level="1.4" data-path="index.html"><a href="index.html#see-also"><i class="fa fa-check"></i><b>1.4</b> See also</a></li>
|
||||
<li class="chapter" data-level="1.5" data-path="index.html"><a href="index.html#references"><i class="fa fa-check"></i><b>1.5</b> References</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html"><i class="fa fa-check"></i><b>2</b> The OBITools commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#metabarcode-design-and-quality-assessment"><i class="fa fa-check"></i><b>2.1</b> Metabarcode design and quality assessment</a></li>
|
||||
<li class="chapter" data-level="2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#file-format-conversions"><i class="fa fa-check"></i><b>2.2</b> File format conversions</a></li>
|
||||
<li class="chapter" data-level="2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-annotations"><i class="fa fa-check"></i><b>2.3</b> Sequence annotations</a></li>
|
||||
<li class="chapter" data-level="2.4" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#computations-on-sequences"><i class="fa fa-check"></i><b>2.4</b> Computations on sequences</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.4.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#obipairing"><i class="fa fa-check"></i><b>2.4.1</b> <code>obipairing</code></a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.5" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-sampling-and-filtering"><i class="fa fa-check"></i><b>2.5</b> Sequence sampling and filtering</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.5.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#utilities"><i class="fa fa-check"></i><b>2.5.1</b> Utilities</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html"><i class="fa fa-check"></i><b>3</b> Reference documentation for the GO <em>OBITools</em> library</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#biosequence"><i class="fa fa-check"></i><b>3.1</b> BioSequence</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#creating-new-instances"><i class="fa fa-check"></i><b>3.1.1</b> Creating new instances</a></li>
|
||||
<li class="chapter" data-level="3.1.2" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#end-of-life-of-a-biosequence-instance"><i class="fa fa-check"></i><b>3.1.2</b> End of life of a <code>BioSequence</code> instance</a></li>
|
||||
<li class="chapter" data-level="3.1.3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#accessing-to-the-elements-of-a-sequence"><i class="fa fa-check"></i><b>3.1.3</b> Accessing to the elements of a sequence</a></li>
|
||||
<li class="chapter" data-level="3.1.4" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#sequence-attributes"><i class="fa fa-check"></i><b>3.1.4</b> Sequence attributes</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header" role="navigation">
|
||||
<h1>
|
||||
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">The GO <em>OBITools</em></a>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-wrapper" tabindex="-1" role="main">
|
||||
<div class="page-inner">
|
||||
|
||||
<section class="normal" id="section-">
|
||||
<div id="header">
|
||||
<h1 class="title">The GO <em>OBITools</em></h1>
|
||||
<p class="author"><em>SEric Coissac</em></p>
|
||||
<p class="date"><em>2022-08-25</em></p>
|
||||
</div>
|
||||
<div id="the-obitools" class="section level1 hasAnchor" number="1">
|
||||
<h1><span class="header-section-number">1</span> The OBITools<a href="index.html#the-obitools" class="anchor-section" aria-label="Anchor link to header"></a></h1>
|
||||
<div id="aims-of-obitools" class="section level2 hasAnchor" number="1.1">
|
||||
<h2><span class="header-section-number">1.1</span> Aims of <em>OBITools</em><a href="index.html#aims-of-obitools" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
</div>
|
||||
<div id="file-formats-usable-with-obitools" class="section level2 hasAnchor" number="1.2">
|
||||
<h2><span class="header-section-number">1.2</span> File formats usable with <em>OBITools</em><a href="index.html#file-formats-usable-with-obitools" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="the-sequence-files" class="section level3 hasAnchor" number="1.2.1">
|
||||
<h3><span class="header-section-number">1.2.1</span> The sequence files<a href="index.html#the-sequence-files" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>Sequences can be stored following various format. OBITools knows some of
|
||||
them. The central formats for sequence files manipulated by OBITools
|
||||
scripts are the <code>fasta</code> and fastq format. OBITools extends the both
|
||||
these formats by specifying a syntax to include in the definition line
|
||||
data qualifying the sequence. All file formats use the <code>IUPAC</code> code for
|
||||
encoding nucleotides.</p>
|
||||
</div>
|
||||
<div id="classical-fasta" class="section level3 hasAnchor" number="1.2.2">
|
||||
<h3><span class="header-section-number">1.2.2</span> The <em>fasta</em> format<a href="index.html#classical-fasta" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>The <strong>fasta format</strong> is certainly the most widely used sequence file
|
||||
format. This is certainly due to its great simplicity. It was originally
|
||||
created for the Lipman and Pearson <a href="http://www.ncbi.nlm.nih.gov/pubmed/3162770?dopt=Citation">FASTA
|
||||
program</a>.
|
||||
OBITools use in more of the classical :ref:<code>fasta</code> format an
|
||||
:ref:<code>extended version</code> of this format where structured data are
|
||||
included in the title line.</p>
|
||||
<p>In <em>fasta</em> format a sequence is represented by a title line beginning
|
||||
with a <strong>></strong> character and the sequences by itself following the
|
||||
:doc:<code>iupac</code> code. The sequence is usually split other severals lines of
|
||||
the same length (expect for the last one)</p>
|
||||
<pre><code>>my_sequence this is my pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT</code></pre>
|
||||
<p>This is no special format for the title line excepting that this line
|
||||
should be unique. Usually the first word following the <strong>></strong> character
|
||||
is considered as the sequence identifier. The end of the title line
|
||||
corresponding to a description of the sequence. Several sequences can be
|
||||
concatenated in a same file. The description of the next sequence is
|
||||
just pasted at the end of the record of the previous one</p>
|
||||
<pre><code>>sequence_A this is my first pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
>sequence_B this is my second pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
>sequence_C this is my third pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT</code></pre>
|
||||
</div>
|
||||
<div id="the-fastq-sequence-format" class="section level3 hasAnchor" number="1.2.3">
|
||||
<h3><span class="header-section-number">1.2.3</span> The <em>fastq</em> sequence format<a href="index.html#the-fastq-sequence-format" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>.. _classical-fastq:</p>
|
||||
<p>.. note::</p>
|
||||
<pre><code>This article uses material from the Wikipedia article
|
||||
`FASTQ format `
|
||||
which is released under the
|
||||
`Creative Commons Attribution-Share-Alike License 3.0 `</code></pre>
|
||||
<p><strong>fastq format</strong> is a text-based format for storing both a biological
|
||||
sequence (usually nucleotide sequence) and its corresponding quality
|
||||
scores. Both the sequence letter and quality score are encoded with a
|
||||
single ASCII character for brevity. It was originally developed at the
|
||||
<code>Wellcome Trust Sanger Institute</code> to bundle a <a href="#genuine-fasta">fasta</a>
|
||||
sequence and its quality data, but has recently become the <em>de facto</em>
|
||||
standard for storing the output of high throughput sequencing
|
||||
instruments such as the Illumina Genome Analyzer Illumina. [1]_</p>
|
||||
<div id="format" class="section level4 hasAnchor" number="1.2.3.1">
|
||||
<h4><span class="header-section-number">1.2.3.1</span> Format<a href="index.html#format" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<p>A fastq file normally uses four lines per sequence.</p>
|
||||
<ul>
|
||||
<li>Line 1 begins with a ‘@’ character and is followed by a sequence
|
||||
identifier and an <em>optional</em> description (like a :ref:<code>fasta</code> title
|
||||
line).</li>
|
||||
<li>Line 2 is the raw sequence letters.</li>
|
||||
<li>Line 3 begins with a ‘+’ character and is <em>optionally</em> followed by
|
||||
the same sequence identifier (and any description) again.</li>
|
||||
<li>Line 4 encodes the quality values for the sequence in Line 2, and
|
||||
must contain the same number of symbols as letters in the sequence.</li>
|
||||
</ul>
|
||||
<p>A fastq file containing a single sequence might look like this:</p>
|
||||
<pre><code>@SEQ_ID
|
||||
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
|
||||
+
|
||||
!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65</code></pre>
|
||||
<p>The character ‘!’ represents the lowest quality while ‘~’ is the
|
||||
highest. Here are the quality value characters in left-to-right
|
||||
increasing order of quality (<code>ASCII</code>):</p>
|
||||
<pre><code>!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</code></pre>
|
||||
<p>The original Sanger FASTQ files also allowed the sequence and quality
|
||||
strings to be wrapped (split over multiple lines), but this is generally
|
||||
discouraged as it can make parsing complicated due to the unfortunate
|
||||
choice of “@” and “+” as markers (these characters can also occur in
|
||||
the quality string).</p>
|
||||
</div>
|
||||
<div id="variations" class="section level4 hasAnchor" number="1.2.3.2">
|
||||
<h4><span class="header-section-number">1.2.3.2</span> Variations<a href="index.html#variations" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<div id="quality" class="section level5 hasAnchor" number="1.2.3.2.1">
|
||||
<h5><span class="header-section-number">1.2.3.2.1</span> Quality<a href="index.html#quality" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<p>A quality value <em>Q</em> is an integer mapping of <em>p</em> (i.e., the probability
|
||||
that the corresponding base call is incorrect). Two different equations
|
||||
have been in use. The first is the standard Sanger variant to assess
|
||||
reliability of a base call, otherwise known as Phred quality score:</p>
|
||||
<p><span class="math display">\[
|
||||
Q_\text{sanger} = -10 \, \log_{10} p
|
||||
\]</span></p>
|
||||
<p>The Solexa pipeline (i.e., the software delivered with the Illumina
|
||||
Genome Analyzer) earlier used a different mapping, encoding the odds
|
||||
<span class="math inline">\(\mathbf{p}/(1-\mathbf{p})\)</span> instead of the probability <span class="math inline">\(\mathbf{p}\)</span>:</p>
|
||||
<p><span class="math display">\[
|
||||
Q_\text{solexa-prior to v.1.3} = -10 \, \log_{10} \frac{p}{1-p}
|
||||
\]</span></p>
|
||||
<p>Although both mappings are asymptotically identical at higher quality
|
||||
values, they differ at lower quality levels (i.e., approximately
|
||||
<span class="math inline">\(\mathbf{p} > 0.05\)</span>, or equivalently, <span class="math inline">\(\mathbf{Q} < 13\)</span>).</p>
|
||||
<p>|Relationship between <em>Q</em> and <em>p</em> using the Sanger (red) and Solexa
|
||||
(black) equations (described above). The vertical dotted line indicates
|
||||
<span class="math inline">\(\mathbf{p}= 0.05\)</span>, or equivalently, <span class="math inline">\(Q = 13\)</span>.|</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="encoding" class="section level4 hasAnchor" number="1.2.3.3">
|
||||
<h4><span class="header-section-number">1.2.3.3</span> Encoding<a href="index.html#encoding" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<ul>
|
||||
<li>Sanger format can encode a Phred quality score from 0 to 93 using
|
||||
ASCII 33 to 126 (although in raw read data the Phred quality score
|
||||
rarely exceeds 60, higher scores are possible in assemblies or read
|
||||
maps).</li>
|
||||
<li>Solexa/Illumina 1.0 format can encode a Solexa/Illumina quality
|
||||
score from -5 to 62 using ASCII 59 to 126 (although in raw read data
|
||||
Solexa scores from -5 to 40 only are expected)</li>
|
||||
<li>Starting with Illumina 1.3 and before Illumina 1.8, the format
|
||||
encoded a Phred quality score from 0 to 62 using ASCII 64 to 126
|
||||
(although in raw read data Phred scores from 0 to 40 only are
|
||||
expected).</li>
|
||||
<li>Starting in Illumina 1.5 and before Illumina 1.8, the Phred scores 0
|
||||
to 2 have a slightly different meaning. The values 0 and 1 are no
|
||||
longer used and the value 2, encoded by ASCII 66 “B”.</li>
|
||||
</ul>
|
||||
<p>Sequencing Control Software, Version 2.6, Catalog # SY-960-2601, Part
|
||||
# 15009921 Rev. A, November
|
||||
2009] [<a href="http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\" class="uri">http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\\</a>](<a href="http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf)%7B.uri%7D" class="uri">http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\</a>
|
||||
(page 30) states the following: <em>If a read ends with a segment of mostly
|
||||
low quality (Q15 or below), then all of the quality values in the
|
||||
segment are replaced with a value of 2 (encoded as the letter B in
|
||||
Illumina’s text-based encoding of quality scores)… This Q2 indicator
|
||||
does not predict a specific error rate, but rather indicates that a
|
||||
specific final portion of the read should not be used in further
|
||||
analyses.</em> Also, the quality score encoded as “B” letter may occur
|
||||
internally within reads at least as late as pipeline version 1.6, as
|
||||
shown in the following example:</p>
|
||||
<pre><code>@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
|
||||
TTAATTGGTAAATAAATCTCCTAATAGCTTAGATNTTACCTTNNNNNNNNNNTAGTTTCTTGAGATTTGTTGGGGGAGACATTTTTGTGATTGCCTTGAT
|
||||
+HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
|
||||
efcfffffcfeefffcffffffddf`feed]`]_Ba_^__[YBBBBBBBBBBRTT\]][]dddd`ddd^dddadd^BBBBBBBBBBBBBBBBBBBBBBBB</code></pre>
|
||||
<p>An alternative interpretation of this ASCII encoding has been proposed.
|
||||
Also, in Illumina runs using PhiX controls, the character ‘B’ was
|
||||
observed to represent an “unknown quality score”. The error rate of ‘B’
|
||||
reads was roughly 3 phred scores lower the mean observed score of a
|
||||
given run.</p>
|
||||
<ul>
|
||||
<li>Starting in Illumina 1.8, the quality scores have basically returned
|
||||
to the use of the Sanger format (Phred+33).</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="file-extension" class="section level2 hasAnchor" number="1.3">
|
||||
<h2><span class="header-section-number">1.3</span> File extension<a href="index.html#file-extension" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<p>There is no standard file extension for a FASTQ file, but .fq and
|
||||
.fastq, are commonly used.</p>
|
||||
</div>
|
||||
<div id="see-also" class="section level2 hasAnchor" number="1.4">
|
||||
<h2><span class="header-section-number">1.4</span> See also<a href="index.html#see-also" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<ul>
|
||||
<li>:ref:<code>fasta</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="references" class="section level2 hasAnchor" number="1.5">
|
||||
<h2><span class="header-section-number">1.5</span> References<a href="index.html#references" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<p>.. [1] Cock et al (2009) The Sanger FASTQ file format for sequences with
|
||||
quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids
|
||||
Research,</p>
|
||||
<p>.. [2] Illumina Quality Scores, Tobias Mann, Bioinformatics, San Diego,
|
||||
Illumina <code>1</code>__</p>
|
||||
<p>.. |Relationship between <em>Q</em> and <em>p</em> using the Sanger (red) and Solexa
|
||||
(black) equations (described above). The vertical dotted line indicates
|
||||
<em>p</em> = 0.05, or equivalently, <em>Q</em> Å 13.| image:: Probability metrics.png</p>
|
||||
<p>See <a href="http://en.wikipedia.org/wiki/FASTQ_format" class="uri">http://en.wikipedia.org/wiki/FASTQ_format</a></p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="the-obitools-commands.html" class="navigation navigation-next navigation-unique" aria-label="Next page"><i class="fa fa-angle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<script src="book_assets/gitbook-2.6.7/js/app.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/clipboard.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-search.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-sharing.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-bookdown.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/jquery.highlight.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-clipboard.js"></script>
|
||||
<script>
|
||||
gitbook.require(["gitbook"], function(gitbook) {
|
||||
gitbook.start({
|
||||
"sharing": {
|
||||
"github": false,
|
||||
"facebook": true,
|
||||
"twitter": true,
|
||||
"linkedin": false,
|
||||
"weibo": false,
|
||||
"instapaper": false,
|
||||
"vk": false,
|
||||
"whatsapp": false,
|
||||
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
|
||||
},
|
||||
"fontsettings": {
|
||||
"theme": "white",
|
||||
"family": "sans",
|
||||
"size": 2
|
||||
},
|
||||
"edit": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"history": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"view": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"download": ["_main.pdf"],
|
||||
"search": {
|
||||
"engine": "fuse",
|
||||
"options": null
|
||||
},
|
||||
"toc": {
|
||||
"collapse": "subsection"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- dynamically load mathjax for compatibility with self-contained -->
|
||||
<script>
|
||||
(function () {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
var src = "true";
|
||||
if (src === "" || src === "true") src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/latest.js?config=TeX-MML-AM_CHTML";
|
||||
if (location.protocol !== "file:")
|
||||
if (/^https?:/.test(src))
|
||||
src = src.replace(/^https?:/, '');
|
||||
script.src = src;
|
||||
document.getElementsByTagName("head")[0].appendChild(script);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
@ -0,0 +1,421 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="" xml:lang="">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>3 Reference documentation for the GO OBITools library | The GO OBITools</title>
|
||||
<meta name="description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="generator" content="bookdown 0.29 and GitBook 2.6.7" />
|
||||
|
||||
<meta property="og:title" content="3 Reference documentation for the GO OBITools library | The GO OBITools" />
|
||||
<meta property="og:type" content="book" />
|
||||
|
||||
<meta property="og:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="github-repo" content="seankross/bookdown-start" />
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="3 Reference documentation for the GO OBITools library | The GO OBITools" />
|
||||
|
||||
<meta name="twitter:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
|
||||
|
||||
<meta name="author" content="SEric Coissac" />
|
||||
|
||||
|
||||
<meta name="date" content="2022-08-25" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
|
||||
<link rel="prev" href="the-obitools-commands.html"/>
|
||||
<link rel="next" href="annexes.html"/>
|
||||
<script src="book_assets/jquery-3.6.0/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script>
|
||||
<link href="book_assets/gitbook-2.6.7/css/style.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" />
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" />
|
||||
<script src="book_assets/anchor-sections-1.1.0/anchor-sections.js"></script>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||
.sourceCode { overflow: visible; }
|
||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||
pre.sourceCode { margin: 0; }
|
||||
@media screen {
|
||||
div.sourceCode { overflow: auto; }
|
||||
}
|
||||
@media print {
|
||||
pre > code.sourceCode { white-space: pre-wrap; }
|
||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||
}
|
||||
pre.numberSource code
|
||||
{ counter-reset: source-line 0; }
|
||||
pre.numberSource code > span
|
||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||
pre.numberSource code > span > a:first-child::before
|
||||
{ content: counter(source-line);
|
||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||
border: none; display: inline-block;
|
||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||
-khtml-user-select: none; -moz-user-select: none;
|
||||
-ms-user-select: none; user-select: none;
|
||||
padding: 0 4px; width: 4em;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
|
||||
div.sourceCode
|
||||
{ }
|
||||
@media screen {
|
||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||
}
|
||||
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
|
||||
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
|
||||
code span.at { color: #7d9029; } /* Attribute */
|
||||
code span.bn { color: #40a070; } /* BaseN */
|
||||
code span.bu { } /* BuiltIn */
|
||||
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
|
||||
code span.ch { color: #4070a0; } /* Char */
|
||||
code span.cn { color: #880000; } /* Constant */
|
||||
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
|
||||
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
|
||||
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
|
||||
code span.dt { color: #902000; } /* DataType */
|
||||
code span.dv { color: #40a070; } /* DecVal */
|
||||
code span.er { color: #ff0000; font-weight: bold; } /* Error */
|
||||
code span.ex { } /* Extension */
|
||||
code span.fl { color: #40a070; } /* Float */
|
||||
code span.fu { color: #06287e; } /* Function */
|
||||
code span.im { } /* Import */
|
||||
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
|
||||
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
|
||||
code span.op { color: #666666; } /* Operator */
|
||||
code span.ot { color: #007020; } /* Other */
|
||||
code span.pp { color: #bc7a00; } /* Preprocessor */
|
||||
code span.sc { color: #4070a0; } /* SpecialChar */
|
||||
code span.ss { color: #bb6688; } /* SpecialString */
|
||||
code span.st { color: #4070a0; } /* String */
|
||||
code span.va { color: #19177c; } /* Variable */
|
||||
code span.vs { color: #4070a0; } /* VerbatimString */
|
||||
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
|
||||
|
||||
<div class="book-summary">
|
||||
<nav role="navigation">
|
||||
|
||||
<ul class="summary">
|
||||
<li class="chapter" data-level="1" data-path="the-obitools.html"><a href="the-obitools.html"><i class="fa fa-check"></i><b>1</b> The OBITools</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.1" data-path="the-obitools.html"><a href="the-obitools.html#aims-of-obitools"><i class="fa fa-check"></i><b>1.1</b> Aims of <em>OBITools</em></a></li>
|
||||
<li class="chapter" data-level="1.2" data-path="the-obitools.html"><a href="the-obitools.html#file-formats-usable-with-obitools"><i class="fa fa-check"></i><b>1.2</b> File formats usable with <em>OBITools</em></a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.2.1" data-path="the-obitools.html"><a href="the-obitools.html#the-sequence-files"><i class="fa fa-check"></i><b>1.2.1</b> The sequence files</a></li>
|
||||
<li class="chapter" data-level="1.2.2" data-path="the-obitools.html"><a href="the-obitools.html#the-iupac-code"><i class="fa fa-check"></i><b>1.2.2</b> The IUPAC Code</a></li>
|
||||
<li class="chapter" data-level="1.2.3" data-path="the-obitools.html"><a href="the-obitools.html#classical-fasta"><i class="fa fa-check"></i><b>1.2.3</b> The <em>fasta</em> format</a></li>
|
||||
<li class="chapter" data-level="1.2.4" data-path="the-obitools.html"><a href="the-obitools.html#classical-fastq"><i class="fa fa-check"></i><b>1.2.4</b> The <em>fastq</em> sequence format</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="1.3" data-path="the-obitools.html"><a href="the-obitools.html#file-extension"><i class="fa fa-check"></i><b>1.3</b> File extension</a></li>
|
||||
<li class="chapter" data-level="1.4" data-path="the-obitools.html"><a href="the-obitools.html#see-also"><i class="fa fa-check"></i><b>1.4</b> See also</a></li>
|
||||
<li class="chapter" data-level="1.5" data-path="the-obitools.html"><a href="the-obitools.html#references"><i class="fa fa-check"></i><b>1.5</b> References</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html"><i class="fa fa-check"></i><b>2</b> The <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-the-input-files-to-obitools-commands"><i class="fa fa-check"></i><b>2.1</b> Specifying the input files to <em>OBITools</em> commands</a></li>
|
||||
<li class="chapter" data-level="2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#options-common-to-most-of-the-obitools-commands"><i class="fa fa-check"></i><b>2.2</b> Options common to most of the <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-input-format"><i class="fa fa-check"></i><b>2.2.1</b> Specifying input format</a></li>
|
||||
<li class="chapter" data-level="2.2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-output-format"><i class="fa fa-check"></i><b>2.2.2</b> Specifying output format</a></li>
|
||||
<li class="chapter" data-level="2.2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#format-of-the-annotations-in-fasta-and-fastq-files"><i class="fa fa-check"></i><b>2.2.3</b> Format of the annotations in Fasta and Fastq files</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#metabarcode-design-and-quality-assessment"><i class="fa fa-check"></i><b>2.3</b> Metabarcode design and quality assessment</a></li>
|
||||
<li class="chapter" data-level="2.4" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#file-format-conversions"><i class="fa fa-check"></i><b>2.4</b> File format conversions</a></li>
|
||||
<li class="chapter" data-level="2.5" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-annotations"><i class="fa fa-check"></i><b>2.5</b> Sequence annotations</a></li>
|
||||
<li class="chapter" data-level="2.6" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#computations-on-sequences"><i class="fa fa-check"></i><b>2.6</b> Computations on sequences</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.6.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#obipairing"><i class="fa fa-check"></i><b>2.6.1</b> <code>obipairing</code></a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.7" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-sampling-and-filtering"><i class="fa fa-check"></i><b>2.7</b> Sequence sampling and filtering</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.7.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#utilities"><i class="fa fa-check"></i><b>2.7.1</b> Utilities</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html"><i class="fa fa-check"></i><b>3</b> Reference documentation for the GO <em>OBITools</em> library</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#biosequence"><i class="fa fa-check"></i><b>3.1</b> BioSequence</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#creating-new-instances"><i class="fa fa-check"></i><b>3.1.1</b> Creating new instances</a></li>
|
||||
<li class="chapter" data-level="3.1.2" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#end-of-life-of-a-biosequence-instance"><i class="fa fa-check"></i><b>3.1.2</b> End of life of a <code>BioSequence</code> instance</a></li>
|
||||
<li class="chapter" data-level="3.1.3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#accessing-to-the-elements-of-a-sequence"><i class="fa fa-check"></i><b>3.1.3</b> Accessing to the elements of a sequence</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="4" data-path="annexes.html"><a href="annexes.html"><i class="fa fa-check"></i><b>4</b> Annexes</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="4.0.1" data-path="annexes.html"><a href="annexes.html#sequence-attributes"><i class="fa fa-check"></i><b>4.0.1</b> Sequence attributes</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header" role="navigation">
|
||||
<h1>
|
||||
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">The GO <em>OBITools</em></a>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-wrapper" tabindex="-1" role="main">
|
||||
<div class="page-inner">
|
||||
|
||||
<section class="normal" id="section-">
|
||||
<div id="reference-documentation-for-the-go-obitools-library" class="section level1 hasAnchor" number="3">
|
||||
<h1><span class="header-section-number">3</span> Reference documentation for the GO <em>OBITools</em> library<a href="reference-documentation-for-the-go-obitools-library.html#reference-documentation-for-the-go-obitools-library" class="anchor-section" aria-label="Anchor link to header"></a></h1>
|
||||
<div id="biosequence" class="section level2 hasAnchor" number="3.1">
|
||||
<h2><span class="header-section-number">3.1</span> BioSequence<a href="reference-documentation-for-the-go-obitools-library.html#biosequence" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<p>The <code>BioSequence</code> class is used to represent biological sequences. It
|
||||
allows for storing : - the sequence itself as a <code>[]byte</code> - the
|
||||
sequencing quality score as a <code>[]byte</code> if needed - an identifier as a
|
||||
<code>string</code> - a definition as a <code>string</code> - a set of <em>(key, value)</em> pairs in
|
||||
a <code>map[sting]interface{}</code></p>
|
||||
<p>BioSequence is defined in the obiseq module and is included using the
|
||||
code</p>
|
||||
<div class="sourceCode" id="cb7"><pre class="sourceCode go"><code class="sourceCode go"><span id="cb7-1"><a href="reference-documentation-for-the-go-obitools-library.html#cb7-1" aria-hidden="true" tabindex="-1"></a><span class="kw">import</span> <span class="op">(</span></span>
|
||||
<span id="cb7-2"><a href="reference-documentation-for-the-go-obitools-library.html#cb7-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"</span></span>
|
||||
<span id="cb7-3"><a href="reference-documentation-for-the-go-obitools-library.html#cb7-3" aria-hidden="true" tabindex="-1"></a><span class="op">)</span></span></code></pre></div>
|
||||
<div id="creating-new-instances" class="section level3 hasAnchor" number="3.1.1">
|
||||
<h3><span class="header-section-number">3.1.1</span> Creating new instances<a href="reference-documentation-for-the-go-obitools-library.html#creating-new-instances" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>To create new instance, use</p>
|
||||
<ul>
|
||||
<li><code>MakeBioSequence(id string, sequence []byte, definition string) obiseq.BioSequence</code></li>
|
||||
<li><code>NewBioSequence(id string, sequence []byte, definition string) *obiseq.BioSequence</code></li>
|
||||
</ul>
|
||||
<p>Both create a <code>BioSequence</code> instance, but when the first one returns the
|
||||
instance, the second returns a pointer on the new instance. Two other
|
||||
functions <code>MakeEmptyBioSequence</code>, and <code>NewEmptyBioSequence</code> do the same
|
||||
job but provide an uninitialized objects.</p>
|
||||
<ul>
|
||||
<li><code>id</code> parameters corresponds to the unique identifier of the
|
||||
sequence. It mist be a string constituted of a single word (not
|
||||
containing any space).</li>
|
||||
<li><code>sequence</code> is the DNA sequence itself, provided as a <code>byte</code> array
|
||||
(<code>[]byte</code>).</li>
|
||||
<li><code>definition</code> is a <code>string</code>, potentially empty, but usualy containing
|
||||
a sentence explaining what is that sequence.</li>
|
||||
</ul>
|
||||
<div class="sourceCode" id="cb8"><pre class="sourceCode go"><code class="sourceCode go"><span id="cb8-1"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-1" aria-hidden="true" tabindex="-1"></a><span class="kw">import</span> <span class="op">(</span></span>
|
||||
<span id="cb8-2"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"</span></span>
|
||||
<span id="cb8-3"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-3" aria-hidden="true" tabindex="-1"></a><span class="op">)</span></span>
|
||||
<span id="cb8-4"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-4" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb8-5"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-5" aria-hidden="true" tabindex="-1"></a><span class="kw">func</span> main<span class="op">()</span> <span class="op">{</span></span>
|
||||
<span id="cb8-6"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-6" aria-hidden="true" tabindex="-1"></a> myseq <span class="op">:=</span> obiseq<span class="op">.</span>NewBiosequence<span class="op">(</span></span>
|
||||
<span id="cb8-7"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-7" aria-hidden="true" tabindex="-1"></a> <span class="st">"seq_GH0001"</span><span class="op">,</span></span>
|
||||
<span id="cb8-8"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-8" aria-hidden="true" tabindex="-1"></a> bytes<span class="op">.</span>FromString<span class="op">(</span><span class="st">"ACGTGTCAGTCG"</span><span class="op">),</span></span>
|
||||
<span id="cb8-9"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-9" aria-hidden="true" tabindex="-1"></a> <span class="st">"A short test sequence"</span><span class="op">,</span></span>
|
||||
<span id="cb8-10"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-10" aria-hidden="true" tabindex="-1"></a> <span class="op">)</span></span>
|
||||
<span id="cb8-11"><a href="reference-documentation-for-the-go-obitools-library.html#cb8-11" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
|
||||
<p>When formated as fasta the parameters correspond to the following schema</p>
|
||||
<pre><code>>id definition containing potentially several words
|
||||
sequence</code></pre>
|
||||
</div>
|
||||
<div id="end-of-life-of-a-biosequence-instance" class="section level3 hasAnchor" number="3.1.2">
|
||||
<h3><span class="header-section-number">3.1.2</span> End of life of a <code>BioSequence</code> instance<a href="reference-documentation-for-the-go-obitools-library.html#end-of-life-of-a-biosequence-instance" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>When a <code>BioSequence</code> instance is no more used, it is normally taken in
|
||||
charge by the GO garbage collector. You can if you want call the
|
||||
<code>Recycle</code> method on the instance to store the allocated memory element
|
||||
in a <code>pool</code> to limit allocation effort when many sequences are
|
||||
manipulated.</p>
|
||||
</div>
|
||||
<div id="accessing-to-the-elements-of-a-sequence" class="section level3 hasAnchor" number="3.1.3">
|
||||
<h3><span class="header-section-number">3.1.3</span> Accessing to the elements of a sequence<a href="reference-documentation-for-the-go-obitools-library.html#accessing-to-the-elements-of-a-sequence" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>The different elements of an <code>obiseq.BioSequence</code> must be accessed using
|
||||
a set of methods. For the three main elements provided during the
|
||||
creation of a new instance methodes are :</p>
|
||||
<ul>
|
||||
<li><code>Id() string</code></li>
|
||||
<li><code>Sequence() []byte</code></li>
|
||||
<li><code>Definition() string</code></li>
|
||||
</ul>
|
||||
<p>It exists pending method to change the value of these elements</p>
|
||||
<ul>
|
||||
<li><code>SetId(id string)</code></li>
|
||||
<li><code>SetSequence(sequence []byte)</code></li>
|
||||
<li><code>SetDefinition(definition string)</code></li>
|
||||
</ul>
|
||||
<div class="sourceCode" id="cb10"><pre class="sourceCode go"><code class="sourceCode go"><span id="cb10-1"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-1" aria-hidden="true" tabindex="-1"></a><span class="kw">import</span> <span class="op">(</span></span>
|
||||
<span id="cb10-2"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"fmt"</span></span>
|
||||
<span id="cb10-3"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"</span></span>
|
||||
<span id="cb10-4"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-4" aria-hidden="true" tabindex="-1"></a><span class="op">)</span></span>
|
||||
<span id="cb10-5"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-5" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb10-6"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-6" aria-hidden="true" tabindex="-1"></a><span class="kw">func</span> main<span class="op">()</span> <span class="op">{</span></span>
|
||||
<span id="cb10-7"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-7" aria-hidden="true" tabindex="-1"></a> myseq <span class="op">:=</span> obiseq<span class="op">.</span>NewBiosequence<span class="op">(</span></span>
|
||||
<span id="cb10-8"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-8" aria-hidden="true" tabindex="-1"></a> <span class="st">"seq_GH0001"</span><span class="op">,</span></span>
|
||||
<span id="cb10-9"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-9" aria-hidden="true" tabindex="-1"></a> bytes<span class="op">.</span>FromString<span class="op">(</span><span class="st">"ACGTGTCAGTCG"</span><span class="op">),</span></span>
|
||||
<span id="cb10-10"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-10" aria-hidden="true" tabindex="-1"></a> <span class="st">"A short test sequence"</span><span class="op">,</span></span>
|
||||
<span id="cb10-11"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-11" aria-hidden="true" tabindex="-1"></a> <span class="op">)</span></span>
|
||||
<span id="cb10-12"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-12" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb10-13"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-13" aria-hidden="true" tabindex="-1"></a> fmt<span class="op">.</span>Println<span class="op">(</span>myseq<span class="op">.</span>Id<span class="op">())</span></span>
|
||||
<span id="cb10-14"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-14" aria-hidden="true" tabindex="-1"></a> myseq<span class="op">.</span>SetId<span class="op">(</span><span class="st">"SPE01_0001"</span><span class="op">)</span></span>
|
||||
<span id="cb10-15"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-15" aria-hidden="true" tabindex="-1"></a> fmt<span class="op">.</span>Println<span class="op">(</span>myseq<span class="op">.</span>Id<span class="op">())</span></span>
|
||||
<span id="cb10-16"><a href="reference-documentation-for-the-go-obitools-library.html#cb10-16" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
|
||||
<div id="different-ways-for-accessing-an-editing-the-sequence" class="section level4 hasAnchor" number="3.1.3.1">
|
||||
<h4><span class="header-section-number">3.1.3.1</span> Different ways for accessing an editing the sequence<a href="reference-documentation-for-the-go-obitools-library.html#different-ways-for-accessing-an-editing-the-sequence" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<p>If <code>Sequence()</code>and <code>SetSequence(sequence []byte)</code> methods are the basic
|
||||
ones, several other methods exist.</p>
|
||||
<ul>
|
||||
<li><code>String() string</code> return the sequence directly converted to a
|
||||
<code>string</code> instance.</li>
|
||||
<li>The <code>Write</code> method family allows for extending an existing sequence
|
||||
following the buffer protocol.
|
||||
<ul>
|
||||
<li><code>Write(data []byte) (int, error)</code> allows for appending a byte
|
||||
array on 3’ end of the sequence.</li>
|
||||
<li><code>WriteString(data string) (int, error)</code> allows for appending a
|
||||
<code>string</code>.</li>
|
||||
<li><code>WriteByte(data byte) error</code> allows for appending a single
|
||||
<code>byte</code>.</li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
<p>The <code>Clear</code> method empties the sequence buffer.</p>
|
||||
<div class="sourceCode" id="cb11"><pre class="sourceCode go"><code class="sourceCode go"><span id="cb11-1"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-1" aria-hidden="true" tabindex="-1"></a><span class="kw">import</span> <span class="op">(</span></span>
|
||||
<span id="cb11-2"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-2" aria-hidden="true" tabindex="-1"></a> <span class="st">"fmt"</span></span>
|
||||
<span id="cb11-3"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-3" aria-hidden="true" tabindex="-1"></a> <span class="st">"git.metabarcoding.org/lecasofts/go/obitools/pkg/obiseq"</span></span>
|
||||
<span id="cb11-4"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-4" aria-hidden="true" tabindex="-1"></a><span class="op">)</span></span>
|
||||
<span id="cb11-5"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-5" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb11-6"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-6" aria-hidden="true" tabindex="-1"></a><span class="kw">func</span> main<span class="op">()</span> <span class="op">{</span></span>
|
||||
<span id="cb11-7"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-7" aria-hidden="true" tabindex="-1"></a> myseq <span class="op">:=</span> obiseq<span class="op">.</span>NewEmptyBiosequence<span class="op">()</span></span>
|
||||
<span id="cb11-8"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-8" aria-hidden="true" tabindex="-1"></a></span>
|
||||
<span id="cb11-9"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-9" aria-hidden="true" tabindex="-1"></a> myseq<span class="op">.</span>WriteString<span class="op">(</span><span class="st">"accc"</span><span class="op">)</span></span>
|
||||
<span id="cb11-10"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-10" aria-hidden="true" tabindex="-1"></a> myseq<span class="op">.</span>WriteByte<span class="op">(</span><span class="dt">byte</span><span class="op">(</span><span class="ch">'c'</span><span class="op">))</span></span>
|
||||
<span id="cb11-11"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-11" aria-hidden="true" tabindex="-1"></a> fmt<span class="op">.</span>Println<span class="op">(</span>myseq<span class="op">.</span>String<span class="op">())</span></span>
|
||||
<span id="cb11-12"><a href="reference-documentation-for-the-go-obitools-library.html#cb11-12" aria-hidden="true" tabindex="-1"></a><span class="op">}</span></span></code></pre></div>
|
||||
</div>
|
||||
<div id="sequence-quality-scores" class="section level4 hasAnchor" number="3.1.3.2">
|
||||
<h4><span class="header-section-number">3.1.3.2</span> Sequence quality scores<a href="reference-documentation-for-the-go-obitools-library.html#sequence-quality-scores" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<p>Sequence quality scores cannot be initialized at the time of instance
|
||||
creation. You must use dedicated methods to add quality scores to a
|
||||
sequence.</p>
|
||||
<p>To be coherent the length of both the DNA sequence and que quality score
|
||||
sequence must be equal. But assessment of this constraint is realized.
|
||||
It is of the programmer responsability to check that invariant.</p>
|
||||
<p>While accessing to the quality scores relies on the method
|
||||
<code>Quality() []byte</code>, setting the quality need to call one of the
|
||||
following method. They run similarly to their sequence dedicated
|
||||
conterpart.</p>
|
||||
<ul>
|
||||
<li><code>SetQualities(qualities Quality)</code></li>
|
||||
<li><code>WriteQualities(data []byte) (int, error)</code></li>
|
||||
<li><code>WriteByteQualities(data byte) error</code></li>
|
||||
</ul>
|
||||
<p>In a way analogous to the <code>Clear</code> method, <code>ClearQualities()</code> empties the
|
||||
sequence of quality scores.</p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="the-obitools-commands.html" class="navigation navigation-prev " aria-label="Previous page"><i class="fa fa-angle-left"></i></a>
|
||||
<a href="annexes.html" class="navigation navigation-next " aria-label="Next page"><i class="fa fa-angle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<script src="book_assets/gitbook-2.6.7/js/app.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/clipboard.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-search.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-sharing.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-bookdown.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/jquery.highlight.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-clipboard.js"></script>
|
||||
<script>
|
||||
gitbook.require(["gitbook"], function(gitbook) {
|
||||
gitbook.start({
|
||||
"sharing": {
|
||||
"github": false,
|
||||
"facebook": true,
|
||||
"twitter": true,
|
||||
"linkedin": false,
|
||||
"weibo": false,
|
||||
"instapaper": false,
|
||||
"vk": false,
|
||||
"whatsapp": false,
|
||||
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
|
||||
},
|
||||
"fontsettings": {
|
||||
"theme": "white",
|
||||
"family": "sans",
|
||||
"size": 2
|
||||
},
|
||||
"edit": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"history": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"view": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"download": ["_main.pdf"],
|
||||
"search": {
|
||||
"engine": "fuse",
|
||||
"options": null
|
||||
},
|
||||
"toc": {
|
||||
"collapse": "subsection"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- dynamically load mathjax for compatibility with self-contained -->
|
||||
<script>
|
||||
(function () {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
var src = "true";
|
||||
if (src === "" || src === "true") src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/latest.js?config=TeX-MML-AM_CHTML";
|
||||
if (location.protocol !== "file:")
|
||||
if (/^https?:/.test(src))
|
||||
src = src.replace(/^https?:/, '');
|
||||
script.src = src;
|
||||
document.getElementsByTagName("head")[0].appendChild(script);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
1
doc/_book/search_index.json
Normal file
1
doc/_book/search_index.json
Normal file
File diff suppressed because one or more lines are too long
400
doc/_book/the-obitools-commands.html
Normal file
400
doc/_book/the-obitools-commands.html
Normal file
@ -0,0 +1,400 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="" xml:lang="">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>2 The OBITools commands | The GO OBITools</title>
|
||||
<meta name="description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="generator" content="bookdown 0.29 and GitBook 2.6.7" />
|
||||
|
||||
<meta property="og:title" content="2 The OBITools commands | The GO OBITools" />
|
||||
<meta property="og:type" content="book" />
|
||||
|
||||
<meta property="og:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="github-repo" content="seankross/bookdown-start" />
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="2 The OBITools commands | The GO OBITools" />
|
||||
|
||||
<meta name="twitter:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
|
||||
|
||||
<meta name="author" content="SEric Coissac" />
|
||||
|
||||
|
||||
<meta name="date" content="2022-08-25" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
|
||||
<link rel="prev" href="the-obitools.html"/>
|
||||
<link rel="next" href="reference-documentation-for-the-go-obitools-library.html"/>
|
||||
<script src="book_assets/jquery-3.6.0/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script>
|
||||
<link href="book_assets/gitbook-2.6.7/css/style.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" />
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" />
|
||||
<script src="book_assets/anchor-sections-1.1.0/anchor-sections.js"></script>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||
.sourceCode { overflow: visible; }
|
||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||
pre.sourceCode { margin: 0; }
|
||||
@media screen {
|
||||
div.sourceCode { overflow: auto; }
|
||||
}
|
||||
@media print {
|
||||
pre > code.sourceCode { white-space: pre-wrap; }
|
||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||
}
|
||||
pre.numberSource code
|
||||
{ counter-reset: source-line 0; }
|
||||
pre.numberSource code > span
|
||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||
pre.numberSource code > span > a:first-child::before
|
||||
{ content: counter(source-line);
|
||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||
border: none; display: inline-block;
|
||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||
-khtml-user-select: none; -moz-user-select: none;
|
||||
-ms-user-select: none; user-select: none;
|
||||
padding: 0 4px; width: 4em;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
|
||||
div.sourceCode
|
||||
{ }
|
||||
@media screen {
|
||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||
}
|
||||
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
|
||||
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
|
||||
code span.at { color: #7d9029; } /* Attribute */
|
||||
code span.bn { color: #40a070; } /* BaseN */
|
||||
code span.bu { } /* BuiltIn */
|
||||
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
|
||||
code span.ch { color: #4070a0; } /* Char */
|
||||
code span.cn { color: #880000; } /* Constant */
|
||||
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
|
||||
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
|
||||
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
|
||||
code span.dt { color: #902000; } /* DataType */
|
||||
code span.dv { color: #40a070; } /* DecVal */
|
||||
code span.er { color: #ff0000; font-weight: bold; } /* Error */
|
||||
code span.ex { } /* Extension */
|
||||
code span.fl { color: #40a070; } /* Float */
|
||||
code span.fu { color: #06287e; } /* Function */
|
||||
code span.im { } /* Import */
|
||||
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
|
||||
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
|
||||
code span.op { color: #666666; } /* Operator */
|
||||
code span.ot { color: #007020; } /* Other */
|
||||
code span.pp { color: #bc7a00; } /* Preprocessor */
|
||||
code span.sc { color: #4070a0; } /* SpecialChar */
|
||||
code span.ss { color: #bb6688; } /* SpecialString */
|
||||
code span.st { color: #4070a0; } /* String */
|
||||
code span.va { color: #19177c; } /* Variable */
|
||||
code span.vs { color: #4070a0; } /* VerbatimString */
|
||||
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
|
||||
|
||||
<div class="book-summary">
|
||||
<nav role="navigation">
|
||||
|
||||
<ul class="summary">
|
||||
<li class="chapter" data-level="1" data-path="the-obitools.html"><a href="the-obitools.html"><i class="fa fa-check"></i><b>1</b> The OBITools</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.1" data-path="the-obitools.html"><a href="the-obitools.html#aims-of-obitools"><i class="fa fa-check"></i><b>1.1</b> Aims of <em>OBITools</em></a></li>
|
||||
<li class="chapter" data-level="1.2" data-path="the-obitools.html"><a href="the-obitools.html#file-formats-usable-with-obitools"><i class="fa fa-check"></i><b>1.2</b> File formats usable with <em>OBITools</em></a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.2.1" data-path="the-obitools.html"><a href="the-obitools.html#the-sequence-files"><i class="fa fa-check"></i><b>1.2.1</b> The sequence files</a></li>
|
||||
<li class="chapter" data-level="1.2.2" data-path="the-obitools.html"><a href="the-obitools.html#the-iupac-code"><i class="fa fa-check"></i><b>1.2.2</b> The IUPAC Code</a></li>
|
||||
<li class="chapter" data-level="1.2.3" data-path="the-obitools.html"><a href="the-obitools.html#classical-fasta"><i class="fa fa-check"></i><b>1.2.3</b> The <em>fasta</em> format</a></li>
|
||||
<li class="chapter" data-level="1.2.4" data-path="the-obitools.html"><a href="the-obitools.html#classical-fastq"><i class="fa fa-check"></i><b>1.2.4</b> The <em>fastq</em> sequence format</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="1.3" data-path="the-obitools.html"><a href="the-obitools.html#file-extension"><i class="fa fa-check"></i><b>1.3</b> File extension</a></li>
|
||||
<li class="chapter" data-level="1.4" data-path="the-obitools.html"><a href="the-obitools.html#see-also"><i class="fa fa-check"></i><b>1.4</b> See also</a></li>
|
||||
<li class="chapter" data-level="1.5" data-path="the-obitools.html"><a href="the-obitools.html#references"><i class="fa fa-check"></i><b>1.5</b> References</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html"><i class="fa fa-check"></i><b>2</b> The <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-the-input-files-to-obitools-commands"><i class="fa fa-check"></i><b>2.1</b> Specifying the input files to <em>OBITools</em> commands</a></li>
|
||||
<li class="chapter" data-level="2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#options-common-to-most-of-the-obitools-commands"><i class="fa fa-check"></i><b>2.2</b> Options common to most of the <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-input-format"><i class="fa fa-check"></i><b>2.2.1</b> Specifying input format</a></li>
|
||||
<li class="chapter" data-level="2.2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-output-format"><i class="fa fa-check"></i><b>2.2.2</b> Specifying output format</a></li>
|
||||
<li class="chapter" data-level="2.2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#format-of-the-annotations-in-fasta-and-fastq-files"><i class="fa fa-check"></i><b>2.2.3</b> Format of the annotations in Fasta and Fastq files</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#metabarcode-design-and-quality-assessment"><i class="fa fa-check"></i><b>2.3</b> Metabarcode design and quality assessment</a></li>
|
||||
<li class="chapter" data-level="2.4" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#file-format-conversions"><i class="fa fa-check"></i><b>2.4</b> File format conversions</a></li>
|
||||
<li class="chapter" data-level="2.5" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-annotations"><i class="fa fa-check"></i><b>2.5</b> Sequence annotations</a></li>
|
||||
<li class="chapter" data-level="2.6" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#computations-on-sequences"><i class="fa fa-check"></i><b>2.6</b> Computations on sequences</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.6.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#obipairing"><i class="fa fa-check"></i><b>2.6.1</b> <code>obipairing</code></a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.7" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-sampling-and-filtering"><i class="fa fa-check"></i><b>2.7</b> Sequence sampling and filtering</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.7.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#utilities"><i class="fa fa-check"></i><b>2.7.1</b> Utilities</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html"><i class="fa fa-check"></i><b>3</b> Reference documentation for the GO <em>OBITools</em> library</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#biosequence"><i class="fa fa-check"></i><b>3.1</b> BioSequence</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#creating-new-instances"><i class="fa fa-check"></i><b>3.1.1</b> Creating new instances</a></li>
|
||||
<li class="chapter" data-level="3.1.2" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#end-of-life-of-a-biosequence-instance"><i class="fa fa-check"></i><b>3.1.2</b> End of life of a <code>BioSequence</code> instance</a></li>
|
||||
<li class="chapter" data-level="3.1.3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#accessing-to-the-elements-of-a-sequence"><i class="fa fa-check"></i><b>3.1.3</b> Accessing to the elements of a sequence</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="4" data-path="annexes.html"><a href="annexes.html"><i class="fa fa-check"></i><b>4</b> Annexes</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="4.0.1" data-path="annexes.html"><a href="annexes.html#sequence-attributes"><i class="fa fa-check"></i><b>4.0.1</b> Sequence attributes</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header" role="navigation">
|
||||
<h1>
|
||||
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">The GO <em>OBITools</em></a>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-wrapper" tabindex="-1" role="main">
|
||||
<div class="page-inner">
|
||||
|
||||
<section class="normal" id="section-">
|
||||
<div id="the-obitools-commands" class="section level1 hasAnchor" number="2">
|
||||
<h1><span class="header-section-number">2</span> The <em>OBITools</em> commands<a href="the-obitools-commands.html#the-obitools-commands" class="anchor-section" aria-label="Anchor link to header"></a></h1>
|
||||
<div id="specifying-the-input-files-to-obitools-commands" class="section level2 hasAnchor" number="2.1">
|
||||
<h2><span class="header-section-number">2.1</span> Specifying the input files to <em>OBITools</em> commands<a href="the-obitools-commands.html#specifying-the-input-files-to-obitools-commands" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
</div>
|
||||
<div id="options-common-to-most-of-the-obitools-commands" class="section level2 hasAnchor" number="2.2">
|
||||
<h2><span class="header-section-number">2.2</span> Options common to most of the <em>OBITools</em> commands<a href="the-obitools-commands.html#options-common-to-most-of-the-obitools-commands" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="specifying-input-format" class="section level3 hasAnchor" number="2.2.1">
|
||||
<h3><span class="header-section-number">2.2.1</span> Specifying input format<a href="the-obitools-commands.html#specifying-input-format" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>Five sequence formats are accepted for input files. <a href="#fasta-classical" title="Fasta format description">Fasta</a> and <a href="#fastq-classical" title="Fastq format description">Fastq</a> are the main ones, EMBL and Genbank allow the use of flat files produced by these two international databases. The last one, ecoPCR, is maintained for compatibility with previous <em>OBITools</em> and allows to read <em>ecoPCR</em> outputs as sequence files.</p>
|
||||
<ul>
|
||||
<li><code>--ecopcr</code> : Read data following the <em>ecoPCR</em> output format.</li>
|
||||
<li><code>--embl</code> Read data following the <em>EMBL</em> flatfile format.</li>
|
||||
<li><code>--genbank</code> Read data following the <em>Genbank</em> flatfile format.</li>
|
||||
</ul>
|
||||
<p>Several encoding schemes have been proposed for quality scores in <a href="#fastq-classical" title="Fastq format description">Fastq</a> format. Currently, <em>OBITools</em> considers Sanger encoding as the standard. For reasons of compatibility with older datasets produced with <em>Solexa</em> sequencers, it is possible, by using the following option, to force the use of the corresponding quality encoding scheme when reading these older files.</p>
|
||||
<ul>
|
||||
<li><code>--solexa</code> Decodes quality string according to the Solexa specification. (default: false)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="specifying-output-format" class="section level3 hasAnchor" number="2.2.2">
|
||||
<h3><span class="header-section-number">2.2.2</span> Specifying output format<a href="the-obitools-commands.html#specifying-output-format" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>Only two output sequence formats are supported by OBITools, Fasta and Fastq. Fastq is used when output sequences are associated with quality information. Otherwise, Fasta is the default format. However, it is possible to force the output format by using one of the following two options. Forcing the use of Fasta results in the loss of quality information. Conversely, when the Fastq format is forced with sequences that have no quality data, dummy qualities set to 40 for each nucleotide are added.</p>
|
||||
<ul>
|
||||
<li><code>--fasta-output</code> Read data following the ecoPCR output format.</li>
|
||||
<li><code>--fastq-output</code> Read data following the EMBL flatfile format.</li>
|
||||
</ul>
|
||||
<p>OBITools allows multiple input files to be specified for a single command.</p>
|
||||
<ul>
|
||||
<li><code>--no-order</code> When several input files are provided, indicates that there is no order among them. (default: false)</li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="format-of-the-annotations-in-fasta-and-fastq-files" class="section level3 hasAnchor" number="2.2.3">
|
||||
<h3><span class="header-section-number">2.2.3</span> Format of the annotations in Fasta and Fastq files<a href="the-obitools-commands.html#format-of-the-annotations-in-fasta-and-fastq-files" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>OBITools extend the <a href="#fasta-classical" title="Fasta format description">Fasta</a> and <a href="#fastq-classical" title="Fastq format description">Fastq</a> formats by introducing a format for the title lines of these formats allowing to annotate every sequence. While the previous version of OBITools used an <em>ad-hoc</em> format for these annotation, this new version introduce the usage of the standard JSON format to store them.</p>
|
||||
<p>On input, OBITools automatically recognize the format of the annotations, but two options allows to force the parsing following one of them. You should normally not need to use these options.</p>
|
||||
<ul>
|
||||
<li><p><code>--input-OBI-header</code> FASTA/FASTQ title line annotations follow OBI format. (default: false)</p></li>
|
||||
<li><p><code>--input-json-header</code> FASTA/FASTQ title line annotations follow json format. (default: false)</p></li>
|
||||
</ul>
|
||||
<p>On output, by default annotation are formatted using the new JSON format. For compatibility with previous version of OBITools and with external scripts and software, it is possible to force the usage of the previous OBITools format.</p>
|
||||
<ul>
|
||||
<li><p><code>--output-OBI-header|-O</code> output FASTA/FASTQ title line annotations follow OBI format. (default: false)</p></li>
|
||||
<li><p><code>--output-json-header</code> output FASTA/FASTQ title line annotations follow json format. (default: false)</p></li>
|
||||
</ul>
|
||||
<div id="system-related-options" class="section level4 hasAnchor" number="2.2.3.1">
|
||||
<h4><span class="header-section-number">2.2.3.1</span> System related options<a href="the-obitools-commands.html#system-related-options" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<ul>
|
||||
<li><code>--debug</code> (default: false)</li>
|
||||
<li><code>--help\|-h\|-?</code> (default: false)</li>
|
||||
<li><code>--max-cpu <int></code> Number of parallele threads computing the result (default: 10)</li>
|
||||
<li><code>--workers\|-w <int></code> Number of parallele threads computing the result (default: 9)</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="metabarcode-design-and-quality-assessment" class="section level2 hasAnchor" number="2.3">
|
||||
<h2><span class="header-section-number">2.3</span> Metabarcode design and quality assessment<a href="the-obitools-commands.html#metabarcode-design-and-quality-assessment" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="obipcr" class="section level4 hasAnchor" number="2.3.0.1">
|
||||
<h4><span class="header-section-number">2.3.0.1</span> <code>obipcr</code><a href="the-obitools-commands.html#obipcr" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<blockquote>
|
||||
<p>Replace the <code>ecoPCR</code> original <em>OBITools</em></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
</div>
|
||||
<div id="file-format-conversions" class="section level2 hasAnchor" number="2.4">
|
||||
<h2><span class="header-section-number">2.4</span> File format conversions<a href="the-obitools-commands.html#file-format-conversions" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="obiconvert" class="section level4 hasAnchor" number="2.4.0.1">
|
||||
<h4><span class="header-section-number">2.4.0.1</span> <code>obiconvert</code><a href="the-obitools-commands.html#obiconvert" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sequence-annotations" class="section level2 hasAnchor" number="2.5">
|
||||
<h2><span class="header-section-number">2.5</span> Sequence annotations<a href="the-obitools-commands.html#sequence-annotations" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="obitag" class="section level4 hasAnchor" number="2.5.0.1">
|
||||
<h4><span class="header-section-number">2.5.0.1</span> <code>obitag</code><a href="the-obitools-commands.html#obitag" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
</div>
|
||||
<div id="computations-on-sequences" class="section level2 hasAnchor" number="2.6">
|
||||
<h2><span class="header-section-number">2.6</span> Computations on sequences<a href="the-obitools-commands.html#computations-on-sequences" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="obipairing" class="section level3 hasAnchor" number="2.6.1">
|
||||
<h3><span class="header-section-number">2.6.1</span> <code>obipairing</code><a href="the-obitools-commands.html#obipairing" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<blockquote>
|
||||
<p>Replace the <code>illuminapairedends</code> original <em>OBITools</em></p>
|
||||
</blockquote>
|
||||
<div id="obimultiplex" class="section level4 hasAnchor" number="2.6.1.1">
|
||||
<h4><span class="header-section-number">2.6.1.1</span> <code>obimultiplex</code><a href="the-obitools-commands.html#obimultiplex" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<blockquote>
|
||||
<p>Replace the <code>ngsfilter</code> original <em>OBITools</em></p>
|
||||
</blockquote>
|
||||
</div>
|
||||
<div id="obicomplement" class="section level4 hasAnchor" number="2.6.1.2">
|
||||
<h4><span class="header-section-number">2.6.1.2</span> <code>obicomplement</code><a href="the-obitools-commands.html#obicomplement" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
<div id="obiclean" class="section level4 hasAnchor" number="2.6.1.3">
|
||||
<h4><span class="header-section-number">2.6.1.3</span> <code>obiclean</code><a href="the-obitools-commands.html#obiclean" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
<div id="obiuniq" class="section level4 hasAnchor" number="2.6.1.4">
|
||||
<h4><span class="header-section-number">2.6.1.4</span> <code>obiuniq</code><a href="the-obitools-commands.html#obiuniq" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="sequence-sampling-and-filtering" class="section level2 hasAnchor" number="2.7">
|
||||
<h2><span class="header-section-number">2.7</span> Sequence sampling and filtering<a href="the-obitools-commands.html#sequence-sampling-and-filtering" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="obigrep" class="section level4 hasAnchor" number="2.7.0.1">
|
||||
<h4><span class="header-section-number">2.7.0.1</span> <code>obigrep</code><a href="the-obitools-commands.html#obigrep" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
<div id="utilities" class="section level3 hasAnchor" number="2.7.1">
|
||||
<h3><span class="header-section-number">2.7.1</span> Utilities<a href="the-obitools-commands.html#utilities" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<div id="obicount" class="section level4 hasAnchor" number="2.7.1.1">
|
||||
<h4><span class="header-section-number">2.7.1.1</span> <code>obicount</code><a href="the-obitools-commands.html#obicount" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
<div id="obidistribute" class="section level4 hasAnchor" number="2.7.1.2">
|
||||
<h4><span class="header-section-number">2.7.1.2</span> <code>obidistribute</code><a href="the-obitools-commands.html#obidistribute" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
</div>
|
||||
<div id="obifind" class="section level4 hasAnchor" number="2.7.1.3">
|
||||
<h4><span class="header-section-number">2.7.1.3</span> <code>obifind</code><a href="the-obitools-commands.html#obifind" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<blockquote>
|
||||
<p>Replace the <code>ecofind</code> original <em>OBITools.</em></p>
|
||||
</blockquote>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<a href="the-obitools.html" class="navigation navigation-prev " aria-label="Previous page"><i class="fa fa-angle-left"></i></a>
|
||||
<a href="reference-documentation-for-the-go-obitools-library.html" class="navigation navigation-next " aria-label="Next page"><i class="fa fa-angle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<script src="book_assets/gitbook-2.6.7/js/app.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/clipboard.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-search.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-sharing.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-bookdown.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/jquery.highlight.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-clipboard.js"></script>
|
||||
<script>
|
||||
gitbook.require(["gitbook"], function(gitbook) {
|
||||
gitbook.start({
|
||||
"sharing": {
|
||||
"github": false,
|
||||
"facebook": true,
|
||||
"twitter": true,
|
||||
"linkedin": false,
|
||||
"weibo": false,
|
||||
"instapaper": false,
|
||||
"vk": false,
|
||||
"whatsapp": false,
|
||||
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
|
||||
},
|
||||
"fontsettings": {
|
||||
"theme": "white",
|
||||
"family": "sans",
|
||||
"size": 2
|
||||
},
|
||||
"edit": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"history": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"view": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"download": ["_main.pdf"],
|
||||
"search": {
|
||||
"engine": "fuse",
|
||||
"options": null
|
||||
},
|
||||
"toc": {
|
||||
"collapse": "subsection"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- dynamically load mathjax for compatibility with self-contained -->
|
||||
<script>
|
||||
(function () {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
var src = "true";
|
||||
if (src === "" || src === "true") src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/latest.js?config=TeX-MML-AM_CHTML";
|
||||
if (location.protocol !== "file:")
|
||||
if (/^https?:/.test(src))
|
||||
src = src.replace(/^https?:/, '');
|
||||
script.src = src;
|
||||
document.getElementsByTagName("head")[0].appendChild(script);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
554
doc/_book/the-obitools.html
Normal file
554
doc/_book/the-obitools.html
Normal file
@ -0,0 +1,554 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="" xml:lang="">
|
||||
<head>
|
||||
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
||||
<title>The GO OBITools</title>
|
||||
<meta name="description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="generator" content="bookdown 0.29 and GitBook 2.6.7" />
|
||||
|
||||
<meta property="og:title" content="The GO OBITools" />
|
||||
<meta property="og:type" content="book" />
|
||||
|
||||
<meta property="og:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
<meta name="github-repo" content="seankross/bookdown-start" />
|
||||
|
||||
<meta name="twitter:card" content="summary" />
|
||||
<meta name="twitter:title" content="The GO OBITools" />
|
||||
|
||||
<meta name="twitter:description" content="Description of the principles used into the GO implementation of OBITools." />
|
||||
|
||||
|
||||
<meta name="author" content="SEric Coissac" />
|
||||
|
||||
|
||||
<meta name="date" content="2022-08-25" />
|
||||
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta name="apple-mobile-web-app-capable" content="yes" />
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black" />
|
||||
|
||||
|
||||
|
||||
<link rel="next" href="the-obitools-commands.html"/>
|
||||
<script src="book_assets/jquery-3.6.0/jquery-3.6.0.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/fuse.js@6.4.6/dist/fuse.min.js"></script>
|
||||
<link href="book_assets/gitbook-2.6.7/css/style.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-table.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-bookdown.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-highlight.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-search.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-fontsettings.css" rel="stylesheet" />
|
||||
<link href="book_assets/gitbook-2.6.7/css/plugin-clipboard.css" rel="stylesheet" />
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections.css" rel="stylesheet" />
|
||||
<link href="book_assets/anchor-sections-1.1.0/anchor-sections-hash.css" rel="stylesheet" />
|
||||
<script src="book_assets/anchor-sections-1.1.0/anchor-sections.js"></script>
|
||||
|
||||
|
||||
<style type="text/css">
|
||||
pre > code.sourceCode { white-space: pre; position: relative; }
|
||||
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
|
||||
pre > code.sourceCode > span:empty { height: 1.2em; }
|
||||
.sourceCode { overflow: visible; }
|
||||
code.sourceCode > span { color: inherit; text-decoration: inherit; }
|
||||
pre.sourceCode { margin: 0; }
|
||||
@media screen {
|
||||
div.sourceCode { overflow: auto; }
|
||||
}
|
||||
@media print {
|
||||
pre > code.sourceCode { white-space: pre-wrap; }
|
||||
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
|
||||
}
|
||||
pre.numberSource code
|
||||
{ counter-reset: source-line 0; }
|
||||
pre.numberSource code > span
|
||||
{ position: relative; left: -4em; counter-increment: source-line; }
|
||||
pre.numberSource code > span > a:first-child::before
|
||||
{ content: counter(source-line);
|
||||
position: relative; left: -1em; text-align: right; vertical-align: baseline;
|
||||
border: none; display: inline-block;
|
||||
-webkit-touch-callout: none; -webkit-user-select: none;
|
||||
-khtml-user-select: none; -moz-user-select: none;
|
||||
-ms-user-select: none; user-select: none;
|
||||
padding: 0 4px; width: 4em;
|
||||
color: #aaaaaa;
|
||||
}
|
||||
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
|
||||
div.sourceCode
|
||||
{ }
|
||||
@media screen {
|
||||
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
|
||||
}
|
||||
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
|
||||
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
|
||||
code span.at { color: #7d9029; } /* Attribute */
|
||||
code span.bn { color: #40a070; } /* BaseN */
|
||||
code span.bu { } /* BuiltIn */
|
||||
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
|
||||
code span.ch { color: #4070a0; } /* Char */
|
||||
code span.cn { color: #880000; } /* Constant */
|
||||
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
|
||||
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
|
||||
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
|
||||
code span.dt { color: #902000; } /* DataType */
|
||||
code span.dv { color: #40a070; } /* DecVal */
|
||||
code span.er { color: #ff0000; font-weight: bold; } /* Error */
|
||||
code span.ex { } /* Extension */
|
||||
code span.fl { color: #40a070; } /* Float */
|
||||
code span.fu { color: #06287e; } /* Function */
|
||||
code span.im { } /* Import */
|
||||
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
|
||||
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
|
||||
code span.op { color: #666666; } /* Operator */
|
||||
code span.ot { color: #007020; } /* Other */
|
||||
code span.pp { color: #bc7a00; } /* Preprocessor */
|
||||
code span.sc { color: #4070a0; } /* SpecialChar */
|
||||
code span.ss { color: #bb6688; } /* SpecialString */
|
||||
code span.st { color: #4070a0; } /* String */
|
||||
code span.va { color: #19177c; } /* Variable */
|
||||
code span.vs { color: #4070a0; } /* VerbatimString */
|
||||
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
|
||||
</style>
|
||||
|
||||
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
|
||||
|
||||
<div class="book without-animation with-summary font-size-2 font-family-1" data-basepath=".">
|
||||
|
||||
<div class="book-summary">
|
||||
<nav role="navigation">
|
||||
|
||||
<ul class="summary">
|
||||
<li class="chapter" data-level="1" data-path="the-obitools.html"><a href="the-obitools.html"><i class="fa fa-check"></i><b>1</b> The OBITools</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.1" data-path="the-obitools.html"><a href="the-obitools.html#aims-of-obitools"><i class="fa fa-check"></i><b>1.1</b> Aims of <em>OBITools</em></a></li>
|
||||
<li class="chapter" data-level="1.2" data-path="the-obitools.html"><a href="the-obitools.html#file-formats-usable-with-obitools"><i class="fa fa-check"></i><b>1.2</b> File formats usable with <em>OBITools</em></a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="1.2.1" data-path="the-obitools.html"><a href="the-obitools.html#the-sequence-files"><i class="fa fa-check"></i><b>1.2.1</b> The sequence files</a></li>
|
||||
<li class="chapter" data-level="1.2.2" data-path="the-obitools.html"><a href="the-obitools.html#the-iupac-code"><i class="fa fa-check"></i><b>1.2.2</b> The IUPAC Code</a></li>
|
||||
<li class="chapter" data-level="1.2.3" data-path="the-obitools.html"><a href="the-obitools.html#classical-fasta"><i class="fa fa-check"></i><b>1.2.3</b> The <em>fasta</em> format</a></li>
|
||||
<li class="chapter" data-level="1.2.4" data-path="the-obitools.html"><a href="the-obitools.html#classical-fastq"><i class="fa fa-check"></i><b>1.2.4</b> The <em>fastq</em> sequence format</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="1.3" data-path="the-obitools.html"><a href="the-obitools.html#file-extension"><i class="fa fa-check"></i><b>1.3</b> File extension</a></li>
|
||||
<li class="chapter" data-level="1.4" data-path="the-obitools.html"><a href="the-obitools.html#see-also"><i class="fa fa-check"></i><b>1.4</b> See also</a></li>
|
||||
<li class="chapter" data-level="1.5" data-path="the-obitools.html"><a href="the-obitools.html#references"><i class="fa fa-check"></i><b>1.5</b> References</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html"><i class="fa fa-check"></i><b>2</b> The <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-the-input-files-to-obitools-commands"><i class="fa fa-check"></i><b>2.1</b> Specifying the input files to <em>OBITools</em> commands</a></li>
|
||||
<li class="chapter" data-level="2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#options-common-to-most-of-the-obitools-commands"><i class="fa fa-check"></i><b>2.2</b> Options common to most of the <em>OBITools</em> commands</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.2.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-input-format"><i class="fa fa-check"></i><b>2.2.1</b> Specifying input format</a></li>
|
||||
<li class="chapter" data-level="2.2.2" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#specifying-output-format"><i class="fa fa-check"></i><b>2.2.2</b> Specifying output format</a></li>
|
||||
<li class="chapter" data-level="2.2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#format-of-the-annotations-in-fasta-and-fastq-files"><i class="fa fa-check"></i><b>2.2.3</b> Format of the annotations in Fasta and Fastq files</a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.3" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#metabarcode-design-and-quality-assessment"><i class="fa fa-check"></i><b>2.3</b> Metabarcode design and quality assessment</a></li>
|
||||
<li class="chapter" data-level="2.4" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#file-format-conversions"><i class="fa fa-check"></i><b>2.4</b> File format conversions</a></li>
|
||||
<li class="chapter" data-level="2.5" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-annotations"><i class="fa fa-check"></i><b>2.5</b> Sequence annotations</a></li>
|
||||
<li class="chapter" data-level="2.6" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#computations-on-sequences"><i class="fa fa-check"></i><b>2.6</b> Computations on sequences</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.6.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#obipairing"><i class="fa fa-check"></i><b>2.6.1</b> <code>obipairing</code></a></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="2.7" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#sequence-sampling-and-filtering"><i class="fa fa-check"></i><b>2.7</b> Sequence sampling and filtering</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="2.7.1" data-path="the-obitools-commands.html"><a href="the-obitools-commands.html#utilities"><i class="fa fa-check"></i><b>2.7.1</b> Utilities</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html"><i class="fa fa-check"></i><b>3</b> Reference documentation for the GO <em>OBITools</em> library</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#biosequence"><i class="fa fa-check"></i><b>3.1</b> BioSequence</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="3.1.1" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#creating-new-instances"><i class="fa fa-check"></i><b>3.1.1</b> Creating new instances</a></li>
|
||||
<li class="chapter" data-level="3.1.2" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#end-of-life-of-a-biosequence-instance"><i class="fa fa-check"></i><b>3.1.2</b> End of life of a <code>BioSequence</code> instance</a></li>
|
||||
<li class="chapter" data-level="3.1.3" data-path="reference-documentation-for-the-go-obitools-library.html"><a href="reference-documentation-for-the-go-obitools-library.html#accessing-to-the-elements-of-a-sequence"><i class="fa fa-check"></i><b>3.1.3</b> Accessing to the elements of a sequence</a></li>
|
||||
</ul></li>
|
||||
</ul></li>
|
||||
<li class="chapter" data-level="4" data-path="annexes.html"><a href="annexes.html"><i class="fa fa-check"></i><b>4</b> Annexes</a>
|
||||
<ul>
|
||||
<li class="chapter" data-level="4.0.1" data-path="annexes.html"><a href="annexes.html#sequence-attributes"><i class="fa fa-check"></i><b>4.0.1</b> Sequence attributes</a></li>
|
||||
</ul></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
<div class="book-body">
|
||||
<div class="body-inner">
|
||||
<div class="book-header" role="navigation">
|
||||
<h1>
|
||||
<i class="fa fa-circle-o-notch fa-spin"></i><a href="./">The GO <em>OBITools</em></a>
|
||||
</h1>
|
||||
</div>
|
||||
|
||||
<div class="page-wrapper" tabindex="-1" role="main">
|
||||
<div class="page-inner">
|
||||
|
||||
<section class="normal" id="section-">
|
||||
<div id="header">
|
||||
<h1 class="title">The GO <em>OBITools</em></h1>
|
||||
<p class="author"><em>SEric Coissac</em></p>
|
||||
<p class="date"><em>2022-08-25</em></p>
|
||||
</div>
|
||||
<div id="the-obitools" class="section level1 hasAnchor" number="1">
|
||||
<h1><span class="header-section-number">1</span> The OBITools<a href="the-obitools.html#the-obitools" class="anchor-section" aria-label="Anchor link to header"></a></h1>
|
||||
<div id="aims-of-obitools" class="section level2 hasAnchor" number="1.1">
|
||||
<h2><span class="header-section-number">1.1</span> Aims of <em>OBITools</em><a href="the-obitools.html#aims-of-obitools" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
</div>
|
||||
<div id="file-formats-usable-with-obitools" class="section level2 hasAnchor" number="1.2">
|
||||
<h2><span class="header-section-number">1.2</span> File formats usable with <em>OBITools</em><a href="the-obitools.html#file-formats-usable-with-obitools" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<div id="the-sequence-files" class="section level3 hasAnchor" number="1.2.1">
|
||||
<h3><span class="header-section-number">1.2.1</span> The sequence files<a href="the-obitools.html#the-sequence-files" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>Sequences can be stored following various format. OBITools knows some of
|
||||
them. The central formats for sequence files manipulated by OBITools
|
||||
scripts are the <code>fasta</code> and fastq format. OBITools extends the both
|
||||
these formats by specifying a syntax to include in the definition line
|
||||
data qualifying the sequence. All file formats use the <code>IUPAC</code> code for
|
||||
encoding nucleotides.</p>
|
||||
</div>
|
||||
<div id="the-iupac-code" class="section level3 hasAnchor" number="1.2.2">
|
||||
<h3><span class="header-section-number">1.2.2</span> The IUPAC Code<a href="the-obitools.html#the-iupac-code" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>The International Union of Pure and Applied Chemistry (IUPAC_) defined
|
||||
the standard code for representing protein or DNA sequences.</p>
|
||||
<div id="DNA-IUPAC" class="section level4 hasAnchor" number="1.2.2.1">
|
||||
<h4><span class="header-section-number">1.2.2.1</span> Nucleic IUPAC Code<a href="the-obitools.html#DNA-IUPAC" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<table>
|
||||
<thead>
|
||||
<tr class="header">
|
||||
<th><strong>Code</strong></th>
|
||||
<th><strong>Nucleotide</strong></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr class="odd">
|
||||
<td>A</td>
|
||||
<td>Adenine</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>C</td>
|
||||
<td>Cytosine</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>G</td>
|
||||
<td>Guanine</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>T</td>
|
||||
<td>Thymine</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>U</td>
|
||||
<td>Uracil</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>R</td>
|
||||
<td>Purine (A or G)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>Y</td>
|
||||
<td>Pyrimidine (C, T, or U)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>M</td>
|
||||
<td>C or A</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>K</td>
|
||||
<td>T, U, or G</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>W</td>
|
||||
<td>T, U, or A</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>S</td>
|
||||
<td>C or G</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>B</td>
|
||||
<td>C, T, U, or G (not A)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>D</td>
|
||||
<td>A, T, U, or G (not C)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>H</td>
|
||||
<td>A, T, U, or C (not G)</td>
|
||||
</tr>
|
||||
<tr class="odd">
|
||||
<td>V</td>
|
||||
<td>A, C, or G (not T, not U)</td>
|
||||
</tr>
|
||||
<tr class="even">
|
||||
<td>N</td>
|
||||
<td>Any base (A, C, G, T, or U)</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
<div id="classical-fasta" class="section level3 hasAnchor" number="1.2.3">
|
||||
<h3><span class="header-section-number">1.2.3</span> The <em>fasta</em> format<a href="the-obitools.html#classical-fasta" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>The <strong>fasta format</strong> is certainly the most widely used sequence file
|
||||
format. This is certainly due to its great simplicity. It was originally
|
||||
created for the Lipman and Pearson <a href="http://www.ncbi.nlm.nih.gov/pubmed/3162770?dopt=Citation">FASTA
|
||||
program</a>.
|
||||
OBITools use in more of the classical :ref:<code>fasta</code> format an
|
||||
:ref:<code>extended version</code> of this format where structured data are
|
||||
included in the title line.</p>
|
||||
<p>In <em>fasta</em> format a sequence is represented by a title line beginning
|
||||
with a <strong><code>></code></strong> character and the sequences by itself following the
|
||||
:doc:<code>iupac</code> code. The sequence is usually split other severals lines of
|
||||
the same length (expect for the last one)</p>
|
||||
<pre><code>>my_sequence this is my pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT</code></pre>
|
||||
<p>This is no special format for the title line excepting that this line
|
||||
should be unique. Usually the first word following the <strong>></strong> character
|
||||
is considered as the sequence identifier. The end of the title line
|
||||
corresponding to a description of the sequence. Several sequences can be
|
||||
concatenated in a same file. The description of the next sequence is
|
||||
just pasted at the end of the record of the previous one</p>
|
||||
<pre><code>>sequence_A this is my first pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
>sequence_B this is my second pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT
|
||||
>sequence_C this is my third pretty sequence
|
||||
ACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGT
|
||||
GTGCTGACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTACGTTGCAGTGTTT
|
||||
AACGACGTTGCAGTACGTTGCAGT</code></pre>
|
||||
</div>
|
||||
<div id="classical-fastq" class="section level3 hasAnchor" number="1.2.4">
|
||||
<h3><span class="header-section-number">1.2.4</span> The <em>fastq</em> sequence format<a href="the-obitools.html#classical-fastq" class="anchor-section" aria-label="Anchor link to header"></a></h3>
|
||||
<p>.. note::</p>
|
||||
<pre><code>This article uses material from the Wikipedia article
|
||||
`FASTQ format `
|
||||
which is released under the
|
||||
`Creative Commons Attribution-Share-Alike License 3.0 `</code></pre>
|
||||
<p><strong>fastq format</strong> is a text-based format for storing both a biological
|
||||
sequence (usually nucleotide sequence) and its corresponding quality
|
||||
scores. Both the sequence letter and quality score are encoded with a
|
||||
single ASCII character for brevity. It was originally developed at the
|
||||
<code>Wellcome Trust Sanger Institute</code> to bundle a <a href="the-obitools.html#classical-fasta">fasta</a>
|
||||
sequence and its quality data, but has recently become the <em>de facto</em>
|
||||
standard for storing the output of high throughput sequencing
|
||||
instruments such as the Illumina Genome Analyzer Illumina. [1]_</p>
|
||||
<div id="format" class="section level4 hasAnchor" number="1.2.4.1">
|
||||
<h4><span class="header-section-number">1.2.4.1</span> Format<a href="the-obitools.html#format" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<p>A fastq file normally uses four lines per sequence.</p>
|
||||
<ul>
|
||||
<li>Line 1 begins with a ‘@’ character and is followed by a sequence
|
||||
identifier and an <em>optional</em> description (like a :ref:<code>fasta</code> title
|
||||
line).</li>
|
||||
<li>Line 2 is the raw sequence letters.</li>
|
||||
<li>Line 3 begins with a ‘+’ character and is <em>optionally</em> followed by
|
||||
the same sequence identifier (and any description) again.</li>
|
||||
<li>Line 4 encodes the quality values for the sequence in Line 2, and
|
||||
must contain the same number of symbols as letters in the sequence.</li>
|
||||
</ul>
|
||||
<p>A fastq file containing a single sequence might look like this:</p>
|
||||
<pre><code>@SEQ_ID
|
||||
GATTTGGGGTTCAAAGCAGTATCGATCAAATAGTAAATCCATTTGTTCAACTCACAGTTT
|
||||
+
|
||||
!''*((((***+))%%%++)(%%%%).1***-+*''))**55CCF>>>>>>CCCCCCC65</code></pre>
|
||||
<p>The character ‘!’ represents the lowest quality while ‘~’ is the
|
||||
highest. Here are the quality value characters in left-to-right
|
||||
increasing order of quality (<code>ASCII</code>):</p>
|
||||
<pre><code>!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~</code></pre>
|
||||
<p>The original Sanger FASTQ files also allowed the sequence and quality
|
||||
strings to be wrapped (split over multiple lines), but this is generally
|
||||
discouraged as it can make parsing complicated due to the unfortunate
|
||||
choice of “@” and “+” as markers (these characters can also occur in
|
||||
the quality string).</p>
|
||||
</div>
|
||||
<div id="variations" class="section level4 hasAnchor" number="1.2.4.2">
|
||||
<h4><span class="header-section-number">1.2.4.2</span> Variations<a href="the-obitools.html#variations" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<div id="quality" class="section level5 hasAnchor" number="1.2.4.2.1">
|
||||
<h5><span class="header-section-number">1.2.4.2.1</span> Quality<a href="the-obitools.html#quality" class="anchor-section" aria-label="Anchor link to header"></a></h5>
|
||||
<p>A quality value <em>Q</em> is an integer mapping of <em>p</em> (i.e., the probability
|
||||
that the corresponding base call is incorrect). Two different equations
|
||||
have been in use. The first is the standard Sanger variant to assess
|
||||
reliability of a base call, otherwise known as Phred quality score:</p>
|
||||
<p><span class="math display">\[
|
||||
Q_\text{sanger} = -10 \, \log_{10} p
|
||||
\]</span></p>
|
||||
<p>The Solexa pipeline (i.e., the software delivered with the Illumina
|
||||
Genome Analyzer) earlier used a different mapping, encoding the odds
|
||||
<span class="math inline">\(\mathbf{p}/(1-\mathbf{p})\)</span> instead of the probability <span class="math inline">\(\mathbf{p}\)</span>:</p>
|
||||
<p><span class="math display">\[
|
||||
Q_\text{solexa-prior to v.1.3} = -10 \, \log_{10} \frac{p}{1-p}
|
||||
\]</span></p>
|
||||
<p>Although both mappings are asymptotically identical at higher quality
|
||||
values, they differ at lower quality levels (i.e., approximately
|
||||
<span class="math inline">\(\mathbf{p} > 0.05\)</span>, or equivalently, <span class="math inline">\(\mathbf{Q} < 13\)</span>).</p>
|
||||
<p>|Relationship between <em>Q</em> and <em>p</em> using the Sanger (red) and Solexa
|
||||
(black) equations (described above). The vertical dotted line indicates
|
||||
<span class="math inline">\(\mathbf{p}= 0.05\)</span>, or equivalently, <span class="math inline">\(Q = 13\)</span>.|</p>
|
||||
</div>
|
||||
</div>
|
||||
<div id="encoding" class="section level4 hasAnchor" number="1.2.4.3">
|
||||
<h4><span class="header-section-number">1.2.4.3</span> Encoding<a href="the-obitools.html#encoding" class="anchor-section" aria-label="Anchor link to header"></a></h4>
|
||||
<ul>
|
||||
<li>Sanger format can encode a Phred quality score from 0 to 93 using
|
||||
ASCII 33 to 126 (although in raw read data the Phred quality score
|
||||
rarely exceeds 60, higher scores are possible in assemblies or read
|
||||
maps).</li>
|
||||
<li>Solexa/Illumina 1.0 format can encode a Solexa/Illumina quality
|
||||
score from -5 to 62 using ASCII 59 to 126 (although in raw read data
|
||||
Solexa scores from -5 to 40 only are expected)</li>
|
||||
<li>Starting with Illumina 1.3 and before Illumina 1.8, the format
|
||||
encoded a Phred quality score from 0 to 62 using ASCII 64 to 126
|
||||
(although in raw read data Phred scores from 0 to 40 only are
|
||||
expected).</li>
|
||||
<li>Starting in Illumina 1.5 and before Illumina 1.8, the Phred scores 0
|
||||
to 2 have a slightly different meaning. The values 0 and 1 are no
|
||||
longer used and the value 2, encoded by ASCII 66 “B”.</li>
|
||||
</ul>
|
||||
<p>Sequencing Control Software, Version 2.6, Catalog # SY-960-2601, Part
|
||||
# 15009921 Rev. A, November
|
||||
2009] <a href="%5Bhttp://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\%5D(http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf)%7B.uri%7D" class="uri">[http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf\\](http://watson.nci.nih.gov/solexa/Using_SCSv2.6_15009921_A.pdf){.uri}</a>
|
||||
(page 30) states the following: <em>If a read ends with a segment of mostly
|
||||
low quality (Q15 or below), then all of the quality values in the
|
||||
segment are replaced with a value of 2 (encoded as the letter B in
|
||||
Illumina’s text-based encoding of quality scores)… This Q2 indicator
|
||||
does not predict a specific error rate, but rather indicates that a
|
||||
specific final portion of the read should not be used in further
|
||||
analyses.</em> Also, the quality score encoded as “B” letter may occur
|
||||
internally within reads at least as late as pipeline version 1.6, as
|
||||
shown in the following example:</p>
|
||||
<pre><code>@HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
|
||||
TTAATTGGTAAATAAATCTCCTAATAGCTTAGATNTTACCTTNNNNNNNNNNTAGTTTCTTGAGATTTGTTGGGGGAGACATTTTTGTGATTGCCTTGAT
|
||||
+HWI-EAS209_0006_FC706VJ:5:58:5894:21141#ATCACG/1
|
||||
efcfffffcfeefffcffffffddf`feed]`]_Ba_^__[YBBBBBBBBBBRTT\]][]dddd`ddd^dddadd^BBBBBBBBBBBBBBBBBBBBBBBB</code></pre>
|
||||
<p>An alternative interpretation of this ASCII encoding has been proposed.
|
||||
Also, in Illumina runs using PhiX controls, the character ‘B’ was
|
||||
observed to represent an “unknown quality score”. The error rate of ‘B’
|
||||
reads was roughly 3 phred scores lower the mean observed score of a
|
||||
given run.</p>
|
||||
<ul>
|
||||
<li>Starting in Illumina 1.8, the quality scores have basically returned
|
||||
to the use of the Sanger format (Phred+33).</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="file-extension" class="section level2 hasAnchor" number="1.3">
|
||||
<h2><span class="header-section-number">1.3</span> File extension<a href="the-obitools.html#file-extension" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<p>There is no standard file extension for a FASTQ file, but .fq and
|
||||
.fastq, are commonly used.</p>
|
||||
</div>
|
||||
<div id="see-also" class="section level2 hasAnchor" number="1.4">
|
||||
<h2><span class="header-section-number">1.4</span> See also<a href="the-obitools.html#see-also" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<ul>
|
||||
<li>:ref:<code>fasta</code></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div id="references" class="section level2 hasAnchor" number="1.5">
|
||||
<h2><span class="header-section-number">1.5</span> References<a href="the-obitools.html#references" class="anchor-section" aria-label="Anchor link to header"></a></h2>
|
||||
<p>.. [1] Cock et al (2009) The Sanger FASTQ file format for sequences with
|
||||
quality scores, and the Solexa/Illumina FASTQ variants. Nucleic Acids
|
||||
Research,</p>
|
||||
<p>.. [2] Illumina Quality Scores, Tobias Mann, Bioinformatics, San Diego,
|
||||
Illumina <code>1</code>__</p>
|
||||
<p>.. |Relationship between <em>Q</em> and <em>p</em> using the Sanger (red) and Solexa
|
||||
(black) equations (described above). The vertical dotted line indicates
|
||||
<em>p</em> = 0.05, or equivalently, <em>Q</em> Å 13.| image:: Probability metrics.png</p>
|
||||
<p>See <a href="http://en.wikipedia.org/wiki/FASTQ_format" class="uri">http://en.wikipedia.org/wiki/FASTQ_format</a></p>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<a href="the-obitools-commands.html" class="navigation navigation-next navigation-unique" aria-label="Next page"><i class="fa fa-angle-right"></i></a>
|
||||
</div>
|
||||
</div>
|
||||
<script src="book_assets/gitbook-2.6.7/js/app.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/clipboard.min.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-search.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-sharing.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-fontsettings.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-bookdown.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/jquery.highlight.js"></script>
|
||||
<script src="book_assets/gitbook-2.6.7/js/plugin-clipboard.js"></script>
|
||||
<script>
|
||||
gitbook.require(["gitbook"], function(gitbook) {
|
||||
gitbook.start({
|
||||
"sharing": {
|
||||
"github": false,
|
||||
"facebook": true,
|
||||
"twitter": true,
|
||||
"linkedin": false,
|
||||
"weibo": false,
|
||||
"instapaper": false,
|
||||
"vk": false,
|
||||
"whatsapp": false,
|
||||
"all": ["facebook", "twitter", "linkedin", "weibo", "instapaper"]
|
||||
},
|
||||
"fontsettings": {
|
||||
"theme": "white",
|
||||
"family": "sans",
|
||||
"size": 2
|
||||
},
|
||||
"edit": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"history": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"view": {
|
||||
"link": null,
|
||||
"text": null
|
||||
},
|
||||
"download": ["_main.pdf"],
|
||||
"search": {
|
||||
"engine": "fuse",
|
||||
"options": null
|
||||
},
|
||||
"toc": {
|
||||
"collapse": "subsection"
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
||||
<!-- dynamically load mathjax for compatibility with self-contained -->
|
||||
<script>
|
||||
(function () {
|
||||
var script = document.createElement("script");
|
||||
script.type = "text/javascript";
|
||||
var src = "true";
|
||||
if (src === "" || src === "true") src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.9/latest.js?config=TeX-MML-AM_CHTML";
|
||||
if (location.protocol !== "file:")
|
||||
if (/^https?:/.test(src))
|
||||
src = src.replace(/^https?:/, '');
|
||||
script.src = src;
|
||||
document.getElementsByTagName("head")[0].appendChild(script);
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
0
doc/book.bib
Normal file
0
doc/book.bib
Normal file
15
doc/doc.Rproj
Normal file
15
doc/doc.Rproj
Normal file
@ -0,0 +1,15 @@
|
||||
Version: 1.0
|
||||
|
||||
RestoreWorkspace: Default
|
||||
SaveWorkspace: Default
|
||||
AlwaysSaveHistory: Default
|
||||
|
||||
EnableCodeIndexing: Yes
|
||||
UseSpacesForTab: Yes
|
||||
NumSpacesForTab: 2
|
||||
Encoding: UTF-8
|
||||
|
||||
RnwWeave: Sweave
|
||||
LaTeX: pdfLaTeX
|
||||
|
||||
BuildType: Website
|
22
doc/index.Rmd
Normal file
22
doc/index.Rmd
Normal file
@ -0,0 +1,22 @@
|
||||
---
|
||||
title: "The GO *OBITools*"
|
||||
author: "SEric Coissac"
|
||||
date: "2022-08-25"
|
||||
site: "bookdown::bookdown_site"
|
||||
documentclass: book
|
||||
bibliography: [book.bib]
|
||||
biblio-style: apalike
|
||||
link-citations: yes
|
||||
output:
|
||||
bookdown::gitbook:
|
||||
lib_dir: "book_assets"
|
||||
bookdown::pdf_book:
|
||||
keep_tex: yes
|
||||
github-repo: seankross/bookdown-start
|
||||
url: 'http\://seankross.com/bookdown-start/'
|
||||
description: "Description of the principles used into the GO implementation of *OBITools*."
|
||||
editor_options:
|
||||
markdown:
|
||||
wrap: 72
|
||||
---
|
||||
|
Reference in New Issue
Block a user