Skip to content
Snippets Groups Projects
Commit ccd1022f authored by Ryan Du's avatar Ryan Du
Browse files

help

parent 4a612c07
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 279 deletions
<!DOCTYPE html>
<link rel="stylesheet" href="/lambert-ga/lambert-ga/_astro/RCAERCA.82f310ff.css" /><h1 id="exponential-rolling-circle-amplification-erca">Exponential Rolling Circle Amplification (eRCA)</h1>
<p>Although the data from testing rolling circle amplification (RCA) with the target microRNA (miRNA) indicates high sensitivity — detecting lower limits of 2 pM — it lacks the ability to clearly differentiate between various concentrations of miRNA. Throughout multiple iterations of testing, Lambert iGEM has consistently found a significant overlap in error bars for the fluorescent output, especially among lower concentrations of miRNA. Despite taking extra steps to decrease potential error (see <a href="https://2023.igem.wiki/lambert-ga/rca/">RCA: Optimization</a>), we still see a large margin of error. After further discussions with Dr. Mark Styczinski from the Georgia Institute of Technology, we concluded that this overlap in error bars is likely caused by the similarity of fluorescent outputs ‒ due to the minute scale of and minimal difference between concentrations ‒ rather than experimental variation. Exponential RCA (eRCA) is an adaptation of RCA that produces exponentially greater fluorescence per unit of miRNA (Liu et al., 2013; Li et al., 2017); therefore, it has the potential to increase the distinction between lower miRNA concentrations and subsequently decrease the margin of error.</p>
<h2 id="rca-vs-erca">RCA vs. eRCA</h2>
<p>There are two major differences between eRCA and RCA: the padlock probe design and the amplification process. The RCA padlock probe consists of two parts: the end or “arms” of the padlock probe and the middle sequence (see <a href="https://2023.igem.wiki/lambert-ga/rca/">RCA: 2022 Overview</a>). The arms are the reverse complement of the target miRNA, while the middle sequence corresponds to the reporter mechanism (Jonstrup et al., 2006). The three main steps of RCA are hybridization, ligation, and amplification (Jonstrup et al., 2006) (see <a href="https://2023.igem.wiki/lambert-ga/rca/">RCA: 2022 Overview</a>). The target miRNA first hybridizes to the padlock probe, bringing the two ends of the probe together. Then, the two ends are ligated by SplintR ligase. The bound miRNA serves as a primer for Phi29 DNA polymerase, initiating the amplification of the padlock probe. The result is a long repeating strand of DNA, known as the rolling circle product (RCP), used to quantify the initial concentration of the miRNA (Jonstrup et al., 2006).
In eRCA, the padlock probes consist of an additional part between the arms and the reporter sequence: the complement of the endonuclease binding site (see Fig. 1) (Li et al., 2017). When the RCP is synthesized during amplification, the nicking endonuclease Nb.BbvCI will recognize this site and cleave the outer strand of DNA, or the RCP, while it is still bound to the padlock probe (Biolabs). This ensures that the padlock probe remains intact while releasing individual strands of the synthesized miRNA and reporter sequence. The produced miRNA can then bind to the padlock probe and initiate the eRCA process again, essentially creating an endless loop of amplification until the reagents are consumed or the reaction is deactivated (see Fig. 2) (Liu et al., 2013; Li et al., 2017). The exponential increase in output can increase the differences in fluorescence emission between miRNA concentrations, subsequently decreasing the margin of error and accuracy of our overall biosensor.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/group-11.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 1. Padlock probe design for eRCA</div></div>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/erca-overall-diagram.jpeg" style="max-width:700" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 2. eRCA process utilizing Nb.BbvCI</div></div>
<p>Lettuce is a fluorescent DNA aptamer that binds with and induces the fluorescences of the DFHBI-1T dye (VarnBuhler et al., 2022). Initially, we considered producing whole Lettuce aptamers through the RCA reaction. However, Dr. Mark Styczsinski and Megan McSweeney from the Georgia Institute of Technology advised us against this as the secondary structures of the aptamers would likely interfere with each other on a single DNA strand. As a result, we chose to pursue other reporter mechanisms with the traditional RCA assay (see <a href="https://2023.igem.wiki/lambert-ga/rca/">RCA: Outputs</a>). Contrary to RCA, eRCA produces multiple isolated strands of the reporter sequence, offering the potential to create whole Lettuce aptamers without the risk of secondary structure interference (Liu et al., 2013; Li et al., 2017).
The hsa-miR-1-3p eRCA padlock probe (<a href="http://parts.igem.org/Part:BBa_K4683002">BBa_K4683002</a>) consists of the following parts: 3’ arm for miR-1 (<a href="http://parts.igem.org/Part:BBa_K4245100">BBa_K4245100</a>), 5’ arm for miR-1 (<a href="http://parts.igem.org/Part:BBa_K4245107">BBa_K4245107</a>), Lettuce aptamer complement (<a href="http://parts.igem.org/Part:BBa_K4683000">BBa_K4683000</a>), and Nb.BbvCI binding sites (<a href="http://parts.igem.org/Part:BBa_M31961">BBa_M31961</a>). As the concentration of the target miRNA increases, the padlock probe produces more miRNAs and Lettuce aptamers, resulting in an exponential increase in fluorescence output in the presence of DFHBI-1T.</p>
<h2 id="results">Results</h2>
<p>We performed eRCA with 40.8 pM of miR-1 (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: eRCA Protocol</a>) then ran the reaction on a gel electrophoresis (see Fig. 3) (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: blueGel™ with RCP</a>). Since eRCA produces multiple shorter strands of DNA (~25 nucleotides), we do not expect to see any bands on the gel. Therefore, the gel in Figure 3 indicates that eRCA was likely successful.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/rcagel.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 3. A: eRCA with 40.8 pM miR-1; B: negative control (no enzymes); 2% agarose gel ran for 1 hour at 48V</div></div>
<p>We then characterized and quantified the RCP from the eRCA reaction through the Lettuce reporting mechanism (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: eRCA Readout</a>). Resultant fluoresence was quantified in a plate reader at exciation wavelength of 480 nm and emission intensity at 528 nm. The triplicate of eRCA with 40.8 pM of miR-1 exhibits significantly more fluorescence than that of the negative control (no enzyme), indicating that the eRCA reaction was successful (see Fig. 4).</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/erca-graph.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 4. Fluorescent readout of RCP for eRCA with 40.8 pM miR-1 using Lettuce aptamer</div></div>
<p>In the future, we plan to test eRCA with the entire range of clinically relevant miRNA concentrations for coronary artery disease (CAD), as well as validate the applicability of eRCA with spiked serum samples. If the system proves to be more accurate than our current RCA biosensor, we will communicate with Dr. Charles Searles from the Emory University School of Medicine to test our biosensors in actual patient serum.</p>
\ No newline at end of file
<!DOCTYPE html>
<link rel="stylesheet" href="/lambert-ga/lambert-ga/_astro/RCAERCA.82f310ff.css" /><h1 id="overview">Overview</h1>
<p>One of Lambert iGEM’s major goals in 2023 was to increase the inclusivity of our biosensors for all demographics. Through literature review, we found that healthcare settings tend to emphasize responsive care for men, resulting in lower patient retention among women, especially during coronary artery disease (CAD) diagnosis (Johns Hopkins, 2018). We validated this disparity with Dr. Mindy B. Gentry, a cardiologist in Georgia, and Dr. DeLisa Fairweather, a director of research at the Department of Cardiovascular Diseases at Mayo Clinic. To further address this issue, we specifically targeted microRNAs (miRNAs) correlated to CAD in women (see Inclusivity: Estrogen). Discussion with these experts confirmed the use of hsa-miR-20b (<a href="http://parts.igem.org/Part:BBa_K4683005">BBa_K4683005</a>) as a target for our rolling circle amplification (RCA) assay. Moreover, we extended the correlation of miRNAs to CAD through specific racial groups, utilizing CADmir to identify hsa-miR-328-3p (<a href="http://parts.igem.org/Part:BBa_K4683021">BBa_K4683021</a>) and hsa-miR-146a (<a href="http://parts.igem.org/Part:BBa_K4683025">BBa_K4683025</a>). Further collaboration with Dr. Charles Searles, a professor of medicine at Emory Healthcare Hospital, enabled us to utilize hsa-miR-150-5p (<a href="http://parts.igem.org/Part:BBa_K4683009">BBa_K4683009</a>), hsa-miR-122-5p (<a href="http://parts.igem.org/Part:BBa_K4683013">BBa_K4683013</a>), and hsa-miR-30c-5p (<a href="http://parts.igem.org/Part:BBa_K4683017">BBa_K4683017</a>) as they correlate with CAD in African American populations. Therefore, we can incorporate these miRNAs into our research to further accommodate an inclusive approach for understanding and detecting CAD.</p>
<h2 id="estrogen-mirna">Estrogen miRNA</h2>
<p>Women after menopause are more likely to develop heart disease due to a decrease in estrogen hormone levels (Brandt, 2013). Studies conducted by Pare et al. in 2022 found that estrogen directly suppresses CAD through the Estrogen Receptor α (ERα) pathway; when estrogen is present in the bloodstream, it activates the ERα pathway, subsequently activating the production of CAD suppressors. Post-menopausal women have lower levels of estrogen within their bloodstream, resulting in the inhibition of CAD suppressors and therefore increasing patient susceptibility to CAD (Brandt, 2013; Pare et al., 2022).
The concentration of hsa-miR-20b is positively correlated with that of estrogen (Pérez-Cremades et al., 2018). Like the estrogen molecule, miR-20b activates the ERα pathway, regulating the production of CAD suppressors (Pérez-Cremades et al., 2018). Dr. Fairweather validated the use of this miRNA to detect the risk of CAD in post-menopausal women (see Inclusivity: Estrogen).</p>
<h2 id="other-mirnas">Other miRNAs</h2>
<p>We conducted a comprehensive literature review using CADmir to efficiently identify relevant miRNAs (see Fig. 1) (see <a href="https://2023.igem.wiki/lambert-ga/software/">Software: CADmir</a>). In just 4 minutes and 12 seconds, we uncovered three miRNAs and a selection of related articles.</p>
<p>One of these miRNAs, hsa-mir-328-3p, was found to be correlated with cardiovascular disease, specifically atherosclerosis. Therefore, it serves as a valuable predictive tool for early detection of heart disease, with a specific focus on the African American population (Iwańczyk, 2023). Similarly, hsa-mir-146a is a miRNA associated with the regulation of inflammation and CAD, predominantly linked to the Latin American population (Iwańczyk, 2023). These findings are of particular relevance to our team after considering the demographic makeup of Georgia. Notably, the African American and Latin American population have experienced significant growth, as demonstrated by the statistic: “the Black (non-Hispanic) population had the most growth increasing by 518,670 from 2.9 million in 2010 to 3.5 million in 2021” (Georgia Population by Year, County, Race, &amp; More, 2023).</p>
<p>To further complement our findings, we consulted with Dr. Searles, who recommended three additional miRNAs correlated with CAD in African American populations: hsa-mir-150-5p, hsa-mir-122-5p, and hsa-mir-30c-5p.</p>
<h1 id="gel-experimentation">Gel Experimentation</h1>
<p>We performed RCA on miR-20b, miR-328, miR-146a using our respective padlock probe designs (<a href="http://parts.igem.org/Part:BBa_K4683008">BBa_K4683008</a>; <a href="http://parts.igem.org/Part:BBa_K4683024">BBa_K4683024</a>; <a href="http://parts.igem.org/Part:BBa_K4683028">BBa_K4683028</a>) and ran the subsequent rolling circle product (RCP) on a 1% agarose gel (see Fig. 2). The gel exhibited a fluorescent band of DNA very close to the well, indicating that a long strand of DNA greater than 1 kB - our RCP - was produced. Therefore, we can validate that our reaction was successful. In the future, we plan to expand our collection of biosensors to detect more miRNAs related to CAD and other demographics.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/human-practices/igem-estrogen-label.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 13. RCP from RCA reaction with miR-20b, miR-328,miR-146; 2% agarose gel ran for 1 hour at 48V </div></div>
\ No newline at end of file
<!DOCTYPE html>
<link rel="stylesheet" href="/lambert-ga/lambert-ga/_astro/RCAERCA.82f310ff.css" /><h1 id="specificity">Specificity</h1>
<p>While Lambert iGEM has been utilizing rolling circle amplification (RCA) to detect a single isolated microRNA (miRNA), human blood serum contains a total of 204 detectable miRNAs (Wang et al., 2012). Research conducted by Jonstrup et al. in 2006 found that the padlock probe ligates on a perfectly matching RNA template, distinguishing between differences in the target and other sequences. To test whether padlock probes would be able to detect specific miRNA, and therefore be applicable for serum testing, we ran RCA using the hsa-miR-1-3p padlock (<a href="http://parts.igem.org/Part:BBa_K4245200">BBa_K4245200</a>) in the presence of four different miRNA sequences (see Fig. 1). The first is the original miR-1 sequence (<a href="http://parts.igem.org/Part:BBa_K4245006">BBa_K4245006</a>), which is expected to hybridize to the padlock and result in the greatest fluorescence decrease. Two sequences with differing single nucleotide variants (SNVs) found from the National Library of Medicine microRNA 1-1 database were utilized to determine the specificity of RCA: one with a single SNV (<a href="http://parts.igem.org/Part:BBa_K4683003">BBa_K4683003</a>) and one with three SNVs (<a href="http://parts.igem.org/Part:BBa_K4683004">BBa_K4683004</a>). hsa-miR-133a-3p (<a href="http://parts.igem.org/Part:BBa_K4245009">BBa_K4245009</a>) was also included to ensure the padlock would not ligate to any miRNA.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/frame-1.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 1. Comparison of sequences used to test specificity of hsa-miR-1-3p RCA padlock: 1 bp SNV in the seed region, 3 SNVs outside of seed, and miR-133a-3p</div></div>
<p>We ran the reactions and control on a gel electrophoresis; only the well with 40.8 pM of miR-1 showed visible bands of DNA near the top of the wells, which is likely our RCP (see Fig. 2) (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: blueGel™ with RCP</a>).</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/specificity-gel.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 2. Gel results: RCA with A: miR-1, B: 1 SNV, C: 3 SNVs, D: miR-133a; 2% agarose gel ran for 1 hour at 48V</div></div>
<p>We then tested the RCP with linear DNA probes and quantified the resultant fluorescence in a plate reader at an emission wavelength of 480 nm and an excitation wavelength of 528 nm (see Fig. 3) (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Linear DNA Probes with RCP</a>. The RCA reaction utilizing the miR-1 padlock probe with miR-1 exhibited significantly less fluorescence than the other miRNAs. Since linear DNA probes produce a negative correlation between fluorescence and miRNA concentration, this result, along with the gel, indicates that RCA is specific to single nucleotide differences.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/specificty-graph.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 3. Comparison of RCA with miR-1, 1SNV, 3SNVs, and 133a fluorescence output using linear DNA probes.</div></div>
<h1 id="emory-testing">Emory Testing</h1>
<p>Dr. Charles Searles is a cardiologist specialist working with biomarkers regarding coronary artery disease (CAD) and an associate professor of medicine at Emory Healthcare Hospital. Last year, he provided us with hsa-miR-451a (<a href="http://parts.igem.org/Part:BBa_K4245012">BBa_K4245012</a>) - which is unrelated to the pathophysiology of CAD - as a control for our proof of concept experimentation and also offered to test our biosensor in his lab. This year, we continued to communicate with him in order to test whether our biosensor could be practical and applicable as a diagnostic tool. This was done with the help of Kimberly Ann Rooney, a lab technician at the Searles Cardiovascular Lab led by Dr. Charles Searles, who ran the RCA reactions utilizing our protocol and miR-1 padlock probe (<a href="http://parts.igem.org/Part:BBa_K4245200">BBa_K4245200</a>), and their enzymes (see Fig. 4) (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: SYBR™ Safe with RCP</a>). They ran RCA on 40.8 pM of miR-1 (<a href="http://parts.igem.org/Part:BBa_K4245006">BBa_K4245006</a>) with SYBR™ Safe dye, which fluoresces when bound to ssDNA, as the output. Resultant fluoresence was quantified in a plate reader at exciation wavelength of 480 nm and emission intensity at 528 nm. As shown in Figure 4, there was a significant increase in fluorescence in the RCA reaction as compared to that of the controls, therefore validating the application of our biosensor in other labs.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/emory.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 4. Triplicate of RCA with SYBR™ Safe output done by independent hands</div></div>
<p>After running our assay twice, Ms. Rooney gave us feedback regarding our protocol such as reducing the number of variables as controls and performing serial dilutions for more precise concentrations of miRNA. Ultimately, she told us that our biosensor lacked practicality and applicability for point-of-care testing due to its long reaction time, which is approximately 15-16 hours‒ more than double the time needed for quantification through qRT-PCR. Subsequently, the next step we took to optimize RCA was to reduce the time required to run the reaction.</p>
<h1 id="time-optimization">Time Optimization</h1>
<h2 id="ligation-time">Ligation Time</h2>
<p>Lambert iGEM’s 2022 RCA protocol (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: RCA 2022 protocol</a>) requires samples to be incubated in the thermocycler at 37°C for two hours. However, the properties and usage of SplintR Ligase show that the reaction is successful with a 15-minute ligation time (Avantor Staff). Therefore, we ran RCA utilizing the miR-1 padlock probe (<a href="http://parts.igem.org/Part:BBa_K4245200">BBa_K4245200</a>) with four different ligation times with miR-1 (<a href="http://parts.igem.org/Part:BBa_K4245006">BBa_K4245006</a>): 15 minutes, 30 minutes, one hour, and two hours. After amplification, the reactions and controls were run on a gel; the bright bands near the top of the well showed that DNA product was produced for all reactions except for 15 minutes (see Fig. 5). Moving forward, we implemented a 30-minute ligation time (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Optimized RCA protocol</a>).</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/screenshot-2023-10-11-at-4-32-50-pm.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 5. 1: 15-minute ligation, 2: 30-minute ligation, 3: 1-hour ligation, 4: 2-hour ligation, A: control (no enzymes); 2% agarose gel ran for 1 hour at 48V</div></div>
<h2 id="amplification-time">Amplification Time</h2>
<p>Lambert iGEM’s 2022 RCA protocol (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: RCA 2022 protocol</a>) requires samples to be incubated in the thermocycler at 37°C for eight hours for amplification. To reduce this time, we ran RCA with two different concentrations of miR-1. After hybridization and ligation, we incubated the reactions in the plate reader at 37°C with 4uL SYBR™ Safe (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: SYBR™ Safe with RCP</a>). The reactions were run overnight and the subsequent fluorescence was quantified in a plate reader (excitation wavelength 480 nm; emission wavelength: 528 nm): 30-minute intervals (see Fig. 6). Over time, the two RCA reactions increased in fluorescence, with no SEM overlap observed between the starting time and 5-hour mark. This suggests that RCP can be produced optimally starting at 5 hours. The significant increase in fluorescence between the RCA reactions and controls shows that SYBR™ Safe can determine the presence of RCP; however, the lack of difference between the 40.8 pM and .41 pM of miR-1 fluorescence indicates that the dye is not sensitive enough to differentiate between miRNA concentrations. Therefore, we did not continue to utilize SYBR™ Safe as a reporter.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/specificty-graph.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 6. RCA amplification optimization reaction with 40.8 pM and 0.41 pM of miRNA. No SEM overlap between starting point and 5-hour incubation time. SEM overlaps between 40. pM and .41 pM show that miRNA concentrations cannot be differentiated by SYBR™ Safe.</div></div>
<h2 id="phi29-xt">Phi29-XT</h2>
<p>Lambert iGEM’s RCA protocol (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Optimized RCA protocol</a>) utilizes Phi29 DNA polymerase to perform amplification, resulting in an 5 hour amplification time. Phi29- XT DNA polymerase is an optimized enzyme with improved thermostability and sensitivity, which could shorten this time down to 2 hours (Biolabs). We ran RCA following the protocol for Phi29-XT on the New England Biolabs website (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Amplification with Phi29- XT</a>). The reactions and controls were run on a gel; no visible bands could be seen on the gel, indicating that RCP was not produced and therefore the reaction was not successful. As a result, we did not pursue utilizing Phi29-XT for further RCA reactions (see Fig. 7).</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/phi-xt.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 7. A: control (no enzymes), X: RCA with phi29-XT DNA polymerase; 2% agarose gel ran for 1 hour at 48V</div></div>
<p>Overall, we were able to reduce the RCA workflow from around 15 hours to 7 (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Optimized RCA Protocol</a>).</p>
\ No newline at end of file
<!DOCTYPE html>
<link rel="stylesheet" href="/lambert-ga/lambert-ga/_astro/RCAERCA.82f310ff.css" /><h1 id="linear-dna-probes-vs-lettuce">Linear DNA Probes vs Lettuce</h1>
<p>Lettuce DNA aptamer and linear DNA probes were both tested as reporters for rolling circle amplification (RCA) with the hsa-miR-1-3p padlock probe (<a href="http://parts.igem.org/Part:BBa_K4245200">BBa_K4245200</a>); however, only linear probes were used for the successful characterization of miR-1 (<a href="http://parts.igem.org/Part:BBa_K4245006">BBa_K4245006</a>) in the 2022 season (see <a href="https://2022.igem.wiki/lambert-ga/rca">Lambert iGEM Wiki RCA, 2022</a>). Dr. Adam Silverman from Northwestern University and Dr. Mark Styzynski from the Georgia Institute of Technology both suggested utilizing an on-state reporter to make results more accurate and comprehensible; measuring gain of signal reduces fluorescent noise caused by the reaction and has less limitations compared to repressible systems. Linear DNA probes are an off-state reporter, therefore they produce an indirect relationship between microRNA (miRNA) concentration and fluorescence output. Utilizing an on-state reporter such as Lettuce would result in a direct relationship, in which a higher concentration of fluorescence will correspond to a higher concentration of miRNA.</p>
<h2 id="linear-dna-probes">Linear DNA Probes</h2>
<p>Fluorophore and quencher-tagged linear DNA probes were used to quantify the presence and concentration of target miRNA in samples. Each probe contains part of the complement to the middle sequence (<a href="http://parts.igem.org/Part:BBa_K4245131">BBa_K4245131</a>) of the rolling circle product (RCP): One is tagged with the fluorophore dye FAM (<a href="http://parts.igem.org/Part:BBa_K4245130">BBa_K4245130</a>), and the other is tagged with the quencher molecule BHQ1 (<a href="http://parts.igem.org/Part:BBa_K4245132">BBa_K4245132</a>). The fluorescent signal from the fluorophore is shut off by the quencher as a result of a fluorescence resonance energy transfer (FRET) reaction (Zhou et al., 2015). The reaction is distance-dependent; when the quencher and fluorophore-tagged linear probes bind to the RCP, they are in close proximity (see Fig. 1), allowing non-radiative energy to be transferred from the excited fluorophore to the quencher (Sekar &amp; Periasamy, 2003). The decrease in fluorescence in the solution can be correlated with a specific concentration of miRNA through characterization.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/frame-2.jpeg" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 1. Linear DNA probes binding to RCP, leading to diminished fluorescence</div></div>
<p>Similar to last year, we characterized and quantified RCP through the linear probes reporting mechanism (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Linear DNA Probes with RCP</a>). There is a negative logarithmic correlation between the miRNA concentrations and the relative fluorescence units (RFU) (see Fig. 2). Changes in fluorescence were measured using a plate reader in experimentation: the emission spectrum of FAM is 480 nm in wavelength, while the excitation spectrum is 528 nm in wavelength (Zhou et al., 2015).</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/linearprobes.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 2. Characterization curve showing a negative logarithmic relationship between miR-1 concentrations and RFU from linear DNA probes </div></div>
<h2 id="lettuce">Lettuce</h2>
<p>Lettuce is a fluorescent DNA aptamer that binds with the dye DFHBI-1T within its secondary structure, thus causing the dye to fluoresce (see Fig. 3) (VarnBuhler et al., 2022). The split Lettuce design includes two halves of the Lettuce aptamer and their flanking sequences. After the RCA reaction, we add the split Lettuce sequences and the DFHBI-1T dye to the RCP. The left flanking sequence (<a href="http://parts.igem.org/Part:BBa_K4245134">BBa_K4245134</a>) will bind to the first half of the middle sequence of the RCP, and the right flanking sequence (<a href="http://parts.igem.org/Part:BBa_K4245135">BBa_K4245135</a>) will bind to the second half of the middle sequence. Once together, the dye is able to bind and produce fluorescence, therefore an increase in miRNA concentration should correlate with an increase in fluorescence.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/group-9.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 3. Split Lettuce aptamer with DFHBI-1T binding to RCP</div></div>
<p>We characterized and quantified RCP through the Lettuce reporting mechanism (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Lettuce with RCP</a>). There is a positive logarithmic correlation between the miRNA concentrations and the relative fluorescence units (RFU) (see Fig. 4). Changes in fluorescence were measured using a plate reader in experimentation: the emission spectrum of DFHBI-1T is 480 nm in wavelength, while the excitation spectrum is 528 nm in wavelength (VarnBuhler et al., 2022).</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/lettuce.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 4. Characterization curve showing a positive logarithmic relationship between miR-1 concentrations and RFU from split Lettuce aptamer</div></div>
<h2 id="comparison">Comparison</h2>
<p>Both reporter mechanisms resulted in significant SEM overlap between the lower miRNA concentrations, making accurate differentiation of miRNAs difficult. However, there was no indication that Lettuce outperformed linear DNA probes. Therefore, we continued to conduct further experiments with linear probes. In the future, we hope to find another on-state reporter that would make reading RCA results more comprehensible and accurate. Such reporters include molecular beacons and other DNA aptamers.</p>
<h1 id="capillary">Capillary</h1>
<p>To create a more accessible miRNA detection system, Lambert iGEM also adopted another output approach: capillary-rolling circle amplification (cpRCA). This method offers faster reaction times and eliminates the need for expensive and specialized equipment like plate readers and fluorometers, making it suitable for rapid point-of-care testing of miRNAs (Hixson &amp; Ward, 2021). Unlike our current reporter mechanisms, cpRCA amplifies miRNA to produce RCP within a glass capillary tube. The small diameter of the capillary tube (0.1mm) enables diffusion of small polymers (such as miRNA), while restricting diffusion of larger polymers (such as the RCP). Due to this principle (see <a href="https://2023.igem.wiki/lambert-ga/model/">Modeling</a>), the miRNA molecules are relatively spaced apart within the tube (see Fig. 5a). As the RCP is being synthesized from the miRNA molecules, the large DNA strands are unable to diffuse, creating spaced apart, isolated regions of ssDNA (see Fig. 5b). When the DNA fluorescent dye SYBR™ Safe is present in the reaction solution, it binds to the synthesized RCP to create regions of high fluorescence, or fluorescent “dots” (see Fig. 5c), a phenomenon that has been explored with PCR in capillary tubes (Choi et al., 2018). We can directly quantify the number of miRNA molecules by counting the number of dots, which can be done through use of a phone camera and counting algorithm, such as Open Computer Vision Library (OpenCV) (Abid et al, 2021).</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/rca-optimization/group-12-1.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 5. (a) miRNA and padlock probe diffusion in capillary tube. (b) Isolated regions of RCP within the capillary tube. (c) SYBR™ Safe fluorescence with RCP
</div></div>
<p>After discussion with Dr. Charles Searles from the Emory University School of Medicine, we determined that the upper limit of clinically relevant miRNA concentrations in patients with CAD is around 40 pM. We initially ran cpRCA with the miR-1 padlock probe (<a href="http://parts.igem.org/Part:BBa_K4245200">BBa_K4245200</a>) and 40.8 pM of miR-1 (<a href="http://parts.igem.org/Part:BBa_K4245006">BBa_K4245006</a>) but were not able to visualize any dots of miRNA within the capillary tube (see Fig. 6) (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: Capillary RCA</a>). This is likely because the higher concentration of miRNA resulted in a significant overlap of fluorescent regions within the capillary tube, leading to inaccurate quantification through cpRCA.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/screenshot-2023-10-11-at-3-22-41-am.png" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 6. Visualization of cpRCA with 40.8 pM of miRNA
</div></div>
<p>To ensure the amplified products were countable, we diluted the sample down to 1.66 fM, or approximately 50 molecules of miRNA. To validate that cpRCA would still be successful at this lower concentration, we ran a gel electrophoresis on the RCP from the cpRCA reaction after 4 hours of amplification (see <a href="https://2023.igem.wiki/lambert-ga/experiments/">Experiments: blueGel™ with RCP</a>) using both 40pM and 1.66fM of miRNA to observe the difference. By analyzing the results on the gel, we concluded that RCP was likely produced with both concentrations as the gel exhibited fluorescent bands of DNA very close to the wells, while no band was expressed in the control (see Fig. 7). As a result, we can infer that cpRCA was successful after 4 hours of amplification and at only 50 molecules of miRNA, which is more efficient than the 8 hour amplification of traditional RCA, and increases the sensitivity of the assay.</p>
<div class="flex w-full flex-col items-center justify-center p-1"><img src="https://static.igem.wiki/teams/4683/wiki/screenshot-2023-10-11-at-3-21-24-am.png" style="max-width:[400px]" alt="" class="mx-2 rounded-xl max-w-[400px] "/><div class="text-center italic">Figure 7. Lane 1: ladder, Lanes 2-3: cpRCA with 1.66 fM miR-1, Lanes 4-5: cpRCA with 40.8 pM miR-1, Lanes 6-7: control; 2% agarose gel ran for 1 hour at 48V</div></div>
<p>In the future, we plan to conduct further experimentation with lower miRNA concentrations to better visualize the fluorescent regions in the capillary tube, as well as characterize the full range of relevant miRNA concentrations for CAD.</p>
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
import{a as e}from"./Nav.d61123f0.js";import"./extends.98964cd2.js";import"./index.453e6029.js";import"./index.c95c1985.js";import"./index.76dc11fb.js";import"./jsx-runtime.4844db2a.js";export{e as NavHome};
This diff is collapsed.
import{r as o}from"./index.453e6029.js";import{j as e}from"./jsx-runtime.4844db2a.js";import{P as a}from"./ProgressBar.be6b89f5.js";import{N as l}from"./Nav.d61123f0.js";import"./use-scroll.c1cc80d7.js";import"./motion.13ff9c9b.js";import"./extends.98964cd2.js";import"./index.c95c1985.js";import"./index.76dc11fb.js";const m=`
prose max-w-3xl
prose-h1:font-serif prose-h1:text-4xl
prose-h2:font-sans prose-h2:text-2xl
prose-h3:font-sans prose-h3:text-lg prose-h3:font-semibold prose-h3:text-yellow-800
prose-p:font-sans prose-p:text-gray-900
prose-a:font-sans prose-a:text-gray-900 prose-a:underline prose-a:font-normal prose-a:text-yellow-800
prose-quoteless
prose-strong
prose-em
prose-ol
prose-ul
prose-li:text-gray-800
prose-table
prose-th
prose-tr
prose-td
prose-img
`,u=({children:t,header:s,title:r})=>(o.useState(!1),e.jsx(e.Fragment,{children:e.jsxs("body",{className:"w-screen",children:[s,e.jsx("div",{className:"bg-cover absolute w-screen left-0 top-0 p-0 m-0 z-10 h-1/2",style:{background:`linear-gradient(to bottom, rgba(255, 255, 255, 0) 36.46%, #FFFFFF 100%), url(${s})`,backgroundSize:"cover"}}),e.jsx(a,{}),e.jsx("div",{className:"w-full flex justify-center items-center",children:e.jsxs("div",{className:"flex justify-between m-5 z-50 max-w-6xl grow",children:[e.jsx("a",{href:"https://2023.igem.wiki/lambert-ga/",className:"font-serif z-30 text-white text-xl sm:text-lg md:text-base",children:"Lambert-GA"}),e.jsx(l,{})]})}),e.jsx("div",{className:"flex justify-center w-full items-center",children:e.jsxs("div",{className:"w-full m-5 max-w-3xl ",children:[e.jsx("p",{className:"font-serif font-bold z-30 absolute top-1/2 -translate-y-1/2 lg:-translate-x-20 text-5xl sm:text-6xl md:text-7xl",children:r}),e.jsx("div",{className:"absolute top-1/2 translate-y-20 h-32 lg:-translate-x-20 lg:border-l-2 border-gray-900 z-50"}),e.jsx("div",{className:m+"mt-[50vh] break-words grow sm:mt-[44vh] md:mt-[40vh]",children:t})]})})]})}));export{u as default};
import{r as o}from"./index.453e6029.js";import{j as e}from"./jsx-runtime.4844db2a.js";import{P as a}from"./ProgressBar.be6b89f5.js";import{N as l}from"./Nav.d61123f0.js";import"./use-scroll.c1cc80d7.js";import"./motion.13ff9c9b.js";import"./extends.98964cd2.js";import"./index.c95c1985.js";import"./index.76dc11fb.js";const n=`
prose max-w-5xl
prose-h1:font-serif prose-h1:text-4xl
prose-h2:font-sans prose-h2:text-2xl
prose-h3:font-sans prose-h3:text-lg prose-h3:font-semibold prose-h3:text-yellow-800
prose-p:font-sans prose-p:text-gray-900
prose-a:font-sans prose-a:text-gray-900 prose-a:underline prose-a:font-normal prose-a:text-yellow-800
prose-quoteless
prose-strong
prose-em
prose-ol
prose-ul
prose-li:text-gray-800
prose-table
prose-th
prose-tr
prose-td
prose-img
`,g=({children:t,header:s,title:r})=>(o.useState(!1),e.jsx(e.Fragment,{children:e.jsxs("body",{className:"w-screen",children:[s,e.jsx("div",{className:"bg-cover absolute w-screen left-0 top-0 p-0 m-0 z-10 h-1/2 ",style:{background:`linear-gradient(to bottom, rgba(255, 255, 255, 0) 36.46%, #FFFFFF 100%), url(${s})`,backgroundSize:"cover"}}),e.jsx(a,{}),e.jsx("div",{className:"w-full flex justify-center items-center",children:e.jsxs("div",{className:"flex justify-between m-5 z-50 max-w-6xl grow",children:[e.jsx("a",{href:"https://2023.igem.wiki/lambert-ga/",className:"font-serif z-30 text-white text-xl",children:"Lambert-GA"}),e.jsx(l,{})]})}),e.jsx("div",{className:"flex justify-center w-full items-center",children:e.jsxs("div",{className:"w-full m-5 max-w-5xl ",children:[e.jsx("p",{className:"font-serif text-5xl sm:text-6xl md:text-7xl font-bold z-30 absolute top-1/2 -translate-y-1/2 ",children:r}),e.jsx("div",{className:n+"mt-[50vh] break-words grow",children:t})]})})]})}));export{g as default};
import{j as s}from"./jsx-runtime.4844db2a.js";import{u as r}from"./use-scroll.c1cc80d7.js";import{m as t}from"./motion.13ff9c9b.js";function a(){const{scrollY:e,scrollYProgress:o}=r();return s.jsx("div",{className:"bg-slate-100 fixed top-0 left-0 right-0 pt-8",style:{marginTop:-40},children:s.jsx(t.div,{className:"bottom-0 left-0 pb-1 mt-2 right-0 bg-yellow-400 origin-left",style:{scaleX:o}})})}export{a as P};
import{_ as I}from"./extends.98964cd2.js";import{r as t}from"./index.453e6029.js";import{$ as Z,a as G,b as ee,c as O,d as j,e as te,f as h,g as x,h as V,i as oe}from"./index.76dc11fb.js";import{j as v}from"./jsx-runtime.4844db2a.js";import"./index.c95c1985.js";const A="rovingFocusGroup.onEntryFocus",ne={bubbles:!1,cancelable:!0},N="RovingFocusGroup",[S,k,ae]=Z(N),[re,L]=G(N,[ae]),[ce,se]=re(N),de=t.forwardRef((e,n)=>t.createElement(S.Provider,{scope:e.__scopeRovingFocusGroup},t.createElement(S.Slot,{scope:e.__scopeRovingFocusGroup},t.createElement(fe,I({},e,{ref:n}))))),fe=t.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:a,orientation:o,loop:c=!1,dir:i,currentTabStopId:r,defaultCurrentTabStopId:u,onCurrentTabStopIdChange:l,onEntryFocus:s,...f}=e,d=t.useRef(null),p=ee(n,d),w=O(i),[$=null,T]=j({prop:r,defaultProp:u,onChange:l}),[y,g]=t.useState(!1),m=te(s),q=k(a),R=t.useRef(!1),[H,P]=t.useState(0);return t.useEffect(()=>{const b=d.current;if(b)return b.addEventListener(A,m),()=>b.removeEventListener(A,m)},[m]),t.createElement(ce,{scope:a,orientation:o,dir:w,loop:c,currentTabStopId:$,onItemFocus:t.useCallback(b=>T(b),[T]),onItemShiftTab:t.useCallback(()=>g(!0),[]),onFocusableItemAdd:t.useCallback(()=>P(b=>b+1),[]),onFocusableItemRemove:t.useCallback(()=>P(b=>b-1),[])},t.createElement(h.div,I({tabIndex:y||H===0?-1:0,"data-orientation":o},f,{ref:p,style:{outline:"none",...e.style},onMouseDown:x(e.onMouseDown,()=>{R.current=!0}),onFocus:x(e.onFocus,b=>{const J=!R.current;if(b.target===b.currentTarget&&J&&!y){const D=new CustomEvent(A,ne);if(b.currentTarget.dispatchEvent(D),!D.defaultPrevented){const C=q().filter(E=>E.focusable),Q=C.find(E=>E.active),W=C.find(E=>E.id===$),X=[Q,W,...C].filter(Boolean).map(E=>E.ref.current);K(X)}}R.current=!1}),onBlur:x(e.onBlur,()=>g(!1))})))}),ie="RovingFocusGroupItem",be=t.forwardRef((e,n)=>{const{__scopeRovingFocusGroup:a,focusable:o=!0,active:c=!1,tabStopId:i,...r}=e,u=V(),l=i||u,s=se(ie,a),f=s.currentTabStopId===l,d=k(a),{onFocusableItemAdd:p,onFocusableItemRemove:w}=s;return t.useEffect(()=>{if(o)return p(),()=>w()},[o,p,w]),t.createElement(S.ItemSlot,{scope:a,id:l,focusable:o,active:c},t.createElement(h.span,I({tabIndex:f?0:-1,"data-orientation":s.orientation},r,{ref:n,onMouseDown:x(e.onMouseDown,$=>{o?s.onItemFocus(l):$.preventDefault()}),onFocus:x(e.onFocus,()=>s.onItemFocus(l)),onKeyDown:x(e.onKeyDown,$=>{if($.key==="Tab"&&$.shiftKey){s.onItemShiftTab();return}if($.target!==$.currentTarget)return;const T=$e($,s.orientation,s.dir);if(T!==void 0){$.preventDefault();let g=d().filter(m=>m.focusable).map(m=>m.ref.current);if(T==="last")g.reverse();else if(T==="prev"||T==="next"){T==="prev"&&g.reverse();const m=g.indexOf($.currentTarget);g=s.loop?ve(g,m+1):g.slice(m+1)}setTimeout(()=>K(g))}})})))}),ue={ArrowLeft:"prev",ArrowUp:"prev",ArrowRight:"next",ArrowDown:"next",PageUp:"first",Home:"first",PageDown:"last",End:"last"};function le(e,n){return n!=="rtl"?e:e==="ArrowLeft"?"ArrowRight":e==="ArrowRight"?"ArrowLeft":e}function $e(e,n,a){const o=le(e.key,a);if(!(n==="vertical"&&["ArrowLeft","ArrowRight"].includes(o))&&!(n==="horizontal"&&["ArrowUp","ArrowDown"].includes(o)))return ue[o]}function K(e){const n=document.activeElement;for(const a of e)if(a===n||(a.focus(),document.activeElement!==n))return}function ve(e,n){return e.map((a,o)=>e[(n+o)%e.length])}const pe=de,ge=be,U="Tabs",[me,De]=G(U,[L]),B=L(),[xe,M]=me(U),Ie=t.forwardRef((e,n)=>{const{__scopeTabs:a,value:o,onValueChange:c,defaultValue:i,orientation:r="horizontal",dir:u,activationMode:l="automatic",...s}=e,f=O(u),[d,p]=j({prop:o,onChange:c,defaultProp:i});return t.createElement(xe,{scope:a,baseId:V(),value:d,onValueChange:p,orientation:r,dir:f,activationMode:l},t.createElement(h.div,I({dir:f,"data-orientation":r},s,{ref:n})))}),Te="TabsList",Ee=t.forwardRef((e,n)=>{const{__scopeTabs:a,loop:o=!0,...c}=e,i=M(Te,a),r=B(a);return t.createElement(pe,I({asChild:!0},r,{orientation:i.orientation,dir:i.dir,loop:o}),t.createElement(h.div,I({role:"tablist","aria-orientation":i.orientation},c,{ref:n})))}),he="TabsTrigger",Fe=t.forwardRef((e,n)=>{const{__scopeTabs:a,value:o,disabled:c=!1,...i}=e,r=M(he,a),u=B(a),l=z(r.baseId,o),s=Y(r.baseId,o),f=o===r.value;return t.createElement(ge,I({asChild:!0},u,{focusable:!c,active:f}),t.createElement(h.button,I({type:"button",role:"tab","aria-selected":f,"aria-controls":s,"data-state":f?"active":"inactive","data-disabled":c?"":void 0,disabled:c,id:l},i,{ref:n,onMouseDown:x(e.onMouseDown,d=>{!c&&d.button===0&&d.ctrlKey===!1?r.onValueChange(o):d.preventDefault()}),onKeyDown:x(e.onKeyDown,d=>{[" ","Enter"].includes(d.key)&&r.onValueChange(o)}),onFocus:x(e.onFocus,()=>{const d=r.activationMode!=="manual";!f&&!c&&d&&r.onValueChange(o)})})))}),_e="TabsContent",we=t.forwardRef((e,n)=>{const{__scopeTabs:a,value:o,forceMount:c,children:i,...r}=e,u=M(_e,a),l=z(u.baseId,o),s=Y(u.baseId,o),f=o===u.value,d=t.useRef(f);return t.useEffect(()=>{const p=requestAnimationFrame(()=>d.current=!1);return()=>cancelAnimationFrame(p)},[]),t.createElement(oe,{present:c||f},({present:p})=>t.createElement(h.div,I({"data-state":f?"active":"inactive","data-orientation":u.orientation,role:"tabpanel","aria-labelledby":l,hidden:!p,id:s,tabIndex:0},r,{ref:n,style:{...e.style,animationDuration:d.current?"0s":void 0}}),p&&i))});function z(e,n){return`${e}-trigger-${n}`}function Y(e,n){return`${e}-content-${n}`}const ye=Ie,Re=Ee,F=Fe,_=we;function Ge({a:e,b:n,c:a,d:o,e:c}){return v.jsxs(ye,{defaultValue:"a",className:"w-full ",children:[v.jsxs(Re,{className:" h-[54px] bg-neutral-50 rounded-[33px] shadow border border-gray-6 flex flex-shrink mb-10",children:[v.jsx(F,{value:"a",className:"grow text-center text-gray-11 font-sans text-lg font-medium hover:bg-gray-3 rounded-full m-1 data-[state=active]:bg-gray-4 data-[state=active]:text-gray-12",children:"2022 Overview"}),v.jsx(F,{value:"b",className:"grow text-center text-gray-11 font-sans text-lg font-medium hover:bg-gray-3 rounded-full m-1 data-[state=active]:bg-gray-4 data-[state=active]:text-gray-12",children:"Outputs"}),v.jsx(F,{value:"c",className:"grow text-center text-gray-11 font-sans text-lg font-medium hover:bg-gray-3 rounded-full m-1 data-[state=active]:bg-gray-4 data-[state=active]:text-gray-12",children:"Optimization"}),v.jsx(F,{value:"d",className:"grow text-center text-gray-11 font-sans text-lg font-medium hover:bg-gray-3 rounded-full m-1 data-[state=active]:bg-gray-4 data-[state=active]:text-gray-12",children:"eRCA"}),v.jsx(F,{value:"e",className:"grow text-center text-gray-11 font-sans text-lg font-medium hover:bg-gray-3 rounded-full m-1 data-[state=active]:bg-gray-4 data-[state=active]:text-gray-12",children:"Inclusivity"})]}),v.jsx(_,{value:"a",children:e}),v.jsx(_,{value:"b",children:n}),v.jsx(_,{value:"c",children:a}),v.jsx(_,{value:"d",children:o}),v.jsx(_,{value:"e",children:c})]})}export{Ge as default};
import{r as e}from"./index.453e6029.js";import{r as E}from"./index.c95c1985.js";var f,l,u=E;l=u.createRoot,f=u.hydrateRoot;const n=({value:t,name:r,hydrate:a=!0})=>{if(!t)return null;const o=a?"astro-slot":"astro-static-slot";return e.createElement(o,{name:r,suppressHydrationWarning:!0,dangerouslySetInnerHTML:{__html:t}})};n.shouldComponentUpdate=()=>!1;function x(t){for(const r in t)if(r.startsWith("__reactContainer"))return r}const v=t=>(r,a,{default:o,...d},{client:m})=>{if(!t.hasAttribute("ssr"))return;const p={identifierPrefix:t.getAttribute("prefix")};for(const[c,y]of Object.entries(d))a[c]=e.createElement(n,{value:y,name:c});const s=e.createElement(r,a,o!=null?e.createElement(n,{value:o}):o),i=x(t);return i&&delete t[i],m==="only"?e.startTransition(()=>{l(t).render(s)}):e.startTransition(()=>{f(t,s,p)})};export{v as default};
This diff is collapsed.
function e(){return e=Object.assign?Object.assign.bind():function(a){for(var n=1;n<arguments.length;n++){var t=arguments[n];for(var r in t)Object.prototype.hasOwnProperty.call(t,r)&&(a[r]=t[r])}return a},e.apply(this,arguments)}export{e as _};
var n={exports:{}},p,u;function f(){if(u)return p;u=1;var t="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return p=t,p}var a,y;function m(){if(y)return a;y=1;var t=f();function i(){}function c(){}return c.resetWarningCache=i,a=function(){function e(R,l,P,S,v,T){if(T!==t){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}e.isRequired=e;function r(){return e}var o={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:r,element:e,elementType:e,instanceOf:r,node:e,objectOf:r,oneOf:r,oneOfType:r,shape:r,exact:r,checkPropTypes:c,resetWarningCache:i};return o.PropTypes=o,o},a}var h;function g(){return h||(h=1,n.exports=m()()),n.exports}export{g as r};
function A(e,t){for(var n=0;n<t.length;n++){const u=t[n];if(typeof u!="string"&&!Array.isArray(u)){for(const o in u)if(o!=="default"&&!(o in e)){const c=Object.getOwnPropertyDescriptor(u,o);c&&Object.defineProperty(e,o,c.get?c:{enumerable:!0,get:()=>u[o]})}}}return Object.freeze(Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}))}var X=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function D(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var k={exports:{}},r={};/**
* @license React
* react.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var y=Symbol.for("react.element"),V=Symbol.for("react.portal"),F=Symbol.for("react.fragment"),M=Symbol.for("react.strict_mode"),U=Symbol.for("react.profiler"),q=Symbol.for("react.provider"),L=Symbol.for("react.context"),N=Symbol.for("react.forward_ref"),z=Symbol.for("react.suspense"),B=Symbol.for("react.memo"),H=Symbol.for("react.lazy"),g=Symbol.iterator;function G(e){return e===null||typeof e!="object"?null:(e=g&&e[g]||e["@@iterator"],typeof e=="function"?e:null)}var R={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},j=Object.assign,O={};function p(e,t,n){this.props=e,this.context=t,this.refs=O,this.updater=n||R}p.prototype.isReactComponent={};p.prototype.setState=function(e,t){if(typeof e!="object"&&typeof e!="function"&&e!=null)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")};p.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")};function C(){}C.prototype=p.prototype;function m(e,t,n){this.props=e,this.context=t,this.refs=O,this.updater=n||R}var S=m.prototype=new C;S.constructor=m;j(S,p.prototype);S.isPureReactComponent=!0;var E=Array.isArray,P=Object.prototype.hasOwnProperty,b={current:null},x={key:!0,ref:!0,__self:!0,__source:!0};function I(e,t,n){var u,o={},c=null,s=null;if(t!=null)for(u in t.ref!==void 0&&(s=t.ref),t.key!==void 0&&(c=""+t.key),t)P.call(t,u)&&!x.hasOwnProperty(u)&&(o[u]=t[u]);var f=arguments.length-2;if(f===1)o.children=n;else if(1<f){for(var i=Array(f),a=0;a<f;a++)i[a]=arguments[a+2];o.children=i}if(e&&e.defaultProps)for(u in f=e.defaultProps,f)o[u]===void 0&&(o[u]=f[u]);return{$$typeof:y,type:e,key:c,ref:s,props:o,_owner:b.current}}function W(e,t){return{$$typeof:y,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}function w(e){return typeof e=="object"&&e!==null&&e.$$typeof===y}function J(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,function(n){return t[n]})}var $=/\/+/g;function v(e,t){return typeof e=="object"&&e!==null&&e.key!=null?J(""+e.key):t.toString(36)}function _(e,t,n,u,o){var c=typeof e;(c==="undefined"||c==="boolean")&&(e=null);var s=!1;if(e===null)s=!0;else switch(c){case"string":case"number":s=!0;break;case"object":switch(e.$$typeof){case y:case V:s=!0}}if(s)return s=e,o=o(s),e=u===""?"."+v(s,0):u,E(o)?(n="",e!=null&&(n=e.replace($,"$&/")+"/"),_(o,t,n,"",function(a){return a})):o!=null&&(w(o)&&(o=W(o,n+(!o.key||s&&s.key===o.key?"":(""+o.key).replace($,"$&/")+"/")+e)),t.push(o)),1;if(s=0,u=u===""?".":u+":",E(e))for(var f=0;f<e.length;f++){c=e[f];var i=u+v(c,f);s+=_(c,t,n,i,o)}else if(i=G(e),typeof i=="function")for(e=i.call(e),f=0;!(c=e.next()).done;)c=c.value,i=u+v(c,f++),s+=_(c,t,n,i,o);else if(c==="object")throw t=String(e),Error("Objects are not valid as a React child (found: "+(t==="[object Object]"?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return s}function d(e,t,n){if(e==null)return e;var u=[],o=0;return _(e,u,"","",function(c){return t.call(n,c,o++)}),u}function K(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(n){(e._status===0||e._status===-1)&&(e._status=1,e._result=n)},function(n){(e._status===0||e._status===-1)&&(e._status=2,e._result=n)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var l={current:null},h={transition:null},Q={ReactCurrentDispatcher:l,ReactCurrentBatchConfig:h,ReactCurrentOwner:b};r.Children={map:d,forEach:function(e,t,n){d(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return d(e,function(){t++}),t},toArray:function(e){return d(e,function(t){return t})||[]},only:function(e){if(!w(e))throw Error("React.Children.only expected to receive a single React element child.");return e}};r.Component=p;r.Fragment=F;r.Profiler=U;r.PureComponent=m;r.StrictMode=M;r.Suspense=z;r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=Q;r.cloneElement=function(e,t,n){if(e==null)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var u=j({},e.props),o=e.key,c=e.ref,s=e._owner;if(t!=null){if(t.ref!==void 0&&(c=t.ref,s=b.current),t.key!==void 0&&(o=""+t.key),e.type&&e.type.defaultProps)var f=e.type.defaultProps;for(i in t)P.call(t,i)&&!x.hasOwnProperty(i)&&(u[i]=t[i]===void 0&&f!==void 0?f[i]:t[i])}var i=arguments.length-2;if(i===1)u.children=n;else if(1<i){f=Array(i);for(var a=0;a<i;a++)f[a]=arguments[a+2];u.children=f}return{$$typeof:y,type:e.type,key:o,ref:c,props:u,_owner:s}};r.createContext=function(e){return e={$$typeof:L,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null},e.Provider={$$typeof:q,_context:e},e.Consumer=e};r.createElement=I;r.createFactory=function(e){var t=I.bind(null,e);return t.type=e,t};r.createRef=function(){return{current:null}};r.forwardRef=function(e){return{$$typeof:N,render:e}};r.isValidElement=w;r.lazy=function(e){return{$$typeof:H,_payload:{_status:-1,_result:e},_init:K}};r.memo=function(e,t){return{$$typeof:B,type:e,compare:t===void 0?null:t}};r.startTransition=function(e){var t=h.transition;h.transition={};try{e()}finally{h.transition=t}};r.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")};r.useCallback=function(e,t){return l.current.useCallback(e,t)};r.useContext=function(e){return l.current.useContext(e)};r.useDebugValue=function(){};r.useDeferredValue=function(e){return l.current.useDeferredValue(e)};r.useEffect=function(e,t){return l.current.useEffect(e,t)};r.useId=function(){return l.current.useId()};r.useImperativeHandle=function(e,t,n){return l.current.useImperativeHandle(e,t,n)};r.useInsertionEffect=function(e,t){return l.current.useInsertionEffect(e,t)};r.useLayoutEffect=function(e,t){return l.current.useLayoutEffect(e,t)};r.useMemo=function(e,t){return l.current.useMemo(e,t)};r.useReducer=function(e,t,n){return l.current.useReducer(e,t,n)};r.useRef=function(e){return l.current.useRef(e)};r.useState=function(e){return l.current.useState(e)};r.useSyncExternalStore=function(e,t,n){return l.current.useSyncExternalStore(e,t,n)};r.useTransition=function(){return l.current.useTransition()};r.version="18.2.0";k.exports=r;var T=k.exports;const Y=D(T),Z=A({__proto__:null,default:Y},[T]);export{Z as $,Y as R,X as c,D as g,T as r};
import{_ as A}from"./extends.98964cd2.js";import{r as c,$ as _,R as h}from"./index.453e6029.js";import{r as T}from"./index.c95c1985.js";function w(e,n=[]){let t=[];function o(s,l){const u=c.createContext(l),a=t.length;t=[...t,l];function i(d){const{scope:p,children:m,...f}=d,C=p?.[e][a]||u,v=c.useMemo(()=>f,Object.values(f));return c.createElement(C.Provider,{value:v},m)}function $(d,p){const m=p?.[e][a]||u,f=c.useContext(m);if(f)return f;if(l!==void 0)return l;throw new Error(`\`${d}\` must be used within \`${s}\``)}return i.displayName=s+"Provider",[i,$]}const r=()=>{const s=t.map(l=>c.createContext(l));return function(u){const a=u?.[e]||s;return c.useMemo(()=>({[`__scope${e}`]:{...u,[e]:a}}),[u,a])}};return r.scopeName=e,[o,U(r,...n)]}function U(...e){const n=e[0];if(e.length===1)return n;const t=()=>{const o=e.map(r=>({useScope:r(),scopeName:r.scopeName}));return function(s){const l=o.reduce((u,{useScope:a,scopeName:i})=>{const d=a(s)[`__scope${i}`];return{...u,...d}},{});return c.useMemo(()=>({[`__scope${n.scopeName}`]:l}),[l])}};return t.scopeName=n.scopeName,t}function X(e,n,{checkForDefaultPrevented:t=!0}={}){return function(r){if(e?.(r),t===!1||!r.defaultPrevented)return n?.(r)}}function D(e,n){typeof e=="function"?e(n):e!=null&&(e.current=n)}function g(...e){return n=>e.forEach(t=>D(t,n))}function R(...e){return c.useCallback(g(...e),e)}const S=c.forwardRef((e,n)=>{const{children:t,...o}=e,r=c.Children.toArray(t),s=r.find(k);if(s){const l=s.props.children,u=r.map(a=>a===s?c.Children.count(l)>1?c.Children.only(null):c.isValidElement(l)?l.props.children:null:a);return c.createElement(M,A({},o,{ref:n}),c.isValidElement(l)?c.cloneElement(l,void 0,u):null)}return c.createElement(M,A({},o,{ref:n}),t)});S.displayName="Slot";const M=c.forwardRef((e,n)=>{const{children:t,...o}=e;return c.isValidElement(t)?c.cloneElement(t,{...V(o,t.props),ref:n?g(n,t.ref):t.ref}):c.Children.count(t)>1?c.Children.only(null):null});M.displayName="SlotClone";const L=({children:e})=>c.createElement(c.Fragment,null,e);function k(e){return c.isValidElement(e)&&e.type===L}function V(e,n){const t={...n};for(const o in n){const r=e[o],s=n[o];/^on[A-Z]/.test(o)?r&&s?t[o]=(...u)=>{s(...u),r(...u)}:r&&(t[o]=r):o==="style"?t[o]={...r,...s}:o==="className"&&(t[o]=[r,s].filter(Boolean).join(" "))}return{...e,...t}}const j=["a","button","div","form","h2","h3","img","input","label","li","nav","ol","p","span","svg","ul"],Y=j.reduce((e,n)=>{const t=c.forwardRef((o,r)=>{const{asChild:s,...l}=o,u=s?S:n;return c.useEffect(()=>{window[Symbol.for("radix-ui")]=!0},[]),c.createElement(u,A({},l,{ref:r}))});return t.displayName=`Primitive.${n}`,{...e,[n]:t}},{});function H(e,n){e&&T.flushSync(()=>e.dispatchEvent(n))}function O(e){const n=c.useRef(e);return c.useEffect(()=>{n.current=e}),c.useMemo(()=>(...t)=>{var o;return(o=n.current)===null||o===void 0?void 0:o.call(n,...t)},[])}function ee({prop:e,defaultProp:n,onChange:t=()=>{}}){const[o,r]=B({defaultProp:n,onChange:t}),s=e!==void 0,l=s?e:o,u=O(t),a=c.useCallback(i=>{if(s){const d=typeof i=="function"?i(e):i;d!==e&&u(d)}else r(i)},[s,e,r,u]);return[l,a]}function B({defaultProp:e,onChange:n}){const t=c.useState(e),[o]=t,r=c.useRef(o),s=O(n);return c.useEffect(()=>{r.current!==o&&(s(o),r.current=o)},[o,r,s]),t}const F=c.createContext(void 0);function ne(e){const n=c.useContext(F);return e||n||"ltr"}const P=globalThis?.document?c.useLayoutEffect:()=>{};function q(e,n){return c.useReducer((t,o)=>{const r=n[t][o];return r??t},e)}const Z=e=>{const{present:n,children:t}=e,o=z(n),r=typeof t=="function"?t({present:o.isPresent}):c.Children.only(t),s=R(o.ref,r.ref);return typeof t=="function"||o.isPresent?c.cloneElement(r,{ref:s}):null};Z.displayName="Presence";function z(e){const[n,t]=c.useState(),o=c.useRef({}),r=c.useRef(e),s=c.useRef("none"),l=e?"mounted":"unmounted",[u,a]=q(l,{mounted:{UNMOUNT:"unmounted",ANIMATION_OUT:"unmountSuspended"},unmountSuspended:{MOUNT:"mounted",ANIMATION_END:"unmounted"},unmounted:{MOUNT:"mounted"}});return c.useEffect(()=>{const i=E(o.current);s.current=u==="mounted"?i:"none"},[u]),P(()=>{const i=o.current,$=r.current;if($!==e){const p=s.current,m=E(i);e?a("MOUNT"):m==="none"||i?.display==="none"?a("UNMOUNT"):a($&&p!==m?"ANIMATION_OUT":"UNMOUNT"),r.current=e}},[e,a]),P(()=>{if(n){const i=d=>{const m=E(o.current).includes(d.animationName);d.target===n&&m&&T.flushSync(()=>a("ANIMATION_END"))},$=d=>{d.target===n&&(s.current=E(o.current))};return n.addEventListener("animationstart",$),n.addEventListener("animationcancel",i),n.addEventListener("animationend",i),()=>{n.removeEventListener("animationstart",$),n.removeEventListener("animationcancel",i),n.removeEventListener("animationend",i)}}else a("ANIMATION_END")},[n,a]),{isPresent:["mounted","unmountSuspended"].includes(u),ref:c.useCallback(i=>{i&&(o.current=getComputedStyle(i)),t(i)},[])}}function E(e){return e?.animationName||"none"}const G=_["useId".toString()]||(()=>{});let J=0;function te(e){const[n,t]=c.useState(G());return P(()=>{e||t(o=>o??String(J++))},[e]),e||(n?`radix-${n}`:"")}function oe(e){const n=e+"CollectionProvider",[t,o]=w(n),[r,s]=t(n,{collectionRef:{current:null},itemMap:new Map}),l=m=>{const{scope:f,children:C}=m,v=h.useRef(null),b=h.useRef(new Map).current;return h.createElement(r,{scope:f,itemMap:b,collectionRef:v},C)},u=e+"CollectionSlot",a=h.forwardRef((m,f)=>{const{scope:C,children:v}=m,b=s(u,C),N=R(f,b.collectionRef);return h.createElement(S,{ref:N},v)}),i=e+"CollectionItemSlot",$="data-radix-collection-item",d=h.forwardRef((m,f)=>{const{scope:C,children:v,...b}=m,N=h.useRef(null),y=R(f,N),x=s(i,C);return h.useEffect(()=>(x.itemMap.set(N,{ref:N,...b}),()=>void x.itemMap.delete(N))),h.createElement(S,{[$]:"",ref:y},v)});function p(m){const f=s(e+"CollectionConsumer",m);return h.useCallback(()=>{const v=f.collectionRef.current;if(!v)return[];const b=Array.from(v.querySelectorAll(`[${$}]`));return Array.from(f.itemMap.values()).sort((x,I)=>b.indexOf(x.ref.current)-b.indexOf(I.ref.current))},[f.collectionRef,f.itemMap])}return[{Provider:l,Slot:a,ItemSlot:d},p,o]}export{oe as $,w as a,R as b,ne as c,ee as d,O as e,Y as f,X as g,te as h,Z as i,H as j,P as k,g as l};
This diff is collapsed.
import{r as l}from"./index.453e6029.js";var f={exports:{}},n={};/**
* @license React
* react-jsx-runtime.production.min.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/var u=l,m=Symbol.for("react.element"),x=Symbol.for("react.fragment"),y=Object.prototype.hasOwnProperty,a=u.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,v={key:!0,ref:!0,__self:!0,__source:!0};function i(t,r,p){var e,o={},s=null,_=null;p!==void 0&&(s=""+p),r.key!==void 0&&(s=""+r.key),r.ref!==void 0&&(_=r.ref);for(e in r)y.call(r,e)&&!v.hasOwnProperty(e)&&(o[e]=r[e]);if(t&&t.defaultProps)for(e in r=t.defaultProps,r)o[e]===void 0&&(o[e]=r[e]);return{$$typeof:m,type:t,key:s,ref:_,props:o,_owner:a.current}}n.Fragment=x;n.jsx=i;n.jsxs=i;f.exports=n;var d=f.exports;export{d as j};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment