Bb0022 Assignment Definition

Abstract

Antigenic variation plays a vital role in the pathogenesis of many infectious bacteria and protozoa including Borrelia burgdorferi, the causative agent of Lyme disease. VlsE, a 35 kDa surface-exposed lipoprotein, undergoes antigenic variation during B. burgdorferi infection of mammalian hosts, and is believed to be a critical mechanism by which the spirochetes evade immune clearance. Random, segmental recombination between the expressed vlsE gene and adjacent vls silent cassettes generates a large number of different VlsE variants within the infected host. Although the occurrence and importance of vlsE sequence variation is well established, little is known about the biological mechanism of vlsE recombination. To identify factors important in antigenic variation and vlsE recombination, we screened transposon mutants of genes known to be involved in DNA recombination and repair for their effects on infectivity and vlsE recombination. Several mutants, including those in BB0023 (ruvA), BB0022 (ruvB), BB0797 (mutS), and BB0098 (mutS-II), showed reduced infectivity in immunocompetent C3H/HeN mice. Mutants in ruvA and ruvB exhibited greatly reduced rates of vlsE recombination in C3H/HeN mice, as determined by restriction fragment polymorphism (RFLP) screening and DNA sequence analysis. In severe combined immunodeficiency (C3H/scid) mice, the ruvA mutant retained full infectivity; however, all recovered clones retained the ‘parental’ vlsE sequence, consistent with low rates of vlsE recombination. These results suggest that the reduced infectivity of ruvA and ruvB mutants is the result of ineffective vlsE recombination and underscores the important role that vlsE recombination plays in immune evasion. Based on functional studies in other organisms, the RuvAB complex of B. burgdorferi may promote branch migration of Holliday junctions during vlsE recombination. Our findings are consistent with those in the accompanying article by Dresser et al., and together these studies provide the first examples of trans-acting factors involved in vlsE recombination.

Author Summary

Lyme disease is the most prevalent tick-borne infection in North America and Eurasia. It is caused by the bacterium Borrelia burgdorferi and is transmitted to humans via the bite of infected ticks. These spirochetes can cause both acute and chronic infection and inflammation of the skin, joints, heart, and central nervous system. The persistence of infection despite the presence of an active immune response is dependent upon antigenic variation of VlsE, a 35 kDa surface-exposed lipoprotein. A large number of different VlsE variants are present in the host simultaneously and are generated by recombination of the vlsE gene with adjacent vls silent cassettes. To try to identify factors important in vlsE recombination and immune evasion, we selected mutants in genes involved in DNA recombination and repair and screened them for infectivity and vlsE recombination. Mutants in genes encoding RuvA and RuvB (which act together to promote the exchange of strands between two different DNA molecules) had reduced infectivity and greatly diminished vlsE recombination. In immunodeficient mice, ruvA mutants retained full infectivity, and no vlsE recombination was detected. Our findings reinforce the importance of vlsE variation in immune evasion and persistent infection.

Introduction

Lyme borreliosis is a multi-stage, systemic disease caused by members of the spirochete genus Borrelia, including Borrelia burgdorferi in North America and Borrelia afzelii, Borrelia garinii, and B. burgdorferi in Eurasia [1]. Spirochetes are transmitted to mammalian and avian hosts via the bite of hard-bodied ticks of Ixodes genus [2] and disseminate widely throughout the body in the first weeks of infection. If untreated in early stages, chronic and debilitating disease can develop in the skin, joints, heart, and central nervous system [1]. Infected individuals develop an active immune response to the pathogen yet are unable to clear the infection.

A common mechanism of immune evasion is antigenic variation, a process by which pathogens alter surface exposed antigenic proteins [3],[4]. The resulting variant organisms are immunologically distinct from parental strains and thereby gain a selective advantage over individuals that retain parental antigenic determinants. Bacteria that undergo antigenic variation often cause long term or repeated infections. Examples of such bacteria include Neisseria gonorrhoeae, Neisseria meningitidis, Borrelia hermsii, Treponema pallidum, Campylobacter jejuni, Mycoplasma synoviae, Mycoplasma pulmonis, and Anaplasma marginale.

Lyme disease Borrelia possess the vls (Variable Major Protein (VMP)-like sequence) system, a robust antigenic variation mechanism involving DNA recombination at the locus that expresses the surface exposed lipoprotein VlsE [5],[6],[7],[8],[9]. The vls locus consists of the vlsE expression site and a contiguous array of 15 vls silent cassettes, which have homology to the central region of the expression site. Gene conversion events involving replacement of regions of the vlsE expression site cassette with segments of the silent cassettes occur continuously during mouse infection, resulting in a myriad of vlsE sequence variants in each infected animal [10],[11]. Within each cassette, there are six variable regions (VRs) that display considerable sequence diversity, interspersed with six relatively invariant regions (IRs). The structure of the VlsE polypeptide is predominated by alpha helices that are believed to be important in maintaining protein structure [12]. The variable regions form random coils on the membrane distal surface of the protein, the region most likely to be exposed to the host immune system. VlsE variants have different epitopes when compared with parental VlsE1 polypeptide [10],[13], indicating that sequence changes in vlsE result in true antigenic variation.

In the B. burgdorferi strain B31, the vls locus is located near the telomere of the linear plasmid lp28-1 [10]. Loss of lp28-1 in B. burgdorferi B31 is associated with an intermediate infectivity phenotype in immunocompetent mice, in which infection lasts for less than 3 weeks and is largely restricted to joint tissue [14],[15],[16],[17]. Spirochetes lacking lp28-1 are able to survive and cause disease at all tissue sites in severe combined immunodeficiency (SCID) mice [17],[18], indicating that one or more gene products encoded on lp28-1 play an important protective role against adaptive immunity. Bankhead and Chaconas [19] recently demonstrated that the vls locus is the important mediator of infectivity in lp28-1. Deletion of the locus by telomere-mediated truncation resulted in an intermediate infectivity phenotype similar to that displayed by B. burgdorferi lacking lp28-1, while deletion of the other end of the plasmid had no detectable effect on infectivity.

The mechanisms that regulate vlsE recombination and expression are not well understood. vlsE recombination events have not been detected in ticks, during in vitro culture, or in dialysis membrane chambers embedded in rats, suggesting that non-dialyzable host components play a role in initiation of recombination [20],[21],[22],[23]. In contrast, vlsE recombination is detectable within 4 days of mouse inoculation, and appears to occur throughout the course of mammalian infection [22],[24]. Approximately 50% of recovered spirochetes have recombined vlsE sequences during the first 7 days of mouse infection; by four weeks, no organisms with parental vlsE sequence can be recovered [11],[22]. In immunodeficient SCID mice, spirochetes with the parental vlsE disappear more gradually, indicating that the adaptive immune response is required for the rapid elimination of organisms expressing the parental VlsE [11]. Although analyses of vlsE transcription levels during mammalian infection have yielded variable results, immunoblot analysis indicates that VlsE protein expression is dramatically upregulated during mouse or rabbit infection [25],[26].

Genes involved in DNA recombination and repair have been found to play a role in antigenic variation in other bacteria. For example, in Neisseria gonorrhoeae, pilin antigenic variation requires several trans-acting factors in the RecF-like recombination pathway, including RecA, RecX, RecJ, RecO, RecQ, and RecR [27],[28],[29] as well as RecG and a functional RuvABC complex [30]. However, in B. burgdorferi no genes have been yet identified that play a role in recombination within vlsE, although recA has been shown to be dispensable [31].

