RESIDENTIAL ADDRESS
# 16 OBIOMA STREET,
G. R A, ENUGU,
ENUGU
STATE.
NIGERIA.
ATTN: MANAGING DIRECTOR/PRESIDENT
In order to transfer (USD$56 Million Dollars) from our bank, I have the
courage to ask you to look for a reliable and honest person who will be capable
of this important business believing that you will not me down.
I am MR. MARTINS AKUthe eastern district bank manager of united bank for
Africa plc (UBA). There is an account opened in this bank in 1980 and since 1990
nobody has operated on this account again. After intensive investigations, I
discovered that if I do not find a way to get the amount in question stacked out
somewhere safe urgently it will be forfeited for nothing. The owner of this
account, ENGR. SMITH U. WILLIAMS, a foreigner, the manager of Petro- technical
support services, a chemical Engineer by profession and he died in 1990 and no
other person knows about this account or any other beneficiary. My
investigations prove to me as well that this company does not know anything
about this account and has no attachment to the said amount. The amount involved
is 56 MILLION USD (FIFTY-SIX MILLION UNITED STATES DOLLARS) ONLY.
In the light of the fact, I needed your assistance to open your door to
this opportunity by providing your account or any account of your choice where
the fund will be remitted. I want to transfer this money into a safe foreigner’s
account abroad but I don’t know any one who could actually assist, I am only
contacting you as a foreigner because this money can only be approved to a
foreign account because the money is in US Dollars and the owner of the account
ENGR. SMITH U. WILLIAMS and a foreigner too.
I know that this mail will come as surprise to you as we don’t know
ourselves, but be sure that is for real. I got your contact on the believing
that you will not let me down in this business. You are the only person that I
have contacted for this business, so please reply urgently so that I will let
you know what steps to take next. Send also your private telephone, fax and
mobile number for easy communication including the full details of the account
to be used for the deposit. I am contacting you because of the need to involve a
foreigner with foreign account. I need your full co-operation to make this work
out alright.
Your assistance as foreigner is necessary because the management is ready
to welcome any person, a foreigner who has correct information of this account,
which I will give to you immediately, if you are interested to conclude this
transaction with me. If your are capable of handling such amount in strict
confidence, keeping to my instructions I need a sincere person for this venture
because I don’t want to make mistake, I need your strong assurance that this
money will be intact pending my arrival in your country for sharing.
You should be informed strictly that I will burn all the documents in your
presence immediately after this money has been remitted to your account leaving
no trace to any place.
I will apply for annual leave immediately I hear from you that you are
ready to act and receive this fund in your account. This is to enable me use my
position and influence to effect legal approvals for onward transfer of this
money to your account with appropriate clearance forms of the ministries and
foreign exchange department.
At the conclusion of this business, you will be given 20% of the total
amount, 70% will be for us and 10%for any expenses incurred during the
transaction.
I look forward to your earnest reply.
Yours truly,
MR. MARTINS AKU


