Files
OBIJupyterHub/jupyterhub_volumes/web/obidoc/obitools/obipcr/index.html
Eric Coissac 30b7175702 Make cleaning
2025-11-17 14:18:13 +01:00

2048 lines
51 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html lang="en-us" dir="ltr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="
obipcr: the electronic PCR tool
#
Description
#
The obipcr program is the successor of
ecoPCR. It is known as an in silico PCR software.
Synopsis
#
obipcr --forward &lt;string&gt; --max-length|-L &lt;int&gt; --reverse &lt;string&gt;
[--allowed-mismatches|-e &lt;int&gt;] [--batch-size &lt;int&gt;] [--circular|-c]
[--compress|-Z] [--debug] [--delta|-D &lt;int&gt;] [--ecopcr] [--embl]
[--fasta] [--fasta-output] [--fastq] [--fastq-output]
[--force-one-cpu] [--fragmented] [--genbank] [--help|-h|-?]
[--input-OBI-header] [--input-json-header] [--json-output]
[--max-cpu &lt;int&gt;] [--min-length|-l &lt;int&gt;] [--no-order]
[--no-progressbar] [--only-complete-flanking] [--out|-o &lt;FILENAME&gt;]
[--output-OBI-header|-O] [--output-json-header]
[--paired-with &lt;FILENAME&gt;] [--pprof] [--pprof-goroutine &lt;int&gt;]
[--pprof-mutex &lt;int&gt;] [--skip-empty] [--solexa] [--version] [&lt;args&gt;]
Options
#
obipcr
mandatory options
#
--forward &lt;PATTERN&gt;: The forward primer used for the electronic PCR. IUPAC codes can be used in the pattern.
--reverse &lt;PATTERN&gt;: The reverse primer used for the electronic PCR. IUPAC codes can be used in the pattern.
--max-length
| -L
&lt;INTEGER&gt;: Maximum length of the barcode, primers excluded.
Other
obipcr
specific options
#
--allowed-mismatches
| -e
&lt;INTEGER&gt;: Maximum number of mismatches allowed for each primer (default: 0).
--min-length
| -l
&lt;INTEGER&gt;: Minimum length of the barcode primers excluded (default: no minimum length).
--circular
| -c
: Considers that sequences are circular. (default: sequences are considered linear)
--delta
| -D
&lt;INTEGER&gt;: Without this option, only the barcode sequences will be output, without the priming sites. This option allows to add the priming sites and the flanking sequences of the priming sites over a length of delta to each side of the barcode.
--only-complete-flanking: Works in conjunction with &ndash;delta. Prints only sequences with full-length flanking sequences (default: prints every sequence regardless of whether the flanking sequences are present).
Controlling the input data
#
OBITools4 generally recognizes the input file format. It also recognizes
whether the input file is compressed using GZIP. But some rare files can be
misidentified, so the following options allow the user to force the format, thus
bypassing the format identification step.
The file format options
#
--fasta: indicates that sequence data is in fasta format.
--fastq: indicates that sequence data is in fastq format.
--embl: indicates that sequence data is in EMBL-ENA flatfile format.
--csv: indicates that sequence data is in CSV format.
--genbank: indicates that sequence data is in GenBank flatfile format.
--ecopcr: indicates that sequence data is in the old ecoPCR tabulated format.
Controlling the way OBITools4 are formatting annotations
#
These options only apply to the FASTA and FASTQ formats
--input-OBI-header: FASTA/FASTQ title line annotations follow the old OBI format.
--input-json-header: FASTA/FASTQ title line annotations follow the JSON format.
Controlling quality score decoding
#
This option only applies to the FASTQ formats
--solexa: decodes quality string according to the old Solexa specification. (default: the standard Sanger encoding is used, env: OBISSOLEXA)
Controlling the output data
#
--compress
| -Z
: output is compressed using gzip. (default: false)
--no-order: the OBITools ensure that the order between the input file and
the output file does not change. When multiple files are processed,
they are processed one at a time.
If the &ndash;no-order option is added to a command, multiple input
files can be opened at the same time and their contents processed
in parallel. This usually increases processing speed, but does not
guarantee the order of the sequences in the output file.
Also, processing multiple files in parallel may require more memory
to perform the computation.
--fasta-output: writes sequence data in fasta format (default if quality data is not available).
--fastq-output: writes sequence data in fastq format (default if quality data is available).
--json-output: writes sequence data in JSON format.
--out
| -o
&lt;FILENAME&gt;: filename used for saving the output (default: &ldquo;-&rdquo;, the standard output)
--output-OBI-header
| -O
: writes output FASTA/FASTQ title line annotations in OBI format (default: JSON).
--output-json-header: writew output FASTA/FASTQ title line annotations in JSON format (the default format).
--skip-empty: sequences of length equal to zero are removed from the output (default: false).
--no-progressbar: deactivates progress bar display (default: false).
General options
#
--help
| -h|-?
: shows this help.
--version: prints the version and exits.
--silent-warning: This option tells obitools to stop displaying warnings.
This behaviour can be controlled by setting the OBIWARNINGS environment variable.
Computation related options
#
--max-cpu &lt;INTEGER&gt;: OBITools can take advantage of your computer&rsquo;s multi-core
architecture by parallelizing the computation across all available CPUs.
Computing on more CPUs usually requires more memory to perform the
computation. Reducing the number of CPUs used to perform a calculation
is also a way to indirectly control the amount of memory used by the
process. The number of CPUs used by OBITools can also be controlled
by setting the OBIMAXCPU environment variable.
--force-one-cpu: forces the use of a single CPU core for parallel processing (default: false).
--batch-size &lt;INTEGER&gt;: number of sequence per batch for parallel processing (default: 1000, env: OBIBATCHSIZE)
Debug related options
#
--debug: enables debug mode, by setting log level to debug (default: false, env: OBIDEBUG)
--pprof: enables pprof server. Look at the log for details. (default: false).
--pprof-mutex &lt;INTEGER&gt;: enables profiling of mutex lock. (default: 10, env: OBIPPROFMUTEX)
--pprof-goroutine &lt;INTEGER&gt;: enables profiling of goroutine blocking profile. (default: 6060, env: OBIPPROFGOROUTINE)
Examples
#
The minimal
obipcr
command looks like this:">
<meta name="theme-color" media="(prefers-color-scheme: light)" content="#ffffff">
<meta name="theme-color" media="(prefers-color-scheme: dark)" content="#343a40">
<meta name="color-scheme" content="light dark"><meta property="og:url" content="http://metabar:8888/obidoc/obitools/obipcr/">
<meta property="og:site_name" content="OBITools4 documentation">
<meta property="og:title" content="obipcr">
<meta property="og:description" content="obipcr: the electronic PCR tool # Description # The obipcr program is the successor of ecoPCR. It is known as an in silico PCR software.
Synopsis # obipcr --forward &lt;string&gt; --max-length|-L &lt;int&gt; --reverse &lt;string&gt; [--allowed-mismatches|-e &lt;int&gt;] [--batch-size &lt;int&gt;] [--circular|-c] [--compress|-Z] [--debug] [--delta|-D &lt;int&gt;] [--ecopcr] [--embl] [--fasta] [--fasta-output] [--fastq] [--fastq-output] [--force-one-cpu] [--fragmented] [--genbank] [--help|-h|-?] [--input-OBI-header] [--input-json-header] [--json-output] [--max-cpu &lt;int&gt;] [--min-length|-l &lt;int&gt;] [--no-order] [--no-progressbar] [--only-complete-flanking] [--out|-o &lt;FILENAME&gt;] [--output-OBI-header|-O] [--output-json-header] [--paired-with &lt;FILENAME&gt;] [--pprof] [--pprof-goroutine &lt;int&gt;] [--pprof-mutex &lt;int&gt;] [--skip-empty] [--solexa] [--version] [&lt;args&gt;] Options # obipcr mandatory options # --forward &lt;PATTERN&gt;: The forward primer used for the electronic PCR. IUPAC codes can be used in the pattern. --reverse &lt;PATTERN&gt;: The reverse primer used for the electronic PCR. IUPAC codes can be used in the pattern. --max-length | -L &lt;INTEGER&gt;: Maximum length of the barcode, primers excluded. Other obipcr specific options # --allowed-mismatches | -e &lt;INTEGER&gt;: Maximum number of mismatches allowed for each primer (default: 0). --min-length | -l &lt;INTEGER&gt;: Minimum length of the barcode primers excluded (default: no minimum length). --circular | -c : Considers that sequences are circular. (default: sequences are considered linear) --delta | -D &lt;INTEGER&gt;: Without this option, only the barcode sequences will be output, without the priming sites. This option allows to add the priming sites and the flanking sequences of the priming sites over a length of delta to each side of the barcode. --only-complete-flanking: Works in conjunction with delta. Prints only sequences with full-length flanking sequences (default: prints every sequence regardless of whether the flanking sequences are present). Controlling the input data # OBITools4 generally recognizes the input file format. It also recognizes whether the input file is compressed using GZIP. But some rare files can be misidentified, so the following options allow the user to force the format, thus bypassing the format identification step. The file format options # --fasta: indicates that sequence data is in fasta format. --fastq: indicates that sequence data is in fastq format. --embl: indicates that sequence data is in EMBL-ENA flatfile format. --csv: indicates that sequence data is in CSV format. --genbank: indicates that sequence data is in GenBank flatfile format. --ecopcr: indicates that sequence data is in the old ecoPCR tabulated format. Controlling the way OBITools4 are formatting annotations # These options only apply to the FASTA and FASTQ formats --input-OBI-header: FASTA/FASTQ title line annotations follow the old OBI format. --input-json-header: FASTA/FASTQ title line annotations follow the JSON format. Controlling quality score decoding # This option only applies to the FASTQ formats --solexa: decodes quality string according to the old Solexa specification. (default: the standard Sanger encoding is used, env: OBISSOLEXA) Controlling the output data # --compress | -Z : output is compressed using gzip. (default: false) --no-order: the OBITools ensure that the order between the input file and the output file does not change. When multiple files are processed, they are processed one at a time. If the no-order option is added to a command, multiple input files can be opened at the same time and their contents processed in parallel. This usually increases processing speed, but does not guarantee the order of the sequences in the output file. Also, processing multiple files in parallel may require more memory to perform the computation. --fasta-output: writes sequence data in fasta format (default if quality data is not available). --fastq-output: writes sequence data in fastq format (default if quality data is available). --json-output: writes sequence data in JSON format. --out | -o &lt;FILENAME&gt;: filename used for saving the output (default: “-”, the standard output) --output-OBI-header | -O : writes output FASTA/FASTQ title line annotations in OBI format (default: JSON). --output-json-header: writew output FASTA/FASTQ title line annotations in JSON format (the default format). --skip-empty: sequences of length equal to zero are removed from the output (default: false). --no-progressbar: deactivates progress bar display (default: false). General options # --help | -h|-? : shows this help. --version: prints the version and exits. --silent-warning: This option tells obitools to stop displaying warnings. This behaviour can be controlled by setting the OBIWARNINGS environment variable. Computation related options # --max-cpu &lt;INTEGER&gt;: OBITools can take advantage of your computers multi-core architecture by parallelizing the computation across all available CPUs. Computing on more CPUs usually requires more memory to perform the computation. Reducing the number of CPUs used to perform a calculation is also a way to indirectly control the amount of memory used by the process. The number of CPUs used by OBITools can also be controlled by setting the OBIMAXCPU environment variable. --force-one-cpu: forces the use of a single CPU core for parallel processing (default: false). --batch-size &lt;INTEGER&gt;: number of sequence per batch for parallel processing (default: 1000, env: OBIBATCHSIZE) Debug related options # --debug: enables debug mode, by setting log level to debug (default: false, env: OBIDEBUG) --pprof: enables pprof server. Look at the log for details. (default: false). --pprof-mutex &lt;INTEGER&gt;: enables profiling of mutex lock. (default: 10, env: OBIPPROFMUTEX) --pprof-goroutine &lt;INTEGER&gt;: enables profiling of goroutine blocking profile. (default: 6060, env: OBIPPROFGOROUTINE) Examples # The minimal obipcr command looks like this:">
<meta property="og:locale" content="en_us">
<meta property="og:type" content="website">
<title>obipcr | OBITools4 documentation</title>
<link rel="icon" href="/obidoc/favicon.png" >
<link rel="manifest" href="/obidoc/manifest.json">
<link rel="canonical" href="http://metabar:8888/obidoc/obitools/obipcr/">
<link rel="stylesheet" href="/obidoc/book.min.5fd7b8e2d1c0ae15da279c52ff32731130386f71b58f011468f20d0056fe6b78.css" integrity="sha256-X9e44tHArhXaJ5xS/zJzETA4b3G1jwEUaPINAFb&#43;a3g=" crossorigin="anonymous">
<script defer src="/obidoc/fuse.min.js"></script>
<script defer src="/obidoc/en.search.min.4da51bdd2d833922fdbc0e19df517221387fc625ffb68ee140d605b3c5b68058.js" integrity="sha256-TaUb3S2DOSL9vA4Z31FyITh/xiX/to7hQNYFs8W2gFg=" crossorigin="anonymous"></script>
<script defer src="/obidoc/sw.min.32af8eafce4180aa1c5dea66d99fb26ba9043ea7c7a4c706138c91d9051b285e.js" integrity="sha256-Mq&#43;Or85BgKocXepm2Z&#43;ya6kEPqfHpMcGE4yR2QUbKF4=" crossorigin="anonymous"></script>
<link rel="alternate" type="application/rss+xml" href="http://metabar:8888/obidoc/obitools/obipcr/index.xml" title="OBITools4 documentation" />
<!--
Made with Book Theme
https://github.com/alex-shpak/hugo-book
-->
<link rel="stylesheet" type="text/css" href="http://metabar:8888/obidoc/hugo-cite.css" />
</head>
<body dir="ltr">
<input type="checkbox" class="hidden toggle" id="menu-control" />
<input type="checkbox" class="hidden toggle" id="toc-control" />
<main class="container flex">
<aside class="book-menu">
<div class="book-menu-content">
<nav>
<h2 class="book-brand">
<a class="flex align-center" href="/obidoc/"><img src="/obidoc/obitools_logo.jpg" alt="Logo" class="book-icon" /><span>OBITools4 documentation</span>
</a>
</h2>
<div class="book-search hidden">
<input type="text" id="book-search-input" placeholder="Search" aria-label="Search" maxlength="64" data-hotkeys="s/" />
<div class="book-search-spinner hidden"></div>
<ul id="book-search-results"></ul>
</div>
<script>document.querySelector(".book-search").classList.remove("hidden")</script>
<ul>
<li>
<span>Docs</span>
<ul>
<li>
<a href="/obidoc/docs/about/" class="">About</a>
</li>
<li>
<a href="/obidoc/docs/installation/" class="">Installation</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/principles/" class="">General operating principles</a>
<ul>
</ul>
</li>
<li>
<input type="checkbox" id="section-08756b4c1f14be6ee584ece005b9f621" class="toggle" />
<label for="section-08756b4c1f14be6ee584ece005b9f621" class="flex justify-between">
<a role="button" class="">File formats</a>
</label>
<ul>
<li>
<input type="checkbox" id="section-933c2e64b905b84e22aa5273cea2d0bd" class="toggle" />
<label for="section-933c2e64b905b84e22aa5273cea2d0bd" class="flex justify-between">
<a role="button" class="">Sequence file formats</a>
</label>
<ul>
<li>
<a href="/obidoc/formats/fasta/" class="">FASTA file format</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/formats/fastq/" class="">FASTQ file format</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/formats/genbank/" class="">GenBank Flat File format</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/formats/embl/" class="">EMBL Flat File format</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/file_format/sequence_files/csv/" class="">CSV format</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/formats/json/" class="">JSON format</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/file_format/sequence_files/annotations/" class="">Annotation of sequences</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-0258ae1c222f9a38cc1b75254c93b0f4" class="toggle" />
<label for="section-0258ae1c222f9a38cc1b75254c93b0f4" class="flex justify-between">
<a role="button" class="">Taxonomy file formats</a>
</label>
<ul>
<li>
<a href="/obidoc/docs/file_format/taxonomy_file/csv_taxdump/" class="">CSV formatted taxdump</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/file_format/taxonomy_file/ncbi_taxdump/" class="">NCBI taxdump</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<a href="/obidoc/formats/csv/" class="">The CSV format</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-70b1e6e5ec7f3ccab643155fa50659b6" class="toggle" />
<label for="section-70b1e6e5ec7f3ccab643155fa50659b6" class="flex justify-between">
<a role="button" class="">Patterns</a>
</label>
<ul>
<li>
<a href="/obidoc/docs/patterns/regular/" class="">Regular Expressions</a>
</li>
<li>
<a href="/obidoc/docs/patterns/dnagrep/" class="">DNA Patterns</a>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-8223f464911a1fe6c655972143684e93" class="toggle" checked />
<label for="section-8223f464911a1fe6c655972143684e93" class="flex justify-between">
<a role="button" class="">The OBITools4 commands</a>
</label>
<ul>
<li>
<a href="/obidoc/docs/commands/options/" class="">Shared command options</a>
<ul>
</ul>
</li>
<li>
<input type="checkbox" id="section-8921ea65523c266b128dd4263232b0fc" class="toggle" />
<label for="section-8921ea65523c266b128dd4263232b0fc" class="flex justify-between">
<a role="button" class="">Basics</a>
</label>
<ul>
<li>
<a href="/obidoc/obitools/obiannotate/" class="">obiannotate</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obicomplement/" class="">obicomplement</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obiconvert/" class="">obiconvert</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obicount/" class="">obicount</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obicsv/" class="">obicsv</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obidemerge/" class="">obidemerge</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obidistribute/" class="">obidistribute</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obigrep/" class="">obigrep</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obijoin/" class="">obijoin</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obimatrix/" class="">obimatrix</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obisplit/" class="">obisplit</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obisummary/" class="">obisummary</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obiuniq/" class="">obiuniq</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-dbdf1bb5377572439394e60e08c30f50" class="toggle" />
<label for="section-dbdf1bb5377572439394e60e08c30f50" class="flex justify-between">
<a role="button" class="">Demultiplexing samples</a>
</label>
<ul>
<li>
<a href="/obidoc/obitools/obimultiplex/" class="">obimultiplex</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obitagpcr/" class="">obitagpcr</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-aa98fedd067b51150db59691a8ea8edd" class="toggle" checked />
<label for="section-aa98fedd067b51150db59691a8ea8edd" class="flex justify-between">
<a role="button" class="">Sequence alignments</a>
</label>
<ul>
<li>
<a href="/obidoc/obitools/obiclean/" class="">obiclean</a>
<ul>
</ul>
</li>
<li>
<input type="checkbox" id="section-7433746525d8c2b29b033f765c869acd" class="toggle" />
<label for="section-7433746525d8c2b29b033f765c869acd" class="flex justify-between">
<a href="/obidoc/obitools/obipairing/" class="">obipairing</a>
</label>
<ul>
<li>
<a href="/obidoc/docs/commands/alignments/obipairing/fasta-like/" class="">The FASTA-like alignment</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/commands/alignments/obipairing/exact-alignment/" class="">Exact alignment</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obipcr/" class="active">obipcr</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obirefidx/" class="">obirefidx</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obitag/" class="">obitag</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-5746f699d10490780dec8e30ab2dd3ce" class="toggle" />
<label for="section-5746f699d10490780dec8e30ab2dd3ce" class="flex justify-between">
<a role="button" class="">Taxonomy</a>
</label>
<ul>
<li>
<a href="/obidoc/obitools/obitaxonomy/" class="">obitaxonomy</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-3f50c4fe7ab436a56ae92897d5444956" class="toggle" />
<label for="section-3f50c4fe7ab436a56ae92897d5444956" class="flex justify-between">
<a role="button" class="">Advanced tools</a>
</label>
<ul>
<li>
<a href="/obidoc/obitools/obiscript/" class="">obiscript</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-549be3934679fcb82a232f6bd5435563" class="toggle" />
<label for="section-549be3934679fcb82a232f6bd5435563" class="flex justify-between">
<a role="button" class="">Others</a>
</label>
<ul>
<li>
<a href="/obidoc/obitools/obimicrosat/" class="">obimicrosat</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-ceca4455173761e30cbc0a6dc2327167" class="toggle" />
<label for="section-ceca4455173761e30cbc0a6dc2327167" class="flex justify-between">
<a role="button" class="">Experimentals</a>
</label>
<ul>
<li>
<a href="/obidoc/obitools/obicleandb/" class="">obicleandb</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obiconsensus/" class="">obiconsensus</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/obitools/obilandmark/" class="">obilandmark</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<a href="/obidoc/docs/commands/tags/" class="">Glossary of tags</a>
</li>
</ul>
</li>
<li>
<input type="checkbox" id="section-9b1bcd52530c59dc4819b1f61c128f54" class="toggle" />
<label for="section-9b1bcd52530c59dc4819b1f61c128f54" class="flex justify-between">
<a role="button" class="">Cookbook</a>
</label>
<ul>
<li>
<a href="/obidoc/docs/cookbook/illumina/" class="">Analysing an Illumina data set</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/cookbook/ecoprimers/" class="">Designing new barcodes</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/cookbook/local_genbank/" class="">Prepare a local copy of Genbank</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/cookbook/reference_db/" class="">Build a reference database</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/cookbook/minion/" class="">Oxford Nanopore data analysis</a>
<ul>
</ul>
</li>
</ul>
</li>
<li>
<span>Programming OBITools</span>
<ul>
<li>
<a href="/obidoc/docs/programming/expression/" class="">Expression language</a>
<ul>
</ul>
</li>
<li>
<input type="checkbox" id="section-6d580829a667b5cca790b286d99a10fe" class="toggle" />
<label for="section-6d580829a667b5cca790b286d99a10fe" class="flex justify-between">
<a href="/obidoc/docs/programming/lua/" class="">Lua: for scripting OBITools</a>
</label>
<ul>
<li>
<input type="checkbox" id="section-2fb081dac812d624eea5f4268fca9e26" class="toggle" />
<label for="section-2fb081dac812d624eea5f4268fca9e26" class="flex justify-between">
<a role="button" class="">Obitools Classes</a>
</label>
<ul>
<li>
<a href="/obidoc/docs/programming/lua/obitools_classes/biosequence/" class="">BioSequence</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/programming/lua/obitools_classes/biosequenceslice/" class="">BioSequenceSlice</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/programming/lua/obitools_classes/taxonomy/" class="">Taxonomy</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/programming/lua/obitools_classes/taxon/" class="">Taxon</a>
<ul>
</ul>
</li>
<li>
<a href="/obidoc/docs/programming/lua/obitools_classes/mutex/" class="">Mutex</a>
<ul>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
<script>(function(){var e=document.querySelector("aside .book-menu-content");addEventListener("beforeunload",function(){localStorage.setItem("menu.scrollTop",e.scrollTop)}),e.scrollTop=localStorage.getItem("menu.scrollTop")})()</script>
</div>
</aside>
<div class="book-page">
<header class="book-header">
<div class="flex align-center justify-between">
<label for="menu-control">
<img src="/obidoc/svg/menu.svg" class="book-icon" alt="Menu" />
</label>
<h3>obipcr</h3>
<label for="toc-control">
<img src="/obidoc/svg/toc.svg" class="book-icon" alt="Table of Contents" />
</label>
</div>
<aside class="hidden clearfix">
<nav id="TableOfContents">
<ul>
<li><a href="#obipcr-the-electronic-pcr-tool"><code>obipcr</code>: the electronic PCR tool</a>
<ul>
<li><a href="#description">Description</a></li>
<li><a href="#synopsis">Synopsis</a></li>
<li><a href="#options">Options</a>
<ul>
<li></li>
</ul>
</li>
<li><a href="#examples">Examples</a></li>
</ul>
</li>
</ul>
</nav>
</aside>
</header>
<article class="markdown book-article"><h1 id="obipcr-the-electronic-pcr-tool">
<code>obipcr</code>: the electronic PCR tool
<a class="anchor" href="#obipcr-the-electronic-pcr-tool">#</a>
</h1>
<h2 id="description">
Description
<a class="anchor" href="#description">#</a>
</h2>
<p>The <code>obipcr</code> program is the successor of
<a href="https://metabarcoding.org/ecopcr"><code>ecoPCR</code></a>. It is known as an in silico PCR software.</p>
<h2 id="synopsis">
Synopsis
<a class="anchor" href="#synopsis">#</a>
</h2>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>obipcr --forward &lt;string&gt; --max-length|-L &lt;int&gt; --reverse &lt;string&gt;
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--allowed-mismatches|-e &lt;int&gt;<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--batch-size &lt;int&gt;<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--circular|-c<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--compress|-Z<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--debug<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--delta|-D &lt;int&gt;<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--ecopcr<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--embl<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--fasta<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--fasta-output<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--fastq<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--fastq-output<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--force-one-cpu<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--fragmented<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--genbank<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--help|-h|-?<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--input-OBI-header<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--input-json-header<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--json-output<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--max-cpu &lt;int&gt;<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--min-length|-l &lt;int&gt;<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--no-order<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--no-progressbar<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--only-complete-flanking<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--out|-o &lt;FILENAME&gt;<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--output-OBI-header|-O<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--output-json-header<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--paired-with &lt;FILENAME&gt;<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--pprof<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--pprof-goroutine &lt;int&gt;<span style="color:#f92672">]</span>
</span></span><span style="display:flex;"><span> <span style="color:#f92672">[</span>--pprof-mutex &lt;int&gt;<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--skip-empty<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--solexa<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>--version<span style="color:#f92672">]</span> <span style="color:#f92672">[</span>&lt;args&gt;<span style="color:#f92672">]</span>
</span></span></code></pre></div><h2 id="options">
Options
<a class="anchor" href="#options">#</a>
</h2>
<h4 id="hahahugoshortcode13s0hbhb-mandatory-options">
<a href="http://metabar:8888/obidoc/obitools/obipcr/">
<abbr title="obipcr: the electronic PCR tool"><code>obipcr</code></abbr>
</a> mandatory options
<a class="anchor" href="#hahahugoshortcode13s0hbhb-mandatory-options">#</a>
</h4>
<ul>
<li>
<b><code class="language-bash">--forward</code></b> &lt;PATTERN>: The forward primer used for the electronic PCR. IUPAC codes can be used in the pattern.
</li>
<li>
<b><code class="language-bash">--reverse</code></b> &lt;PATTERN>: The reverse primer used for the electronic PCR. IUPAC codes can be used in the pattern.
</li>
<li>
<b><code class="language-bash">--max-length</code></b>
| <b><code class="language-bash">-L</code></b>
&lt;INTEGER>: Maximum length of the barcode, primers excluded.
</li>
</ul>
<h4 id="other-hahahugoshortcode13s4hbhb-specific-options">
Other <a href="http://metabar:8888/obidoc/obitools/obipcr/">
<abbr title="obipcr: the electronic PCR tool"><code>obipcr</code></abbr>
</a> specific options
<a class="anchor" href="#other-hahahugoshortcode13s4hbhb-specific-options">#</a>
</h4>
<ul>
<li>
<b><code class="language-bash">--allowed-mismatches</code></b>
| <b><code class="language-bash">-e</code></b>
&lt;INTEGER>: Maximum number of mismatches allowed for each primer (default: 0).
</li>
<li>
<b><code class="language-bash">--min-length</code></b>
| <b><code class="language-bash">-l</code></b>
&lt;INTEGER>: Minimum length of the barcode primers excluded (default: no minimum length).
</li>
<li>
<b><code class="language-bash">--circular</code></b>
| <b><code class="language-bash">-c</code></b>
: Considers that sequences are circular. (default: sequences are considered linear)
</li>
<li>
<b><code class="language-bash">--delta</code></b>
| <b><code class="language-bash">-D</code></b>
&lt;INTEGER>: Without this option, only the barcode sequences will be output, without the priming sites. This option allows to add the priming sites and the flanking sequences of the priming sites over a length of <code>delta</code> to each side of the barcode.
</li>
<li>
<b><code class="language-bash">--only-complete-flanking</code></b>: Works in conjunction with <strong>&ndash;delta</strong>. Prints only sequences with full-length flanking sequences (default: prints every sequence regardless of whether the flanking sequences are present).
</li>
</ul>
<h4 id="controlling-the-input-data">
Controlling the input data
<a class="anchor" href="#controlling-the-input-data">#</a>
</h4>
<I>OBITools4</I> generally recognizes the input file format. It also recognizes
whether the input file is compressed using GZIP. But some rare files can be
misidentified, so the following options allow the user to force the format, thus
bypassing the format identification step.
<h5 id="the-file-format-options">
The file format options
<a class="anchor" href="#the-file-format-options">#</a>
</h5>
<ul>
<li>
<b><code class="language-bash">--fasta</code></b>: indicates that sequence data is in <a href="http://metabar:8888/obidoc/formats/fasta/">fasta</a> format.</li>
<li>
<b><code class="language-bash">--fastq</code></b>: indicates that sequence data is in <a href="http://metabar:8888/obidoc/formats/fastq/">fastq</a> format.</li>
<li>
<b><code class="language-bash">--embl</code></b>: indicates that sequence data is in <a href="http://metabar:8888/obidoc/formats/embl/">EMBL-ENA flatfile</a> format.</li>
<li>
<b><code class="language-bash">--csv</code></b>: indicates that sequence data is in <a href="http://metabar:8888/obidoc/docs/file_format/sequence_files/csv/">CSV</a> format.</li>
<li>
<b><code class="language-bash">--genbank</code></b>: indicates that sequence data is in <a href="http://metabar:8888/obidoc/formats/genbank/">GenBank flatfile</a> format.</li>
<li><b><code class="language-bash">--ecopcr</code></b>: indicates that sequence data is in the old ecoPCR tabulated format.</li>
</ul>
<h5 id="controlling-the-way-obitools4-are-formatting-annotations">
Controlling the way <em>OBITools4</em> are formatting annotations
<a class="anchor" href="#controlling-the-way-obitools4-are-formatting-annotations">#</a>
</h5>
These options only apply to the <a href="http://metabar:8888/obidoc/formats/fasta/">FASTA</a> and <a href="http://metabar:8888/obidoc/formats/fastq/">FASTQ</a> formats
<ul>
<li><b><code class="language-bash">--input-OBI-header</code></b>: FASTA/FASTQ title line annotations follow the old OBI format.</li>
<li><b><code class="language-bash">--input-json-header</code></b>: FASTA/FASTQ title line annotations follow the JSON format.</li>
</ul>
<h5 id="controlling-quality-score-decoding">
Controlling quality score decoding
<a class="anchor" href="#controlling-quality-score-decoding">#</a>
</h5>
This option only applies to the <a href="http://metabar:8888/obidoc/formats/fastq/">FASTQ</a> formats
<ul>
<li><b><code class="language-bash">--solexa</code></b>: decodes quality string according to the old Solexa specification. (default: the standard Sanger encoding is used, env: <strong>OBISSOLEXA</strong>)</li>
</ul>
<h4 id="controlling-the-output-data">
Controlling the output data
<a class="anchor" href="#controlling-the-output-data">#</a>
</h4>
<ul>
<li><b><code class="language-bash">--compress</code></b>
| <b><code class="language-bash">-Z</code></b>
: output is compressed using gzip. (default: false)</li>
<li><b><code class="language-bash">--no-order</code></b>: the <em>OBITools</em> ensure that the order between the input file and
the output file does not change. When multiple files are processed,
they are processed one at a time.
If the <strong>&ndash;no-order</strong> option is added to a command, multiple input
files can be opened at the same time and their contents processed
in parallel. This usually increases processing speed, but does not
guarantee the order of the sequences in the output file.
Also, processing multiple files in parallel may require more memory
to perform the computation.</li>
<li>
<b><code class="language-bash">--fasta-output</code></b>: writes sequence data in <a href="http://metabar:8888/obidoc/formats/fasta/">fasta</a> format (default if quality data is not available).</li>
<li>
<b><code class="language-bash">--fastq-output</code></b>: writes sequence data in <a href="http://metabar:8888/obidoc/formats/fastq/">fastq</a> format (default if quality data is available).</li>
<li><b><code class="language-bash">--json-output</code></b>: writes sequence data in JSON format.</li>
<li><b><code class="language-bash">--out</code></b>
| <b><code class="language-bash">-o</code></b>
&lt;FILENAME>: filename used for saving the output (default: &ldquo;-&rdquo;, the standard output)</li>
<li><b><code class="language-bash">--output-OBI-header</code></b>
| <b><code class="language-bash">-O</code></b>
: writes output FASTA/FASTQ title line annotations in OBI format (default: JSON).</li>
<li><b><code class="language-bash">--output-json-header</code></b>: writew output FASTA/FASTQ title line annotations in JSON format (the default format).</li>
<li><b><code class="language-bash">--skip-empty</code></b>: sequences of length equal to zero are removed from the output (default: false).</li>
<li><b><code class="language-bash">--no-progressbar</code></b>: deactivates progress bar display (default: false).</li>
</ul>
<h4 id="general-options">
General options
<a class="anchor" href="#general-options">#</a>
</h4>
<ul>
<li><b><code class="language-bash">--help</code></b>
| <b><code class="language-bash">-h|-?</code></b>
: shows this help.</li>
<li><b><code class="language-bash">--version</code></b>: prints the version and exits.</li>
<li><b><code class="language-bash">--silent-warning</code></b>: This option tells obitools to stop displaying warnings.
This behaviour can be controlled by setting the <strong>OBIWARNINGS</strong> environment variable.</li>
</ul>
<h4 id="computation-related-options">
Computation related options
<a class="anchor" href="#computation-related-options">#</a>
</h4>
<ul>
<li><b><code class="language-bash">--max-cpu</code></b> &lt;INTEGER>: <em>OBITools</em> can take advantage of your computer&rsquo;s multi-core
architecture by parallelizing the computation across all available CPUs.
Computing on more CPUs usually requires more memory to perform the
computation. Reducing the number of CPUs used to perform a calculation
is also a way to indirectly control the amount of memory used by the
process. The number of CPUs used by <em>OBITools</em> can also be controlled
by setting the <strong>OBIMAXCPU</strong> environment variable.</li>
<li><b><code class="language-bash">--force-one-cpu</code></b>: forces the use of a single CPU core for parallel processing (default: false).</li>
<li><b><code class="language-bash">--batch-size</code></b> &lt;INTEGER>: number of sequence per batch for parallel processing (default: 1000, env: <strong>OBIBATCHSIZE</strong>)</li>
</ul>
<h4 id="debug-related-options">
Debug related options
<a class="anchor" href="#debug-related-options">#</a>
</h4>
<ul>
<li><b><code class="language-bash">--debug</code></b>: enables debug mode, by setting log level to debug (default: false, env: <strong>OBIDEBUG</strong>)</li>
<li><b><code class="language-bash">--pprof</code></b>: enables pprof server. Look at the log for details. (default: false).</li>
<li><b><code class="language-bash">--pprof-mutex</code></b> &lt;INTEGER>: enables profiling of mutex lock. (default: 10, env: <strong>OBIPPROFMUTEX</strong>)</li>
<li><b><code class="language-bash">--pprof-goroutine</code></b> &lt;INTEGER>: enables profiling of goroutine blocking profile. (default: 6060, env: <strong>OBIPPROFGOROUTINE</strong>)</li>
</ul>
<h2 id="examples">
Examples
<a class="anchor" href="#examples">#</a>
</h2>
<p>The minimal <a href="http://metabar:8888/obidoc/obitools/obipcr/">
<abbr title="obipcr: the electronic PCR tool"><code>obipcr</code></abbr>
</a> command looks like this:</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>obipcr -L <span style="color:#ae81ff">220</span> <span style="color:#ae81ff">\ </span>
</span></span><span style="display:flex;"><span> --forward GGGCAATCCTGAGCCAA <span style="color:#ae81ff">\ </span>
</span></span><span style="display:flex;"><span> --reverse CCATTGAGTCTCTGCACCTATC <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> /data/Genbank/Release_261 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> &gt; Sper01_obipcr.fasta
</span></span></code></pre></div><p>It retrieves the sequences from the NCBI Genbank Release 261 database located in the <code>/data/Genbank/Release_261</code> directory. The output is saved in the file <code>Sper01_obipcr.fasta</code>. The primer pair is specified as <code>GGGCAATCCTGAGCCAA</code> and <code>CCATTGAGTCTCTGCACCTATC</code> using the <code>-forward</code> and <code>--reverse</code> options. These primers correspond to the <em>Sper01</em> marker. The <code>-L</code> option specifies the maximum length of the barcode excluding the primers, here 220 nucleotides. By default, no mismatches are allowed between the primers and the priming sites.</p>
<p>To allow mismatches between the primers and the priming sites, use the <code>--allowed-mismatches</code> option or its short form <code>-e</code>. Here, the maximum number of mismatches allowed is 3. This maximum number of mismatches is allowed per primer. The mismatch can occur anywhere in the primer.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>obipcr -e <span style="color:#ae81ff">3</span> <span style="color:#ae81ff">\ </span>
</span></span><span style="display:flex;"><span> -L <span style="color:#ae81ff">220</span> <span style="color:#ae81ff">\ </span>
</span></span><span style="display:flex;"><span> --forward GGGCAATCCTGAGCCAA <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> --reverse CCATTGAGTCTCTGCACCTATC <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> /data/Genbank/Release_261 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> &gt; Sper01_obipcr.fasta
</span></span></code></pre></div><p>To disallow mismatches at specific positions, add a sharp <code>#</code> after the blocked position. For example, <code>GGGCAATCCTGAGCCAA#</code> disallows mismatches at the last position of the forward primer. Since <code>#</code> is also used to introduce comments in a bash script, the primer containing the <code>#</code> sign must be enclosed in single or double quotes.</p>
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>obipcr -e <span style="color:#ae81ff">3</span> <span style="color:#ae81ff">\ </span>
</span></span><span style="display:flex;"><span> -L <span style="color:#ae81ff">220</span> <span style="color:#ae81ff">\ </span>
</span></span><span style="display:flex;"><span> --forward <span style="color:#e6db74">&#34;GGGCAATCCTGAGCCAA#&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> --reverse <span style="color:#e6db74">&#34;CCATTGAGTCTCTGCACCTATC&#34;</span> <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> /data/Genbank/Release_261 <span style="color:#ae81ff">\
</span></span></span><span style="display:flex;"><span><span style="color:#ae81ff"></span> &gt; Sper01_obipcr.fasta
</span></span></code></pre></div></article>
<footer class="book-footer">
<div class="flex flex-wrap justify-between">
</div>
<script>(function(){function e(e){const t=window.getSelection(),n=document.createRange();n.selectNodeContents(e),t.removeAllRanges(),t.addRange(n)}document.querySelectorAll("pre code").forEach(t=>{t.addEventListener("click",function(){if(window.getSelection().toString())return;e(t.parentElement),navigator.clipboard&&navigator.clipboard.writeText(t.parentElement.textContent)})})})()</script>
</footer>
<div class="book-comments">
</div>
<label for="menu-control" class="hidden book-menu-overlay"></label>
</div>
<aside class="book-toc">
<div class="book-toc-content">
<nav id="TableOfContents">
<ul>
<li><a href="#obipcr-the-electronic-pcr-tool"><code>obipcr</code>: the electronic PCR tool</a>
<ul>
<li><a href="#description">Description</a></li>
<li><a href="#synopsis">Synopsis</a></li>
<li><a href="#options">Options</a>
<ul>
<li></li>
</ul>
</li>
<li><a href="#examples">Examples</a></li>
</ul>
</li>
</ul>
</nav>
</div>
</aside>
</main>
</body>
</html>