To identify proteins that play a role in vlsE recombination, we screened transposon mutants of DNA recombination and repair genes for infectivity and vlsE recombination. We found that mutants in the genes encoding the Holliday junction helicase polypeptides RuvA and RuvB were compromised in their ability to undergo vlsE recombination and displayed a reduced infectivity phenotype. In SCID mice, ruvA mutants retained full infectivity. vlsE sequences recovered from SCID mice were identical to parental vlsE sequence, suggesting that the failure to undergo vlsE recombination was a critical factor in the reduced infectivity phenotype. Furthermore, ruvA mutants had no increase in sensitivity to DNA damage. Nearly identical results were obtained in the accompanying article by Dresser et al. [32].

Results

Screening of putative DNA recombination and repair mutants for infectivity and VlsE variation

For this study, 9 transposon insertion mutants representing 7 different genes whose homologues are known to be involved in DNA recombination and repair in other bacteria were selected from a large Signature Tagged Mutagenesis (STM) panel to screen for their effect on infectivity and vlsE recombination (Table 1). Independent mutants from two of the genes were included to test the possible role of different insertion sites on infectivity and vlsE recombination. T05P01C02 and T10P01D06 are independent mutants of BB0797 with insertion ratios of 0.73 and 0.97 respectively. (The insertion ratio represents the relative position of the transposon insertion in a coding sequence, with the entire coding sequence having a value of 1.0). Likewise, T08P01E02 and T11P01F09 are independent mutants from gene BBE29 with insertion ratios of 0.33 and 0.30. Each mutant was injected in 5 mice and skin biopsies were taken at days 7 and 14 after inoculation and cultured for B. burgdorferi. Mice were sacrificed on day 28 of infection, and samples taken from skin, tibiotarsal joint, heart, and bladder were cultured to recover infectious organisms. B. burgdorferi maintained in in vitro culture sometimes lose plasmids that are not required for in vitro growth but may be required for infectivity. Therefore, the plasmid content of each mutant was determined and compared with that of the parental clone 5A18NP1. Circular plasmid cp9 was found to be missing in two mutants (T11P01A01 and T11P01F09) and lp21 is lacking in T10P01D09. However, previous studies have shown that neither cp9 nor lp21 are essential for infection of mice [14],[15].

Table 1

Transposon mutants utilized in this study.

As in previous studies, the parental strain 5A18NP1 was recovered from 29 of 30 tissue samples on days 7, 14, and 28 post inoculation [33]. Three of the nine DNA repair mutants tested (T11P01A01, T03TC051, and T05P01C02) exhibited reduced infectivity and one (MG065) lost infectivity in immunocompetent mice (Table 2). One of the mutS mutants (T05P01C02) displayed a reduced infectivity phenotype, whereas the other mutant (T10P01D06) had normal infectivity. The insertion site for the highly infectious mutant was very close to the end of the coding sequence (0.97), so this mutant may express a functional product. ruvA (T11P01A01) and ruvB (T03TC051) mutants both exhibited intermediate infectivity patterns. While 5/5 skin cultures were positive for both mutants at day 7 post inoculation, by 2 weeks no skin cultures were spirochete positive, and at 4 weeks only 6 of 20 and 10 of 16 tissue sites were culture positive for the ruvA and ruvB mutants, respectively. We also examined the growth rates of the ruvA and ruvB mutants in vitro. Both mutants had growth kinetics very similar to that of the parental strain 5A18NP1 (data not shown), indicating that the reduced infectivity phenotype observed for the mutants was not due to a growth defect.

Table 2

Infectivity of B. burgdorferi DNA repair and recombination mutants in CH3/HeN mice at days 7, 14 and 28 post inoculation.

Restriction fragment length polymorphism (RFLP) was used to estimate the extent of vlsE variation in recovered organisms. Amplicons corresponding to the vlsE cassette region were generated by PCR from uncloned cultures and digested with HphI. This restriction enzyme recognizes a 4-bp sequence that occurs with varying frequency as a result of vlsE recombination. The vlsE cassette region of 5A18NP1, the parental strain used in this study, has a single HphI site near one end (Figure 1A). As expected, cultures from mice inoculated with 5A18NP1 displayed significant RFLP variability that increased over the course of infection, as indicated by multiple bands or the presence of a smear in the HphI-digested samples (Figure 1A). In contrast, the ruvA and ruvB mutant cultures (Figure 1B and 1C) had vlsE RFLP patterns that were either unchanged or had relatively few bands without smearing, indicating that few vlsE variants had been generated during the course of infection. The other putative DNA recombination and repair mutants had complex vlsE RFLP patterns, indicating that a variety of vlsE variants had been generated during infection and that vlsE recombination likely had occurred normally (data not shown).

Figure 1

RFLP analysis of vlsE cassette region PCR products indicates reduced vlsE variation in ruvA and ruvB mutants of B. burgdorferi.

Characterization of the ruvA mutant

ruvA and ruvB have been reported to be part of a larger operon containing two additional genes (Figure S1A), queA (BB0021, S-adenosylmethionine:tRNA ribosyltransferase-isomerase) and pfpB (BB0020, diphosphate-fructose-6-phosphate 1-phosphotransferase) [34]. To determine whether expression of other genes in the operon might be disturbed by the transposon insertion, we performed RT-PCR on RNA samples from the parental strain 5A18NP1 and the ruvA mutant T11P01A01. Primer pair 1 generates a PCR fragment from within the ruvA coding region that crosses the transposon insertion site. As expected, this fragment can be generated using RNA from the parental strain, but not using RNA from the ruvA mutant, or RNA untreated with reverse transcriptase (Figure S1B). However, RT-PCR products spanning regions of both ruvB and queA were generated from both strains using primer pair 3 and 4 (Figure S1B). In the ruvA mutant T11P01A01, the transposon is inserted such that a ‘read-through’ transcript could possibly be generated from the flgBP::aacC1 cassette within the transposable element. To test that possibility we used primer pair 2, which generates a PCR fragment corresponding to the ruvA coding sequence downstream of the transposon insertion site. A product could be generated from both strains (Figure S1B), suggesting that ‘read-through’ may be occurring from either the transposon or the native promoter. Thus, we conclude that T11P01A01 is defective in expression of ruvA, but that transcription of ruvB, queA and pfpB is occurring. However, we cannot rule out the possibility of polar effects resulting from changes in the levels of expression of ruvB, queA and pfpB.

Inactivation of ruvA results in reduced infectivity in immunocompetent (C3H/HeN) mice but full infectivity in immunodeficient (SCID) mice

To further examine the effects of ruvA disruption on infectivity and vlsE recombination, a more detailed analysis of infectivity was performed (Table 3). Groups of ten immunocompetent C3H/HeN mice and ten C3H/scid mice were each inoculated with 105 organisms of either the T11P01A01 (the ruvA mutant), or the parental clone 5A18NP1. Mice were also inoculated with the previously characterized lp28-1 clone 5A8 [15] as a negative control. Groups of 5 mice were sacrificed at days 14 and 28 post inoculation. Samples of ear, tibiotarsal joint, heart, and bladder were collected for recovery of spirochetes. As expected, the positive control clone 5A18NP1 was fully infectious in both mice strains; spirochetes were isolated from all sites at day 14 and day 28 post inoculation (Table 3). The lp28-1 clone 5A8 exhibited the expected intermediate infectivity phenotype. In normal mice inoculated with 5A8, spirochetes were recovered from only three joint cultures at day 14, and no organisms could be recovered by day 28 post inoculation. However, all tissue sites were infected in C3H/scid mice inoculated with 5A8. The ruvA mutant exhibited an infectivity phenotype similar to that of lp28-1B. burgdorferi at day 14, but resulted in some positive cultures at day 28 post inoculation (Table 3). In C3H/HeN mice infected with the ruvA mutant, only 3 joint cultures of 20 possible cultures were positive for spirochetes at day 14 post inoculation, whereas 20 of 20 cultures were positive in the C3H/scid mouse group. At day 28, the ruvA mutant was recovered from 2/5 ear, 2/5 tibiotarsal joint, 2/5 heart, and 1/5 bladder cultures in immunocompetent mice, while again all cultures were positive in the C3H/scid mouse group. These results indicate that the ruvA mutant is significantly impaired in infectivity compared to the parental strain; it is not, however, as severely compromised as the strain lacking lp28-1.

