Team:Virtus-Parva Mexico/Attributions

From 2014.igem.org

(Difference between revisions)
(Prototype team page)
Line 1: Line 1:
-
<!-- *** What falls between these lines is the Alert Box!  You can remove it from your pages once you have read and understood the alert *** -->
 
-
 
-
 
{{CSS/Main}}
{{CSS/Main}}
-
 
<html>
<html>
-
<!--main content -->
 
-
<table width="70%" align="center">
 
 +
<!-- this section changes the default wiki template to a
 +
white full width background -->
-
<!--welcome box -->
+
<style>
-
<tr>
+
#contentSub, #footer-box, #catlinks, #search-controls, #p-logo, .printfooter, .firstHeading,.visualClear {display: none;} /*-- hides default wiki settings --*/
-
<td style="border:1px solid black;" colspan="3" align="center" height="150px" bgColor=#FF404B>
+
</style>
-
<h1 >WELCOME TO iGEM 2014! </h1>
+
-
<p>Your team has been approved and you are ready to start the iGEM season!
+
-
<br>On this page you can document your project, introduce your team members, document your progress <br> and share your iGEM experience with the rest of the world! </p>
+
-
<br>
+
-
<p style="color:#E7E7E7"> <a href="https://2014.igem.org/wiki/index.php?title=Team:Virtus-Parva_Mexico/Attributions&action=edit"style="color:#FFFFFF"> Click here  to edit this page!</a> </p>
+
-
</td>
+
-
</tr>
+
-
<tr> <td colspan="3"  height="5px"> </td></tr>
+
<!-- here ends the section that changes the default wiki
-
<!-- end welcome box -->
+
-
<tr>
+
-
<!--navigation menu -->
+
template to a white full width background -->
-
<td align="center" colspan="3">
+
-
<table  width="100%">
+
</html>
-
<tr heigth="15px"></tr>
+
-
<tr heigth="75px">  
+
 +
{{Team:VirtusParva/MainCss}}
-
<td style="border:1px solid black;" align="center" height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>
+
<html>
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico"style="color:#000000">Home </a> </td>
+
<!-- beginning of your page -->
-
<td style="border:1px solid black;" align="center" height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>
+
<body>
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Team"style="color:#000000"> Team </a> </td>
+
-
<td style="border:1px solid black;" align="center"  height ="45px"  onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>  
+
    <!-- Begin Cover -->
-
<a href="https://igem.org/Team.cgi?year=2014&team_name=Virtus-Parva_Mexico"style="color:#000000"> Official Team Profile </a></td>
+
    <div class="site-wrapper">
-
<td style="border:1px solid black" align="center"  height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7> 
 
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Project"style="color:#000000"> Project</a></td>
 
-
<td style="border:1px solid black;" align="center" height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>  
+
        <nav class="navbar navbar-default navbar-fixed-top" role="banner">
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Parts"style="color:#000000"> Parts</a></td>
+
            <div class="container">
 +
                <div class="navbar-header">
 +
                    <button class="navbar-toggle" type="button" data-toggle="collapse" data-target=".navbar-collapse">
 +
                        <span class="sr-only">Toggle navigation</span>
 +
                        <span class="icon-bar"></span>
 +
                        <span class="icon-bar"></span>
 +
                        <span class="icon-bar"></span>
 +
                    </button>
 +
                    <a href="https://2014.igem.org/Team:Virtus-Parva_Mexico" class="navbar-brand">
 +
                        <img src="https://static.igem.org/mediawiki/2014/f/f6/Para_boton.jpg" alt="Virtus Parva Home" height="20px" width="150px"></a>
 +
                </div>
 +
                <nav class="collapse navbar-collapse" role="navigation">
 +
                    <ul class="nav navbar-nav">
 +
                        <li>
 +
                            <a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Project">Project</a>
 +
                        </li>
 +
                        <li>
 +
                            <a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Parts">Outcomes</a>
 +
                        </li>
 +
                        <li>
 +
                            <a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Team">Our Team</a>
 +
                        </li>
 +
                        <li>
 +
                            <a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Safety">Safety</a>
 +
                        </li>
 +
                        <li>
 +
                            <a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Attributions">Human Practices</a>
 +
                        </li>
 +
                    </ul>
 +
                </nav>
 +
            </div>
 +
        </nav>
-
<td style="border:1px solid black;" align="center" height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>  
+
    <div id="masthead">
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Modeling"style="color:#000000"> Modeling</a></td>
+
        <div class="container">
-
 
+
            <div class="row">
-
<td style="border:1px solid black;" align="center" height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>
+
                <div class="col-md-7">
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Notebook"style="color:#000000"> Notebook</a></td>
+
                    <h1>Human Practices
-
 
+
         
-
<td style="border:1px solid black;" align="center"  height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>
+
                        <p class="lead"><i>The Next Generation in Molecular Machinery</i>  
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Safety"style=" color:#000000"> Safety </a></td>
+
-
 
+
-
<td style="border:1px solid black;" align="center"  height ="45px" onMouseOver="this.bgColor='#d3d3d3'" onMouseOut="this.bgColor='#e7e7e7'" bgColor=#e7e7e7>  
+
-
<a href="https://2014.igem.org/Team:Virtus-Parva_Mexico/Attributions"style="color:#000000"> Attributions </a></td>
+
-
 
+
-
 
+
-
<td align ="center"> <a href="https://2014.igem.org/Main_Page"> <img src="https://static.igem.org/mediawiki/igem.org/6/60/Igemlogo_300px.png" width="55px"></a> </td>
+
-
</tr>
+
-
</table>
+
-
</tr>
+
-
 
+
-
 
+
-
</tr>
+
-
+
-
 
+
-
</td>
+
-
 
+
-
<tr> <td colspan="3"  height="15px"> </td></tr>
+
-
<tr><td bgColor="#e7e7e7" colspan="3" height="1px"> </tr>
+
-
<tr> <td colspan="3"  height="5px"> </td></tr>
+
-
 
+
-
<!--Attributions content -->
+
-
<tr><td > <h3> iGEM Team attributions page</h3></td>
+
-
<td ></td >
+
-
<td > <h3> </h3></td>
+
-
</tr>
+
-
 
+
-
<tr>
+
-
<td width="45%"  valign="top" colspan="3">
+
-
 
+
-
<p>
+
-
Each team must clearly attribute work done by the student team members on this page.  The team must distinguish work done by the students from work done by others, including the host labs, advisors, instructors, and individuals not on the team roster.
+
</p>
</p>
 +
                    </h1>
 +
                </div>
-
</td>
+
            </div>
 +
        </div>
 +
        <!--/container-->
 +
    </div>
 +
    <!--/masthead-->
 +
    <!--main-->
 +
    <div class="container">
 +
        <div class="row">
 +
            <!--left-->
 +
            <div class="col-md-3" id="leftCol">
 +
                <ul class="nav nav-stacked" id="sidebar">
 +
                    <li><a href="#sec1">Project Overview</a></li>
 +
                    <li><a href="#sec2">The Idea</a></li>
 +
                    <li><a href="#sec3">The Making</a></li>
 +
                </ul>
 +
            </div>
 +
            <!--/left-->
 +
            <!--right-->
 +
            <div class="col-md-9">
