We foster the openness, integrity, and reproducibility of scientific research.
Scripts and tools used to develop one-step real-time RT-LAMP assays.
Development of four one-step real-time RT-LAMP assays for specific detection of dengue virus serotypes. Lopez-Jimena B, Bekaert M, Bakheit M, Frischmann S, Patel P, Sakuntabhai A, Lambrechts L, Fall C, Faye O, Sall A and Weidmann M. PLOS Negl. Trop. Dis.. 12(7): e0180625
Development of a single-tube one-step RT-LAMP assay to detect the Chikungunya virus genome. Lopez-Jimena B, Wehner S, Harold G, Bakheit M, Frischmann S, Bekaert M, Faye O, Sall A and Weidmman M. PLOS Negl. Trop. Dis.. 12(7): e0180625
This repository host both the scripts and tools developed by this study. Feel free to adapt the scripts and tools, but remember to cite their authors!
To look at our scripts and raw results, browse through this repository. If you want to reproduce our results you will need to clone this repository, build the docker, and the run all the scripts. If you want to use our data for our own research, fork this repository and cite the authors.
All required files and tools run in a self-contained docker image.
git clone https://github.com/pseudogene/lamp-virus.git
cd lamp-virus
docker build --rm=true --file=Dockerfile -t lamp-virus .
To import and export the results of your analysis you need to link a folder to the docker. It this example your data will be store in results
(current filesystem) which will be seem as been /virus
from within the docker by using -v <USERFOLDER>:/virus
.
mkdir ~/results
docker run -i -t --rm -v ~/results:/virus lamp-virus /bin/bash
1 - Collect NCBI genomes, automatically aligned them with GramAlign v3.0 and run R/adegenet on the alignment to generate PCA and phylogeny.
collect_genomevirus.pl -p zika -q "txid64320[Organism:exp]" -a 2004 -b 2016
where:
-p
is the filename prefix for all output file.
-q
is the NCBI entrez query string. (e.g. Zika virus: "txid64320[Organism:exp]")
-a
(after) is the lower limit for the year.
-b
(before) is the upper limit for the year.
2 - In /virus
(from within the docker) or results
(from outside) you now have all the results files including PCA, phylogeny and TSV file.
Edit the TSV (Tabulation Separated Values) genotype/group numbers you manually identified. The second column been calculated groups (to be used with the standard parameter sets), the third column been the more granular subgrouping (to be used with the --alt parameter)
e.g.:
sequence_1 1 1
sequence_2 1 2
sequence_3 2 3
3 - Retrieve the subgroups/genotypes from the TSV file and run LAVA-DNA on each genotype and each combination.
class_sequences.pl -p zika -a zika.align.fa -g zika.groups.tsv -c > zika.log
or
class_sequences.pl -p zika -a zika.align.fa -g zika.groups.edited.tsv -c -l > zika.loose.log
where:
-p
is the filename prefix for all output file.
-a
is the alignment generated by GramAlign (fasta-align format).
-g
is the list of subgroups/genotypes (TSV file).
-c
allows to test combination of genotypes and not only each genotypes.
-l
allows for the loose
parameter set rather than standard
by LAVA-DNA.
4 - Then evaluate the best minimal set of primer and map each primer set
map_lamp.pl -svg -a zika.align.fa \
-p zika.1.primers \
-p zika.2_5.primers \
-p zika.4.primers \
> zika.svg
where:
-svg
or -png
will generate a SVG or PNG image.
-a
is the alignment generated by GramAlign (fasta-align format).
-p
are lists of primer sets generated by class_sequences.pl
.
Additional description of a LAMP signature. Each named pair refers to a sequence location corresponding to the primer regions of like-numbered primers. These pairs represent the location and orientation of the primers with respect to the target template during each extension in which they participate.
Parameter | Default Target |
---|---|
Outer primer length | 18-22 bp |
Middle primer length | 18-22 bp |
Loop primer length | 18-22 bp |
Inner primer length | 18-22 bp |
Outer primer Tm | 58-62°C |
Middle primer Tm | 58-62°C |
Loop primer Tm | 60-64°C |
Inner primer Tm | 63-67°C |
Maximum signature length | 180 bp |
Minimum spacing from middle to inner primers | 40 bp |
Maximum consecutive repeated bases | 4 |
Parameter | Default Target |
---|---|
Outer primer length | 15-25 bp |
Middle primer length | 15-25 bp |
Loop primer length | 15-25 bp |
Inner primer length | 15-25 bp |
Outer primer Tm | 53-67°C |
Middle primer Tm | 53-67°C |
Loop primer Tm | 55-69°C |
Inner primer Tm | 58-72°C |
Maximum signature length | 200 bp |
Minimum spacing from middle to inner primers | 20 bp |
Maximum consecutive repeated bases | 4 |
Default values of the most commonly adjusted LAVA parameters (Torres et al, 2011)
Parameter | Default Target |
---|---|
Outer primer length | 18-23 bp |
Middle primer length | 18-23 bp |
Loop primer length | 18-23 bp |
Inner primer length | 20-26 bp |
Outer primer Tm | 59-61°C |
Middle primer Tm | 59-61°C |
Loop primer Tm | 58-62°C |
Inner primer Tm | 62-66°C |
Maximum signature length | 320 bp |
Minimum spacing from middle to inner primers | 25 bp |
Maximum consecutive repeated bases | 5 |
Parameter | Default Target |
---|---|
Outer primer length | 17-24 bp |
Middle primer length | 17-24 bp |
Loop primer length | 17-24 bp |
Inner primer length | 18-28 bp |
Outer primer Tm | 58-62°C |
Middle primer Tm | 58-62°C |
Loop primer Tm | 57-63°C |
Inner primer Tm | 61-66°C |
Maximum signature length | 400 bp |
Minimum spacing from middle to inner primers | 20 bp |
Maximum consecutive repeated bases | 5 |
Parameter | Default Target |
---|---|
Outer primer length | 16-25 bp |
Middle primer length | 16-25 bp |
Loop primer length | 16-25 bp |
Inner primer length | 16-29 bp |
Outer primer Tm | 57-63°C |
Middle primer Tm | 57-63°C |
Loop primer Tm | 56-64°C |
Inner primer Tm | 68-67°C |
Maximum signature length | 500 bp |
Minimum spacing from middle to inner primers | 18 bp |
Maximum consecutive repeated bases | 6 |
Usage: collect_genomevirus.pl --prefix <output prefix> --query <NCBI entrez query> [..]
Description: Collect all complete genomes using the provided ENTREZ query and align them.
--prefix <file prefix>
Filename output prefix. [mandatory]
--query <query string>
NCBI entrez query. [mandatory]
--after <year>
minimum date to retrieve from (YYYY).
--before <year>
maximum date to retrieve from (YYYY).
--norun
Disable the automatic run of R and the PCA and cluster analysis
--verbose
Becomes very chatty.
Usage: class_sequences.pl --prefix <output prefix> --align <aligned genomes> --groups <list of groups> [..]
Description: Generate RT-LAMP primer sets for each group of genomes provided.
--prefix <file prefix>
Filename output prefix. [mandatory]
--groups <path>
Path to a TSV file with the genome groups (e.g. output.group.tsv). [mandatory]
sequence_id<tab>grouping<tab>alt_grouping
sequence_1 1 1
sequence_2 1 2
sequence_3 2 3
--align <aligned genome>
Alignment generated by collect_genomevirus.pl. [mandatory]
--realign
Force each group or group combination to be realign prior running LAVA.
--combinatory
Force to test group combinations (recommended).
--extra <lava parameter file>
Provide LAVA XML parameter file.
--strict
Force usage of strict LAMP parameters (see documentation).
--strict --strict
Force usage of even stricter LAMP parameters (see documentation).
--loose
Force usage of loose LAMP parameters (see documentation).
--loose --loose
Force usage of even looser LAMP parameters (see documentation).
--alt
Force usage alternative grouping column from the group file.
--verbose
Becomes very chatty.
Usage: map_lamp.pl --align <aligned genomes> --primer <list 1 of primer> [--primer <list 2 of primer> ...] [--svg|--png]
Description: Generate a simple visualisation of the location of the RT-LAMP primer on the alignment.
--align <aligned genome>
Alignment generated by collect_genomevirus.pl. [mandatory]
--primer <primer file>
Path to the primer file generated by class_sequence.pl. Can be use multiple time for multiple file.
--svg
Produce a vectorial figure (SVG format).
--png
Provide a bitmap figure (PNG format).
--verbose
Becomes very chatty.
If you have any problems with or questions about the scripts, please contact us through a GitHub issue. Any issue related to the scientific results themselves must be done directly with the authors.
You are invited to contribute new features, fixes, or updates, large or small; we are always thrilled to receive pull requests, and do our best to process them as fast as we can.
This code is distributed under the GNU GPL license v3. The documentation, raw data and work are licensed under a Creative Commons Attribution-ShareAlike 4.0 International License.