Table 3

Infectivity phenotype of the ruvA mutant T11P01A01 in immunocompetent C3H/HeN and immunodeficient C3H/scid mice is similar to that of the lp28-1 clone 5A8.

RuvAB is not required for survival in ticks

We also tested the ability of B. burgdorferi carrying the ruvA or ruvB mutation to survive in ticks. I. scapularis nymphs were inoculated with the ruvA mutant T11P01A01, the ruvB mutant T03TC051, or the parental strain 5A18NP1 by capillary feeding. Ticks were held for 21–25 days and cultured for B. burgdorferi either before or immediately after feeding on 3 C3H/HeN mice. B. burgdorferi were readily detected in both fed and unfed ticks, as determined by direct fluorescent antibody (DFA) staining and culture (Table 4). This result indicates that the ruvA and ruvB mutations do not abrogate the ability of B. burgdorferi to survive in ticks. In addition, the mutant spirochetes were able to multiply upon tick feeding (Table 4). Fewer spirochetes were recovered from fed ticks carrying the ruvB mutant as compared to the ruvA mutant or the parental strain, but enough spirochetes were present in fed ticks to expect a mouse infection to result. However, tissues collected 4 weeks post tick inoculation with the ruvA or ruvB mutants were consistently culture negative (Table 4). The failure to recover organisms from any cultures derived from tick-inoculated mice (as compared to the sporadically positive cultures from needle-inoculated animals; Table 2) may be due to the lower number of organisms delivered during tick inoculation as compared to needle inoculation, coupled with the decreased survival of ruvA or ruvB mutants in immunocompetent mice at 28 days post inoculation (Table 2).

Table 4

B. burgdorferi ruvA and ruvB mutants survive well in ticks, but do not establish long-term infection in mice following tick-mediated inoculation.

Inactivation of ruvA or ruvB results in reduced vlsE recombination

Spirochetes recovered from infected mice were isolated by colony formation, and the vlsE cassette region sequences of the resulting clones were determined by PCR amplification and sequencing to examine the effect of ruvA or ruvB mutation on vlsE recombination. For the ruvA mutant T11P01A01, a total of 382 vlsE sequences were analyzed, comprising sequences from both immunocompetent and SCID mice, at three time points and from four tissues. For the ruvB mutant T03TC051, a total of 62 clones isolated from C3H/HeN mice were sequenced, including 22 obtained from skin cultures 7 days post inoculation, and 40 clones from joint, heart, bladder and skin cultures 28 days after inoculation.

The overall pattern of vlsE recombination observed is depicted in Figure 2. For each mouse group and time point, it was determined whether the recovered clones retained the parental vlsE sequence, had a unique vlsE sequence, or shared the same vlsE variant sequence when compared to other clones from the same animal (‘vlsE sequences with siblings’). It has been determined previously that vlsE variation is not detectable during in vitro culture [22]; therefore all inoculated organisms initially contained the parental vlsE sequence.

Figure 2

vlsE sequence variation observed with the parental strain 5A18NP1 and the ruvA mutant T11P01A01 and the ruvB mutant T03TC051 following inoculation of immunocompetent C3H/HeN mice and immunodeficient C3H/scid mice.

As observed in prior studies with B. burgdorferi B31 clones, the parental strain 5A18NP1 underwent rapid vlsE recombination in both C3H/HeN and C3H/scid mouse hosts. By 14 days post inoculation, 0/59 clones from C3H/HeN mice had retained the parental sequence. Clones with unique vlsE cassette region sequences predominated after 7 days, although a surprisingly high proportion of sibling variants was observed in C3H/HeN mice inoculated with 5A18NP1 (Figure 2, Table S1). At 14 and 28 days post inoculation, no clones with the parental vlsE sequence were detected. A similar pattern was observed during infection of C3H/scid mice, although the dilution of parental sequence clones occurred at a slower rate; 19/76 clones (25%) still had the parental sequence on day 14. However, even in C3H/scid mice no clones with the parental vlsE sequence were recovered at day 28 post inoculation.

In contrast, sequence analysis demonstrated that very little vlsE sequence variation occurred during infection of mice with the ruvA mutant T11P01A11 (Figure 2, Table S1). In immunocompetent mice, only clones with the parental sequence were recovered up to 14 days post inoculation. By day 28 very few (3 of 114, 3%) of the clones retained the parental sequence; however, the remaining clones were quite restricted in terms of sequence variation, with each animal possessing only 1 or 2 variant types. Surprisingly, only parental sequence clones were recovered from C3H/scid mice on days 14 and 28 post inoculation, indicating that clones that had not undergone vlsE variation predominated in the absence of immune selection. The ruvB mutant T03TC051 also exhibited reduced vlsE sequence variation during infection of C3H/HeN mice (Figure 2, Table S1).

The differences between sequence variation in 5A18NP1 and T11P01A01 are further illustrated in Figure 3. Sequence diversity among the clones isolated at day 28 post inoculation from C3H/HeN mice was analyzed using phylogenetic tree software. The 63 clones from infection with 5A18NP1 were from joint, heart, bladder, and ear tissues of a single mouse, whereas the 114 clones for T11P01A01 were from the 12 culture-positive samples from 6 different mice. With clone 5A18NP1, 31/63 (49%) of the clones characterized possessed unique vlsE sequences; the remaining clones were variant siblings that were isolated from the same mouse tissue. Moreover, closely related sequences were often isolated from the same tissue (Figure 3A, brackets), indicating that vlsE sequences in sibling clones were diverging within those tissues. For the ruvA mutant T11P01A11, only eight different vlsE sequences could be detected among the 114 clones examined in the 6 mice, and no more than two different sequences were found in any one animal (Figure 3B). Moreover, clones with the same sequence were often found in more than one tissue site (Figure 3B, brackets). Three clones that retained the parental vlsE sequence were also isolated. These results provide further evidence that the ruvA mutant is severely compromised in its ability to undergo vlsE recombination.

Figure 3

Reduced vlsE sequence diversity generated following inoculation of C3H/HeN mice with the ruvA mutant T11P01A01.

The sequences of 17 bp direct repeats at the 5′ and 3′ ends of vlsE central cassette were examined in all of the vlsE sequences recovered from ruvA mutants. No changes were identified indicating that vlsE recombination was not perturbed in the ruvA mutants due to instability of the direct repeats during mouse infection and/or vlsE recombination.

In E. coli and other organisms, ruvA and ruvB act in concert to promote DNA branch migration. Therefore, we also examined the effects of ruvB mutation on vlsE sequence variation in C3H/HeN mice. As shown in Figures 2 and S3 and in Table S1, the ruvB mutant T03TC051 exhibited reduced vlsE recombination rates similar to those observed for the ruvA mutant. No vlsE variants were observed at 7 days post inoculation. On day 28, the vlsE cassette region sequences of 12 to 14 clones from each of three mice were determined. Each animal was found to have only 1 to 3 vlsE variant sequences, and 5 clones with the parental vlsE sequence were isolated from Animal 3 (Figure S3). Only one clone with a unique vlsE variant sequence was identified (1/40, 2.5%). There were subsets of clones with the same vlsE variant sequence, consistent with the outgrowth of siblings of rare vlsE variants (Figures 2 and S3). Thus the ruvB mutant T03TC051 had an infectivity and vlsE variation phenotype that was quite similar to that observed for the ruvA mutant T11P01A01.

