, but this code // executes before the first paint, when

app

is not yet present. The // classes are added to so styling immediately reflects the current // toolbar state. The classes are removed after the toolbar completes // initialization. const classesToAdd = ['toolbar-loading', 'toolbar-anti-flicker']; if (toolbarState) { const { orientation, hasActiveTab, isFixed, activeTray, activeTabId, isOriented, userButtonMinWidth } = toolbarState; classesToAdd.push( orientation ? `toolbar-` + orientation + `` : 'toolbar-horizontal', ); if (hasActiveTab !== false) { classesToAdd.push('toolbar-tray-open'); } if (isFixed) { classesToAdd.push('toolbar-fixed'); } if (isOriented) { classesToAdd.push('toolbar-oriented'); } if (activeTray) { // These styles are added so the active tab/tray styles are present // immediately instead of "flickering" on as the toolbar initializes. In // instances where a tray is lazy loaded, these styles facilitate the // lazy loaded tray appearing gracefully and without reflow. const styleContent = ` .toolbar-loading #` + activeTabId + ` { background-image: linear-gradient(rgba(255, 255, 255, 0.25) 20%, transparent 200%); } .toolbar-loading #` + activeTabId + `-tray { display: block; box-shadow: -1px 0 5px 2px rgb(0 0 0 / 33%); border-right: 1px solid #aaa; background-color: #f5f5f5; z-index: 0; } .toolbar-loading.toolbar-vertical.toolbar-tray-open #` + activeTabId + `-tray { width: 15rem; height: 100vh; } .toolbar-loading.toolbar-horizontal :not(#` + activeTray + `) > .toolbar-lining {opacity: 0}`; const style = document.createElement('style'); style.textContent = styleContent; style.setAttribute('data-toolbar-anti-flicker-loading', true); document.querySelector('head').appendChild(style); if (userButtonMinWidth) { const userButtonStyle = document.createElement('style'); userButtonStyle.textContent = `#toolbar-item-user {min-width: ` + userButtonMinWidth +`px;}` document.querySelector('head').appendChild(userButtonStyle); } } } document.querySelector('html').classList.add(...classesToAdd); })(); Investigation of Symbiotic Bacteria and Bacteriophages in Termites | app

app

Skip to main content

Investigation of Symbiotic Bacteria and Bacteriophages in Termites

Ari Davis3

Wood-eating termites are one of the most numerous and ecologically relevant soil-dwelling insects on earth. They thrive on the abundant biopolymer lignocellulose, depending upon a phy-logenetically diverse community of hindgut microbes including Bacteria, Archaea, and unicellular amitochondriate Eukarya for survival. Bacteriophage, the most abundant virus on the planet, have been isolated from a plethora of different environments, but no one has attempted isolation of phage from termite guts. We hypothesize that bacteriophage have an important ecological role within the termite gut system. Temperate bacteriophage, integrated asprophage into gut bacteria, may have a role in maintaining homeostasis of the termite gut ecosystem by driving evolution of niche specialization, encoding toxin-producing genes, and providing "immunity” for their bacterial hosts against lysis by exogenous bacteriophage.



Funded by

app College Science Division, app Research Fellowships