-
<tr>
+
                <!-- Inicia Seccion 1 -->
-
<td > <h3> Why do we have this requirement?</h3></td>
+
                <h2 id="sec1">What is it that we do?</h2>
-
<td></td>
+
                <div class="well">
-
<td > <h3>Attribution Template </h3></td>  
+
                  <p>The Bio-NEMS drill is a</p>  
-
  </tr>
+
                </div>
 +
                <div class="row">
 +
                    <!-- Inicia Subseccion 1 -->
 +
                    <div class="col-md-12">
 +
                        <div class="panel panel-default">
 +
                            <div class="panel-heading">
 +
                                <h3>Project Overview</h3>
 +
                            </div>
 +
                            <div class="panel-body">
 +
                                Virtus-Parva is a team of Nanotechnology students who aim to create a better world through love,sympathy and endearment… and through the design and development of a novel technology based on micrometric “drills” to attack pathogen agents.
 +
<br>
 +
<br>
 +
First and foremost, we studied different procedures in order to synthesize the strongest and smallest magnetite particles we could make. Magnetite is a molecule that derives from iron, and has observable magnetic properties. Because we wanted to put together magnetite and DNA, we had to make them compatible, task we accomplished by functionalizing it with amino groups, that would allow it to form peptide bonds with our protein, HU. At the same time, our biology team was busy extracting, purifying and transforming E. Coli DNA to work with. This protein, HU, is a histone-like protein normally aids DNA into supercoiling around histones; the “Magnetic-Protein” complex we created mimics the nucleosome in DNA supercoiling process. This allows us to have a DNA “chromatin” with a magnetic core.
 +
<br>
 +
<br>
 +
Combining magnetite, DNA and HU protein, we are building magnetic-core machines, which can be controlled through external electrical impulses. Because of the shape of our system, it is possible for it to have linear movement depending on the frequency applied to it, which has the potential to be incorporated into the medical sector as a pathogen-targeted therapy. This was our original idea and module one of our project.
 +
<br>
 +
<br>
 +
As we were transforming our E. coli cells, we noticed it wasn’t as fast and efficient as we had hoped, which is how we came up with module two of the project. Quite simply, we wanted to take advantage of the shape of our system and its mobility thanks to magnetism in order to make a more efficient transformation. We were able to verify our method was more efficient by making cells express GFP and RFP, which can then be quantified with optic instruments.
-
<tr>
+
                            </div>
 +
                        </div>
 +
                    </div>
 +
                    <!-- Fin Subseccion 1 -->
-
<td width="45%"  valign="top">
+
                    </div>
-
<p>
+
                <hr>
-
We have this requirement to help the judges know what you did yourselves and what you had help with. We don't mind if you get help with difficult or complex techniques, just be sure to report the work your team did and the work that was done by others.
+
                <!-- Fin Seccion 1 -->
-
</p>
+
-
<p>
 
-
For example, you might choose to work with an animal model during your project. Working with animals requires getting a license and applying far in advance to conduct certain experiments in many countries. This is something that is difficult to achieve during the course of a summer, but much easier if you can work with a postdoc or PI who has the right licenses.
 
-
</p>
 
-
<p>
+
                <!-- Inicia Seccion 2 -->
-
A great example of complete attribution comes from the <a href="https://2011.igem.org/Team:Imperial_College_London/Team">Imperial College London 2011 team</a> (scroll down to the bottom of their team page to see attributions).  
+
                <h2 id="sec2">The Idea</h2>
-
</p>
+
                <p>
 +
                    The basis for these “drills” will be NEMS, nano electro-mechanical systems, technology.<br> We took a survey to fellow iGEMers and external people in order to find out how many people knew about the existence of NEMS and if they knew how they worked. Turns out only 36% of survey takers had heard of the term before and of those, only 28% knew what it was!<br><br> Given these statistics, it became part of our project to teach newer generations about our subject.
-
</td>
+
                </p>
-
<td></td>
+
                <div class="row">
-
<td width="45%" valign="top">  
+
                    <div class="col-md-6">
-
<p>
+
                        <div class="panel panel-default">
-
Here are some of the fields we recommend you have on this page. If there are other areas not listed below, but applicable to your team/project, please feel free to also list them on your attributions page. Please feel free to remove any areas not applicable to your project.  
+
                            <div class="panel-heading">
-
</p>
+
                                <h3>NEMS</h3>
 +
                            </div>
 +
                            <div class="panel-body">
 +
                                NEMS are nanometric electromechanical systems. In this case we take as basis the structure of a resonator which are engineered to make a conversión between energy, such as electric, magnetic, or vibrational into mechanical response.
 +
<br>
 +
<br>
 +
How exactly do NEMS come into play in our project?
 +
<br>
 +
<br>
 +
Well, by combining an inorganically synthesized nanoparticle, called magnetite and DNA into what we call BioNEMS drill.  
 +
                            </div>
 +
                        </div>
 +
                    </div>
 +
                    <div class="col-md-6">
 +
                        <div class="panel panel-default">
 +
                            <div class="panel-heading">
 +
                                <h3>DNA Coiling into Chromosomes</h3>
 +
                            </div>
 +
                            <div class="panel-body">
 +
                                Contenido subtitulo 2
 +
                            </div>
 +
                        </div>
 +
                    </div>
 +
                </div>
-
<ol>
+
                <hr>
-
<li>General Support</li>
+
                <!-- Fin Seccion 2 -->
-
<li>Project support and advice</li>
+
                <!-- Inicia Seccion 3 -->
-
 
+
                <h2 id="sec3">The Making</h2>
-
<li>Fundraising help and advice</li>
+
                <p>
-
 
+
                    Descripcion general de Seccion 3
-
<li>Lab support</li>
+
                </p>
 +
                <div class="row">
 +
                    <div class="col-md-6">
 +
                        <div class="panel panel-default">
 +
                            <div class="panel-heading">
 +
                                <h3>Inorganic Section</h3>
 +
                            </div>
 +
                            <div class="panel-body">
 +
                                The first part of the synthesis of our magnetite was trying out different methods and characterizing them, to note which method had given us the smallest size nanoparticles. Our first method was synthesis by coprecipitation, of which we prepared nine samples with different concentrations of iron(II) chloride and ammonium hydroxide; from this method we consistently obtained nanoparticles rounding 0.9 to 1nm. Our following method was very similar, but included water in the synthesis: the size of our particles would vary greatly, from 3.89 micrometers to 171 nanometers in size.
 +
<br>
 +
<br>
 +