Analysis of vlsE recombination events in the ruvA and ruvB mutants

The non-parental vlsE variants recovered 28 days post infection with the ruvA and ruvB mutants were analyzed to determine the length, location and silent cassette source of the recombination events (Figure 4, Figure S2). Each sequence was aligned with parental vlsE sequence, codon formatted and analyzed using a semi-automated analysis program [11]. The program compares each codon to parental and silent vls sequences and depicts the result (identity or no identity) as colored bars with each silent cassette assigned a unique color. Dark regions represent the sequence changes that may have resulted by recombination with that silent cassette. The lighter colored regions are contiguous codons that match both parental and silent cassette sequences and thus represent the possible boundaries of a recombination event.

Figure 4

Low complexity of vlsE recombination events in ruvA and ruvB mutants.

The most likely recombination events are presented in Figure 4; a more detailed presentation showing all silent cassettes potentially involved in the recombination events is shown in Figure S2. Variants recovered from infections with 5A18NP1 at day 28 of infection are usually difficult to assign to a single silent cassette with confidence and appear to have undergone multiple recombination events ([4] and data not shown). For example, the simplest explanation for the variant recovered from a mouse infected with 5A18NP1 (Figure 4, first panel) appears to involve multiple recombinations of varied lengths with 6 different silent cassettes. In contrast, the results obtained with the ruvA and ruvB mutants were consistent with the occurrence of relatively rare and elongated vlsE recombination events (Figure 4). This pattern is exemplified by the vlsE sequence recovered from animal 1, which likely represents a single recombination event with vls5 spanning almost the entire cassette region. Although many silent cassettes have sequence identity to the variant residues, vls5 represents the only continuous match over the entire region (Figure S2). One variant (animal 2) is predicted to have undergone untemplated changes (not matching any vlsE silent cassette) in VR-I followed by an intermittent recombination event with vls2. Several of the recombination events found in the ruvA mutant appear to be intermittent, i.e. the recombination events were discontinuous over the length of the cassette, alternating between the template cassette and vlsE1. This intermittent recombination has been previously observed in vlsE recombination [11]. In addition, we noted that all recombination events from ruvA mutants included variable regions IV through VI. This bias is not observed with the parental strain [4]. Equally striking is length of the recombination events observed in the ruvA mutant. Coutte et al. [11] analyzed 126 clones that had undergone a single recombination event and identified the minimum and maximum predicted lengths of recombination. The majority of these clones (55%) had minimum recombination lengths of 1–5 nucleotides and only 28% had minimum recombination lengths of >15 nucleotides. The variants obtained from ruvA mutant infections, however, had a median minimum recombination length of 168 bp (range 91 to 479 bp), and a median maximum recombination length of 269 bp (range 111 to 546 bp).

Another unusual feature of the recombination events seen in the ruvA mutant is the distribution of silent cassette usage. Only 3 silent cassettes, vls2, vls4, and vls5 were used in the seven templated variants. vls4 and vls5 were each used twice. vls2, the silent gene most proximal to the expression cassette has been observed to be used very rarely in infections with wild type B. burgdorferi, yet we observed it in three of seven templated ruvA variants. These results suggest that the normal mechanism of silent template selection may be perturbed in ruvA mutants.

The vlsE sequences derived from infection with the ruvB mutant displayed similar features to those from the ruvA mutant (Figures 4 and S2). Most sequences were the result of single recombination events and used few vls silent cassette templates. The recombinations observed were unusually long, with a median minimum recombination length of 151 bp (range 119 to 389 bp) and an average maximum length of 179 bp (range 151 to 561 bp). Recombination events always included most of the 3′ end of the recombination cassette; however, these recombinations did not always include VR6, as observed for the recombination events derived from ruvA mutants.

Antibody responses to vlsE in ruvA and ruvB mutants

To determine whether mice infected with the ruvA and ruvB mutants developed a robust antibody response to VlsE, we performed ELISAs on serum from infected animals. We found that serum from animals infected with the ruvA or ruvB mutants displayed more variable antibody responses to VlsE than animals infected with the parental B. burgdorferi strain (data not shown). Some animals displayed similar reactivity to sera from animals infected with parental strain while others displayed lower anti-VlsE activity. However, low anti-VlsE titers did not necessarily correlate with positive B. burgdorferi cultures from harvested organs. It is speculated that low quantities of anti-VlsE antibodies in some mice may correspond to early clearance of B. burgdorferi, thus resulting in a limited stimulation of the immune response against Borrelia antigens, including VlsE.

Attempted complementation of the ruvA mutant

In an attempt to fully demonstrate the role of ruvA in vlsE sequence variation and infectivity, we complemented the ruvA mutant T11P01A01 with the shuttle vector pKFSS1 [35] containing either ruvA alone, ruvAruvB, or ruvAruvBqueApfpB (the four genes in the predicted operon; Figure S1). A 264-bp region upstream of ruvA predicted to include the transcriptional promoter was included in all three constructs. The integrity of the resulting plasmids was confirmed by sequencing the inserts, and transformation of T11P01A01 was demonstrated by streptomycin selection followed by PCR using one primer specific for the pKFSS1 vector sequence and one primer corresponding to the B. burgdorferi DNA insert. Groups of three mice were each inoculated intradermally (105 organisms/mouse) with one of two clones containing each complementation construct, yielding 3×6 = 18 mice inoculated with complemented lones. The two control groups (3 mice each) were inoculated with positive control 5A18NP1 and the non-complemented ruvA mutant T11P01A01. All strains yielded positive cultures from each of 3 skin sites taken distant from the inoculation site on day 7, indicating that the infection was successful in each case. Six representative day 7 cultures were tested for the presence of the complementing plasmids by PCR, and yielded the expected amplicons. All cultures except those from 5A18NP1-inoculated mice were negative on day 14 post inoculation, and on day 28 the proportions of positive clones for the complemented clones were similar to that obtained for the ruvA mutant T11P01A01 (data not shown). In addition, 17 complemented clones isolated on day 7 post inoculation were examined for vlsE recombination, and none exhibited vlsE sequence changes; this result was similar to what had been observed previously with uncomplemented ruvA mutant clones at this time point (Figure 2, Table S1). Therefore attempts to restore infectivity and vlsE sequence variation to wild type levels by complementation have thus far been unsuccessful.

Inactivation of ruvA does not result in increased sensitivity to DNA damage

In many microorganisms, ruvA is important in the repair of DNA damage resulting from UV irradiation or chemical mutagens. To assess the role of B. burgdorferi ruvA in DNA repair we monitored the survival of the ruvA mutant T11P01A01 subjected to DNA damaging conditions. Log phase cultures were irradiated with increasing doses of UV (254nm) light, and cultured to determine spirochete survival by colony counting. Figure 5A shows the results of a representative experiment. The parental strain 5A18NP1, and ruvA mutants had a similar number of colonies surviving at all UV doses, indicating that ruvA mutants do not have increased sensitivity to UV irradiation.

Figure 5

The ruvA mutant T11P01A01 does not exhibit enhanced sensitivity to UV light or mitomycin C.