Arthropod-borne viruses are important emerging pathogens world-wide. Viruses transmitted by mosquitoes, such as dengue, yellow fever, and Japanese encephalitis viruses, infect hundreds of millions of people and animals each year. Global surveillance of these viruses in mosquito vectors using molecular based assays is critical for prevention and control of the associated diseases. Here, we report an oligonucleotide DNA microarray design, termed ArboChip5.1, for multi-gene detection and identification of mosquito-borne RNA viruses from the genera Flavivirus (family Flaviviridae), Alphavirus ( Togaviridae), Orthobunyavirus ( Bunyaviridae), and Phlebovirus ( Bunyaviridae).
The assay utilizes targeted PCR amplification of three genes from each virus genus for electrochemical detection on a portable, field-tested microarray platform. Fifty-two viruses propagated in cell-culture were used to evaluate the specificity of the PCR primer sets and the ArboChip5.1 microarray capture probes. The microarray detected all of the tested viruses and differentiated between many closely related viruses such as members of the dengue, Japanese encephalitis, and Semliki Forest virus clades. Laboratory infected mosquitoes were used to simulate field samples and to determine the limits of detection. Additionally, we identified dengue virus type 3, Japanese encephalitis virus, Tembusu virus, Culex flavivirus, and a Quang Binh-like virus from mosquitoes collected in Thailand in 2011 and 2012.
We demonstrated that the described assay can be utilized in a comprehensive field surveillance program by the broad-range amplification and specific identification of arboviruses from infected mosquitoes. Furthermore, the microarray platform can be deployed in the field and viral RNA extraction to data analysis can occur in as little as 12 h. The information derived from the ArboChip5.1 microarray can help to establish public health priorities, detect disease outbreaks, and evaluate control programs.
Approximately half of the world's population is at risk of viral, mosquito-borne illness such as dengue, yellow fever, Japanese encephalitis, Rift Valley fever, and chikungunya. In the past, these viruses have been regarded as pathogens of the tropics; however, they are emerging as global causes of illness. Very few effective drugs and vaccines have been developed for mosquito-borne viral infections and even less are available to people in resource-limited countries. An important aspect of disease prevention is mosquito surveillance to determine geographical range and seasonal prevalence of the associated viruses. However, there are hundreds of viruses transmitted by mosquitoes that are pathogenic to humans and animals. Using a portable microarray, we developed an assay with the ability to detect most of the known medically important viruses transmitted by mosquitoes. This assay was designed for use in conjunction with broad-range screening tools as a cost effective, rapid method to determine the identity of viruses from infected mosquitoes. To our knowledge, this is the most comprehensive assay to date for field surveillance of mosquito-borne viruses.
Arthropod-borne viruses (arboviruses) are important human and veterinary pathogens that are biologically transmitted to vertebrates by hematophagous (blood feeding) arthropod vectors, such as female mosquitoes. The diverse group of mosquito-borne RNA viruses primarily includes flaviviruses ( Flaviviridae: Flavivirus), alphaviruses ( Togaviridae: Alphavirus), orthobunyaviruses ( Bunyaviridae: Orthobunyavirus), and phleboviruses ( Bunyaviridae: Phlebovirus) [1]. Flaviviruses contain a positive-sense, single-stranded RNA genome of approximately 10.9 kilo bases (kb) in length with a single open reading frame encoding three structural and seven nonstructural proteins [2]. Mosquito-borne flaviviruses are phylogenetically divided into two groups: those transmitted by Aedes species mosquitoes, such as dengue virus (DENV) and yellow fever virus (YFV), and those transmitted by Culex species mosquitoes, such as Japanese encephalitis virus (JEV) and West Nile virus (WNV). Additionally, flaviviruses continue to be isolated from mosquitoes without a known vertebrate host, termed arthropod-specific viruses [3], [4], [5], [6], [7], [8], [9]. Alphavirus genomes are also positive-sense, single-stranded RNA molecules, approximately 11.7 kb in length that translate into four nonstructural and three structural proteins [10]. They are classified in two geographically isolated groups, Old World alphaviruses, such as chikungunya virus (CHIKV) that is found in parts of Africa, Asia, and Europe, and New World alphaviruses, such as eastern equine encephalitis and Venezuelan equine encephalitis (VEEV) viruses that circulate in the Americas. Orthobunyaviruses and phleboviruses have tripartite, single-stranded, negative-sense RNA genomes. The RNA segments, designated by their distinct sizes, small (S), medium (M), and large (L), encode for the nonstructural proteins, structural proteins, and RNA-dependent RNA polymerase, respectively [11]. Orthobunyaviruses are primarily mosquito-borne and are distributed globally. The majority of phleboviruses use phlebotomine sand flies as their primary vectors, but many can also be transmitted by mosquitoes. One notable example is Rift Valley fever virus (RVFV), which is transmitted by a number of different mosquito species in nature [12].
Arboviruses represent nearly 30% of all emerging infectious disease in the last 50 years [13]. Emergence and re-emergence of arboviral pathogens can be attributed to many factors, such as globalization, altering weather patterns, increased production of livestock, and tropical urbanization [1], [14]. The majority of emerging arboviruses are known pathogens with high epidemic and epizootic potentials when introduced into new populations, as evident by several examples: RVFV in Africa [15], [16], WNV in North America [17], [18], and CHIKV in areas near the Indian Ocean [19].With limited antiviral drugs and vaccines available, global surveillance of newly emerging and re-emerging arboviruses is critical for early detection and prevention of arboviral diseases.
An active surveillance program should include the monitoring of levels of virus activity in vector populations and in vertebrate hosts [20]. This can be challenging for a comprehensive surveillance program because mosquito-borne viruses are taxonomically diverse and expansive. Traditional polymerase chain reaction (PCR) based assays can be too limited in scope to detect unexpected circulating viruses. Microarrays, on the other hand, can detect hundreds or thousands of viral agents using oligonucleotide DNA probes [21], [22], [23]. Microarray assays have been developed to detect a wide range of viruses, including some mosquito-borne viruses [21], [22], [23], [24], [25], [26], [27], [28], [29]. These assays have been shown to be valuable tools for the detection of viral RNA in clinical samples. However, none of the assays have been designed or analyzed for use with infected mosquitoes. Most of the assays included an unbiased, random amplification method for microarray detection. We have previously reported that such techniques are efficient for the amplification viral nucleic acids isolated from cultured cells, but not from a complex matrix of RNA from mosquito homogenates [30]. Additionally, most of the microarray designs are not wide-ranging and only cover a few of the most concerning viral pathogens. Lastly, none have been evaluated for field-use.
In this report, we describe an oligonucleotide DNA microarray, the ArboChip5.1, which targets multiple genes from 144 mosquito-borne RNA viruses from the genera Flavivirus, Alphavirus, Orthobunyavirus, and Phlebovirus. For each genus, at least three sets of consensus gene-specific primers (GSPs) were designed for efficient PCR amplification of the viral nucleic acids isolated from infected mosquitoes and virus-specific microarray capture probes were designed to differentiate between the PCR amplicons. We previously demonstrated that a portable microarray platform, the ElectraSense 4×2K (CustomArray, Inc., Bothell, WA), is practical for field diagnostics [30]. The platform included a small and rugged microarray reader that was able to analyze four samples simultaneously against 2,240 oligonucleotide DNA probes using electrochemical detection (ECD) [31], [32], [33], [34]. The assay, as described here, was able to detect and identify RNA belonging to several arboviruses of medical and veterinary importance, including DENV type 3 (DENV-3), JEV, Tembusu virus (TMUV), Culex flavivirus (CxFV), and a Quang Binh-like virus from field-collected mosquitoes from Thailand during 2011 and 2012.
Entomological collections from private land and residences were conducted with the owners/residents permission.
The assay workflow is displayed in Figure 1. Most of the assays were completed in 12 h or less. The methods for mosquito collection, RNA extraction, and virus screening can be substituted with a group's own methods. Virus screening methods should typically include PCR assays for genus-level detection using consensus primers. Complementary DNA (cDNA) from mosquito pools that tested positive using the screening assays should continue with the assay procedures, starting at the “asymmetric PCR amplification with GSPs and biotinylation” step.
Consensus GSPs for PCR amplification of microarray targets can be found in Table 1. The GSPs were modified from published assays [35], [36] or designed by aligning all microarray target sequences, according to virus genus, using the Megalign/Clustal W software (DNASTAR, Inc., Madison, WI). The GSPs were selected from conserved regions meeting the following criteria: 17–32 base pairs (bp) in length, melting temperatures between 50 and 65°C, and guanine-cytosine content (GC-content) between 45 and 65%.
| left11Virus genus | left11Gene/segment | left11Primer name | left11GSP sequence (5′ to 3′) | left11Product (bp) | left11GenBank ID |
| left11 Flavivirus | left11E | left11F1269-F | left11
GAGGCTGGGGAAATGGCTG
|
left11969 | left11NC_002031 |
| left11 | left11 | left11F2225-R | left11
CCTCCAACTGATCCAAAGTCCCA
|
left11 | left11 |
| left11 | left11NS3 | left11F5015-F | left11
GTGGTTGGNCTGTATGGNAA
|
left11812 | left11 |
| left11 | left11 | left11F5807-R | left11
CCCATTTCTGAGATGTCAGT
|
left11 | left11 |
| left11 | left11NS5 | left11F8276d-F c | left11
AAYTCNACNCANGARATGTAY
|
left11804 | left11 |
| left11 | left11 | left11F9063d-R c | left11
CCNARCCACATRWACCA
|
left11 | left11 |
| left11 Alphavirus | left11nsP1 | left11A183d-F d | left11
TCCATGCHMAYGCBAGRGCDTTYTCGCA
|
left11937 | left11NC_004162 |
| left11 | left11 | left11A1095d-R | left11
GTNGCHADDATNCCNGTCATYTGRT
|
left11 | left11 |
| left11 | left11nsP4 | left11A6493d-F | left11
CCRYTDCANSAVRTACCNATGGA
|
left111009 | left11 |
| left11 | left11 | left11A7482d-R | left11
CHATYYAGGWYMRCCGTASA
|
left11 | left11 |
| left11 | left11E1 | left11A10240d-F | left11
GGBGTNTACCCNTTYATGTGGGG
|
left11914 | left11 |
| left11 | left11 | left11A11135d-R | left11
ATGTGGTCYKYHGGDGGNT
|
left11 | left11 |
| left11 Phlebovirus | left11S | left11PR-S1192d-F | left11
TCAATRAKRCCAGCAAAGCTRGGATGCATC
|
left11391 | left11NC_002045 |
| left11 | left11 | left11PR-S1558d-R | left11
GGGTSMAWGAGTTTGCTTAYCAAGG
|
left11 | left11 |
| left11 | left11M | left11P-M2292d-F | left11
TGYAGRGARGGNMMKAGYTTYTGGAC
|
left11689 | left11NC_002044 |
| left11 | left11 | left11P-M2955d-R | left11
CCATTCCTVRCYTGWGGYARAGANCC
|
left11 | left11 |
| left11 | left11L | left11P-L1992d-F | left11
GGARGAYAARGCWRYMACWGAAG
|
left111068 | left11NC_002043 |
| left11 | left11 | left11P-L3039d-R | left11
GGAWGDGTGAAYTCRCAYARC
|
left11 | left11 |
| left11 Orthobunyavirus | left11S BUNV a | left11OB-S121-F | left11
CACCAGCAGTACTTTTGACCCAGA
|
left11649 | left11NC_001927 |
| left11 | left11 | left11OB-S746d-R | left11
TTTAGCHARGAABTCYCTRGCWGC
|
left11 | left11 |
| left11 | left11S CEV b | left11OC-S127d-F | left11
TTTRAYCCNGAKGCAGGGTWTGTGG
|
left11484 | left11U12797 |
| left11 | left11 | left11OC-S594d-R | left11
GCYTTCTTCAGGWACTKDGSRTCCATC
|
left11 | left11 |
| left11 | left11M | left11O-M3266d-F | left11
GGNTGTGTWTWTGGNTCWTGYCARGA
|
left11906 | left11NC_001926 |
| left11 | left11 | left11O-M4147d-R | left11
CCTTCATCYYKNACYCTRCAYADCC
|
left11 | left11 |
| left11 | left11L | left11O-L3156-F | left11
GCAGATATGTCAAAATGGAGTGCTC
|
left111088 | left11NC_001925 |
| left11 | left11 | left11O-L4223-R | left11
CTCATGTCACTTGTTTCACCC
|
left11 | left11 |
The primer start position, based on the GenBank source, is listed in the primer name. The “d” in the primer name designates that degenerate nucleotides were included. “F” and “R” at the end of the primer name designates forward and reverse, respectively. BUNV, Bunyamwera virus; CEV, California encephalitis virus.
S segment primers for BUNV and Wyeomyia clade targets.
S segment primers for CEV, Bwamba, and Simbu clade targets.
Previously published as Flav100F and Flav200R [35].
Modified version of VIR966-F [36].
Probes were designed to target unique viral sequences, 30 to 45 nucleotides in length, between the GSPs using methods previously described [30]. A total of 2,097 oligonucleotide probes were selected for inclusion on the ArboChip5.1. The probe set included: 802 targeting flaviviruses, 307 targeting alphaviruses, 572 targeting orthobunyaviruses, and 381 targeting phleboviruses. Positive hybridization (n = 10) and negative background control (n = 25) probes were added to the design as previously reported [37]. Multiple copies of the control probes were added to fill the 2,240 probe sites present on the sectored microarray chip. Table S1 displays all the targeted viruses and the number of probes for each virus selected for inclusion on the ArboChip5.1. The complete list of capture probe sequences can be found in Table S2. All of the probes included on the ArboChip5.1 design were evaluated with earlier design versions and found to not hybridize with unintended targets, i.e., cDNA from uninfected cultured cells, uninfected mosquitoes, and viruses from different genera (unpublished data). Due to a lack of sequence information at the time of probe design, probes for all three gene targets were not included for some viruses. Probes targeting viruses not tested in this publication should be considered investigational until evaluated. The oligonucleotide probes were synthesized directly on the ElectraSense 4×2K sectored microarray by CustomArray, Inc.
The virus-targeted capture probes were sorted into 12 groups, three groups for each genus based on the gene target. Each group was further sorted into subgroups based on the virus clade and probe specificity. For example, a probe specific for the DENV-3 NS5 gene would be in the Flavivirus NS5 group and the DENV clade, DENV-3 subgroup (DENV_DENV3). Probes that hybridized to multiple, but related viruses were classified as non-virus-specific and sorted into genus (i.e. flavivirus_generic) or clade-specific (i.e. DENV_clade) subgroups. Some very closely related viruses, such as O'nyong-nyong virus (ONNV) and Igbo Ora virus (IOV) of the Semliki Forest virus (SFV) clade, could not be differentiated. Probes for virus targets that could not be differentiated were sorted into subgroups containing virus complexes (i.e. SFV_ONNV/IOV).
The laboratory viruses used in this study are listed in Tables 2– 5. Viruses were propagated primarily in Vero (African green monkey kidney) or C6/36 ( Aedes albopictus) cell cultures. Mosquitoes were inoculated intrathoracically (0.3 µL/mosquito) with selected viruses at approximately 10 5 plaque forming units (PFU)/mL [38]. Inoculated mosquitoes were held for at least 7 days at 26°C to allow for virus replication. Virus-inoculated mosquitoes were triturated individually in diluent (Eagle's minimal essential medium containing 10% heat-inactivated fetal bovine serum, 0.075% NaHCO
| left11Virus | left11Run 1 | left11Run 2 | left11Run 3 | left11Run 4 | left11Mean | left11SD | left1195% CI | left11CV |
| left11West Nile L1 | left1114.29 | left1114.95 | left1114.91 | left1114.89 | left1114.76 | left110.27 | left1114.32, 15.19 | left111.8% |
| left11Chikungunya | left1116.59 | left1119.84 | left1121.11 | left1123.23 | left1120.19 | left112.41 | left1116.36, 24.02 | left1111.9% |
| left11Rift Valley fever | left1126.78 | left1125.53 | left1129.96 | left1129.54 | left1127.95 | left111.85 | left1125.0, 30.9 | left116.6% |
Microarray analysis using cell-cultured derived viruses were performed in four replicates. The z-scores of the virus-specific probes were averaged and listed for each run. The mean and standard deviation (SD) was calculated to determine the 95% confidence interval (CI) and coefficient of variance (CV) for each virus.
| left11 | left11 | 3left1PCR amplification/microarray detection a | left11 | ||
| left11Virus | left11Strain | left11E | left11NS3 | left11NS5 | left11Mosquito species b |
| left11Bussuquara | left11RV270 | left11POS d/yes | left11POS c/yes | left11POS c/yes | left11n.t. |
| left11Chaoyang | left11ROK144 | left11POS/yes d e | left11POS/yes | left11POS/yes | left11n.t. |
| left11Dengue type 1 | left11HAW | left11POS/yes | left11POS/yes | left11POS/yes | left11 Ae. aegypti |
| left11Dengue type 2 | left11S16803 | left11POS/yes | left11POS/yes | left11POS/yes | left11 Ae. aegypti |
| left11Dengue type 3 | left11Thai 1987 | left11POS/yes | left11POS/yes | left11POS/yes | left11 Ae. aegypti |
| left11Dengue type 4 | left11CAR 341750 | left11POS/yes | left11POS/yes | left11POS/yes | left11 Ae. albopictus |
| left11JE | left11Th9-0175 | left11POS/no | left11POS/yes | left11POS/yes | left11 Cx. pipiens |
| left11Kunjin | left11R4336a | left11NEG | left11POS/yes | left11POS/yes | left11n.t. |
| left11MVE | left11RV241 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Quang Binh | left11Th5-0215 | left11POS/no | left11POS/yes | left11POS/yes | left11n.t. |
| left11Rocio | left11SP H34675 | left11NEG | left11POS c/yes | left11POS c/yes | left11n.t. |
| left11SLE | left11Ft. Washington | left11POS c/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Tembusu | left11Th3-0385 | left11POS/yes | left11POS/yes | left11POS/yes | left11 Cx. tarsalis |
| left11Tembusu | left11Th6-0381 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11West Nile L1 | left11EG101 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11West Nile L1 | left11NY397-99 | left11POS/yes | left11POS/yes | left11POS/yes | left11 Cx. pipiens |
| left11West Nile L2 | left11KLF 76 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11West Nile L2 | left11KLF 146 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Yellow fever | left1117D | left11POS c/yes | left11POS/yes | left11POS/yes | left11 Ae. aegypti |
| left11Zika | left1130306 | left11NEG | left11POS/yes | left11POS/yes | left11n.t. |
Viral RNA derived from cell culture or infected mosquitoes were PCR amplified using GSPs. Amplicons were analyzed using the ArboChip5.1 microarray. JE, Japanese encephalitis; MVE, Murray Valley encephalitis; SLE, St. Louis encephalitis; L1, lineage 1; L2, lineage 2; POS, positive PCR amplification; NEG, negative PCR amplification; yes, detected by microarray; no, not detected by microarray; n.t., not tested.
Viruses propagated in cell culture and identified by microarray to species unless otherwise noted.
Virus-infected mosquito used for microarray evaluations, microarray detected at least one target for each virus.
PCR amplification produced a weak visible band.
ArboChip5.1 does not include probes specific to the target.
Microarray detection with genus-level probes only.
| left11 | left11 | 3left1PCR amplification/microarray detection a | left11 | ||
| left11Virus | left11Strain | left11nsP1 | left11nsP4 | left11E1 | left11Mosquito species b |
| left11Aura | left11RIID 1990 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Babanki | left11Ken07-46A-49 | left11POS/yes f | left11POS/yes f | left11POS/yes f | left11n.t. |
| left11Chikungunya | left11INDO23574 | left11POS/yes | left11POS/yes | left11POS/yes | left11 Ae. taeniorhynchus |
| left11Getah | left11ROK-2.0017 | left11POS/yes | left11POS/yes | left11POS c/yes | left11n.t. |
| left11Mayaro | left11TR467 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Ndumu | left11Ken07-332 | left11POS/yes d e | left11POS/yes | left11NEG d | left11n.t. |
| left11Ockelbo | left11ISL-44 | left11POS/yes f | left11POS/yes f | left11POS/yes f | left11n.t. |
| left11O'nyong nyong | left11Gulu | left11POS/yes g | left11POS/yes g | left11POS/yes g | left11n.t. |
| left11Ross River | left11T-49 | left11POS c/yes | left11POS c/yes | left11NEG | left11 Ae. albopictus |
| left11Semliki Fortest | left11Ken07-586 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Sindbis | left11Ken07-611 | left11POS/yes f | left11POS/yes f | left11POS/yes f | left11 Ae. aegypti |
| left11Una | left11PE-1.0800 | left11POS/no d | left11POS/yes | left11POS/no d | left11n.t. |
| left11VEE | left11TC83 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11WEE | left11McMillan | left11POS/yes | left11POS/yes | left11POS/no | left11 Ae. albopictus |
Viral RNA derived from cell culture or infected mosquitoes were PCR amplified using GSPs. Amplicons were analyzed using the ArboChip5.1 microarray. VEE, Venezuelan equine encephalitis; WEE, western equine encephalomyelitis; POS, positive PCR amplification; NEG, negative PCR amplification; yes, detected by microarray; no, not detected by microarray; n.t., not tested.
Viruses propagated in cell culture and identified by microarray to species unless otherwise noted.
Virus-infected mosquito used for microarray evaluations, microarray detected at least one target for each virus.
PCR amplification produced a weak visible band.
ArboChip5.1 does not include probes specific to the target.
Microarray detection with genus-level probes only.
Target was detected but could not be differentiated between BBKV, OCKV, and SINV.
Target was detected but could not be differentiated between ONNV and IOV.
| left11 | left11 | 3left1PCR amplification/microarray detection a | left11 | ||
| left11Virus | left11Strain | left11S | left11M | left11L | left11Mosquito species b |
| left11Rift Valley fever | left11ZH501 | left11POS/yes | left11POS/yes | left11POSe/yes | left11 Cx. pipiens |
| left11Rift Valley fever | left11ZH548 | left11POS/yes | left11POS/yes | left11POSe/yes | left11n.t. |
| left11Sandfly fever Naples | left1185-055 | left11POS/yes | left11POS/no c | left11POS/yes c d | left11n.t. |
| left11Toscana | left11ISS PHI3 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Candiru | left11BeH2251 | left11POS/yes | left11POS/yes | left11POS/yes | left11n.t. |
| left11Chagres e | left11LW10 | left11POS/no c | left11POS/no c | left11POS/yes c d | left11n.t. |
Viral RNA derived from cell culture or infected mosquitoes were PCR amplified using GSPs. Amplicons were analyzed using the ArboChip5.1 microarray. POS, positive PCR amplification; NEG, negative PCR amplification; yes, detected by microarray; no, not detected by microarray; n.t., not tested.
Viruses propagated in cell culture and identified by microarray to species unless otherwise noted.
Virus-infected mosquito used for microarray evaluations, microarray detected at least one target for each virus.
ArboChip5.1 does not include probes specific to the target.
Microarray detection with genus-level probes only.
Not a target virus on ArboChip5.1.
TRIzol-LS (Invitrogen Inc., Carlsbad, CA) extraction of RNA and cDNA synthesis using random hexamers and SuperscriptII (Invitrogen Inc.) was completed as previously described, except that the RNA was not subjected to a second round of purification before cDNA synthesis [39].
The sequences of the GSPs are listed in Table 1. Each sample was amplified using the appropriate virus genus GSP set as determined by virus screening. Asymmetric PCR amplification and biotin labelling of the microarray targets was accomplished as follows. For a 25 µL reaction, 2 µL of cDNA, 1 µL of forward primer (10 µM), 5 µL of reverse primer (10 µM), 3 µL of biotin-14-dCTP (0.4 mM) (Invitrogen Inc.), and 14 µL of nuclease-free water was added to each PCR tube containing one puRe Taq Ready-To-Go™ PCR bead (Amersham Biosciences, Corp., Piscataway, NJ). The thermocycling conditions were set as follows: 95°C for two min; 8 cycles of: 94°C for 15 sec, 56–42°C (starting at 56°C, reducing 2°C each cycle) for 30 sec, and 72°C for 60 sec; 32 cycles of: 94°C for 15 sec, 40°C for 30 sec, and 72°C for 60 sec; followed by 72°C for 7 min and a final hold at 4°C. Amplicons were visualized using 2% Agarose E-Gel gels that contained ethidium bromide (Invitrogen Inc.), as previously described [39]. Expected product sizes are listed in Table 1.
Ten microarray probes ( Table S2) and reverse compliment oligonucleotides were used as positive controls for hybridization. The 10 positive oligonucleotide controls (100 µM) were combined equally resulting in a final concentration of 10 µM for each oligonucleotide. Ten microliters of the positive control pool was biotin labelled using the Label IT® μArray Biotin Labelling Kit (Mirus Bio LLC, Madison, WI) following the vendor's instructions. The biotin-labelled positive control pool was purified using the MinElute PCR Purification kit (QIAGEN Inc., Valencia, CA) following the manufacturer's instructions and eluted from the purification columns using 20 µL of nuclease-free water and 1 µL was used to spike each sample before hybridization (see below).
The ArboChip5.1 microarray chips were hydrated using phosphate-buffered saline (PBS) (pH 7.4) for 10 min at 65°C and then pre-hybridized for 5 min at 50°C in pre-hybridization buffer (6× SSPE [0.9 M NaCl/60 mM sodium phosphate/6 mM EDTA], 0.05% Tween-20, 14 mM EDTA, 5× Denhardt's solution, 0.05% sodium dodecyl sulfate (SDS)) with rotation using a UVP HB-500 Minidizer hybridization incubator (Ultra-Violet Products, LLC, Upland, CA) that was modified with microarray clamps fixed onto the rotisserie wheel. Preparation of the DNA samples for microarray hybridization was completed as follows. In a PCR tube, 15 µL of asymmetric biotin-labelled PCR amplicons (5 µL of each of the three gene PCR amplicons, including products without a visible band of the expected size) and 1 µL of biotin-labelled positive hybridization control oligonucleotides were mixed with 15 µL of 2× hybridization buffer (12× SSPE, 0.1% Tween-20, 28 mM EDTA, 0.1% SDS). The samples were denatured for 1 min at 95°C, cooled for 1 min at 4°C, and then added to the microarray chambers. The microarray samples were hybridized at 50°C for 2 h with rotation. The microarray chambers were rinsed with 2× PBST (2× phosphate-buffered saline pH 7.4, 0.1% Tween-20), re-incubated with the same solution at 50°C for 5 min with rotation, and washed two more times with 2× PBST. The chambers were blocked with ElectraSense Blocking Buffer for 15 min at room temperature (RT) and labelled with ElectraSense Biotin Labeling Solution for 15 min at RT. The chambers were washed twice with ElectraSense Biotin Wash Solution, incubated for 10 min at RT, washed a third time with the Biotin Wash Solution, and rinsed with ElectraSense TMB Rinse Solution. The samples were developed using ElectraSense TMB Substrate and the ECD signals were measured in picoamps using the ElectraSense Reader within 1 min of adding the substrate. Data were recorded using the ElectraSense application software. All ElectraSense products were purchased from CustomArray, Inc. and the hybridization and detection methods were based on their recommendations, except that the 16 h hybridization was reduced to 2 h.
The data were transformed into text files and transferred to Microsoft Excel (Microsoft Corp., Redmond, WA) for analysis. Each capture probe was sorted into one group, consisting of the virus genus and gene or segment, and one subgroup, consisting of the virus clade and specific target. The virus clades were based on observed phylogenetic analysis and did not always correspond to other reported clades or serogroups. The specific targets were single viruses or groups of related viruses.
The ECD signals were transformed into standard scores (z-scores) by subtracting the average signal of the negative background controls from each measured probe and dividing the difference by the standard deviation of the negative controls. Aforementioned, the probes were sorted into groups and subgroups for analysis. Subgroups with average z-scores greater than 10 were considered positive and used for viral RNA identification. Z-scores greater than 10 indicate that the measured probe values were greater than 10 standard deviations above the background, therefore significant. Graphs for each group expressing the subgroups' average z-scores, maximum individual probe z-scores, and the positive cut-off (10) were created for visual analysis. Example data analysis is shown in Dataset S1.
In order for the microarray chips to be re-hybridized with new PCR amplicons, the previous amplicon:probe hybrids were denatured and then the amplicons were washed off. This was accomplished by washing the chip with Stripping Solution (CustomArray, Inc.), incubating the chip in the same solution at 65°C for 1 h, and then washing the chips with 95% EtOH and nuclease-free water. The microarray chambers were filled with PBS until re-use. The microarray chips were not used more than five times.
The microarray lower limit of detection (LLOD) for virus infected mosquitoes was evaluated by using 10-fold serial dilutions of RNA extracted from one infected mosquito pooled with 24 uninfected mosquitoes. Isolation of RNA and synthesis of cDNA was completed using the methods described. The mosquito pool dilutions were tested using the described microarray amplification and detection methods and compared to results obtained using corresponding real-time PCR (qPCR) and convectional PCR assays. Real-time PCR was completed as follows: a 20-µL reaction contained 10 µL of SYBR Premix Ex Taq DNA Polymerase (Takara Bio Inc., Otsu, Japan), 0.4 µL of 10 µM forward primer, 0.4 µL of 10 µM reverse primer, 7.2 µL of nuclease-free water, and 2 µL of cDNA template using the following primer sets: mFU1 and cFD2 primers for the detection of flaviviruses [40], VIR2052 primers for the detection of alphaviruses [36], and RVS and RVAs primers for the detection of RVFV [41]. The cycling conditions were as follows: 95°C for 30 sec, then 40 cycles of 95°C for 5 sec and 60°C for 20 sec. Fluorescence was read at the end of the 60°C annealing-extension step. Conventional PCR was completed as previously described [39] using the following broad-range primer sets: MA and cFD2 primers (260 bp amplicon) for the detection of flaviviruses [42], VIR2052 primers (120 bp amplicon) for the detection of alphaviruses [36], and Phlebo forward 1, forward 2, and reverse primers (370 bp amplicons) for of the detection of phleboviruses [43].
Mosquitoes were collected from locations near Lopburi and Kamphaeng Phet, Thailand, during March and April of 2011 and near Kamphaeng Phet and Ranyong, Thailand, during April and May of 2012. The mosquitoes were identified, processed, tested for the presence of viral RNA using the broad-range conventional PCR assays for flaviviruses, alphaviruses, and phleboviruses described above. In addition, BSC82V and BSC332V primers (250 bp amplicons) were used to screen for the Bunyamwera virus (BUNV) group [44]. The ABI 3100 genetic analyzer and Big Dye 3.1 (PE Biosystems, Inc., Foster City, CA) was used to sequence the amplicons.
The GSP sets did not PCR amplify viruses from a different genus, uninfected cells (C6/36, BHK, and Vero cells), or uninfected mosquitoes (using species listed in Tables 3– 6). The negative PCR reactions were still tested on the microarray and none were detected. Fifty-two virus strains from 46 different species were evaluated for PCR amplification and probe specificity, representing 46/144 (32%) of the total targeted viruses. Each microarray probe was evaluated for specificity to its intended target(s). Some PCR amplicons cross-hybridized to non-predicted probes (i.e. probes specific for a different virus or group of viruses); however, in each case there was no more than one such probe per subgroup and the average z-scores were never greater than 10. No probes cross-hybridized with viruses from a different genus.
| left11 | left11 | 4left1PCR amplification/microarray detection a | left11 | |||
| left11Virus | left11Strain | left11S BUNV | left11S CEV | left11M | left11L | left11Mosquito species b |
| left11Bunyamwera | left11330 | left11POS/no c | left11NEG d | left11POS/yes | left11POS/yes | left11n.t. |
| left11Bunyamwera | left11131B-06 | left11POS/no c | left11NEG d | left11POS/yes | left11POS/yes | left11n.t. |
| left11Bunyamwera | left11460 | left11POS/no c | left11NEG d | left11POS/yes | left11POS/yes | left11n.t. |
| left11Bwamba | left116502 | left11NEG e | left11POSd/yes | left11NEG c | left11NEG c | left11n.t. |
| left11Cache Valley | left11RV257 | left11POS/yes | left11NEG d | left11POS/yes | left11POS/no c | left11n.t. |
| left11Germiston | left11SAAr1050 | left11POS/no | left11NEG d | left11POS/yes | left11POS/no c | left11n.t. |
| left11Ilesha | left11Zika-54 | left11NEG | left11NEG d | left11POS/yes | left11NEG c | left11n.t. |
| left11La Crosse | left1197-WV-131 | left11NEG d | left11POS/yes c e | left11POS/yes | left11POS/yes | left11 Ae. aegypti |
| left11Maguari | left11MSP-18 | left11NEG c | left11NEG d | left11NEG | left11POS/no c | left11n.t. |
| left11Oropouche | left11TR9760 | left11NEG d | left11POS/yes | left11NEG | left11POS/yes | left11n.t. |
| left11Pongola | left11SA Tar | left11NEG d | left11POS/yes | left11NEG c | left11NEG c | left11n.t. |
| left11Tahyna | left11RV285 | left11NEG d | left11POS/yes | left11POS/no | left11POS/yes | left11n.t. |
Viral RNA derived from cell culture or infected mosquitoes were PCR amplified using GSPs. Amplicons were analyzed using the ArboChip5.1 microarray. POS, positive PCR amplification; NEG, negative PCR amplification; yes, detected by microarray; no, not detected by microarray; n.t., not tested.
Viruses propagated in cell culture and identified by microarray to species unless otherwise noted.
Virus-infected mosquito used for microarray evaluations, microarray detected at least one target for each virus.
ArboChip5.1 does not include probes specific to the target.
GSP set not specific for this clade.
CEV clade detection only.
The measured variability between replicates of the same samples was used to determine if the assay results were reproducible. Cell-culture derived WNV lineage 1 (WNVL1, strain NY397-99), CHIKV (strain INDO23574), and RVFV (strain ZH501) were PCR amplified using the GSP sets and analyzed by the microarray four times independently. The z-scores from the virus-specific probes were averaged for each replicate. The mean, standard deviation, 95% confidence interval and coefficient of variance was calculated for each virus. The results are summarized in Table 2.
Microarray identification of PCR amplicons using the consensus flavivirus GSPs was evaluated using 20 flaviviruses propagated in cell culture ( Table 3). A visual analysis example of WNVL1 (strain NY397-99) is shown in Figure 2. All of the flaviviruses tested were identified to species via the NS3 and NS5 gene targets and 15/20 flaviviruses (75%) were detected by all three gene targets. The Kunjin virus (KUNV), Rocio virus (ROCV), and Zika virus (ZIKV) strains tested did not PCR amplify using the flavivirus E gene GSPs. The JEV and Quang Binh virus (QBV) strains tested did amplify using the flavivirus E gene GSPs but were not detected by the microarray E gene probes. Multiple strains of TMUV, WNVL1, and WNVL2 were used to evaluate microarray identification of virus targets containing slight nucleotide differences. The 17 different flaviviruses evaluated represents 17/34 (50%) of the total flaviviruses targeted by the ArboChip5.1.
Flavivirus gene-specific PCR amplicons were identified using oligonucleotide microarray probes grouped by virus genus and gene, (A) Flavivirus E gene, (B) Flavivirus NS3 gene, and (C) Flavivirus NS5 gene, and sorted into subgroups based on phylogenetic clade and target virus(es). ECD signals were converted into z-scores. Subgroups with average z-scores greater than 10 were considered positive and used for virus identification. The plotted maximum z-scores represent the greatest individual probe z-score within a subgroup and were used to determine cross-hybridization. The PCR amplicons hybridized with probes in the Flavivirus generic, JEV clade, WNVL1/KUNV, and WNVL1 subgroups for all three gene targets. WNVL1 was differentiated from KUNV by the less than 10 z-scores for the KUNV subgroups. The virus abbreviations are defined in Table S1.
Single mosquitoes infected with DENV types 1–4, TMUV, JEV, WNVL1, and YFV were evaluated (virus strains and mosquito species are listed in Table 3). Overall, the results were similar to those obtained using the viruses propagated in cell culture, with the following exceptions. The PCR bands for DENV-4 infected Ae. albopictus were faint but they were still accurately identified by all three genes on the microarray. The E gene was not PCR amplified from either stain of TMUV infected Culex tarsalis and could not be detected on the microarray. To mimic field samples, single mosquitoes infected with DENV-1, TMUV, and WNVL1 were pooled with 24 negative mosquitoes. Compared to single infected mosquitoes, the identification results were the same but had overall lower z-scores. A WNVL1-infected and a JEV-infected Cx. pipiens were pooled with 23 negative mosquitoes to assess the amplification and detection of two distinct viruses that could be found in a field collected pool of mosquitoes. All three gene targets were amplified using the flavivirus GSP sets but the E genes of JEV and WNVL1 and the NS5 gene of WNVL1 were not detected using the microarray. Three of the five JEV-specific NS5 gene probes had z-scores greater than 10, but the average z-score for the subgroup was less than 10 (9.13). However, all of the JEV- and WNVL1-specific (out of 5 and 8, respectively) and two of the four WNVL1/KUNV NS3 probes had z-scores greater than 10 ( Figure S1). The JEV-specific probes and the WNVL1-specific probes did not hybridize to NS3 amplicons from the other virus when evaluated individually; therefore this is an example of microarray detecting the RNA from two related but distinct flaviviruses in the same mosquito pool.
Microarray identification of PCR amplicons using the consensus alphavirus GSPs was evaluated using 14 alphaviruses propagated in cell culture ( Table 4). A visual analysis example of CHIKV (strain INDO23574) is shown in Figure 3. All of the alphaviruses were identified to species via detection by the nsP1 and nsP4 gene targets and 10/14 (71%) were identified by all three gene targets. However, Ndumu virus (NDUV) and Ross River virus (RRV) were not PCR amplified using the alphavirus E1 GSP set and the Una virus (UNAV) nsP1 and E1 amplicons were not detected by the microarray probes. Subspecies of Sindbis virus (SINV), Ockelbo virus (OCKV) and Babanki virus (BBKV), could not be differentiated from SINV and the probes for all three viruses were placed in the “SINV_clade” subgroup. Likewise, ONNV and IOV, a subspecies of ONNV, could not be differentiated and the probes were placed into the same subgroup. The 14 alphaviruses evaluated represents 14/23 (61%) of the total alphaviruses targeted on the microarray design.
Alphavirus gene-specific PCR amplicons were identified using oligonucleotide microarray probes grouped by virus genus and gene, (A) Alphavirus E1 gene, (B) Alphavirus nsP1 gene, and (C) Alphavirus nsP4 gene, and sorted into subgroups based on phylogenetic clade and target virus(es). ECD signals were converted into z-scores. Subgroups with average z-scores greater than 10 were considered positive and used for virus identification. The plotted maximum z-scores represent the greatest individual probe z-score within a subgroup and were used to determine cross-hybridization. The PCR amplicons hybridized with probes in the CHIKV subgroups for all three gene targets and probes in the Alphavirus generic and SFV clade subgroups for the nsP1 and nsP4 genes. The virus abbreviations are defined in Table S1.
To mimic field samples, Aedes species mosquitoes infected with CHIKV, RRV, SINV, and western equine encephalomyelitis virus (WEEV) were evaluated individually and pooled with 24 uninfected mosquitoes (virus strains and mosquito species are listed in Table 4). As expected, the z-scores were the greatest when using PCR amplicons generated from cell culture propagated virus and were approximately twofold greater compared to using PCR amplicons from individual infected mosquitoes. Single infected mosquitoes pooled with 24 uninfected mosquitoes produced the lowest z-scores; however, the z-scores were still greater than 10 resulting in positive virus identification.
Microarray identification of phlebovirus GSP PCR amplicons were evaluated using six phleboviruses propagated in cell culture ( Table 5). A visual analysis example of RVFV (strain ZH548) is shown in Figure 4. All of the phleboviruses that were tested were PCR positive using the phlebovirus GSPs and 4/6 (67%) were identified to species via all three gene targets. However, sandfly fever Naples virus (SFNV) was not detected by the M segment probes. The five targeted virus species evaluated represents 5/23 (22%) of the total phleboviruses targeted by the ArboChip5.1. The microarray did not contain Chagres virus-specific probes but it was included to evaluate the detection of non-targeted viruses. Chagres virus was detected by the L segment Phlebovirus generic probes, showing the detection of non-targeted but related viruses is possible, but virus-specific identification is not.
Phlebovirus gene-specific PCR amplicons were identified using oligonucleotide microarray probes grouped by virus genus and segment, (A) Phlebovirus S segment, (B) Phlebovirus M segment, and (C) Phlebovirus L segment, and sorted into subgroups based on phylogenetic clade and target virus(es). ECD signals were converted into z-scores. Subgroups with average z-scores greater than 10 were considered positive and used for virus identification. The plotted maximum z-scores represent the greatest individual probe z-score within a subgroup and were used to determine cross-hybridization. The PCR amplicons hybridized with probes in the RVFV subgroups for all three segment targets and Phlebovirus generic subgroup for L segment. The virus abbreviations are defined in Table S1.
Culex pipiens infected with RVFV strain ZH501 were evaluated alone and in pools of 24 uninfected mosquitoes to simulate field conditions. The microarray identified RVFV via all three gene targets for both preparations.
Twelve orthobunyaviruses propagated in cell culture were used to evaluate microarray identification of phlebovirus GSP PCR amplicons ( Table 6). Example visual analysis of BUNV (strain 131B-06) is shown in Figure 5. The orthobunyaviruses tested could not be PCR amplified using a single pair of S segment GSPs. Therefore two sets of consensus S segments GSPs were created targeting the two major orthobunyavirus groups, the BUNV and California encephalitis virus (CEV) serogroups. Due to a lack of whole genome sequence information publically available and high rates of cross-hybridization of related orthobunyaviruses, Oropouche virus (OROV) and Tahyna virus (TAHV) were the only viruses evaluated that had virus-specific probes designed for all three genome segments. Seven of the 12 (58%) orthobunyaviruses were PCR amplified with three GSP sets. The microarray only detected all three segments from La Crosse virus (LACV); however, the M segment was only identified as belonging to the CEV clade (no M segment specific probes for LACV due to cross-reactivity with other CEV clade viruses). All of the orthobunyavirus tested were PCR amplified, detected, and identified to virus species by at least one target, except for Maguari virus, which was not detected by the microarray due to a lack of PCR amplification of the S and M segments and a lack of virus specific probes for the L segment. Multiple strains of BUNV were used to evaluate microarray identification of virus targets with slight nucleotide differences. The 10 different orthobunyavirus species evaluated represents 10/60 (17%) of the total orthobunyaviruses targeted on the microarray design.
Orthobunyavirus gene-specific PCR amplicons were identified using oligonucleotide microarray probes grouped by virus genus and segment, (A) Orthobunyavirus S segment, (B) Orthobunyavirus M segment, and (C) Orthobunyavirus L segment, and sorted into subgroups based on phylogenetic clade and target virus(es). ECD signals were converted into z-scores. Subgroups with average z-scores greater than 10 were considered positive and used for virus identification. The plotted maximum z-scores represent the greatest individual probe z-score within a subgroup and were used to determine cross-hybridization. The PCR amplicons hybridized with probes in the BUNV subgroups for the M and L segment targets but virus-specific probes could not be designed for the S segment. The BUNV amplicons did have z-scores greater than 10 for seven of the 42 S segment BUNV clade probes, but the average subgroup z-score was less than 10. The virus abbreviations are defined in Table S1.
Ae. aegypti-infected with LACV was used to evaluate orthobunyavirus detection in mosquitoes. All three segments were PCR amplified and detected by the microarray from single infected mosquitoes.
Ten-fold serial dilutions of RNA extracted from one infected mosquito pooled with 24 uninfected mosquitoes were used to determine the LLOD for WNVL1 (strain NY397-99), SINV (strain Ken07-611), and RVFV (strain ZH501). Pools of Cx. pipiens were used for WNVL1 and RVFV and pools of Ae. aegypti were used for SINV. The infected mosquito titers were as follows: WNVL1-infected and RVFV-infected Cx. pipiens were 10 4.6 PFU/mL and 10 6.4 PFU/mL, respectively, and SINV-infected Ae. Aegypti was 10 4.3 PFU/mL. The LLOD of cDNA by the using the microarray, which includes asymmetric PCR amplification and probe hybridization, was compared to qPCR and conventional PCR. The LLOD data is summarized in Table 7.
| left11 | 3left1Lower limits of detection (PFUe) | ||
| left11Virus | left11qPCR | left11Conv. PCR | left11Microarray |
| left11West Nile | left11200 | left11200 | left11200 |
| left11Sindbis | left1110 | left1110 | left11100 |
| left11Rift Valley fever | left11125 | left11125 | left111,250 |
The lower limits of detection determined for infected mosquitoes were evaluated by using 10-fold serial dilutions of RNA extracted from one infected mosquito pooled with 24 uninfected mosquitoes. PFUe, plaque forming unit equivalents; qPCR, real-time PCR, Conv. PCR, conventional PCR.
Mosquitoes collected in Thailand were used to determine the applicability of the ArboChip5.1 microarray for identifying virus RNA present in mosquito pools (n = 1–25). From1,445 mosquito pools (642 pools were collected in 2011 and 803 pools were collected in 2012) that were screened for the presence of flaviviruses by conventional PCR, 13 pools were confirmed as containing flavivirus RNA. Selected medically important mosquito pools, such as those containing Ae. aegypti, were screened for the presence of alphaviruses, phleboviruses, and BUNV group viruses, however, no positive pools were detected. The flavivirus RNA positive pools were further analyzed using the microarray ( Table 8). Visual analysis of the microarray data for sample Th9-0122 is shown in Figure 6 and the raw data analysis are shown in Dataset S1. Nine of the 13 pools were correctly identified by at least one gene targeted by the microarray. RNA sequences related to QBV were found in three pools not identified by the microarray. The other pool not identified by the microarray contained RNA related to Wang Thong virus, a virus not included in the ArboChip5.1 design due to a lack of sequence information in the targeted gene regions. The results were verified by virus isolation and sequencing of the PCR amplicons. Pool number Th9-0032 was identified in the field as QBV, but partial sequencing of the NS5 gene showed that while QBV was its closest match, it was only 78.3% identical. There was less than a 70 bp overlap between the targeted NS5 region that identified Th9-0032 as QBV and the partial sequence. Further analysis on the other genes will need to be completed to determine the identity of the QBV-like virus.
Screening methods indicated that the mosquito pool contained flavivirus RNA and cDNA from the pool was PCR amplified with Flavivirus (A) E, (B) NS3, and (C) NS5 GSPs. The PCR amplicons hybridized only with probes in the DENV3 subgroups for the (A) E and (C) NS5 gene targets. For the (B) NS3 gene, the amplicons hybridized with probes in the DENV clade and DENV2/3 (hybridizes with DENV2 and DENV3) subgroups, but did not hybridize with the DENV2-specific subgroup. The mosquito pool was identified as containing DENV-3 RNA.
| left11 | left11 | 3left1PCR result/microarray identification | left11 | ||
| left11Pool No. a | left11Mosquito species (pool size) | left11E | left11NS3 | left11NS5 | left11Sequencing result b |
| left11Th9-0011 | left11 Cx. quinquefasciatus (1) | left11NEG | left11NEG | left11POS/CxFV | left11CxFV |
| left11Th9-0024 | left11 Cx. vishnui (2) | left11POS/n.d. | left11NEG | left11NEG | left11QBV |
| left11Th9-0032 | left11 Cx. quinquefasciatus (6) | left11POS/n.d. | left11POS c/n.d. | left11POS c/QBV | left11QBV-like d |
| left11Th9-0122 | left11 Ae. aegypti (1) | left11POS/DENV3 | left11POS/DENV3 | left11POS/DENV3 | left11DENV3 |
| left11Th9-0164 | left11 Cx. tritaeniorhynchus (25) | left11POS/n.d. | left11POS/JEV | left11POS/JEV | left11JEV |
| left11Th9-0175 | left11 Cx. tritaeniorhynchus (25) | left11POS/n.d. | left11POS/JEV | left11POS/JEV | left11JEV |
| left11Th10-0040 | left11 Cx. vishnui (20) | left11NEG | left11POS/TMUV | left11POS/n.d. | left11TMUV |
| left11Th10-0121 | left11 Cx. vishnui (20) | left11NEG | left11POS/TMUV | left11POS/TMUV | left11TMUV |
| left11Th10-0217 | left11 Cx. vishnui (20) | left11NEG | left11POS/TMUV | left11POS/TMUV | left11TMUV |
| left11Th10-0552 | left11 Cx. vishnui (20) | left11NEG | left11POS/TMUV | left11POS/TMUV | left11TMUV |
| left11Th10-0578 | left11 Cx. fuscocephala (16) | left11NEG | left11POS/n.d. | left11NEG | left11WTV e |
| left11Th10-0591 | left11 Cx. gelidus (20) | left11NEG | left11NEG | left11POS c/n.d. | left11QBV |
| left11Th10-0767 | left11 Cx. gelidus (2) | left11NEG | left11NEG | left11POS c/n.d. | left11QBV |
cDNAs from mosquito pools that were found to contain viral RNA by flavivirus screening methods were PCR amplified using GSPs and analyzed using the ArboChip5.1 microarray for virus identification. POS, positive PCR amplification; NEG, negative PCR amplification; n.d., no detection; CxFV, Culex flavivirus; QBV, Quang Binh virus; DENV3, dengue virus type 3; JEV, Japanese encephalitis virus; TMUV, tembusu virus; WTV, Wang Thong virus.
Mosquito pool No. beginning with Th9 were collected in 2011, Th10 were collected in 2012.
Identifcations based on greater than 90% identity using partial NS5 sequences.
PCR amplification produces a weak visible band.
Partial NS5 sequence 78.3% identical to QBV.
WTV targeted probes not included on ArboChip5.1.
Virus-negative pools of Cx. vishnui, Cx. tritaeniorhynchus, Cx. quinquefasciatus, Cx. gelidus, Cx. terzii, Ae. albopictus, Ae. vexans, Mansonia uniformis, Armigeres subalbatus, and Anopheles peditaeniatus (n = 19–25 mosquitoes/pool) were processed and used to confirm that the microarray identifications were not from cross-hybridizing mosquito RNA or DNA. All mosquito pools that tested negative by PCR also produced negative microarray results.
The ArboChip5.1 consists of 2,097 oligonucleotide probes targeting 144 different mosquito-borne RNA viruses across the genera Flavivirus, Alphavirus, Orthobunyavirus, and Phlebovirus. For most of the selected viruses, capture probes were designed to multiple genes to increase the odds of detection, identification, and confirmation. The assay also utilized consensus GSPs for broad-range PCR amplification of viral RNA, even in the presence of an abundance amount of mosquito nucleic acids. The microarray platform described here, and as we previously discussed, is portable and rugged enough to endure travel and field conditions [30]. The microarray was able to identify viral RNA extracted from cell culture, laboratory-infected mosquitoes, and field-collected mosquitoes, thus making it versatile and practical. To our knowledge, this is the most comprehensive microarray assay specifically designed for arbovirus surveillance in mosquito vectors.
Previously developed and newly defined assays were created or adapted to advance and to streamline the process for using microarrays in field surveillance. RNA extraction and the PCR field-based procedures previously described [39] were modified slightly to fit the needs of the microarray. Asymmetric PCR amplification was utilized to produce a higher ratio of reverse compliment amplicons to hybridize with the microarray probes. In addition, biotinylation of the amplicons was incorporated into the PCR to improve the assay efficiency and ease of use. In a previous study, we evaluated using direct detection of viral RNA without amplification, random primed PCR amplification, and gene-specific PCR amplification and determined that gene-specific PCR amplification was needed for microarray detection of flavivirus RNA in infected mosquitoes [30]. Gene-specific multiplexed PCR was found to reduce the sensitivity of microarray detection (data not shown); therefore, the reactions were performed individually with each GSP set. For a given virus genus, the amplified gene targets were pooled after PCR to reduce the number of microarrays to be tested. Though some level of variability was observed, the outcomes of the microarrays were found to be reproducible. However, the microarray chips have been found to fail on occasion if they were not stored or stripped properly.
The limiting factors for creating the viral diagnostic DNA microarray presented here were the availability of viral sequences present in publically available databases and the sequence diversity in the targeted nucleotide regions. Flaviviruses and alphaviruses are generally well characterized, and their entire genomic sequences are available for most known species. As a result, unique probes targeting all three genes of diagnostic interest for most flaviviruses and alphaviruses were created. We were able to detect and identify all of the flaviviruses and alphaviruses tested from both cell culture and infected mosquitoes, except for a few closely related alphaviruses as discussed below. Closely related flaviviruses, such as the four serotypes of DENV and WNVL1, WNVL2, and KUNV were clearly differentiated using the microarray. Additionally, JEV and WNVL1, both JEV clade flaviviruses, were detected from a pool of laboratory infected mosquitoes, showcasing the ability of the microarray to differentiate between closely related viruses that might be found in the same mosquito pool. Though we were able to differentiate between many closely related alphaviruses, we were not able to differentiate between SINV, OCKV, and BBKV and between ONNV and IOV. This was because there was not enough sequence diversity between the listed alphaviruses in the targeted nucleotide regions to create probes that would not cross-hybridize using the described assay conditions. Instead, the viruses were identified as either part of the SINV or ONNV clades and other data, such as the mosquito species and collection location, could be used to distinguish the specific alphavirus.
Some bunyaviruses, such as BUNV ( Orthobunyavirus), LACV ( Orthobunyavirus), and RVFV ( Phlebovirus), are very well studied and genetically characterized. However, the Bunyaviridae family is expansive and diverse, and despite many characterization efforts [43], [45], [46], [47], [48], many bunyavirus genomes have not been fully sequenced. Sequence information is especially lacking for the L segment for many of the orthobunyaviruses, as evident by our nominal L segment probes and was the reason why we could not design probes to all three segments for most of the evaluated orthobunyaviruses. Even in some cases where complete sequence information was available, virus-specific probes could not be designed for all of the segments due to sequence similarities. For instance, the S segment of orthobunyaviruses share close sequence identity [45], making microarray differentiation of this segment difficult. Moreover, bunyaviruses, like many other segmented viruses, can use natural genome reassortment as a driving force for evolution [49], [50]. For example, Ngari virus is the reassortment of two other orthobunyaviruses: the S and L segments from BUNV and the M segment from Batai virus [51], [52]. These factors combined made it difficult to design virus-specific probes to all three segments for many of these viruses. However, there was enough sequence data available and nucleotide diversity to design probes to make microarray identification of at least one segment for the orthobunyaviruses and phleboviruses tested.
Field-collected mosquitoes have varied arbovirus titers based on the virus strain, mosquito species, environmental conditions, and infection status (nondisseminated limited to the midgut or disseminated throughout the mosquito's body) [53], [54]. Dilutions of mosquito pools containing a single mosquito with a known disseminated infection with WNV, SINV, or RVFV and 24 uninfected mosquitoes were made to mimic the virus titer variations. The LLODs were determined for viral RNA present in pools of laboratory infected mosquitoes and were compared to modified qPCR and conventional PCR assays. The microarray assay was expected to be less sensitive than the PCR assays because the microarray has an additional detection bottleneck at the point of probe hybridization. Yet the microarray LLODs compared to the PCR assays were at most only a log greater, making it suitable by comparison for diagnostic use. If greater sensitivities are desired, longer hybridization times (data not shown) and post-hybridization signal amplification [37] would help increase detection of low virus titers. However, the methods described here were optimized to reduce the assay time while maintaining a sensitivity level adequate for analyzing field-collected samples. This was evaluated in Thailand in the springs of 2011 and 2012 using various numbers of pooled mosquitoes. From the field collections, RNA from medically relevant viruses, including DENV-3 and JEV, and TMUV, a virus known to cause severe disease in ducks [55], was identified. Viral RNA from two arthropod-specific flaviviruses, CxFV and a QBV-like virus, were also identified, though RNA isolated from three other flavivirus PCR positive pools could not be identified. After passage of the PCR positive samples in cultured cells, QBV RNA was identified using the microarray, suggesting that the level of QBV RNA in the mosquito pools was below the microarray's LLOD. Bolling et al. noticed a bimodal distribution of CxFV in a naturally infected Cx. pipiens laboratory colony [56] which, along with the other factors mentioned above for varied titers, may explain why some arthropod-specific flaviviruses from field samples were below microarray's LLOD.
The intended use of the ArboChip5.1 is for arbovirus surveillance studies targeting mosquitoes. The concept is to use generic screening assays to identify mosquito pools potentially containing arboviral RNA. The screening assays should be based on the field or laboratory team's capabilities and can include the conventional and real-time assays cited in this paper or other published assays [36], [40], [41], [42], [43], [44], [57], [58]. Viral RNA positive mosquito pools would then be PCR amplified using the GSPs for the genus (or genera) of interest and analyzed using the microarray platform. These PCR assays should not be used alone for screening mosquito pools for arbovirus RNA because 1) asymmetric PCR amplification can reduce sensitivity, 2) biotin would be wasted on many negative pools, increasing the costs of surveillance and 3) the degenerate GSP sets were designed to increase assay sensitivity, but at the cost of specificity, meaning additional non-specific bands are produced which can confound interpretation of the results. The microarray assay could be used to analyze viral RNA isolated from animal tissue or serum, or from sand flies, because many phleboviruses are included in the design. However, viral RNA isolated from these sources has not been evaluated using the microarray and associated methods.
Multiplexed-PCR methods for viral RNA identification can be efficient for a small sub-set of viruses, yet when there is a need to discern between a larger set of mosquito-borne viruses, PCR approaches for virus identification can become laborious. The microarray, as described here, is a time and cost effective method for the detection of numerous viral RNA species potentially present within an infected mosquito with limited bias. Each ElectraSense 4×2K microarray has four wells to analyze four samples at a time, and when using the rotisserie hybridization incubator described here, holding four microarray chips at a time, up to 16 samples can be processed in as little as 12 hours. The major limitations of this assay are that only known viral sequences can be used for probe design, meaning that it cannot identify novel viruses, and it cannot discern between slight nucleotide changes, meaning that it cannot anticipate viral evolution. Even though previously unknown or non-targeted viral RNA maybe detected because of some sequence homology in one of the targeted regions, the microarray would not be able to identify novel viruses. On the other hand, next-generation sequencing (NGS) has the potential to provide the most amount of nucleic acid information, but they are not portable and require more time and labor to create sequencing libraries and analyze the results. Moreover, NGS systems are much more expensive to operate, generally costing over $1000 per run [59]. To compare, ElectraSense 4×2K microarray chips costs approximately $500 each and can be used four to five times, thus costing $25 to $31.25 per sample.
In summary, the ArboChip5.1 microarray can identify multiple genes from a wide range of mosquito-borne RNA viruses through broad-range PCR amplification and detection with virus-specific probes. It is vastly more multiplexed than PCR assays alone, more specific than universal microarrays, and more cost effective than most sequencing platforms. The microarray reader is small and rugged, making it field-portable. This system is an ideal tool for active surveillance or monitoring programs in regions where little is known about the circulating mosquito-borne viruses. We have demonstrated that it detects many viruses of medical importance, such as DENV, YFV, JEV, and CHIKV. In addition, the microarray targets many viruses that are also major causes of animal disease, such as RVFV, VEEV, and WNV. The ultimate goal is to provide researchers, veterinarians, and clinicians with a diagnostic tool that will allow them to recognize previously known pathogens that are emerging or re-emerging before they become major health issues.
Example data analysis. Data analysis worksheet with example data from the field collected mosquito pool Th9-0122 ( Figure 6, Table 8). Individual ECD signals and calculated z-scores are shown for each probe. The data summary shows the average z-scores and maximum z-scores from each subgroup. Visual analysis of the subgroups is provided for each group (virus genus and gene target).
(XLSX)
Click here for additional data file.
Detection of JEV and WNVL1 from a dual-infected pool of Cx. pipiens mosquitoes. A mosquito pool (n = 25) containing two infected Cx. pipiens, one each with JEV and WNVL1, and 23 uninfected mosquitoes were processed together and PCR amplified using the Flavivirus GSP sets. The NS3 PCR amplicons hybridized with probes in the JEV-specific, WNVL1/KUNV, and WNVL1-specific subgroups. The JEV and WNVL1 probes have not been observed to cross-hybridize to the other virus when analyzed individually, thus showing the detection of RNA from two related but distinct flaviviruses in a single mosquito pool. The virus abbreviations are defined in Table S1.
(TIF)
Click here for additional data file.
Target viruses. List of the ArboChip5.1 targeted mosquito-borne RNA viruses, sorted by genera and clades (as determined by phylogenetic comparisons of the gene target sequences and not necessarily represented by taxonomic clades), with the number of virus-specific and non-specific probes.
(XLSX)
Click here for additional data file.
Probe list. List of the ArboChip5.1 oligonucleotide probes created for the multi-gene detection of RNA from mosquito-borne viruses. For each of 2,097 probes, the probe name, group (genus and gene target), subgroup (clade and virus), sequence source (GenBank accession number), start position, design source, and sequence is listed.
(XLSX)
Click here for additional data file.
We thank Sarah Pisarcik, Jennifer Groebner, Collin Fitzpatrick, Susana Padilla, and Steven Barnes, Virology Division, USAMRIID, for laboratory support, Cindy Rossi, Diagnostic Systems Division, USAMRIID, for providing viruses, Dr. Leonard Wasieloski, Diagnostic Systems Division, USAMRIID, for probe design and data analysis counselling, Dr. Brian Evans, Boonsong Jaichapor, Prasan Kankaew, Dr. Alongkot Ponlawat, Ampornpan Kengluecha, and Arissara Pomgsiri, Department of Entomology, AFRIMS, Thailand, for field support, and Dr. Dacri Smith and Douglas Brackney, College of Veterinary Medicine and Biological Sciences, Colorado State University, for their critical review of the manuscript.
The mention of trade names or commercial products does not constitute endorsement or recommendation for use by the Department of the Army or the Department of Defense. The opinions and assertions contained herein are those of the authors and are not to be construed as official or reflecting the views of the Department of the Army or the Department of Defense.


Installing on Linux
Deploy KubeSphere on QingCloud Instance
Introduction
For a production environment, we need to consider the high availability of the cluster. If the key components (e.g. kube-apiserver, kube-scheduler, and kube-controller-manager) are all running on the same master node, Kubernetes and KubeSphere will be unavailable once the master node goes down. Therefore, we need to set up a high-availability cluster by provisioning load balancers with multiple master nodes. You can use any cloud load balancer, or any hardware load balancer (e.g. F5). In addition, Keepalived and HAproxy, or Nginx is also an alternative for creating high-availability clusters.
This tutorial walks you through an example of how to create two QingCloud Load Balancers, serving as the internal load balancer and external load balancer respectively, and of how to implement high availability of master and etcd nodes using the load balancers.
Prerequisites
- Please make sure that you already know how to install KubeSphere with a multi-node cluster by following the guide. For the detailed information about the config yaml file that is used for installation, see Multi-node Installation. This tutorial focuses more on how to configure load balancers.
- You need a QingCloud account to create load balancers, or follow the guide of any other cloud provider to create load balancers.
- Considering data persistence, for a production environment, we recommend you to prepare persistent storage and create a StorageClass in advance. For development and testing, you can use the integrated OpenEBS to provision LocalPV as the storage service directly.
Architecture
This example prepares six machines of Ubuntu 16.04.6. We will create two load balancers, and deploy three master and etcd nodes on three of the machines. You can configure these master and etcd nodes in config-sample.yaml
of KubeKey (Please note that this is the default name, which can be changed by yourself).
Note
Install HA Cluster
Create Load Balancers
This step demonstrates how to create load balancers on QingCloud platform.
Create an Internal Load Balancer
- Log in QingCloud Console. In the menu on the left, under Network & CDN, select Load Balancers. Click Create to create a load balancer.
- In the pop-up window, set a name for the load balancer. Choose the VxNet where your machines are created from the Network drop-down list. Here is
pn
. Other fields can be default values as shown below. Click Submit to finish.
- Click the load balancer. In the detailed information page, create a listener that listens on port
6443
with the Listener Protocol set asTCP
.
- Name: Define a name for this Listener
- Listener Protocol: Select
TCP
protocol - Port:
6443
- Load mode:
Poll
Click Submit to continue.
Note
6443
has been added to the firewall rules and the external traffic can pass through 6443
. Otherwise, the installation will fail. If you are using QingCloud platform, you can find the information in Security Groups under Security.- Click Add Backend, and choose the VxNet you just selected (in this example, it is
pn
). Click the button Advanced Search, choose the three master nodes, and set the port to6443
which is the default secure port of api-server.
Click Submit when you finish.
- Click the button Apply Changes to activate the configurations. At this point, you can find the three masters have been added as the backend servers of the listener that is behind the internal load balancer.
Note
Not Available
after you added them as backends. This is normal since the port 6443
of api-server is not active on master nodes yet. The status will change to Active
and the port of api-server will be exposed after the installation finishes, which means the internal load balancer you configured works as expected.Record the Intranet VIP shown under Networks. The IP address will be added later to the config yaml file.
Create an External Load Balancer
You need to create an EIP in advance. To create an EIP, go to Elastic IPs under Networks & CDN.
Note
- Similarly, create an external load balancer while don’t select VxNet for the Network field. Bind the EIP that you created to this load balancer by clicking Add IPv4.
- In the load balancer detailed information page, create a listener that listens on port
30880
(NodePort of KubeSphere console) with the Listener Protocol set asHTTP
.
Note
30880
has been added to the firewall rules and the external traffic can pass through 6443
. Otherwise, the installation will fail. If you are using QingCloud platform, you can find the information in Security Groups under Security.- Click Add Backend. In Advanced Search, choose the
six
machines on which we are going to install KubeSphere within the VxNetpn
, and set the port to30880
.
Click Submit when you finish.
- Click Apply Changes to activate the configurations. At this point, you can find the six machines have been added as the backend servers of the listener that is behind the external load balancer.
Download KubeKey
Kubekey is the next-gen installer which provides an easy, fast and flexible way to install Kubernetes and KubeSphere v3.0.0.
Follow the step below to download KubeKey.
Download KubeKey from GitHub Release Page or use the following command directly.
wget https://github.com/kubesphere/kubekey/releases/download/v1.0.0/kubekey-v1.0.0-linux-amd64.tar.gz -O - | tar -xz
Download KubeKey using the following command:
wget -c https://kubesphere.io/download/kubekey-v1.0.0-linux-amd64.tar.gz -O - | tar -xz
Make kk
executable:
chmod +x kk
Create an example configuration file with default configurations. Here Kubernetes v1.17.9 is used as an example.
./kk create config --with-kubesphere v3.0.0 --with-kubernetes v1.17.9
Note
Cluster Node Planning
As we adopt the HA topology with stacked control plane nodes, where etcd nodes are colocated with master nodes, we will define the master nodes and etcd nodes are on the same three machines.
| Property | Description |
|---|---|
hosts |
Detailed information of all nodes |
etcd |
etcd node names |
master |
Master node names |
worker |
Worker node names |
- Put the master node name (master1, master2 and master3) under
etcd
andmaster
respectively as below, which means these three machines will be assigned with both the master and etcd role. Please note that the number of etcd needs to be odd. Meanwhile, we do not recommend you to install etcd on worker nodes since the memory consumption of etcd is very high. Edit the configuration file, and we use Ubuntu 16.04.6 in this example.
config-sample.yaml Example
spec:
hosts:
- {name: master1, address: <IP_ADDRESS>, internalAddress: <IP_ADDRESS>, user: ubuntu, password: Testing123}
- {name: master2, address: <IP_ADDRESS>, internalAddress: <IP_ADDRESS>, user: ubuntu, password: Testing123}
- {name: master3, address: <IP_ADDRESS>, internalAddress: <IP_ADDRESS>, user: ubuntu, password: Testing123}
- {name: node1, address: <IP_ADDRESS>, internalAddress: <IP_ADDRESS>, user: ubuntu, password: Testing123}
- {name: node2, address: <IP_ADDRESS>, internalAddress: <IP_ADDRESS>, user: ubuntu, password: Testing123}
- {name: node3, address: <IP_ADDRESS>, internalAddress: <IP_ADDRESS>, user: ubuntu, password: Testing123}
roleGroups:
etcd:
- master1
- master2
- master3
master:
- master1
- master2
- master3
worker:
- node1
- node2
- node3
For a complete configuration sample explanation, please see this file.
Configure the Load Balancer
In addition to the node information, you need to provide the load balancer information in the same yaml file. For the Intranet VIP address, you can find it in step 5 mentioned above. Assume the VIP address and listening port of the internal load balancer are <IP_ADDRESS>
and 6443
respectively, and you can refer to the following example.
The configuration example in config-sample.yaml
## Internal LB config example
## apiserver_loadbalancer_domain_name: "lb.kubesphere.local"
controlPlaneEndpoint:
domain: lb.kubesphere.local
address: "<IP_ADDRESS>"
port: "6443"
Note
- The address and port should be indented by two spaces in
config-sample.yaml
, and the address should be VIP. - The domain name of the load balancer is
lb.kubesphere.local
by default for internal access. If you need to change the domain name, please uncomment and modify it.
After that, you can enable any components you need by following Enable Pluggable Components and start your HA cluster installation.
Kubernetes Cluster Configuration (Optional)
Kubekey provides some fields and parameters to allow the cluster administrator to customize Kubernetes installation, including Kubernetes version, network plugins and image registry. There are some default values provided in config-example.yaml
. Optionally, you can modify the Kubernetes related configuration in config-example.yaml
according to your needs. See config-example.md for detailed explanation.
Persistent Storage Plugin Configuration
As we mentioned in the prerequisites, considering data persistence in a production environment, you need to prepare persistent storage and configure the storage plugin (e.g. CSI) in config-sample.yaml
to define which storage service you want.
Note
Available Storage Plugins & Clients
- Ceph RBD & CephFS
- GlusterFS
- NFS
- QingCloud CSI
- QingStor CSI
- More plugins are WIP, which will be added soon
For each storage plugin configuration, you can refer to config-example.md to get detailed explanation. Make sure you have configured the storage plugin before you get started. KubeKey will create a StorageClass and persistent volumes for related workloads during the installation.
Enable Pluggable Components (Optional)
KubeSphere has decoupled some core feature components since v2.1.0. These components are designed to be pluggable which means you can enable them either before or after installation. By default, KubeSphere will be started with a minimal installation if you do not enable them.
You can enable any of them according to your demands. It is highly recommended that you install these pluggable components to discover the full-stack features and capabilities provided by KubeSphere. Please ensure your machines have sufficient CPU and memory before enabling them. See Enable Pluggable Components for details.
Start to Bootstrap a Cluster
After you complete the configuration, you can execute the following command to start the installation:
./kk create cluster -f config-sample.yaml
Verify the Installation
Inspect the logs of installation. When you see the successful logs as follows, congratulations and enjoy it!
kubectl logs -n kubesphere-system $(kubectl get pod -n kubesphere-system -l app=ks-install -o jsonpath='{.items[0].metadata.name}') -f
#####################################################
### Welcome to KubeSphere! ###
#####################################################
Console: http://<IP_ADDRESS>:30880
Account: admin
Password: P@88w0rd
NOTES：
1. After logging into the console, please check the
monitoring status of service components in
the "Cluster Management". If any service is not
ready, please wait patiently until all components
are ready.
2. Please modify the default password after login.
#####################################################
https://kubesphere.io 2020-08-13 10:50:24
#####################################################
Verify the HA Cluster
Now that you have finished the installation, you can go back to the detailed information page of both the internal and external load balancers to see the status.
Both listeners show that the status is Active
, meaning the node is up and running.
In the web console of KubeSphere, you can also see that all the nodes are functioning well.
To verify if the cluster is highly available, you can turn off an instance on purpose. For example, the above dashboard is accessed through the address IP: 30880
(the EIP address here is the one bound to the external load balancer). If the cluster is highly available, the dashboard will still work well even if you shut down a master node.


module Hashtbl: sig .. end
Hash tables are hashed association tables, with in-place modification.
type t('a, 'b);
'a
to type 'b
.let create: (~random: bool=?, int) => t('a, 'b);
Hashtbl.create n
creates a new, empty hash table, with
initial size n
. For best results, n
should be on the
order of the expected number of elements that will be in
the table. The table grows as needed, so n
is just an
initial guess.
The optional random
parameter (a boolean) controls whether
the internal organization of the hash table is randomized at each
execution of Hashtbl.create
or deterministic over all executions.
A hash table that is created with ~random:false
uses a
fixed hash function (Hashtbl.hash
) to distribute keys among
buckets. As a consequence, collisions between keys happen
deterministically. In Web-facing applications or other
security-sensitive applications, the deterministic collision
patterns can be exploited by a malicious user to create a
denial-of-service attack: the attacker sends input crafted to
create many collisions in the table, slowing the application down.
A hash table that is created with ~random:true
uses the seeded
hash function Hashtbl.seeded_hash
with a seed that is randomly
chosen at hash table creation time. In effect, the hash function
used is randomly selected among 2^{30}
different hash functions.
All these hash functions have different collision patterns,
rendering ineffective the denial-of-service attack described above.
However, because of randomization, enumerating all elements of the
hash table using Hashtbl.fold
or Hashtbl.iter
is no longer
deterministic: elements are enumerated in different orders at
different runs of the program.
If no ~random
parameter is given, hash tables are created
in non-random mode by default. This default can be changed
either programmatically by calling Hashtbl.randomize
or by
setting the R
flag in the OCAMLRUNPARAM
environment variable.
Before 4.00.0 the random
parameter was not present and all
hash tables were created in non-randomized mode.
let clear: t('a, 'b) => unit;
reset
instead of clear
to shrink the
size of the bucket table to its initial size.let reset: t('a, 'b) => unit;
let copy: t('a, 'b) => t('a, 'b);
let add: (t('a, 'b), 'a, 'b) => unit;
Hashtbl.add tbl x y
adds a binding of x
to y
in table tbl
.
Previous bindings for x
are not removed, but simply
hidden. That is, after performing Hashtbl.remove
tbl x
,
the previous binding for x
, if any, is restored.
(Same behavior as with association lists.)let find: (t('a, 'b), 'a) => 'b;
Hashtbl.find tbl x
returns the current binding of x
in tbl
,
or raises Not_found
if no such binding exists.let find_all: (t('a, 'b), 'a) => list('b);
Hashtbl.find_all tbl x
returns the list of all data
associated with x
in tbl
.
The current binding is returned first, then the previous
bindings, in reverse order of introduction in the table.let mem: (t('a, 'b), 'a) => bool;
Hashtbl.mem tbl x
checks if x
is bound in tbl
.let remove: (t('a, 'b), 'a) => unit;
Hashtbl.remove tbl x
removes the current binding of x
in tbl
,
restoring the previous binding if it exists.
It does nothing if x
is not bound in tbl
.let replace: (t('a, 'b), 'a, 'b) => unit;
Hashtbl.replace tbl x y
replaces the current binding of x
in tbl
by a binding of x
to y
. If x
is unbound in tbl
,
a binding of x
to y
is added to tbl
.
This is functionally equivalent to Hashtbl.remove
tbl x
followed by Hashtbl.add
tbl x y
.let iter: (('a, 'b) => unit, t('a, 'b)) => unit;
Hashtbl.iter f tbl
applies f
to all bindings in table tbl
.
f
receives the key as first argument, and the associated value
as second argument. Each binding is presented exactly once to f
.
The order in which the bindings are passed to f
is unspecified.
However, if the table contains several bindings for the same key,
they are passed to f
in reverse order of introduction, that is,
the most recent binding is passed first.
If the hash table was created in non-randomized mode, the order
in which the bindings are enumerated is reproducible between
successive runs of the program, and even between minor versions
of OCaml. For randomized hash tables, the order of enumeration
is entirely random.
let fold: (('a, 'b, 'c) => 'c, t('a, 'b), 'c) => 'c;
Hashtbl.fold f tbl init
computes
(f kN dN ... (f k1 d1 init)...)
,
where k1 ... kN
are the keys of all bindings in tbl
,
and d1 ... dN
are the associated values.
Each binding is presented exactly once to f
.
The order in which the bindings are passed to f
is unspecified.
However, if the table contains several bindings for the same key,
they are passed to f
in reverse order of introduction, that is,
the most recent binding is passed first.
If the hash table was created in non-randomized mode, the order
in which the bindings are enumerated is reproducible between
successive runs of the program, and even between minor versions
of OCaml. For randomized hash tables, the order of enumeration
is entirely random.
let length: t('a, 'b) => int;
Hashtbl.length tbl
returns the number of bindings in tbl
.
It takes constant time. Multiple bindings are counted once each, so
Hashtbl.length
gives the number of times Hashtbl.iter
calls its
first argument.let randomize: unit => unit;
Hashtbl.randomize()
, hash tables are created in
randomized mode by default: Hashtbl.create
returns randomized
hash tables, unless the ~random:false
optional parameter is given.
The same effect can be achieved by setting the R
parameter in
the OCAMLRUNPARAM
environment variable.
It is recommended that applications or Web frameworks that need to
protect themselves against the denial-of-service attack described
in Hashtbl.create
call Hashtbl.randomize()
at initialization
time.
Note that once Hashtbl.randomize()
was called, there is no way
to revert to the non-randomized default behavior of Hashtbl.create
.
This is intentional. Non-randomized hash tables can still be
created using Hashtbl.create ~random:false
.
Since 4.00.0
type statistics = {
|
num_bindings : int; |
(* |
Number of bindings present in the table.
Same value as returned by
Hashtbl.length . | *) |
|
num_buckets : int; |
(* |
Number of buckets in the table.
| *) |
|
max_bucket_length : int; |
(* |
Maximal number of bindings per bucket.
| *) |
|
bucket_histogram : int array; |
(* |
Histogram of bucket sizes. This array
histo has
length max_bucket_length + 1 . The value of
histo.(i) is the number of buckets whose size is i . | *) |
let stats: t('a, 'b) => statistics;
Hashtbl.stats tbl
returns statistics about the table tbl
:
number of buckets, size of the biggest bucket, distribution of
buckets by size.For instance, one might want to specialize a table for integer keys:
module IntHash = struct type t = int let equal i j = i=j let hash i = i land max_int end module IntHashtbl = Hashtbl.Make(IntHash) let h = IntHashtbl.create 17 in IntHashtbl.add h 12 "hello";;
This creates a new module IntHashtbl
, with a new type 'a
IntHashtbl.t
of tables from int
to 'a
. In this example, h
contains string
values so its type is string IntHashtbl.t
.
Note that the new type 'a IntHashtbl.t
is not compatible with
the type ('a,'b) Hashtbl.t
of the generic interface. For
example, Hashtbl.length h
would not type-check, you must use
IntHashtbl.length
.
module type HashedType = sig .. end
Hashtbl.Make
.
module type S = sig .. end
Hashtbl.Make
.
module Make: (H: HashedType) => S with type key = H.t;
module type SeededHashedType = sig .. end
Hashtbl.MakeSeeded
.
module type SeededS = sig .. end
Hashtbl.MakeSeeded
.
module MakeSeeded: (H: SeededHashedType) => SeededS with type key = H.t;
let hash: 'a => int;
Hashtbl.hash x
associates a nonnegative integer to any value of
any type. It is guaranteed that
if x = y
or Pervasives.compare x y = 0
, then hash x = hash y
.
Moreover, hash
always terminates, even on cyclic structures.let seeded_hash: (int, 'a) => int;
let hash_param: (int, int, 'a) => int;
Hashtbl.hash_param meaningful total x
computes a hash value for x
,
with the same properties as for hash
. The two extra integer
parameters meaningful
and total
give more precise control over
hashing. Hashing performs a breadth-first, left-to-right traversal
of the structure x
, stopping after meaningful
meaningful nodes
were encountered, or total
nodes (meaningful or not) were
encountered. If total
as specified by the user exceeds a certain
value, currently 256, then it is capped to that value.
Meaningful nodes are: integers; floating-point
numbers; strings; characters; booleans; and constant
constructors. Larger values of meaningful
and total
means that
more nodes are taken into account to compute the final hash value,
and therefore collisions are less likely to happen. However,
hashing takes longer. The parameters meaningful
and total
govern the tradeoff between accuracy and speed. As default
choices, Hashtbl.hash
and Hashtbl.seeded_hash
take
meaningful = 10
and total = 100
.let seeded_hash_param: (int, int, int, 'a) => int;
Hashtbl.hash_param
that is further parameterized by
an integer seed. Usage:
Hashtbl.seeded_hash_param meaningful total seed x
.


stellite
.almsoft
.net
home
Home
dashboard
Dashboard
reorder
Blocks
payments
Payments
flight_land
Ports
launch
Getting Started
language
Other Pools
Alloy (XAO)
Powered by
nodejs-pool
&
poolui
MIT Licence
menu
Network:
{{network.difficulty | difficultyToHashRate | toHashRate}}
Pool:
{{poolStats.global.hashRate | toHashRate}}
You:
{{yourTotalHashRate | toHashRate}}
settings
Options
build


| Trees | Indices | Toggle frames |
|---|
AbstractImage --+ | AbstractImageSequence --+ | ImageGrid
An imaginary grid placed over an image allowing easy access to regular regions of that image.
The grid can be accessed either as a complete image, or as a sequence of images. The most useful applications are to access the grid as a TextureGrid:
image_grid = ImageGrid(...) texture_grid = image_grid.get_texture_sequence()
or as a Texture3D:
image_grid = ImageGrid(...) texture_3d = Texture3D.create_for_image_grid(image_grid)
|
__init__(self,
image,
rows,
columns,
item_width=None,
item_height=None,
row_padding=0,
column_padding=0)
Construct a grid for the given image.
|
|
| Texture |
get_texture(self,
rectangle=False)
A Texture view of this image.
|
| ImageData |
get_image_data(self)
Get an ImageData view of this image.
|
| TextureSequence |
get_texture_sequence(self)
Get a TextureSequence.
|
| __len__(self) | |
| AbstractImage |
__getitem__(self,
index)
Retrieve a (list of) image.
|
| Iterator |
__iter__(self)
Iterate over the images in sequence.
|
| __repr__(self) (Inherited from pyglet.image.AbstractImage) | |
|
__setitem__(self,
slice,
image)
Replace one or more images in the sequence.
(Inherited from pyglet.image.AbstractImageSequence)
|
|
|
blit(self,
x,
y,
z=0)
Draw this image to the active framebuffers.
(Inherited from pyglet.image.AbstractImage)
|
|
|
blit_into(self,
source,
x,
y,
z)
Draw
(Inherited from pyglet.image.AbstractImage)
source on this image. |
|
|
blit_to_texture(self,
target,
level,
x,
y,
z=0)
Draw this image on the currently bound texture at
(Inherited from pyglet.image.AbstractImage)
target . |
|
| Animation |
get_animation(self,
period,
loop=True)
Create an animation over this image sequence for the given constant
framerate.
(Inherited from pyglet.image.AbstractImageSequence)
|
| Texture |
get_mipmapped_texture(self)
Retrieve a Texture instance with all mipmap levels filled in.
(Inherited from pyglet.image.AbstractImage)
|
| AbstractImage |
get_region(self,
x,
y,
width,
height)
Retrieve a rectangular region of this image.
(Inherited from pyglet.image.AbstractImage)
|
|
save(self,
filename=None,
file=None,
encoder=None)
Save this image to a file.
(Inherited from pyglet.image.AbstractImage)
|
| ImageData |
image_data
An ImageData view of this image.
(Inherited from pyglet.image.AbstractImage)
|
| Texture |
mipmapped_texture
A Texture view of this image.
(Inherited from pyglet.image.AbstractImage)
|
| Texture |
texture
Get a Texture view of this image.
(Inherited from pyglet.image.AbstractImage)
|
| TextureSequence |
texture_sequence
Access this image sequence as a texture sequence.
(Inherited from pyglet.image.AbstractImageSequence)
|
| int |
anchor_x = 0
X coordinate of anchor, relative to left edge of image data
(Inherited from pyglet.image.AbstractImage)
|
| int |
anchor_y = 0
Y coordinate of anchor, relative to bottom edge of image data
(Inherited from pyglet.image.AbstractImage)
|
| int |
height
Height of image
(Inherited from pyglet.image.AbstractImage)
|
| int |
width
Width of image
(Inherited from pyglet.image.AbstractImage)
|
Construct a grid for the given image.
You can specify parameters for the grid, for example setting the padding between cells. Grids are always aligned to the bottom-left corner of the image.
A Texture view of this image.
By default, textures are created with dimensions that are powers of two. Smaller images will return a TextureRegion that covers just the image portion of the larger texture. This restriction is required on older video cards, and for compressed textures, or where texture repeat modes will be used, or where mipmapping is desired.
If the rectangle
parameter is True, this restriction is ignored
and a texture the size of the image may be created if the driver
supports the GL_ARB_texture_rectangle or
GL_NV_texture_rectangle extensions. If the extensions are not
present or the image already is a texture, the rectangle
parameter
is ignored.
Examine Texture.target to determine if the returned texture is a rectangle (GL_TEXTURE_RECTANGLE_ARB or GL_TEXTURE_RECTANGLE_NV) or not (GL_TEXTURE_2D).
Changes to the returned instance may or may not be reflected in this image.
Since: pyglet 1.1
Get an ImageData view of this image.
Changes to the returned instance may or may not be reflected in this image.
Since: pyglet 1.1
Since: pyglet 1.1
Since: pyglet 1.1
| Trees | Indices | Toggle frames |
|---|
| Generated by Epydoc 3.0beta1 on Sun Mar 22 20:15:40 2009 | http://epydoc.sourceforge.net |


Home
About
Contributers
Contributers
Like what you see? Feel free to reach out to the creators of this website!