After choosing the best method possible, it was time to silanize our magnetite in order for it to be biocompatible with DNA and be able to tie them together. In order for the silanization to take place, we used a solution of TEOS (tetraethoxysilane) dispersed in a medium of water and propanol and dripped this mix slowly onto our magnetite. Just like when we synthesized our particles, we tested different concentrations of TEOS and magnetite, as well as different addition rates in order to observe which combination would give us the smallest possible nanoparticles.
 +
<br>
 +
<br>
 +
Our results were then characterized by DLS (dynamic light scattering), for which we observed a peak at 39 nm, once coated with TEOS, the peak was moved toward 60 and 80 nm. We also ran our two samples in the IR, comparing the spectra of the pure magnetite and silanized magnetite, we were able to distinguish a peak at 990.2 cm^-1 corresponding to a Si-O bond, confirming the correct silanization of the magnetite. 
 +
                            </div>
 +
                        </div>
 +
                    </div>
 +
                    <div class="col-md-6">
 +
                        <div class="panel panel-default">
 +
                            <div class="panel-heading">
 +
                                <h3>Biological Section</h3>
 +
                            </div>
 +
                            <div class="panel-body">
 +
                                Soon..
 +
                            </div>
 +
                        </div>
 +
                    </div>
 +
                </div>
-
<li>Difficult technique support</li>
+
                <hr>
 +
                <!-- Fin Seccion 3 -->
 +
            </div>
 +
            <!--/right-->
 +
        </div>
 +
        <!--/row-->
 +
    </div>
 +
    <!--/container-->
-
<li>Project advisor support</li>
 
-
<li>Wiki support</li>
 
-
<li>Presentation coaching</li>
+
    <!-- script references -->
 +
    <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.2/jquery.min.js"></script>