Mitomycin C causes DNA damage by crosslinking complementary DNA strands at CpG sequences and is a commonly used reagent to examine the cellular response to DNA damage. To determine the sensitivity of the ruvA mutants to mitomycin C we assessed the viability of the ruvA mutant T11P01A11 and the parental strain 5A18NP1 after 14 hours exposure to increasing doses of mitomycin C. Treated cultures were plated and the number of colonies visible after 2–3 weeks incubation was used to assess spirochete survival. Figure 5B shows the survival of B. burgdorferi colonies after exposure to varied concentrations of mitomycin C. We observed no differences in survival between the ruvA mutant and the parental strain 5A18NP1.

Discussion

We conducted a genetic screen for trans-acting factors involved in vlsE antigenic variation in B. burgdorferi. Of the seven genes examined in this screen, four exhibited diverse PCR-RFLP patterns of vlsE, indicating that the inactivated genes are not centrally involved in vlsE recombination in C3H/HeN mice. Mutant MG065 in BB0098 (annotated as a recombination and DNA strand exchange inhibitor and as mutS-II in other organisms) was not recovered from inoculated mice, and thus could not be evaluated for vlsE variation. Two of the remaining transposon mutants, which had disruptions in the B. burgdorferi orthologs of the Holliday junction helicase genes ruvA and ruvB, had reduced vlsE recombination. The only other mutant that exhibited reduced infectivity and PCR-RFLP diversity was a mutS mutant, T05P01C02. A second mutS mutant, T10P01D06, had an insertion site near the end of the gene (insertion ratio 0.97); this clone had normal infectivity and RFLP results, indicating that a functional product is likely produced. The possible role of mutS in vlsE recombination will be investigated further in a separate study.

The predicted proteins encoded by the B. burgdorferi BB0023 and BB0022 open reading frames have a high degree of homology with the Holliday junction helicase proteins RuvA and RuvB, respectively, of other organisms. In Escherichia coli, the 22-kDa protein RuvA specifically targets RuvB to the Holliday junctions [36],[37], and the combined action of RuvAB results in branch migration during homologous recombination [38]. The 19-kDa RuvC resolvase cleaves the Holliday junction and is required for resolution of Holliday junctions in E. coli[39]. No homolog of RuvC has been identified in Lyme disease Borrelia, although RuvC orthologs have been identified in other spirochetes including the relapsing fever organism B. turicatae, T. pallidum, T. denticola and L. interrogans. Aravind et al. has proposed that a family of predicted LE exonucleases may substitute for RuvC in B. burgdorferi[40]. In addition to their role in recombination, E.coli ruv mutants exhibit defects in DNA repair such as increased sensitivity to UV light and mitomycin C [41],[42].

The infectivity phenotypes of the ruvA mutant T11P01A01 and the ruvB mutant T03TC051 resemble those of B. burgdorferi strains that lack lp28-1 [14],[15],[17],[18] or the vls locus [19], although some differences exist. As shown in Tables 2 and ​3, the ruvA and ruvB mutants exhibited lower culture positivity than the parental strain 5A18NP1 in immunocompetent C3H/HeN mice. The ruvA mutant culture positivity pattern was the same as the lp28-1 clone 5A8 on day 14 post inoculation in C3H/HeN mice, with only joint specimens yielding positive cultures (Table 3); however, 7/20 cultures in diverse tissues were positive for the ruvA mutant at day 28 post inoculation, as compared to a lack of positive cultures in the 5A8-inoculated animals. The ability of some ruvA organisms to survive is most likely due to the ability to express VlsE and to undergo limited vlsE recombination. The ruvA mutant and the lp28-1 clone 5A8 is able to infect all tissues in C3H/scid mice, as has been observed previously with lp28-1 strains and clones in which the vls locus was deleted from lp28-1 by telomere-mediated plasmid truncation [19]. Thus mutation of ruvA results in reduced ability to survive in the presence of the adaptive immune system, perhaps due to antibody responses against invariant or limited variation forms of VlsE.

We also tested the ability of B. burgdorferi carrying ruvA or ruvB mutations to survive in ticks. B. burgdorferi were readily recovered from both fed and unfed ticks suggesting that the ruvA and ruvB mutations do not abrogate the ability of B. burgdorferi to survive in ticks. However, the mutant spirochetes did not establish infection in C3H/HeN mice following tick inoculation (Table 4). These data suggest that the lack of detectable organisms at day 28 post mouse inoculation (Table 4) was due to the effects of ruvA and ruvB mutations on survival in mice rather than poor replication in ticks or transmission from ticks to mammals. The failure to recover organisms in cultures derived from mouse inoculation via ticks may be due to the relatively low number of organisms delivered during tick inoculation as compared to the 105Borrelia per mouse used in the needle inoculation studies.

The reduced ability of the ruvA mutant T11P01A01 to undergo vlsE recombination is illustrated in Figures 3, ​4, and S3. Figure 3 shows that vlsE variants were not detected on days 7 and 14 in C3H/HeN mice inoculated with the ruvA mutant; while vlsE variants are predominant on day 28, only one or two variant clones are detected in each mouse (Figures 4 and ​5). Remarkably, no vlsE variants were detected at any time point following infection of C3H/scid mice with the ruvA mutant, whereas all of the clones examined at 28 days post inoculation were variants when C3H/scid mice were inoculated with the parental 5A18NP1 strain. Combining the reduced culture positivity results with the decreased vlsE variant diversity observed with the ruvA mutant, the following is evident: 1) inactivation of ruvA results in reduction of vlsE recombination rates, resulting in only a few variants in C3H/HeN mice and the lack of detected variants in C3H/scid mice; and 2) in C3H/HeN mice, the few clones that have undergone vlsE recombination are able to survive after the anti-VlsE response is activated, whereas nearly all of the parental clones are eliminated by day 28 post inoculation.

The types of recombination events observed in the ruvA mutant were also quite different than those observed in wild-type B. burgdorferi. The average length of observed recombination events was an order of magnitude larger than in wild type clones. Moreover, most of the predicted recombination events observed in the ruvA mutant also appeared to represent intermittent recombination events, with regions of recombination interrupted by stretches of the unchanged, parental vlsE sequence (Figure 5). Finally, vls2, vls4, and vls5 were the only silent cassettes utilized in the ruvA mutant. The ruvB mutant also exhibited a limited repertoire of silent cassette usage (cassettes 2, 3, 4, 5, and 8). Taken together, these results may indicate that the recombination process is different in the ruvA mutant than in wild-type organisms; i.e., the observed changes could involve a different, underlying recombination mechanism other than the as yet cryptic, vlsE-specific process that appears to be induced during mammalian infection.

We found that sensitivity of B. burgdorferi to UV radiation and mitomycin C exposure was not affected by ruvA mutation. In other bacteria such as E. coli, deficiencies in RuvA, RuvB, or RuvC result in increased sensitivity to DNA-damaging agents, including UV irradiation and mitomycin C [43]. UV irradiation causes intra-strand thymine dimers in DNA, and the damage is repaired by RecA-mediated SOS response [44]. Mitomycin C exposure induces inter-strand cross-link in DNA, and an extended SOS response is needed to repair the damaged DNA [45]. Induction of genes encoding DNA repair enzymes during the SOS response is one of the most important DNA repair system in bacteria [46]. However, the B. burgdorferi genome does not encode a homolog of the SOS response repressor LexA, and SOS boxes (LexA binding sites in promoter regions) are not present upstream of recA and other genes that comprise the SOS regulon [47]. Also, expression of recA is not induced following UV exposure [48]. Thus B. burgdorferi appears to lack an SOS regulon. As an obligate parasite, B. burgdorferi is never exposed directly to UV light, and thus may have lost its ability to upregulate genes involved in the repair of DNA damage caused by radiation and other agents.

