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

°ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

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); })(); Genomic and Niche Characterization of Bacteriophages in the Microbial Communities of the Aquatic Snails | °ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

°ÄÃÅÁùºÏ²Ê¿ª½±¼Ç¼×ÊÁÏ

Skip to main content

Genomic and Niche Characterization of Bacteriophages in the Microbial Communities of the Aquatic Snails

Interactions between Bacteriophages(2)

Observing the interactions between bacteriophages (viruses that infect bacteria) and their bacteria hosts. The project utilizes genomics to observe bacteriophage abundance, important genes within bacteria for these relationships and horizontal gene transfer events.


<p>Most multicellular organisms rely on symbiotic relationships with prokaryotes (bacteria), especially within the digestive tract, for aiding digestion and providing essential nutrients and energy. Even in the small guts of invertebrates, these bacterial communities can be robust, unique, and critical to survival. One aspect of invertebrate microbial communities that has been largely unexamined is the potential role of bacteriophage, which putatively could play a large role in regulating community composition and function. Recent research has highlighted the importance of gut bacteria in both the transmission of malaria and the immune response of the mosquito and therefore any phage that affects such bacteria are of interest.</p>


Funded by

Rosema Fellowship, Jansma Family Research Fund, HHMI

Files