-
<li>Policy & Practices support</li>
+
    <script lang="JavaScript">
 +
        if ("undefined" == typeof jQuery) throw new Error("Bootstrap's JavaScript requires jQuery"); +function (a) { "use strict"; function b() { var a = document.createElement("bootstrap"), b = { WebkitTransition: "webkitTransitionEnd", MozTransition: "transitionend", OTransition: "oTransitionEnd otransitionend", transition: "transitionend" }; for (var c in b) if (void 0 !== a.style[c]) return { end: b[c] }; return !1 } a.fn.emulateTransitionEnd = function (b) { var c = !1, d = this; a(this).one(a.support.transition.end, function () { c = !0 }); var e = function () { c || a(d).trigger(a.support.transition.end) }; return setTimeout(e, b), this }, a(function () { a.support.transition = b() }) }(jQuery), +function (a) { "use strict"; var b = '[data-dismiss="alert"]', c = function (c) { a(c).on("click", b, this.close) }; c.prototype.close = function (b) { function c() { f.trigger("closed.bs.alert").remove() } var d = a(this), e = d.attr("data-target"); e || (e = d.attr("href"), e = e && e.replace(/.*(?=#[^\s]*$)/, "")); var f = a(e); b && b.preventDefault(), f.length || (f = d.hasClass("alert") ? d : d.parent()), f.trigger(b = a.Event("close.bs.alert")), b.isDefaultPrevented() || (f.removeClass("in"), a.support.transition && f.hasClass("fade") ? f.one(a.support.transition.end, c).emulateTransitionEnd(150) : c()) }; var d = a.fn.alert; a.fn.alert = function (b) { return this.each(function () { var d = a(this), e = d.data("bs.alert"); e || d.data("bs.alert", e = new c(this)), "string" == typeof b && e[b].call(d) }) }, a.fn.alert.Constructor = c, a.fn.alert.noConflict = function () { return a.fn.alert = d, this }, a(document).on("click.bs.alert.data-api", b, c.prototype.close) }(jQuery), +function (a) { "use strict"; var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.isLoading = !1 }; b.DEFAULTS = { loadingText: "loading..." }, b.prototype.setState = function (b) { var c = "disabled", d = this.$element, e = d.is("input") ? "val" : "html", f = d.data(); b += "Text", f.resetText || d.data("resetText", d[e]()), d[e](f[b] || this.options[b]), setTimeout(a.proxy(function () { "loadingText" == b ? (this.isLoading = !0, d.addClass(c).attr(c, c)) : this.isLoading && (this.isLoading = !1, d.removeClass(c).removeAttr(c)) }, this), 0) }, b.prototype.toggle = function () { var a = !0, b = this.$element.closest('[data-toggle="buttons"]'); if (b.length) { var c = this.$element.find("input"); "radio" == c.prop("type") && (c.prop("checked") && this.$element.hasClass("active") ? a = !1 : b.find(".active").removeClass("active")), a && c.prop("checked", !this.$element.hasClass("active")).trigger("change") } a && this.$element.toggleClass("active") }; var c = a.fn.button; a.fn.button = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.button"), f = "object" == typeof c && c; e || d.data("bs.button", e = new b(this, f)), "toggle" == c ? e.toggle() : c && e.setState(c) }) }, a.fn.button.Constructor = b, a.fn.button.noConflict = function () { return a.fn.button = c, this }, a(document).on("click.bs.button.data-api", "[data-toggle^=button]", function (b) { var c = a(b.target); c.hasClass("btn") || (c = c.closest(".btn")), c.button("toggle"), b.preventDefault() }) }(jQuery), +function (a) { "use strict"; var b = function (b, c) { this.$element = a(b), this.$indicators = this.$element.find(".carousel-indicators"), this.options = c, this.paused = this.sliding = this.interval = this.$active = this.$items = null, "hover" == this.options.pause && this.$element.on("mouseenter", a.proxy(this.pause, this)).on("mouseleave", a.proxy(this.cycle, this)) }; b.DEFAULTS = { interval: 5e3, pause: "hover", wrap: !0 }, b.prototype.cycle = function (b) { return b || (this.paused = !1), this.interval && clearInterval(this.interval), this.options.interval && !this.paused && (this.interval = setInterval(a.proxy(this.next, this), this.options.interval)), this }, b.prototype.getActiveIndex = function () { return this.$active = this.$element.find(".item.active"), this.$items = this.$active.parent().children(), this.$items.index(this.$active) }, b.prototype.to = function (b) { var c = this, d = this.getActiveIndex(); return b > this.$items.length - 1 || 0 > b ? void 0 : this.sliding ? this.$element.one("slid.bs.carousel", function () { c.to(b) }) : d == b ? this.pause().cycle() : this.slide(b > d ? "next" : "prev", a(this.$items[b])) }, b.prototype.pause = function (b) { return b || (this.paused = !0), this.$element.find(".next, .prev").length && a.support.transition && (this.$element.trigger(a.support.transition.end), this.cycle(!0)), this.interval = clearInterval(this.interval), this }, b.prototype.next = function () { return this.sliding ? void 0 : this.slide("next") }, b.prototype.prev = function () { return this.sliding ? void 0 : this.slide("prev") }, b.prototype.slide = function (b, c) { var d = this.$element.find(".item.active"), e = c || d[b](), f = this.interval, g = "next" == b ? "left" : "right", h = "next" == b ? "first" : "last", i = this; if (!e.length) { if (!this.options.wrap) return; e = this.$element.find(".item")[h]() } if (e.hasClass("active")) return this.sliding = !1; var j = a.Event("slide.bs.carousel", { relatedTarget: e[0], direction: g }); return this.$element.trigger(j), j.isDefaultPrevented() ? void 0 : (this.sliding = !0, f && this.pause(), this.$indicators.length && (this.$indicators.find(".active").removeClass("active"), this.$element.one("slid.bs.carousel", function () { var b = a(i.$indicators.children()[i.getActiveIndex()]); b && b.addClass("active") })), a.support.transition && this.$element.hasClass("slide") ? (e.addClass(b), e[0].offsetWidth, d.addClass(g), e.addClass(g), d.one(a.support.transition.end, function () { e.removeClass([b, g].join(" ")).addClass("active"), d.removeClass(["active", g].join(" ")), i.sliding = !1, setTimeout(function () { i.$element.trigger("slid.bs.carousel") }, 0) }).emulateTransitionEnd(1e3 * d.css("transition-duration").slice(0, -1))) : (d.removeClass("active"), e.addClass("active"), this.sliding = !1, this.$element.trigger("slid.bs.carousel")), f && this.cycle(), this) }; var c = a.fn.carousel; a.fn.carousel = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.carousel"), f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c), g = "string" == typeof c ? c : f.slide; e || d.data("bs.carousel", e = new b(this, f)), "number" == typeof c ? e.to(c) : g ? e[g]() : f.interval && e.pause().cycle() }) }, a.fn.carousel.Constructor = b, a.fn.carousel.noConflict = function () { return a.fn.carousel = c, this }, a(document).on("click.bs.carousel.data-api", "[data-slide], [data-slide-to]", function (b) { var c, d = a(this), e = a(d.attr("data-target") || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, "")), f = a.extend({}, e.data(), d.data()), g = d.attr("data-slide-to"); g && (f.interval = !1), e.carousel(f), (g = d.attr("data-slide-to")) && e.data("bs.carousel").to(g), b.preventDefault() }), a(window).on("load", function () { a('[data-ride="carousel"]').each(function () { var b = a(this); b.carousel(b.data()) }) }) }(jQuery), +function (a) { "use strict"; var b = function (c, d) { this.$element = a(c), this.options = a.extend({}, b.DEFAULTS, d), this.transitioning = null, this.options.parent && (this.$parent = a(this.options.parent)), this.options.toggle && this.toggle() }; b.DEFAULTS = { toggle: !0 }, b.prototype.dimension = function () { var a = this.$element.hasClass("width"); return a ? "width" : "height" }, b.prototype.show = function () { if (!this.transitioning && !this.$element.hasClass("in")) { var b = a.Event("show.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.$parent && this.$parent.find("> .panel > .in"); if (c && c.length) { var d = c.data("bs.collapse"); if (d && d.transitioning) return; c.collapse("hide"), d || c.data("bs.collapse", null) } var e = this.dimension(); this.$element.removeClass("collapse").addClass("collapsing")[e](0), this.transitioning = 1; var f = function () { this.$element.removeClass("collapsing").addClass("collapse in")[e]("auto"), this.transitioning = 0, this.$element.trigger("shown.bs.collapse") }; if (!a.support.transition) return f.call(this); var g = a.camelCase(["scroll", e].join("-")); this.$element.one(a.support.transition.end, a.proxy(f, this)).emulateTransitionEnd(350)[e](this.$element[0][g]) } } }, b.prototype.hide = function () { if (!this.transitioning && this.$element.hasClass("in")) { var b = a.Event("hide.bs.collapse"); if (this.$element.trigger(b), !b.isDefaultPrevented()) { var c = this.dimension(); this.$element[c](this.$element[c]())[0].offsetHeight, this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"), this.transitioning = 1; var d = function () { this.transitioning = 0, this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse") }; return a.support.transition ? void this.$element[c](0).one(a.support.transition.end, a.proxy(d, this)).emulateTransitionEnd(350) : d.call(this) } } }, b.prototype.toggle = function () { this[this.$element.hasClass("in") ? "hide" : "show"]() }; var c = a.fn.collapse; a.fn.collapse = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.collapse"), f = a.extend({}, b.DEFAULTS, d.data(), "object" == typeof c && c); !e && f.toggle && "show" == c && (c = !c), e || d.data("bs.collapse", e = new b(this, f)), "string" == typeof c && e[c]() }) }, a.fn.collapse.Constructor = b, a.fn.collapse.noConflict = function () { return a.fn.collapse = c, this }, a(document).on("click.bs.collapse.data-api", "[data-toggle=collapse]", function (b) { var c, d = a(this), e = d.attr("data-target") || b.preventDefault() || (c = d.attr("href")) && c.replace(/.*(?=#[^\s]+$)/, ""), f = a(e), g = f.data("bs.collapse"), h = g ? "toggle" : d.data(), i = d.attr("data-parent"), j = i && a(i); g && g.transitioning || (j && j.find('[data-toggle=collapse][data-parent="' + i + '"]').not(d).addClass("collapsed"), d[f.hasClass("in") ? "addClass" : "removeClass"]("collapsed")), f.collapse(h) }) }(jQuery), +function (a) { "use strict"; function b(b) { a(d).remove(), a(e).each(function () { var d = c(a(this)), e = { relatedTarget: this }; d.hasClass("open") && (d.trigger(b = a.Event("hide.bs.dropdown", e)), b.isDefaultPrevented() || d.removeClass("open").trigger("hidden.bs.dropdown", e)) }) } function c(b) { var c = b.attr("data-target"); c || (c = b.attr("href"), c = c && /#[A-Za-z]/.test(c) && c.replace(/.*(?=#[^\s]*$)/, "")); var d = c && a(c); return d && d.length ? d : b.parent() } var d = ".dropdown-backdrop", e = "[data-toggle=dropdown]", f = function (b) { a(b).on("click.bs.dropdown", this.toggle) }; f.prototype.toggle = function (d) { var e = a(this); if (!e.is(".disabled, :disabled")) { var f = c(e), g = f.hasClass("open"); if (b(), !g) { "ontouchstart" in document.documentElement && !f.closest(".navbar-nav").length && a('<div class="dropdown-backdrop"/>').insertAfter(a(this)).on("click", b); var h = { relatedTarget: this }; if (f.trigger(d = a.Event("show.bs.dropdown", h)), d.isDefaultPrevented()) return; f.toggleClass("open").trigger("shown.bs.dropdown", h), e.focus() } return !1 } }, f.prototype.keydown = function (b) { if (/(38|40|27)/.test(b.keyCode)) { var d = a(this); if (b.preventDefault(), b.stopPropagation(), !d.is(".disabled, :disabled")) { var f = c(d), g = f.hasClass("open"); if (!g || g && 27 == b.keyCode) return 27 == b.which && f.find(e).focus(), d.click(); var h = " li:not(.divider):visible a", i = f.find("[role=menu]" + h + ", [role=listbox]" + h); if (i.length) { var j = i.index(i.filter(":focus")); 38 == b.keyCode && j > 0 && j--, 40 == b.keyCode && j < i.length - 1 && j++, ~j || (j = 0), i.eq(j).focus() } } } }; var g = a.fn.dropdown; a.fn.dropdown = function (b) { return this.each(function () { var c = a(this), d = c.data("bs.dropdown"); d || c.data("bs.dropdown", d = new f(this)), "string" == typeof b && d[b].call(c) }) }, a.fn.dropdown.Constructor = f, a.fn.dropdown.noConflict = function () { return a.fn.dropdown = g, this }, a(document).on("click.bs.dropdown.data-api", b).on("click.bs.dropdown.data-api", ".dropdown form", function (a) { a.stopPropagation() }).on("click.bs.dropdown.data-api", e, f.prototype.toggle).on("keydown.bs.dropdown.data-api", e + ", [role=menu], [role=listbox]", f.prototype.keydown) }(jQuery), +function (a) { "use strict"; var b = function (b, c) { this.options = c, this.$element = a(b), this.$backdrop = this.isShown = null, this.options.remote && this.$element.find(".modal-content").load(this.options.remote, a.proxy(function () { this.$element.trigger("loaded.bs.modal") }, this)) }; b.DEFAULTS = { backdrop: !0, keyboard: !0, show: !0 }, b.prototype.toggle = function (a) { return this[this.isShown ? "hide" : "show"](a) }, b.prototype.show = function (b) { var c = this, d = a.Event("show.bs.modal", { relatedTarget: b }); this.$element.trigger(d), this.isShown || d.isDefaultPrevented() || (this.isShown = !0, this.escape(), this.$element.on("click.dismiss.bs.modal", '[data-dismiss="modal"]', a.proxy(this.hide, this)), this.backdrop(function () { var d = a.support.transition && c.$element.hasClass("fade"); c.$element.parent().length || c.$element.appendTo(document.body), c.$element.show().scrollTop(0), d && c.$element[0].offsetWidth, c.$element.addClass("in").attr("aria-hidden", !1), c.enforceFocus(); var e = a.Event("shown.bs.modal", { relatedTarget: b }); d ? c.$element.find(".modal-dialog").one(a.support.transition.end, function () { c.$element.focus().trigger(e) }).emulateTransitionEnd(300) : c.$element.focus().trigger(e) })) }, b.prototype.hide = function (b) { b && b.preventDefault(), b = a.Event("hide.bs.modal"), this.$element.trigger(b), this.isShown && !b.isDefaultPrevented() && (this.isShown = !1, this.escape(), a(document).off("focusin.bs.modal"), this.$element.removeClass("in").attr("aria-hidden", !0).off("click.dismiss.bs.modal"), a.support.transition && this.$element.hasClass("fade") ? this.$element.one(a.support.transition.end, a.proxy(this.hideModal, this)).emulateTransitionEnd(300) : this.hideModal()) }, b.prototype.enforceFocus = function () { a(document).off("focusin.bs.modal").on("focusin.bs.modal", a.proxy(function (a) { this.$element[0] === a.target || this.$element.has(a.target).length || this.$element.focus() }, this)) }, b.prototype.escape = function () { this.isShown && this.options.keyboard ? this.$element.on("keyup.dismiss.bs.modal", a.proxy(function (a) { 27 == a.which && this.hide() }, this)) : this.isShown || this.$element.off("keyup.dismiss.bs.modal") }, b.prototype.hideModal = function () { var a = this; this.$element.hide(), this.backdrop(function () { a.removeBackdrop(), a.$element.trigger("hidden.bs.modal") }) }, b.prototype.removeBackdrop = function () { this.$backdrop && this.$backdrop.remove(), this.$backdrop = null }, b.prototype.backdrop = function (b) { var c = this.$element.hasClass("fade") ? "fade" : ""; if (this.isShown && this.options.backdrop) { var d = a.support.transition && c; if (this.$backdrop = a('<div class="modal-backdrop ' + c + '" />').appendTo(document.body), this.$element.on("click.dismiss.bs.modal", a.proxy(function (a) { a.target === a.currentTarget && ("static" == this.options.backdrop ? this.$element[0].focus.call(this.$element[0]) : this.hide.call(this)) }, this)), d && this.$backdrop[0].offsetWidth, this.$backdrop.addClass("in"), !b) return; d ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b() } else !this.isShown && this.$backdrop ? (this.$backdrop.removeClass("in"), a.support.transition && this.$element.hasClass("fade") ? this.$backdrop.one(a.support.transition.end, b).emulateTransitionEnd(150) : b()) : b && b() }; var c = a.fn.modal; a.fn.modal = function (c, d) { return this.each(function () { var e = a(this), f = e.data("bs.modal"), g = a.extend({}, b.DEFAULTS, e.data(), "object" == typeof c && c); f || e.data("bs.modal", f = new b(this, g)), "string" == typeof c ? f[c](d) : g.show && f.show(d) }) }, a.fn.modal.Constructor = b, a.fn.modal.noConflict = function () { return a.fn.modal = c, this }, a(document).on("click.bs.modal.data-api", '[data-toggle="modal"]', function (b) { var c = a(this), d = c.attr("href"), e = a(c.attr("data-target") || d && d.replace(/.*(?=#[^\s]+$)/, "")), f = e.data("bs.modal") ? "toggle" : a.extend({ remote: !/#/.test(d) && d }, e.data(), c.data()); c.is("a") && b.preventDefault(), e.modal(f, this).one("hide", function () { c.is(":visible") && c.focus() }) }), a(document).on("show.bs.modal", ".modal", function () { a(document.body).addClass("modal-open") }).on("hidden.bs.modal", ".modal", function () { a(document.body).removeClass("modal-open") }) }(jQuery), +function (a) { "use strict"; var b = function (a, b) { this.type = this.options = this.enabled = this.timeout = this.hoverState = this.$element = null, this.init("tooltip", a, b) }; b.DEFAULTS = { animation: !0, placement: "top", selector: !1, template: '<div class="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>', trigger: "hover focus", title: "", delay: 0, html: !1, container: !1 }, b.prototype.init = function (b, c, d) { this.enabled = !0, this.type = b, this.$element = a(c), this.options = this.getOptions(d); for (var e = this.options.trigger.split(" "), f = e.length; f--;) { var g = e[f]; if ("click" == g) this.$element.on("click." + this.type, this.options.selector, a.proxy(this.toggle, this)); else if ("manual" != g) { var h = "hover" == g ? "mouseenter" : "focusin", i = "hover" == g ? "mouseleave" : "focusout"; this.$element.on(h + "." + this.type, this.options.selector, a.proxy(this.enter, this)), this.$element.on(i + "." + this.type, this.options.selector, a.proxy(this.leave, this)) } } this.options.selector ? this._options = a.extend({}, this.options, { trigger: "manual", selector: "" }) : this.fixTitle() }, b.prototype.getDefaults = function () { return b.DEFAULTS }, b.prototype.getOptions = function (b) { return b = a.extend({}, this.getDefaults(), this.$element.data(), b), b.delay && "number" == typeof b.delay && (b.delay = { show: b.delay, hide: b.delay }), b }, b.prototype.getDelegateOptions = function () { var b = {}, c = this.getDefaults(); return this._options && a.each(this._options, function (a, d) { c[a] != d && (b[a] = d) }), b }, b.prototype.enter = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type); return clearTimeout(c.timeout), c.hoverState = "in", c.options.delay && c.options.delay.show ? void (c.timeout = setTimeout(function () { "in" == c.hoverState && c.show() }, c.options.delay.show)) : c.show() }, b.prototype.leave = function (b) { var c = b instanceof this.constructor ? b : a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type); return clearTimeout(c.timeout), c.hoverState = "out", c.options.delay && c.options.delay.hide ? void (c.timeout = setTimeout(function () { "out" == c.hoverState && c.hide() }, c.options.delay.hide)) : c.hide() }, b.prototype.show = function () { var b = a.Event("show.bs." + this.type); if (this.hasContent() && this.enabled) { if (this.$element.trigger(b), b.isDefaultPrevented()) return; var c = this, d = this.tip(); this.setContent(), this.options.animation && d.addClass("fade"); var e = "function" == typeof this.options.placement ? this.options.placement.call(this, d[0], this.$element[0]) : this.options.placement, f = /\s?auto?\s?/i, g = f.test(e); g && (e = e.replace(f, "") || "top"), d.detach().css({ top: 0, left: 0, display: "block" }).addClass(e), this.options.container ? d.appendTo(this.options.container) : d.insertAfter(this.$element); var h = this.getPosition(), i = d[0].offsetWidth, j = d[0].offsetHeight; if (g) { var k = this.$element.parent(), l = e, m = document.documentElement.scrollTop || document.body.scrollTop, n = "body" == this.options.container ? window.innerWidth : k.outerWidth(), o = "body" == this.options.container ? window.innerHeight : k.outerHeight(), p = "body" == this.options.container ? 0 : k.offset().left; e = "bottom" == e && h.top + h.height + j - m > o ? "top" : "top" == e && h.top - m - j < 0 ? "bottom" : "right" == e && h.right + i > n ? "left" : "left" == e && h.left - i < p ? "right" : e, d.removeClass(l).addClass(e) } var q = this.getCalculatedOffset(e, h, i, j); this.applyPlacement(q, e), this.hoverState = null; var r = function () { c.$element.trigger("shown.bs." + c.type) }; a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, r).emulateTransitionEnd(150) : r() } }, b.prototype.applyPlacement = function (b, c) { var d, e = this.tip(), f = e[0].offsetWidth, g = e[0].offsetHeight, h = parseInt(e.css("margin-top"), 10), i = parseInt(e.css("margin-left"), 10); isNaN(h) && (h = 0), isNaN(i) && (i = 0), b.top = b.top + h, b.left = b.left + i, a.offset.setOffset(e[0], a.extend({ using: function (a) { e.css({ top: Math.round(a.top), left: Math.round(a.left) }) } }, b), 0), e.addClass("in"); var j = e[0].offsetWidth, k = e[0].offsetHeight; if ("top" == c && k != g && (d = !0, b.top = b.top + g - k), /bottom|top/.test(c)) { var l = 0; b.left < 0 && (l = -2 * b.left, b.left = 0, e.offset(b), j = e[0].offsetWidth, k = e[0].offsetHeight), this.replaceArrow(l - f + j, j, "left") } else this.replaceArrow(k - g, k, "top"); d && e.offset(b) }, b.prototype.replaceArrow = function (a, b, c) { this.arrow().css(c, a ? 50 * (1 - a / b) + "%" : "") }, b.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(); a.find(".tooltip-inner")[this.options.html ? "html" : "text"](b), a.removeClass("fade in top bottom left right") }, b.prototype.hide = function () { function b() { "in" != c.hoverState && d.detach(), c.$element.trigger("hidden.bs." + c.type) } var c = this, d = this.tip(), e = a.Event("hide.bs." + this.type); return this.$element.trigger(e), e.isDefaultPrevented() ? void 0 : (d.removeClass("in"), a.support.transition && this.$tip.hasClass("fade") ? d.one(a.support.transition.end, b).emulateTransitionEnd(150) : b(), this.hoverState = null, this) }, b.prototype.fixTitle = function () { var a = this.$element; (a.attr("title") || "string" != typeof a.attr("data-original-title")) && a.attr("data-original-title", a.attr("title") || "").attr("title", "") }, b.prototype.hasContent = function () { return this.getTitle() }, b.prototype.getPosition = function () { var b = this.$element[0]; return a.extend({}, "function" == typeof b.getBoundingClientRect ? b.getBoundingClientRect() : { width: b.offsetWidth, height: b.offsetHeight }, this.$element.offset()) }, b.prototype.getCalculatedOffset = function (a, b, c, d) { return "bottom" == a ? { top: b.top + b.height, left: b.left + b.width / 2 - c / 2 } : "top" == a ? { top: b.top - d, left: b.left + b.width / 2 - c / 2 } : "left" == a ? { top: b.top + b.height / 2 - d / 2, left: b.left - c } : { top: b.top + b.height / 2 - d / 2, left: b.left + b.width } }, b.prototype.getTitle = function () { var a, b = this.$element, c = this.options; return a = b.attr("data-original-title") || ("function" == typeof c.title ? c.title.call(b[0]) : c.title) }, b.prototype.tip = function () { return this.$tip = this.$tip || a(this.options.template) }, b.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".tooltip-arrow") }, b.prototype.validate = function () { this.$element[0].parentNode || (this.hide(), this.$element = null, this.options = null) }, b.prototype.enable = function () { this.enabled = !0 }, b.prototype.disable = function () { this.enabled = !1 }, b.prototype.toggleEnabled = function () { this.enabled = !this.enabled }, b.prototype.toggle = function (b) { var c = b ? a(b.currentTarget)[this.type](this.getDelegateOptions()).data("bs." + this.type) : this; c.tip().hasClass("in") ? c.leave(c) : c.enter(c) }, b.prototype.destroy = function () { clearTimeout(this.timeout), this.hide().$element.off("." + this.type).removeData("bs." + this.type) }; var c = a.fn.tooltip; a.fn.tooltip = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.tooltip"), f = "object" == typeof c && c; (e || "destroy" != c) && (e || d.data("bs.tooltip", e = new b(this, f)), "string" == typeof c && e[c]()) }) }, a.fn.tooltip.Constructor = b, a.fn.tooltip.noConflict = function () { return a.fn.tooltip = c, this } }(jQuery), +function (a) { "use strict"; var b = function (a, b) { this.init("popover", a, b) }; if (!a.fn.tooltip) throw new Error("Popover requires tooltip.js"); b.DEFAULTS = a.extend({}, a.fn.tooltip.Constructor.DEFAULTS, { placement: "right", trigger: "click", content: "", template: '<div class="popover"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>' }), b.prototype = a.extend({}, a.fn.tooltip.Constructor.prototype), b.prototype.constructor = b, b.prototype.getDefaults = function () { return b.DEFAULTS }, b.prototype.setContent = function () { var a = this.tip(), b = this.getTitle(), c = this.getContent(); a.find(".popover-title")[this.options.html ? "html" : "text"](b), a.find(".popover-content")[this.options.html ? "string" == typeof c ? "html" : "append" : "text"](c), a.removeClass("fade top bottom left right in"), a.find(".popover-title").html() || a.find(".popover-title").hide() }, b.prototype.hasContent = function () { return this.getTitle() || this.getContent() }, b.prototype.getContent = function () { var a = this.$element, b = this.options; return a.attr("data-content") || ("function" == typeof b.content ? b.content.call(a[0]) : b.content) }, b.prototype.arrow = function () { return this.$arrow = this.$arrow || this.tip().find(".arrow") }, b.prototype.tip = function () { return this.$tip || (this.$tip = a(this.options.template)), this.$tip }; var c = a.fn.popover; a.fn.popover = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.popover"), f = "object" == typeof c && c; (e || "destroy" != c) && (e || d.data("bs.popover", e = new b(this, f)), "string" == typeof c && e[c]()) }) }, a.fn.popover.Constructor = b, a.fn.popover.noConflict = function () { return a.fn.popover = c, this } }(jQuery), +function (a) { "use strict"; function b(c, d) { var e, f = a.proxy(this.process, this); this.$element = a(a(c).is("body") ? window : c), this.$body = a("body"), this.$scrollElement = this.$element.on("scroll.bs.scroll-spy.data-api", f), this.options = a.extend({}, b.DEFAULTS, d), this.selector = (this.options.target || (e = a(c).attr("href")) && e.replace(/.*(?=#[^\s]+$)/, "") || "") + " .nav li > a", this.offsets = a([]), this.targets = a([]), this.activeTarget = null, this.refresh(), this.process() } b.DEFAULTS = { offset: 10 }, b.prototype.refresh = function () { var b = this.$element[0] == window ? "offset" : "position"; this.offsets = a([]), this.targets = a([]); { var c = this; this.$body.find(this.selector).map(function () { var d = a(this), e = d.data("target") || d.attr("href"), f = /^#./.test(e) && a(e); return f && f.length && f.is(":visible") && [[f[b]().top + (!a.isWindow(c.$scrollElement.get(0)) && c.$scrollElement.scrollTop()), e]] || null }).sort(function (a, b) { return a[0] - b[0] }).each(function () { c.offsets.push(this[0]), c.targets.push(this[1]) }) } }, b.prototype.process = function () { var a, b = this.$scrollElement.scrollTop() + this.options.offset, c = this.$scrollElement[0].scrollHeight || this.$body[0].scrollHeight, d = c - this.$scrollElement.height(), e = this.offsets, f = this.targets, g = this.activeTarget; if (b >= d) return g != (a = f.last()[0]) && this.activate(a); if (g && b <= e[0]) return g != (a = f[0]) && this.activate(a); for (a = e.length; a--;) g != f[a] && b >= e[a] && (!e[a + 1] || b <= e[a + 1]) && this.activate(f[a]) }, b.prototype.activate = function (b) { this.activeTarget = b, a(this.selector).parentsUntil(this.options.target, ".active").removeClass("active"); var c = this.selector + '[data-target="' + b + '"],' + this.selector + '[href="' + b + '"]', d = a(c).parents("li").addClass("active"); d.parent(".dropdown-menu").length && (d = d.closest("li.dropdown").addClass("active")), d.trigger("activate.bs.scrollspy") }; var c = a.fn.scrollspy; a.fn.scrollspy = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.scrollspy"), f = "object" == typeof c && c; e || d.data("bs.scrollspy", e = new b(this, f)), "string" == typeof c && e[c]() }) }, a.fn.scrollspy.Constructor = b, a.fn.scrollspy.noConflict = function () { return a.fn.scrollspy = c, this }, a(window).on("load", function () { a('[data-spy="scroll"]').each(function () { var b = a(this); b.scrollspy(b.data()) }) }) }(jQuery), +function (a) { "use strict"; var b = function (b) { this.element = a(b) }; b.prototype.show = function () { var b = this.element, c = b.closest("ul:not(.dropdown-menu)"), d = b.data("target"); if (d || (d = b.attr("href"), d = d && d.replace(/.*(?=#[^\s]*$)/, "")), !b.parent("li").hasClass("active")) { var e = c.find(".active:last a")[0], f = a.Event("show.bs.tab", { relatedTarget: e }); if (b.trigger(f), !f.isDefaultPrevented()) { var g = a(d); this.activate(b.parent("li"), c), this.activate(g, g.parent(), function () { b.trigger({ type: "shown.bs.tab", relatedTarget: e }) }) } } }, b.prototype.activate = function (b, c, d) { function e() { f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"), b.addClass("active"), g ? (b[0].offsetWidth, b.addClass("in")) : b.removeClass("fade"), b.parent(".dropdown-menu") && b.closest("li.dropdown").addClass("active"), d && d() } var f = c.find("> .active"), g = d && a.support.transition && f.hasClass("fade"); g ? f.one(a.support.transition.end, e).emulateTransitionEnd(150) : e(), f.removeClass("in") }; var c = a.fn.tab; a.fn.tab = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.tab"); e || d.data("bs.tab", e = new b(this)), "string" == typeof c && e[c]() }) }, a.fn.tab.Constructor = b, a.fn.tab.noConflict = function () { return a.fn.tab = c, this }, a(document).on("click.bs.tab.data-api", '[data-toggle="tab"], [data-toggle="pill"]', function (b) { b.preventDefault(), a(this).tab("show") }) }(jQuery), +function (a) { "use strict"; var b = function (c, d) { this.options = a.extend({}, b.DEFAULTS, d), this.$window = a(window).on("scroll.bs.affix.data-api", a.proxy(this.checkPosition, this)).on("click.bs.affix.data-api", a.proxy(this.checkPositionWithEventLoop, this)), this.$element = a(c), this.affixed = this.unpin = this.pinnedOffset = null, this.checkPosition() }; b.RESET = "affix affix-top affix-bottom", b.DEFAULTS = { offset: 0 }, b.prototype.getPinnedOffset = function () { if (this.pinnedOffset) return this.pinnedOffset; this.$element.removeClass(b.RESET).addClass("affix"); var a = this.$window.scrollTop(), c = this.$element.offset(); return this.pinnedOffset = c.top - a }, b.prototype.checkPositionWithEventLoop = function () { setTimeout(a.proxy(this.checkPosition, this), 1) }, b.prototype.checkPosition = function () { if (this.$element.is(":visible")) { var c = a(document).height(), d = this.$window.scrollTop(), e = this.$element.offset(), f = this.options.offset, g = f.top, h = f.bottom; "top" == this.affixed && (e.top += d), "object" != typeof f && (h = g = f), "function" == typeof g && (g = f.top(this.$element)), "function" == typeof h && (h = f.bottom(this.$element)); var i = null != this.unpin && d + this.unpin <= e.top ? !1 : null != h && e.top + this.$element.height() >= c - h ? "bottom" : null != g && g >= d ? "top" : !1; if (this.affixed !== i) { this.unpin && this.$element.css("top", ""); var j = "affix" + (i ? "-" + i : ""), k = a.Event(j + ".bs.affix"); this.$element.trigger(k), k.isDefaultPrevented() || (this.affixed = i, this.unpin = "bottom" == i ? this.getPinnedOffset() : null, this.$element.removeClass(b.RESET).addClass(j).trigger(a.Event(j.replace("affix", "affixed"))), "bottom" == i && this.$element.offset({ top: c - h - this.$element.height() })) } } }; var c = a.fn.affix; a.fn.affix = function (c) { return this.each(function () { var d = a(this), e = d.data("bs.affix"), f = "object" == typeof c && c; e || d.data("bs.affix", e = new b(this, f)), "string" == typeof c && e[c]() }) }, a.fn.affix.Constructor = b, a.fn.affix.noConflict = function () { return a.fn.affix = c, this }, a(window).on("load", function () { a('[data-spy="affix"]').each(function () { var b = a(this), c = b.data(); c.offset = c.offset || {}, c.offsetBottom && (c.offset.bottom = c.offsetBottom), c.offsetTop && (c.offset.top = c.offsetTop), b.affix(c) }) }) }(jQuery);
 +
    </script>
 +
    <script lang="JavaScript">
-
<li> Thanks and acknowledgements for all other people involved in helping make a successful iGEM team.</li>
+
        $(document).ready(function () {/* activate sidebar */
 +
            $('#sidebar').affix({
 +
                offset: {
 +
                    top: 235
 +
                }
 +
            });
-
</ol>
+
            /* activate scrollspy menu */
-
</td>
+
            var $body = $(document.body);
 +
            var navHeight = $('.navbar').outerHeight(true) + 10;
 +
            $body.scrollspy({
 +
                target: '#leftCol',
 +
                offset: navHeight
 +
            });
-
</tr>
+
            /* smooth scrolling sections */
-
</table>
+
            $('a[href*=#]:not([href=#])').click(function () {
 +
                if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
 +
                    var target = $(this.hash);
 +
                    target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
 +
                    if (target.length) {
 +
                        $('html,body').animate({
 +
                            scrollTop: target.offset().top - 50
 +
                        }, 1000);
 +
                        return false;
 +
                    }
 +
                }
 +
            });
 +
        });
 +
    </script>
 +
</body>
</html>
</html>

Revision as of 00:02, 13 October 2014

Human Practices

The Next Generation in Molecular Machinery

What is it that we do?

The Bio-NEMS drill is a

Project Overview

Virtus-Parva is a team of Nanotechnology students who aim to create a better world through love,sympathy and endearment… and through the design and development of a novel technology based on micrometric “drills” to attack pathogen agents.

First and foremost, we studied different procedures in order to synthesize the strongest and smallest magnetite particles we could make. Magnetite is a molecule that derives from iron, and has observable magnetic properties. Because we wanted to put together magnetite and DNA, we had to make them compatible, task we accomplished by functionalizing it with amino groups, that would allow it to form peptide bonds with our protein, HU. At the same time, our biology team was busy extracting, purifying and transforming E. Coli DNA to work with. This protein, HU, is a histone-like protein normally aids DNA into supercoiling around histones; the “Magnetic-Protein” complex we created mimics the nucleosome in DNA supercoiling process. This allows us to have a DNA “chromatin” with a magnetic core.

Combining magnetite, DNA and HU protein, we are building magnetic-core machines, which can be controlled through external electrical impulses. Because of the shape of our system, it is possible for it to have linear movement depending on the frequency applied to it, which has the potential to be incorporated into the medical sector as a pathogen-targeted therapy. This was our original idea and module one of our project.

As we were transforming our E. coli cells, we noticed it wasn’t as fast and efficient as we had hoped, which is how we came up with module two of the project. Quite simply, we wanted to take advantage of the shape of our system and its mobility thanks to magnetism in order to make a more efficient transformation. We were able to verify our method was more efficient by making cells express GFP and RFP, which can then be quantified with optic instruments.

The Idea

The basis for these “drills” will be NEMS, nano electro-mechanical systems, technology.
We took a survey to fellow iGEMers and external people in order to find out how many people knew about the existence of NEMS and if they knew how they worked. Turns out only 36% of survey takers had heard of the term before and of those, only 28% knew what it was!

Given these statistics, it became part of our project to teach newer generations about our subject.

NEMS

NEMS are nanometric electromechanical systems. In this case we take as basis the structure of a resonator which are engineered to make a conversión between energy, such as electric, magnetic, or vibrational into mechanical response.

How exactly do NEMS come into play in our project?

Well, by combining an inorganically synthesized nanoparticle, called magnetite and DNA into what we call BioNEMS drill.

DNA Coiling into Chromosomes

Contenido subtitulo 2

The Making

Descripcion general de Seccion 3

Inorganic Section

The first part of the synthesis of our magnetite was trying out different methods and characterizing them, to note which method had given us the smallest size nanoparticles. Our first method was synthesis by coprecipitation, of which we prepared nine samples with different concentrations of iron(II) chloride and ammonium hydroxide; from this method we consistently obtained nanoparticles rounding 0.9 to 1nm. Our following method was very similar, but included water in the synthesis: the size of our particles would vary greatly, from 3.89 micrometers to 171 nanometers in size.

After choosing the best method possible, it was time to silanize our magnetite in order for it to be biocompatible with DNA and be able to tie them together. In order for the silanization to take place, we used a solution of TEOS (tetraethoxysilane) dispersed in a medium of water and propanol and dripped this mix slowly onto our magnetite. Just like when we synthesized our particles, we tested different concentrations of TEOS and magnetite, as well as different addition rates in order to observe which combination would give us the smallest possible nanoparticles.

Our results were then characterized by DLS (dynamic light scattering), for which we observed a peak at 39 nm, once coated with TEOS, the peak was moved toward 60 and 80 nm. We also ran our two samples in the IR, comparing the spectra of the pure magnetite and silanized magnetite, we were able to distinguish a peak at 990.2 cm^-1 corresponding to a Si-O bond, confirming the correct silanization of the magnetite.

Biological Section

Soon..