Thus far, our attempts to restore full infectivity and vlsE recombination through complementation with ruvA in the shuttle vector pKFSS1 have been unsuccessful. In addition, we have also tried using constructs containing ruvAruvB and ruvAruvBqueApfpB, in case the transposon insertion in ruvA has some polar effect on the expression of downstream genes. A 264-bp region upstream of ruvA was used in all of these constructs; it is presumed to contain the promoter, although the region lacks a strong consensus promoter sequence (e.g. −35 and −10 sequences with the proper spacing). BB0024, the gene upstream of ruvA, is oriented in the opposite direction, indicating that ruvA is the first gene in the operon. Dresser et al. [49] have also been unsuccessful in trans complementing ruvA and ruvB mutants obtained by allelic exchange. The ruvA and ruvB mutants obtained by our laboratory and by Dresser et al. [49] were derived independently by different means (transposon mutagenesis and gene disruption by allelic exchange), yet have nearly identical phenotypes. Thus it is likely that the lack of complementation observed in these studies is due to technical complications, as has been commonly observed in genetic studies involving infectious B. burgdorferi. We will continue our efforts to complement the ruvA and ruvB mutants in an attempt to fulfill the ‘molecular Koch's postulates’ on the roles of these genes in infectivity in immunocompetent mice and in vlsE recombination.

The current study along with those by Liveris et al. [31] and Dresser et al. [32] provide some insight into the mechanism of recombination in the vls antigenic variation system. The central role of RuvAB indicates that heteroduplex formation with branch migration is important in this process. The lack of a requirement for RecA [31],[32] is surprising. RecA provides two important functions in other microorganisms: ATP-dependent formation of RecA-single-stranded DNA nucleoprotein filaments that facilitate the homologous base pairing during heteroduplex formation [50]; and cleavage of LexA to activate the SOS response through its activity as a co-protease when bound to single-stranded DNA. As indicated above, B. burgdorferi lacks a recognizable LexA ortholog, so the latter function is likely to be unimportant (although co-protease activity is present in B. burgdorferi RecA). Liveris et al. [31] state that the apparent lack of effect of recA mutation on vlsE recombination indicates that homologous recombination mechanisms are not involved in this process. However, ‘templated’ vlsE sequence changes (those involving incorporation of silent cassette sequences) consistently occur at the same position as the optimal alignment between the silent cassette and vlsE; i.e., the observed vls silent cassette/vlsE recombinations are always homologous, and never nonhomologous [11]. vlsE recombination is induced during mammalian infection; it is possible that factor(s) that bind specifically to vls sequences and promote strand invasion and heteroduplex formation may be expressed under these conditions and hence fulfill a RecA-like (but site-specific) role. Such factor(s) have not been identified to date. Once a heteroduplex is formed, RuvAB may promote the migration of the heteroduplex branch point, thus extending the region of strand exchange. In a set of 126 vlsE variants that appeared to contain a single recombination event [11], the putative minimal recombination events ranged from 1 nt to 349 nt, with a median value of less than 5 nt. This result indicates that the strand replacement process is often interrupted quite soon after its initiation. The observed range of sequence identity between donor and recipient sequences flanking the region of sequence change was from 0 nt to 88 nt, with (remarkably) as little as 6 nt on one side or the other [11]. It is currently unknown whether the role of the RuvAB migrase is to promote heteroduplex formation in these regions of sequence identity (thus nucleating the strand exchange event), or whether it is also able to ‘drive’ the strand pairing through regions of sequence differences.

Gene conversion has been described as the predominant mechanism in other bacterial and protozoal antigenic variation systems, including those of relapsing fever Borrelia (e.g. B. hermsii), Neisseria gonorrhoeae, Anaplasma marginale, Trypanosoma cruzi, and Babesia bovis[51],[52],[53],[54]. Lyme disease and relapsing fever Borrelia are closely related, and VlsE and the variable large protein (Vlp) antigenic variation proteins have some sequence similarity. However, in B. hermsii the gene conversion events result from homologous recombination within well-demarcated upstream homology sequences (UHS) and downstream homology sequences (DHS), resulting in replacement of nearly the entire expression site gene with a silent gene sequence [53],[55]; therefore it is different from the vls system both in terms of mechanism and gene conversion outcome. The N. gonorrhoeae pilE system, the A. marginale MSP2, and the B. bovis VESA1a systems each involve segmental gene conversion events utilizing multiple silent gene copies to produce highly variable pilin or surface protein sequences. The pilE system is dependent upon RecA and other recombination system proteins that are not required for vlsE recombination, as described in detail by Dresser et al. [32]. In A. marginale, the gene conversion event is almost always ‘anchored’ in a conserved region flanking the hypervariable region [56]. The mechanisms of B. bovis VESA1a recombination are not well characterized, but are likely to involve eukaryote-specific elements that will differ considerably from those present in the prokaryote B. burgdorferi. Thus, based on current knowledge, the vls system may represent a unique gene conversion process that is mechanistically dissimilar to other known antigenic variation systems.

Materials and Methods

Ethics statement

All procedures involving mice conducted at the University of Texas Health Science Center at Houston were reviewed and approved by the Animal Welfare Committee of that institution. All mouse studies conducted at the Tulane National Primate Research Center were reviewed and approved by its Institutional Animal Care and Use Committee (IACUC).

Bacterial strains and growth medium

The transformable, infectious Borrelia burgdorferi B31 clone 5A18NP1 was used for generation of all mutants. 5A18NP1 is a genetically modified clone in which plasmids lp28-4 and lp56 are missing and BBE02, encoding a putative restriction-modification enzyme, has been disrupted [33]. Borrelia burgdorferi B31 clone 5A8, containing all plasmids except lp28-1, was isolated previously from the low-passage strain B31 [15],[57] and was used as negative control in mouse inoculation experiments. All strains used in this study had undergone no more than two subcultures since clone isolation prior to infectivity studies. B. burgdorferi were grown at 34°C in 3% CO2 in Barbour-Stoenner-Kelly II (BSK-II) medium supplemented with appropriate antibiotics as described previously [58]. The in vitro growth rates of the ruvA and ruvB mutants and the parental strain 5A18 NP1 were determined by daily quantitation of organisms in triplicate cultures by dark-field microscopy. E. coli TOP10, a DH5α™-derived strain obtained from Invitrogen Corporation (Carlsbad, CA, USA), was used for the preparation of plasmids for electroporation into B. burgdorferi.

Inactivation of DNA recombination and repair genes

For assignment of letters to disk file systems, see Drive letter assignment.

In computer programming, an assignment statement sets and/or re-sets the value stored in the storage location(s) denoted by a variablename; in other words, it copies a value into the variable. In most imperativeprogramming languages, the assignment statement (or expression) is a fundamental construct.

Today, the most commonly used notation for this basic operation has come to be (originally Superplan 1949–51, popularized by Fortran 1957 and C) followed by [1] (originally ALGOL 1958, popularised by Pascal),[2] although there are many other notations in use. In some languages the symbol used is regarded as an operator (meaning that the assignment has a value) while others define the assignment as a statement (meaning that it cannot be used in an expression).

Assignments typically allow a variable to hold different values at different times during its life-span and scope. However, some languages (primarily strictly functional) do not allow that kind of "destructive" reassignment, as it might imply changes of non-local state. The purpose is to enforce referential transparency, i.e. functions that do not depend on the state of some variable(s), but produce the same results for a given set of parametric inputs at any point in time. Modern programs in other languages also often use similar strategies, although less strict, and only in certain parts, in order to reduce complexity, normally in conjunction with complementing methodologies such as data structuring, structured programming and object orientation.

Semantics[edit]

An assignment operation is a process in imperative programming in which different values are associated with a particular variable name as time passes.[1] The program, in such model, operates by changing its state using successive assignment statements.[2][3] Primitives of imperative programming languages rely on assignment to do iteration.[4] At the lowest level, assignment is implemented using machine operations such as or .[2][4]

Variables are containers for values. It is possible to put a value into a variable and later replace it with a new one. An assignment operation modifies the current state of the executing program.[3] Consequently, assignment is dependent on the concept of variables. In an assignment:

  • The is evaluated in the current state of the program.
  • The is assigned the computed value, replacing the prior value of that variable.

Example: Assuming that is a numeric variable, the assignment means that the content of the variable is doubled after the execution of the statement.

An example segment of C code:

intx=10;floaty;x=23;y=32.4f;

In this sample, the variable is first declared as an int, and is then assigned the value of 10. Notice that the declaration and assignment occur in the same statement. In the second line, is declared without an assignment. In the third line, is reassigned the value of 23. Finally, is assigned the value of 32.4.

For an assignment operation, it is necessary that the value of the is well-defined (it is a valid rvalue) and that the represents a modifiable entity (it is a valid modifiable (non-const) lvalue). In some languages, typically dynamic ones, it is not necessary to declare a variable prior to assigning it a value.

Single assignment[edit]

See also: Static single assignment form

Any assignment that changes an existing value (e.g. ) is disallowed in purely functional languages.[4] In functional programming, assignment is discouraged in favor of single assignment, also called initialization. Single assignment is an example of name binding and differs from assignment as described in this article in that it can only be done once, usually when the variable is created; no subsequent reassignment is allowed.

An evaluation of expression does not have a side effect if it does not change an observable state of the machine,[5] and produces same values for same input.[4] Imperative assignment can introduce side effects while destroying and making the old value unavailable while substituting it with a new one,[6] and is referred to as destructive assignment for that reason in LISP and functional programming, similar to destructive updating.

Single assignment is the only form of assignment available in purely functional languages, such as Haskell, which do not have variables in the sense of imperative programming languages[4] but rather named constant values possibly of compound nature with their elements progressively defined on-demand. Purely functional languages can provide an opportunity for computation to be performed in parallel, avoiding the von Neumann bottleneck of sequential one step at time execution, since values are independent of each other.[7]

Impure functional languages provide both single assignment as well as true assignment (though true assignment is typically used with less frequency than in imperative programming languages). For example, in Scheme, both single assignment (with ) and true assignment (with ) can be used on all variables, and specialized primitives are provided for destructive update inside lists, vectors, strings, etc. In OCaml, only single assignment is allowed for variables, via the syntax; however destructive update can be used on elements of arrays and strings with separate operator, as well as on fields of records and objects that have been explicitly declared mutable (meaning capable of being changed after their initial declaration) by the programmer.

Functional programming languages that use single assignment include Clojure (for data structures, not vars), Erlang (it accepts multiple assignment if the values are equal, in contrast to Haskell), F#, Haskell, Lava, OCaml, Oz (for dataflow variables, not cells), Racket (for some data structures like lists, not symbols), SASL, Scala (for vals), SISAL, Standard ML. Non-backtrackingProlog code can be considered explicit single-assignment, explicit in a sense that its (named) variables can be in explicitly unassigned state, or be set exactly once. In Haskell, by contrast, there can be no unassigned variables, and every variable can be thought of as being implicitly set to its value (or rather to a computational object that will produce its value on demand) when it is created.

Value of an assignment[edit]

In some programming languages, an assignment statement returns a value, while in others it does not.

In most expression-oriented programming languages (for example, C), the assignment statement returns the assigned value, allowing such idioms as , in which the assignment statement returns the value of , which is then assigned to . In a statement such as , the return value of a function is used to control a loop while assigning that same value to a variable.

In other programming languages, Scheme for example, the return value of an assignment is undefined and such idioms are invalid.

In Haskell,[8] there is no variable assignment; but operations similar to assignment (like assigning to a field of an array or a field of a mutable data structure) usually evaluate to the unit type, which is represented as . This type has only one possible value, therefore containing no information. It is typically the type of an expression that is evaluated purely for its side effects.

Variant forms of assignment[edit]

Certain use patterns are very common, and thus often have special syntax to support them. These are primarily syntactic sugar to reduce redundancy in the source code, but can also simplify compilation by clarifying the programmer's intent and easing analysis of the source code.

Augmented assignment[edit]

Main article: Augmented assignment

The case where the assigned value depends on a previous one is so common that many imperative languages, most notably C and the majority of its descendants, provide special operators called augmented assignment, like , so can instead be written as .[3] Beyond syntactic sugar, this simplifies compilation, since it makes it clear that in-place modification of the variable is possible.

Chained assignment[edit]

A statement like is called a chained assignment in which the value of is assigned to multiple variables and . Chained assignments are often used to initialize multiple variables, as in

Not all programming languages support chained assignment. Chained assignments are equivalent to a sequence of assignments, but the evaluation strategy differs between languages. For simple chained assignments, like initializing multiple variables, the evaluation strategy does not matter, but if the targets (l-values) in the assignment are connected in some way, the evaluation strategy affects the result.

In some programming languages (C for example), chained assignments are supported because assignments are expressions, and have values. In this case chain assignment can be implemented by having a right-associative assignment, and assignments happen right-to-left. For example, is equivalent to . In C++ they are also available for values of class types by declaring the appropriate return type for the assignment operator.

In Python, assignment statements are not expressions and thus do not have a value. Instead, chained assignments are a series of statements with multiple targets for a single expression. The assignments are executed left-to-right so that evaluates the expression , then assigns the result to the leftmost target, , and then assigns the same result to the next target, , using the new value of .[9] This is essentially equivalent to though no actual variable is produced for the temporary value.

Parallel assignment[edit]

Some programming languages, such as APL, Go,[10]JavaScript (since 1.7), PHP, Maple, Lua, occam 2,[11]Perl,[12]Python,[13]REBOL, Ruby,[14] and Windows PowerShell allow several variables to be assigned in parallel, with syntax like:

a, b := 0, 1

which simultaneously assigns 0 to and 1 to . This is most often known as parallel assignment; it was introduced in CPL in 1963, under the name simultaneous assignment,[15] and is sometimes called multiple assignment, though this is confusing when used with "single assignment", as these are not opposites. If the right-hand side of the assignment is a single variable (e.g. an array or structure), the feature is called unpacking[16] or destructuring assignment:[17]

var list := {0, 1} a, b := list

The list will be unpacked so that 0 is assigned to and 1 to . More interestingly,

a, b := b, a

swaps the values of and . In languages without parallel assignment, this would have to be written to use a temporary variable

var t := a a := b b := t

since leaves both and with the original value of .

Some languages, such as Go and Python, combine parallel assignment, tuples, and automatic tuple unpacking to allow multiple return values from a single function, as in this Python example:

deff():return1,2a,b=f()

This provides an alternative to the use of output parameters for returning multiple values from a function. This dates to CLU (1974), and CLU helped popularize parallel assignment generally.

In C and C++, the comma operator is similar to parallel assignment in allowing multiple assignments to occur within a single statement, writing instead of . This is primarily used in for loops, and is replaced by parallel assignment in other languages such as Go.[18] However, the above C++ code does not ensure perfect simultaneity, since the right side of the following code is evaluated after the left side. In languages such as Python, will assign the two variables concurrently, using the initial value of a to compute the new b.

Assignment versus equality[edit]

See also: Relational operator § Confusion with assignment operators

The use of the equals sign as an assignment operator has been frequently criticized, due to the conflict with equals as comparison for equality. This results both in confusion by novices in writing code, and confusion even by experienced programmers in reading code. The use of equals for assignment dates back to Heinz Rutishauser's language Superplan, designed from 1949 to 1951, and was particularly popularized by Fortran:

A notorious example for a bad idea was the choice of the equal sign to denote assignment. It goes back to Fortran in 1957[a] and has blindly been copied by armies of language designers. Why is it a bad idea? Because it overthrows a century old tradition to let “=” denote a comparison for equality, a predicate which is either true or false. But Fortran made it to mean assignment, the enforcing of equality. In this case, the operands are on unequal footing: The left operand (a variable) is to be made equal to the right operand (an expression). x = y does not mean the same thing as y = x.[19]

— Niklaus Wirth, Good Ideas, Through the Looking Glass

Beginning programmers sometimes confuse assignment with the relational operator for equality, as "=" means equality in mathematics, and is used for assignment in many languages. But assignment alters the value of a variable, while equality testing tests whether two expressions have the same value.

In some languages, such as BASIC, a single equals sign () is used for both the assignment operator and the equality relational operator, with context determining which is meant. Other languages use different symbols for the two operators. For example:

  • In Pascal, the assignment operator is a colon and an equals sign () while the equality operator is a single equals ().
  • In C, the assignment operator is a single equals sign () while the equality operator is a pair of equals signs ().
  • In R, the assignment operator is basically , as in , but a single equals sign can be used in certain contexts.

The similarity in the two symbols can lead to errors if the programmer forgets which form ("", "", "") is appropriate, or mistypes "" when "" was intended. This is a common programming problem with languages such as C (including one famous attempt to backdoor the Linux kernel [20]), where the assignment operator also returns the value assigned (in the same way that a function returns a value), and can be validly nested inside expressions. If the intention was to compare two values in an statement, for instance, an assignment is quite likely to return a value interpretable as Boolean true, in which case the clause will be executed, leading the program to behave unexpectedly. Some language processors (such as gcc) can detect such situations, and warn the programmer of the potential error.

Notation[edit]

See also: Comparison of programming languages (variable and constant declarations)

The two most common representations for the copying assignment are equals sign () and colon-equals (). Both forms may semantically denote either an assignment statement or an assignment operator (which also has a value), depending on language and/or usage.

Fortran, PL/I, C (and descendants such as C++, Java, etc.), Bourne shell, Python, Go (assignment to pre-declared variables), R, Windows PowerShell, etc.
ALGOL (and derivatives), Simula, CPL, BCPL, Pascal[21] (and descendants such as Modula), Mary, PL/M, Ada, Smalltalk, Eiffel,[22][23]Oberon, Dylan,[24]Seed7, Go (shorthand for declaring and defining a variable),[25]Io, AMPL, ML,[26] etc.

Other possibilities include a left arrow or a keyword, though there are other, rarer, variants:

Mathematical pseudo code assignments are generally depicted with a left-arrow.

Some platforms put the expression on the left and the variable on the right:

Some expression-oriented languages, such as Lisp[28][29] and Tcl, uniformly use prefix (or postfix) syntax for all statements, including assignment.

See also[edit]

Notes[edit]

References[edit]

  1. ^ abTopics in Information Processing
  2. ^ abcImperative Programming
  3. ^ abcRuediger-Marcus Flaig (2008). Bioinformatics programming in Python: a practical course for beginners. Wiley-VCH. pp. 98–99. ISBN 978-3-527-32094-3. Retrieved 25 December 2010. 
  4. ^ abcdeCrossing borders: Explore functional programming with HaskellArchived November 19, 2010, at the Wayback Machine., by Bruce Tate
  5. ^Mitchell, John C. (2003). Concepts in programming languages. Cambridge University Press. p. 23. ISBN 978-0-521-78098-8. Retrieved 3 January 2011. 
  6. ^Imperative Programming Languages (IPL)
  7. ^John C. Mitchell (2003). Concepts in programming languages. Cambridge University Press. pp. 81–82. ISBN 978-0-521-78098-8. Retrieved 3 January 2011. 
  8. ^Hudak, Paul (2000). The Haskell School of Expression: Learning Functional Programming Through Multimedia. Cambridge: Cambridge University Press. ISBN 0-521-64408-9. 
  9. ^https://docs.python.org/reference/simple_stmts.html#assignment-statements
  10. ^The Go Programming Language Specification: Assignments
  11. ^INMOS Limited, ed. (1988). Occam 2 Reference Manual. New Jersey: Prentice Hall. ISBN 0-13-629312-3. 
  12. ^Wall, Larry; Christiansen, Tom; Schwartz, Randal C. (1996). Perl Programming Language (2 ed.). Cambridge: O´Reilly. ISBN 1-56592-149-6. 
  13. ^Lutz, Mark (2001). Python Programming Language (2 ed.). Sebastopol: O´Reilly. ISBN 0-596-00085-5. 
  14. ^Thomas, David; Hunt, Andrew (2001). Programming Ruby: The Pragmatic Programmer's Guide. Upper Saddle River: Addison Wesley. ISBN 0-201-71089-7. 
  15. ^D.W. Barron et al., "The main features of CPL", Computer Journal6:2:140 (1963). full text (subscription)
  16. ^http://legacy.python.org/dev/peps/pep-3132/
  17. ^https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment
  18. ^Effective Go: for, "Finally, Go has no comma operator and ++ and -- are statements not expressions. Thus if you want to run multiple variables in a for you should use parallel assignment (although that precludes ++ and --)."
  19. ^Niklaus Wirth. "Good Ideas, Through the Looking Glass". CiteSeerX 10.1.1.88.8309. 
  20. ^Corbet (6 November 2003). "An attempt to backdoor the kernel". 
  21. ^Moore, Lawrie (1980). Foundations of Programming with Pascal. New York: John Wiley & Sons. ISBN 0-470-26939-1. 
  22. ^Meyer, Bertrand (1992). Eiffel the Language. Hemel Hempstead: Prentice Hall International(UK). ISBN 0-13-247925-7. 
  23. ^Wiener, Richard (1996). An Object-Oriented Introduction to Computer Science Using Eiffel. Upper Saddle River, New Jersey: Prentice Hall. ISBN 0-13-183872-5. 
  24. ^Feinberg, Neal; Keene, Sonya E.; Mathews, Robert O.; Withington, P. Tucker (1997). Dylan Programming. Massachusetts: Addison Wesley. ISBN 0-201-47976-1. 
  25. ^The Go Programming Language Specification: short variable declarations
  26. ^Ullman, Jeffrey D. (1998). Elements of ML Programming: ML97 Edition. Englewood Cliffs, New Jersey: Prentice Hall. ISBN 0-13-790387-1. 
  27. ^Iverson, Kenneth E. (1962). A Programming Language. John Wiley and Sons. ISBN 0-471-43014-5. 
  28. ^Graham, Paul (1996). ANSI Common Lisp. New Jersey: Prentice Hall. ISBN 0-13-370875-6. 
  29. ^Steele, Guy L. (1990). Common Lisp: The Language. Lexington: Digital Press. ISBN 1-55558-041-6. 
  30. ^Dybvig, R. Kent (1996). The Scheme Programming Language: ANSI Scheme. New Jersey: Prentice Hall. ISBN 0-13-454646-6. 
  31. ^Smith, Jerry D. (1988). Introduction to Scheme. New Jersey: Prentice Hall. ISBN 0-13-496712-7. 
  32. ^Abelson, Harold; Sussman, Gerald Jay; Sussman, Julie (1996). Structure and Interpretation of Computer Programs. New Jersey: McGraw-Hill. ISBN 0-07-000484-6. 
  1. ^Use of predates Fortran, though it was popularized by Fortran.

0 Replies to “Bb0022 Assignment Definition”

Lascia un Commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati *