6362 lines
247 KiB
HTML
6362 lines
247 KiB
HTML
|
||
<!DOCTYPE HTML>
|
||
<html lang="en">
|
||
<head>
|
||
|
||
<meta name="template" content="base-page-template"/>
|
||
|
||
|
||
|
||
|
||
|
||
<meta name="content-page-ref" content="1jJf7pzp9FmD39LdaE-fdROu4U7PfzKVsce7NAqOESvAPP5mmJ8cbAOHsVk7fIAiOcg3KPO4ii9Yp9mWoCnZlQ"/>
|
||
<script defer="defer" type="text/javascript" src="/.rum/@adobe/helix-rum-js@%5E2/dist/micro.js"></script>
|
||
<link rel="canonical" href="https://cen.acs.org/articles/87/i31/Learning-UCLA.html"/>
|
||
|
||
|
||
|
||
|
||
<meta charset="UTF-8"/>
|
||
<meta http-equiv="x-ua-compatible" content="ie=edge"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
|
||
<meta name="format-detection" content="telephone=no"/>
|
||
|
||
<!-- CRITICAL: Priority resource hints using preconnect -->
|
||
<link rel="preconnect" href="https://securepubads.g.doubleclick.net" crossorigin/>
|
||
<link rel="preconnect" href="https://www.googletagmanager.com" crossorigin/>
|
||
<link rel="preconnect" href="https://cmp.osano.com" crossorigin/>
|
||
<!-- PERFORMANCE: Full preconnect for Scene7 CDN (saves ~2 seconds on LCP) -->
|
||
<link rel="preconnect" href="https://s7d9.scene7.com" crossorigin/>
|
||
<link rel="dns-prefetch" href="https://s7d9.scene7.com"/>
|
||
|
||
<!-- Preload critical local fonts for faster FCP and reduced layout shift -->
|
||
<link rel="preload" href="/etc.clientlibs/cen-cloud/clientlibs/clientlib-site/resources/fonts/Inter-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"/>
|
||
<link rel="preload" href="/etc.clientlibs/cen-cloud/clientlibs/clientlib-site/resources/fonts/RobotoMono-Regular.woff2" as="font" type="font/woff2" crossorigin="anonymous"/>
|
||
|
||
<!-- PERFORMANCE: Preload LCP image for article pages (saves ~2 seconds on LCP) -->
|
||
|
||
|
||
<!-- Favicon - Multiple formats for cross-browser compatibility -->
|
||
<!-- Firefox prefers PNG format with explicit sizes -->
|
||
<link rel="icon" type="image/png" sizes="32x32" href="/content/dam/acs-cen-redesign/logo/favicon.ico"/>
|
||
<link rel="icon" type="image/png" sizes="16x16" href="/content/dam/acs-cen-redesign/logo/favicon.ico"/>
|
||
|
||
<link rel="icon" type="image/x-icon" href="/content/dam/acs-cen-redesign/logo/favicon.ico"/>
|
||
<link rel="shortcut icon" type="image/x-icon" href="/content/dam/acs-cen-redesign/logo/favicon.ico"/>
|
||
<!-- Legacy ICO for older browsers -->
|
||
<link rel="icon" href="/content/dam/acs-cen-redesign/logo/favicon.ico" type="image/x-icon"/>
|
||
<!-- Apple Touch Icon -->
|
||
<link rel="apple-touch-icon" sizes="180x180" href="/content/dam/acs-cen-redesign/logo/favicon.ico"/>
|
||
|
||
<!-- Essential AEM includes -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<title>
|
||
|
||
Learning From UCLA
|
||
|
||
</title>
|
||
|
||
|
||
|
||
|
||
|
||
<meta property="og:title" content="Learning From UCLA"/>
|
||
|
||
|
||
<meta property="og:site_name" content="Chemical & Engineering News"/>
|
||
|
||
|
||
<meta property="og:description" content="Details of the experiment that led to a researcher’s death prompt evaluations of academic safety practices"/>
|
||
|
||
|
||
|
||
<meta property="og:image" content="https://s7d1.scene7.com/is/image/CENODS/8731sci1_notebookcxd_lg:Widescreen?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1"/>
|
||
|
||
|
||
|
||
<meta property="og:locale" content="en_US"/>
|
||
|
||
|
||
<meta name="twitter:card" content="summary"/>
|
||
|
||
|
||
<meta name="twitter:title" content="Learning From UCLA"/>
|
||
|
||
|
||
<meta name="twitter:description" content="Details of the experiment that led to a researcher’s death prompt evaluations of academic safety practices"/>
|
||
|
||
|
||
<meta name="twitter:image" content="https://s7d1.scene7.com/is/image/CENODS/8731sci1_notebookcxd_lg:Widescreen?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1"/>
|
||
|
||
|
||
|
||
<meta name="description" content="Details of the experiment that led to a researcher’s death prompt evaluations of academic safety practices"/>
|
||
|
||
|
||
<meta property="og:url" content="https://cen.acs.org/articles/87/i31/Learning-UCLA.html"/>
|
||
|
||
|
||
<!-- PIANO meta tags -->
|
||
|
||
<meta name="cXenseParse:mwn-author" content="Jyllian N. Kemsley"/>
|
||
|
||
|
||
<meta name="cXenseParse:mwn-image" content="https://s7d1.scene7.com/is/image/CENODS/8731sci1_notebookcxd_lg:Widescreen?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1"/>
|
||
|
||
|
||
|
||
|
||
<meta name="cXenseParse:taxonomy" content="safety/labSafety"/>
|
||
<meta name="cXenseParse:mwn-primaryTaxonomy" content="safety/labSafety"/>
|
||
|
||
|
||
<meta name="cXenseParse:mwn-primaryTaxonomyTitle" content="Lab Safety"/>
|
||
|
||
|
||
<meta name="cXenseParse:mwn-primaryTaxonomyUrl" content="/topics/safety/lab-safety.html"/>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<meta name="cXenseParse:mwn-keywords" content="SheriSangji,UCLA,Cal/OSHA,Safety" data-separator=","/>
|
||
|
||
|
||
<meta name="cXenseParse:mwn-pageclass" content="article"/>
|
||
|
||
|
||
|
||
<meta name="cXenseParse:mwn-publishtime" content="2009-08-03T00:00:00.000-04:00"/>
|
||
|
||
|
||
<meta property="article:mwn-modified_time" content="2023-03-27T19:29:17.190-04:00"/>
|
||
|
||
|
||
|
||
<meta name="facebook-domain-verification" content="an25ujdd57jxj7j3n94vqa7wv6hww6"/>
|
||
<meta name="twitter:site" content="@cenmag"/>
|
||
<meta name="twitter:creator" content="@cenmag"/>
|
||
|
||
|
||
|
||
<!-- SEO - Conditionally included based on page variant -->
|
||
|
||
|
||
|
||
|
||
<script type="application/ld+json">
|
||
{"@context":"http://schema.org","@type":"Article","mainEntityOfPage":{"@type":"WebPage","@id":"https://cen.acs.org/articles/87/i31/Learning-UCLA.html"},"description":"Details of the experiment that led to a researcher’s death prompt evaluations of academic safety practices","image":{"@type":"ImageObject","url":"https://s7d1.scene7.com/is/image/CENODS/8731sci1_notebookcxd_lg:Widescreen?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1"},"datePublished":"2022-10-05","author":{"@type":"Person","name":"Jyllian N. Kemsley"},"wordCount":"5099","pageStart":"29","pageEnd":"31, 33-34","articleSection":["Safety","Lab Safety"],"abstract":"On Jan. 16, Sheharbano (Sheri) Sangji, a 23-year-old chemistry research assistant, died from injuries sustained in a chemical fire on Dec. 29, 2008, in a laboratory at the University of California, Los Angeles (C&EN Online Latest News, Jan. 22). The incident has trained a spotlight on safety practices in academic labs, with researchers highlighting the need for awareness of risks and regular hazard assessments, while cautioning against developing an adversarial relationship with campus environmental health and safety officials. Before researchers can learn from what went wrong, however, they must first understand what happened. Sangji had started work in the lab of Patrick Harran, a chemistry professor at UCLA, on Oct. 13. According to copies of Sangji’s lab notebook obtained from UCLA through a California Public Records Act request, Sangji planned in December to scale up a reaction she’d run once before, on Oct. 17, to produce 4-hydroxy-4-vinyldecane from either 4-undecanone","keywords":["Sheri Sangji","UCLA","Cal/OSHA","Safety"],"copyrightHolder":"Chemical & Engineering News","publication":"Chemical & Engineering News","copyrightYear":"2012","headline":"Learning From UCLA","publisher":{"@type":"Organization","name":"American Chemical Society","logo":{"@type":"ImageObject","url":"https://cen.acs.org/content/dam/acs-cen-redesign/logo/favicon.ico"}},"isPartOf":{"@type":"Periodical","name":"Chemical & Engineering News","issn":"0009-2347","hasPart":{"@id":"cen-8731sci1","@type":"PublicationVolume","volumeNumber":"87","issueNumber":"31","datePublished":"2022-10-05"}}}
|
||
</script>
|
||
|
||
|
||
<!-- Article page datalayer -->
|
||
|
||
|
||
<script>
|
||
function htmlEntities(e){var t=document.createElement("textarea");return t.innerHTML=e,t.value}var authorStack=[],collectionStack=[],nativoStack=[],tagStack=[],articleInfoStack=[],articleInfoArr=[],articleInfo="",aemMode=[],pType="in-issue";function getCookie(e){var t=("; "+document.cookie).split("; "+e+"=");return 2==t.length?t.pop().split(";").shift():""}window.location.pathname.indexOf("/web/")>0&&(pType="web");
|
||
</script>
|
||
|
||
<script>authorStack.push(htmlEntities("Jyllian N. Kemsley"));</script>
|
||
|
||
<script>
|
||
|
||
var digitalData = {
|
||
'pageInfo' : {
|
||
'pageName' : htmlEntities('Learning From UCLA'),
|
||
'authorName' : authorStack.join(', '),
|
||
'description' : htmlEntities(''),
|
||
'copyright': htmlEntities('Chemical & Engineering News 2012'),
|
||
'issueNumber' : '31',
|
||
'highlightPriority' : '',
|
||
'volumeNumber' : '87',
|
||
'contentType' : 'Article Page',
|
||
'articleId' : 'cen-8731sci1',
|
||
'doi' : '',
|
||
'collections' : htmlEntities('article'),
|
||
'cType' : htmlEntities(''),
|
||
'department' : htmlEntities('scitech'),
|
||
'nfc' : htmlEntities(''),
|
||
'pType' : pType,
|
||
'pDate' : 'August 3, 2009',
|
||
'wCount' : '5099',
|
||
'aLimit' : '3',
|
||
'rLimit' : '1',
|
||
'sLimit' : '10',
|
||
'bLimit' : '6',
|
||
'cLimit' : '',
|
||
'isMigrated' : 'true',
|
||
'publishDate' : 'August 3, 2009',
|
||
'publishTime' : '04:00'
|
||
}
|
||
};
|
||
|
||
var _cbq = window._cbq || [];
|
||
_cbq.push(['_contentType', digitalData.pageInfo.contentType]);
|
||
|
||
var xhr=new XMLHttpRequest();var url="/acs/cServe";xhr.open("POST",url,!1);xhr.onreadystatechange=function(){if(xhr.readyState===4&&xhr.status===200){var json=xhr.responseText;digitalData.userInfo=JSON.parse(atob(json))}};xhr.send()
|
||
</script>
|
||
|
||
|
||
|
||
<script>
|
||
digitalData.pageInfo.primaryTag = htmlEntities('Safety');
|
||
tagStack.push('safety');
|
||
nativoStack.push('safety');
|
||
articleInfo = 'Sheri Sangji, UCLA, Cal/OSHA, Safety';
|
||
articleInfoArr = articleInfo.split(',');
|
||
for (var i = 0; i < articleInfoArr.length; i++) {
|
||
articleInfoArr[i] = articleInfoArr[i].trim();
|
||
}
|
||
articleInfoStack.push(articleInfoArr);
|
||
</script>
|
||
|
||
|
||
|
||
<script>
|
||
if("Lab Safety".localeCompare(digitalData.pageInfo.primaryTag)){
|
||
digitalData.pageInfo.secondaryTag = htmlEntities('Lab Safety');
|
||
tagStack.push('labSafety');
|
||
nativoStack.push('labSafety');
|
||
}
|
||
</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!--collection values push to array and retrieving from adobe launch to generate dynamic metatag for nativo ads -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- CRITICAL: Auth configuration -->
|
||
|
||
<script>
|
||
window.authDomain = "login.acs.org";
|
||
window.authLoginUrl = "\/acs\/auth\/login";
|
||
window.authLogoutUrl = "\/acs\/auth\/logout";
|
||
window.env = "cen";
|
||
</script>
|
||
|
||
<!-- OPTIMIZATION: Reduced blocking scripts -->
|
||
<!-- Initialize ad slots early but load script async -->
|
||
<script>
|
||
var gptadslots = [];
|
||
var googletag = googletag || { cmd: [] };
|
||
</script>
|
||
|
||
<!-- OPTIMIZATION: Load GPT script with priority hints -->
|
||
<script async defer src="https://securepubads.g.doubleclick.net/tag/js/gpt.js" fetchpriority="high"></script>
|
||
|
||
<!-- OPTIMIZATION: Resource loader utility -->
|
||
<script>
|
||
(function () {
|
||
// Central resource loading utility
|
||
window.ResourceLoader = {
|
||
loaded: {},
|
||
|
||
// Load script with configurable options and callbacks
|
||
loadScript: function (src, options) {
|
||
if (this.loaded[src]) return Promise.resolve();
|
||
|
||
options = options || {};
|
||
|
||
return new Promise(function (resolve, reject) {
|
||
var script = document.createElement('script');
|
||
script.src = src;
|
||
script.async = true;
|
||
|
||
if (options.defer) script.defer = true;
|
||
if (options.fetchPriority) script.fetchPriority = options.fetchPriority;
|
||
|
||
script.onload = function () {
|
||
window.ResourceLoader.loaded[src] = true;
|
||
if (options.onLoad) options.onLoad();
|
||
resolve();
|
||
};
|
||
|
||
script.onerror = function (e) {
|
||
console.warn('Failed to load: ' + src);
|
||
if (options.onError) options.onError(e);
|
||
reject(e);
|
||
};
|
||
|
||
(options.parent || document.head).appendChild(script);
|
||
});
|
||
},
|
||
|
||
// Load on interaction or after delay, whichever comes first
|
||
loadOnInteraction: function (src, options) {
|
||
options = options || {};
|
||
var delay = options.delay || 2000;
|
||
var events = options.events || ['mousedown', 'touchstart', 'keydown', 'scroll'];
|
||
var self = this;
|
||
|
||
// Create interaction handler
|
||
var loadHandler = function () {
|
||
// Remove all event listeners
|
||
events.forEach(function (event) {
|
||
document.removeEventListener(event, loadHandler, { passive: true });
|
||
});
|
||
|
||
// Clear timeout
|
||
if (timeoutId) clearTimeout(timeoutId);
|
||
|
||
// Load the script
|
||
self.loadScript(src, options);
|
||
};
|
||
|
||
// Set up event listeners
|
||
events.forEach(function (event) {
|
||
document.addEventListener(event, loadHandler, { passive: true });
|
||
});
|
||
|
||
// Set timeout as fallback
|
||
var timeoutId = setTimeout(loadHandler, delay);
|
||
|
||
return {
|
||
cancel: function () {
|
||
events.forEach(function (event) {
|
||
document.removeEventListener(event, loadHandler, { passive: true });
|
||
});
|
||
if (timeoutId) clearTimeout(timeoutId);
|
||
}
|
||
};
|
||
}
|
||
};
|
||
})();
|
||
</script>
|
||
|
||
|
||
<!-- OPTIMIZATION: Improved Osano loading -->
|
||
<script>
|
||
(function () {
|
||
var osanoSrc = 'https://cmp.osano.com/16BPzAUFV1UoQ26HU/547d6a0d-2615-4ea3-8f3f-2ced531b6add/osano.js';
|
||
|
||
// Load Osano on first interaction or after 2 seconds
|
||
window.ResourceLoader.loadOnInteraction(osanoSrc, {
|
||
delay: 2000,
|
||
onLoad: function () {
|
||
window.osanoLoaded = true;
|
||
//set marketing consent value to localStorage to fix ppid issue for all Ad impressions in UK,SZ..
|
||
localStorage.setItem('osano_marketing_consent', window.Osano.cm.getConsent()['MARKETING']);
|
||
}
|
||
});
|
||
})();
|
||
</script>
|
||
|
||
|
||
<!-- CRITICAL: UUID configuration for Ads -->
|
||
<script>
|
||
setTimeout(function() {
|
||
var osano_consentmanager_uuid = "osano_consentmanager_uuid";
|
||
var osano_localStorage_val = localStorage.getItem(osano_consentmanager_uuid);
|
||
var osano_marketing_consent = localStorage.getItem('osano_marketing_consent');
|
||
let hex_ppid = '';
|
||
|
||
const stringToHexHash = (str, len) => {
|
||
let hash = 0;
|
||
for (let i = 0; i < str.length; i++) {
|
||
hash = str.charCodeAt(i) + ((hash << 5) - hash);
|
||
}
|
||
const hex = hash.toString(16);
|
||
let alphanumeric = hex.replace(/[^0-9a-zA-Z]/gi, "");
|
||
while (alphanumeric.length < len) {
|
||
alphanumeric = "0" + alphanumeric;
|
||
}
|
||
return alphanumeric.substr(0, len);
|
||
};
|
||
|
||
if (osano_localStorage_val && osano_localStorage_val.trim() !== '') {
|
||
hex_ppid = stringToHexHash(osano_localStorage_val, 37);
|
||
// console.log('--PPID--'+hex_ppid);
|
||
console.log('--found ppid--');
|
||
} else {
|
||
hex_ppid = '';
|
||
console.log("The value for osano_consentmanager_uuid from local storage is empty");
|
||
}
|
||
if(osano_marketing_consent != "DENY" && hex_ppid){
|
||
localStorage.setItem('cen_ads_ppid', hex_ppid);
|
||
console.log('set ppid in localStore');
|
||
}
|
||
}, 3000);
|
||
</script>
|
||
|
||
|
||
<!-- CRITICAL: Early Ad System Initialization - Fixes 40% Firefox issue -->
|
||
<script>
|
||
(function() {
|
||
// Initialize ad system in header for consistent timing
|
||
window.adSystem = window.adSystem || {
|
||
initialized: false,
|
||
headerReady: false,
|
||
renderQueue: [],
|
||
errors: []
|
||
};
|
||
|
||
// Mark header initialization as complete
|
||
window.adSystem.headerReady = true;
|
||
|
||
// Early DFP configuration - runs before jQuery dependency
|
||
window.initializeDFPEarly = function() {
|
||
if (typeof googletag === 'undefined' || !googletag.cmd) {
|
||
console.warn('GPT not available for early initialization');
|
||
return;
|
||
}
|
||
|
||
googletag.cmd.push(function() {
|
||
// Configure DFP settings that don't require jQuery
|
||
googletag.pubads().enableSingleRequest();
|
||
googletag.pubads().collapseEmptyDivs();
|
||
googletag.pubads().setCentering(true);
|
||
|
||
// Enable services
|
||
googletag.enableServices();
|
||
|
||
// CLS: mark ad wrappers after GPT fills or collapses slots
|
||
googletag.pubads().addEventListener('slotRenderEnded', function(event) {
|
||
var slotId = event.slot.getSlotElementId();
|
||
var el = document.getElementById(slotId);
|
||
if (!el) return;
|
||
var wrapper = el.closest('.advertisement');
|
||
if (!wrapper) return;
|
||
|
||
// Skip shared wrappers (e.g. header has leaderboard + reveal in one wrapper).
|
||
// Only hide if this is the sole GPT slot inside the wrapper.
|
||
if (event.isEmpty) {
|
||
var siblingSlots = wrapper.querySelectorAll('[id^="div-gpt"]');
|
||
if (siblingSlots.length > 1) {
|
||
console.log('[CLS] Skipping ad-empty on shared wrapper for slot:', slotId);
|
||
return;
|
||
}
|
||
wrapper.classList.add('ad-empty');
|
||
} else {
|
||
wrapper.classList.add('ad-loaded');
|
||
}
|
||
|
||
// CLS measurement log
|
||
console.log('[CLS] Slot rendered:', slotId,
|
||
'| empty:', event.isEmpty,
|
||
'| size:', event.size,
|
||
'| wrapper class:', wrapper.className);
|
||
});
|
||
|
||
// CLS measurement: observe layout shifts attributed to ad containers
|
||
if (window.PerformanceObserver) {
|
||
try {
|
||
var clsObserver = new PerformanceObserver(function(list) {
|
||
list.getEntries().forEach(function(entry) {
|
||
if (!entry.hadRecentInput && entry.value > 0.01) {
|
||
var sources = entry.sources || [];
|
||
sources.forEach(function(source) {
|
||
var node = source.node;
|
||
if (node && (
|
||
node.closest('.advertisement') ||
|
||
node.closest('.article-top-ads') ||
|
||
node.classList && node.classList.contains('advertisement')
|
||
)) {
|
||
console.warn('[CLS-Ad] Layout shift detected:',
|
||
'value:', entry.value.toFixed(4),
|
||
'| element:', node.tagName + '#' + (node.id || '') + '.' + (node.className || ''),
|
||
'| startTime:', entry.startTime.toFixed(0) + 'ms');
|
||
}
|
||
});
|
||
}
|
||
});
|
||
});
|
||
clsObserver.observe({ type: 'layout-shift', buffered: true });
|
||
} catch (e) {
|
||
// PerformanceObserver for layout-shift not supported
|
||
}
|
||
}
|
||
|
||
window.adSystem.initialized = true;
|
||
console.log('✅ DFP initialized early in header');
|
||
});
|
||
};
|
||
|
||
// Execute early initialization when GPT is ready
|
||
if (window.googletag && googletag.cmd) {
|
||
window.initializeDFPEarly();
|
||
} else {
|
||
// Wait for GPT script to load
|
||
var checkGPT = setInterval(function() {
|
||
if (window.googletag && googletag.cmd) {
|
||
window.initializeDFPEarly();
|
||
clearInterval(checkGPT);
|
||
}
|
||
}, 50);
|
||
|
||
// Clear interval after 5 seconds to prevent infinite loop
|
||
setTimeout(function() {
|
||
clearInterval(checkGPT);
|
||
}, 5000);
|
||
}
|
||
|
||
// // Header-based ad rendering function (jQuery independent)
|
||
// window.renderDynamicAdsHeader = function() {
|
||
// if (!window.googletag || !googletag.cmd || !window.adSystem.initialized) {
|
||
// console.warn('Ad system not ready for rendering');
|
||
// return;
|
||
// }
|
||
|
||
// googletag.cmd.push(function() {
|
||
// var adUnits = document.querySelectorAll('.adunit');
|
||
// var newSlots = [];
|
||
// var existingSlots = [];
|
||
|
||
// adUnits.forEach(function(el, index) {
|
||
// console.log('[Ads] Processing ad unit:', el, 'Index:', index);
|
||
// var slotId = el.id;
|
||
|
||
// // Generate ID if missing (important for dynamically inserted ads)
|
||
// if (!slotId) {
|
||
// slotId = 'dynamic-ad-' + Date.now() + '-' + index;
|
||
// el.id = slotId;
|
||
// }
|
||
|
||
// // Check if slot already defined
|
||
// var isAlreadyDefined = el.dataset.slotDefined === "true" || el.hasAttribute('data-google-query-id');
|
||
|
||
// if (isAlreadyDefined) {
|
||
// // Slot already exists, just collect for refresh
|
||
// var existingSlot = googletag.pubads().getSlots().find(function(s) {
|
||
// return s.getSlotElementId() === slotId;
|
||
// });
|
||
// if (existingSlot) {
|
||
// existingSlots.push(existingSlot);
|
||
// console.log('♻️ Existing ad slot found:', slotId);
|
||
// }
|
||
// return;
|
||
// }
|
||
|
||
// try {
|
||
// // Fix ad path construction
|
||
// var adUnitPath = el.dataset.adunit || 'cen';
|
||
// console.log('[Ads] Original ad unit path:', adUnitPath);
|
||
// var adPath = '/8868/' + adUnitPath.replace(/^\/+/, '').replace(/^8868\//, '');
|
||
// console.log('[Ads] Processed ad path:', adPath);
|
||
|
||
// // Parse dimensions - support fluid ads
|
||
// var dimensionsAttr = (el.dataset.dimensions || '300x600').toString().trim().toLowerCase();
|
||
// console.log('[Ads] Original dimensions attribute:', dimensionsAttr);
|
||
// var dimensions;
|
||
|
||
// if (dimensionsAttr === 'fluid') {
|
||
// dimensions = ['fluid'];
|
||
// } else if (dimensionsAttr.includes('x')) {
|
||
// var parts = dimensionsAttr.split('x');
|
||
// dimensions = [[parseInt(parts[0]), parseInt(parts[1])]];
|
||
// } else {
|
||
// dimensions = [[728, 90]]; // Default
|
||
// }
|
||
|
||
// var slot = googletag.defineSlot(adPath, dimensions, slotId);
|
||
|
||
// if (!slot) {
|
||
// console.warn('Failed to define slot:', adPath, slotId);
|
||
// return;
|
||
// }
|
||
|
||
// slot.addService(googletag.pubads());
|
||
|
||
// // Apply size mapping only for non-fluid ads
|
||
// if (dimensionsAttr !== 'fluid') {
|
||
// var mapping = googletag.sizeMapping()
|
||
// .addSize([640, 0], [[728, 90]])
|
||
// .addSize([0, 0], [[320, 50]])
|
||
// .build();
|
||
// slot.defineSizeMapping(mapping);
|
||
// }
|
||
|
||
// el.dataset.slotDefined = "true";
|
||
// googletag.display(slotId);
|
||
// newSlots.push(slot);
|
||
|
||
// console.log('[Ads] ✅ New ad slot created:', slotId, 'path:', adPath, 'dimensions:', dimensions);
|
||
// } catch (error) {
|
||
// console.error('[Ads] ❌ Ad rendering error:', slotId, error);
|
||
// }
|
||
// });
|
||
|
||
// // Refresh existing slots if any
|
||
// if (existingSlots.length > 0) {
|
||
// console.log('🔄 Refreshing', existingSlots.length, 'existing ad slots');
|
||
// googletag.pubads().refresh(existingSlots);
|
||
// }
|
||
// });
|
||
// };
|
||
|
||
// Check if Osano consent is granted for marketing
|
||
function hasOsanoConsent() {
|
||
try {
|
||
return window.Osano &&
|
||
window.Osano.cm &&
|
||
typeof window.Osano.cm.getConsent === 'function' &&
|
||
window.Osano.cm.getConsent().MARKETING === 'ACCEPT';
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
// Trigger ads after consent check — uses renderDynamicAds (throttled in footer)
|
||
var _adsTriggered = false;
|
||
function triggerAdsWithConsent() {
|
||
if (_adsTriggered) return;
|
||
|
||
function doRender() {
|
||
if (_adsTriggered) return;
|
||
_adsTriggered = true;
|
||
console.log('[DynamicAds] ✅ Rendering ads');
|
||
// Route through the throttled renderDynamicAds when available,
|
||
// fall back to renderDynamicAdsHeader for early calls before footer loads
|
||
if (typeof window.renderDynamicAds === 'function') {
|
||
window.renderDynamicAds();
|
||
} else if (typeof window.renderDynamicAdsHeader === 'function') {
|
||
window.renderDynamicAdsHeader();
|
||
}
|
||
}
|
||
|
||
if (hasOsanoConsent()) {
|
||
setTimeout(doRender, 100);
|
||
} else {
|
||
console.log('[DynamicAds] ⏳ Waiting for Osano consent...');
|
||
|
||
var handleConsent = function() {
|
||
if (hasOsanoConsent()) {
|
||
doRender();
|
||
}
|
||
};
|
||
|
||
window.addEventListener('osano-cm-consent-saved', handleConsent);
|
||
window.addEventListener('osano-cm-initialized', handleConsent);
|
||
|
||
// Poll as fallback (max 5 seconds)
|
||
var attempts = 0;
|
||
var maxAttempts = 50;
|
||
var pollInterval = setInterval(function() {
|
||
attempts++;
|
||
if (hasOsanoConsent()) {
|
||
doRender();
|
||
clearInterval(pollInterval);
|
||
} else if (attempts >= maxAttempts) {
|
||
console.warn('[DynamicAds] ⏰ Consent timeout after 5s');
|
||
clearInterval(pollInterval);
|
||
}
|
||
}, 100);
|
||
}
|
||
}
|
||
|
||
// Auto-trigger rendering when DOM is ready (with Osano consent check)
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', triggerAdsWithConsent);
|
||
} else {
|
||
triggerAdsWithConsent();
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
<!--core clientlibs -->
|
||
|
||
|
||
<link rel="stylesheet" href="/etc.clientlibs/cen-cloud/clientlibs/clientlib-dependencies.lc-d41d8cd98f00b204e9800998ecf8427e-lc.min.css" type="text/css">
|
||
<link rel="stylesheet" href="/etc.clientlibs/cen-cloud/clientlibs/clientlib-site.lc-d43c94c2630d4b1762c9428df0114ccc-lc.min.css" type="text/css">
|
||
|
||
|
||
|
||
|
||
<script async defer src="/etc.clientlibs/cen-cloud/clientlibs/clientlib-dependencies.lc-d41d8cd98f00b204e9800998ecf8427e-lc.min.js"></script>
|
||
<script async defer src="/etc.clientlibs/cen-cloud/clientlibs/clientlib-site.lc-3ae739f8ee687ad7913b3717bbcae5b7-lc.min.js"></script>
|
||
|
||
|
||
|
||
|
||
|
||
<!-- OPTIMIZATION: Improved GTM loading -->
|
||
<script>
|
||
// Initialize dataLayer immediately
|
||
window.dataLayer = window.dataLayer || [];
|
||
|
||
// Load GTM with optimized strategy
|
||
(function () {
|
||
var gtmId = 'GTM-MRZG95K3';
|
||
var loadTime = 800; // Load after 800ms or user interaction
|
||
|
||
// Load on interaction or timeout
|
||
window.ResourceLoader.loadOnInteraction('https://www.googletagmanager.com/gtm.js?id=' + gtmId, {
|
||
delay: loadTime,
|
||
onLoad: function () {
|
||
window.dataLayer.push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' });
|
||
}
|
||
});
|
||
})();
|
||
</script>
|
||
|
||
|
||
<!--DFP mappings for all pages except articles -->
|
||
|
||
|
||
<!--DFP mappings for articles -->
|
||
|
||
|
||
<script>
|
||
googletag.cmd.push(function() {
|
||
var mapping1 = googletag.sizeMapping()
|
||
.addSize([0, 0], [[320, 50]])
|
||
.addSize([730, 0], [[728, 90], [970, 90]])
|
||
.build();
|
||
|
||
try{
|
||
console.log("Topic: "+tagStack.toString());
|
||
console.log("Keywork: "+articleInfoStack.toString());
|
||
gptadslots.push(googletag.defineSlot('/8868/cen/above_header', [[728,90],[970,90]], 'div-gpt-ad-21681463464-1')
|
||
.defineSizeMapping(mapping1)
|
||
.setTargeting('Topic', tagStack)
|
||
.setTargeting('Keyword', articleInfoStack.toString())
|
||
.addService(googletag.pubads()));
|
||
}
|
||
catch (error) {
|
||
console.log("error in above header leaderboard Ad");
|
||
}
|
||
|
||
// Header Reveal Ad
|
||
try{
|
||
if(window.location.href.indexOf("CENs-Year-Pharma-2024") > -1 ||
|
||
window.location.href.indexOf("Key-FDA-approvals-2024") > -1 ||
|
||
window.location.href.indexOf("Navigating-financing-doldrums-2024") > -1 ||
|
||
window.location.href.indexOf("2024-Biosecure-Acts-impact-became") > -1 ||
|
||
window.location.href.indexOf("Shortages-created-opportunities-counterfeits") > -1 ||
|
||
window.location.href.indexOf("Pharmas-memorable-moments-2024") > -1) {
|
||
|
||
gptadslots.push(googletag.defineSlot('/8868/CEN_YearInPharma', [1,1], 'div-gpt-ad-8773544-1')
|
||
.setTargeting('pos', ['YearInPharma_HR'])
|
||
.addService(googletag.pubads()));
|
||
}
|
||
else{
|
||
gptadslots.push(googletag.defineSlot('/8868/cen', [1,1], 'div-gpt-ad-8773544-1')
|
||
.setTargeting('pos', ['interstitial'])
|
||
.setTargeting('Topic', tagStack[0])
|
||
.setTargeting('Topic', tagStack[1])
|
||
.setTargeting('Keyword', articleInfoStack.toString())
|
||
.addService(googletag.pubads()));
|
||
}
|
||
}
|
||
catch (error) {
|
||
console.log("error firing Header Reveal Ad.." + error);
|
||
}
|
||
// In-Article Reveal Ad
|
||
try{
|
||
gptadslots.push(googletag.defineSlot('/8868/cen', [1,1], 'div-gpt-ad-2894946-1')
|
||
.setTargeting('pos', ['in_article_revealer'])
|
||
.setTargeting('Topic', tagStack[0])
|
||
.setTargeting('Topic', tagStack[1])
|
||
.setTargeting('Keyword', articleInfoStack.toString())
|
||
.addService(googletag.pubads()));
|
||
}
|
||
catch (error) {
|
||
console.log("error firing In-Article Reveal Ad.." + error);
|
||
}
|
||
//set cen_ads_ppid for ads (UK,SZ)
|
||
var cen_ads_ppid = localStorage.getItem('cen_ads_ppid');
|
||
if(cen_ads_ppid){
|
||
googletag.pubads().setPublisherProvidedId(cen_ads_ppid);
|
||
console.log('ppid sent for article pages');
|
||
}
|
||
else{
|
||
console.log('ppid not sent for article pages');
|
||
}
|
||
// enableSingleRequest() + enableServices() called once in customheaderlibs.html
|
||
});
|
||
</script>
|
||
|
||
|
||
|
||
<!-- DFP ads clientlib -->
|
||
|
||
|
||
<script src="/etc.clientlibs/clientlibs/granite/jquery.lc-7842899024219bcbdb5e72c946870b79-lc.min.js"></script>
|
||
<script src="/etc.clientlibs/cen-cloud/clientlibs/clientlib_dfpads.lc-8be12982a473aa270c7a75ea7bb0b42b-lc.min.js"></script>
|
||
|
||
|
||
|
||
|
||
|
||
<!-- OPTIMIZATION: Improved Launch script loading -->
|
||
|
||
<script>
|
||
(function () {
|
||
var launchSrc = "\/\/assets.adobedtm.com\/822408db7b4a\/5bc95a405611\/launch\u002Dc026b41d2697.min.js";
|
||
|
||
// Function to load Launch script
|
||
function loadLaunch() {
|
||
if (window.launchLoaded) return;
|
||
|
||
window.ResourceLoader.loadScript(launchSrc, {
|
||
defer: true,
|
||
onLoad: function () {
|
||
window.launchLoaded = true;
|
||
}
|
||
});
|
||
}
|
||
|
||
// Load when DOM is ready with small delay
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', function () {
|
||
setTimeout(loadLaunch, 300);
|
||
});
|
||
} else {
|
||
setTimeout(loadLaunch, 300);
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<!-- PIANO script loading -->
|
||
|
||
<script type="text/javascript" async="" src="https://experience.tinypass.com/xbuilder/experience/load?aid=baHINTpApu" defer></script>
|
||
|
||
|
||
<!-- PIANO tp push -->
|
||
|
||
<script type="text/javascript">
|
||
var tp = window.tp || [];
|
||
(function() {
|
||
var h = document.location.hostname;
|
||
var suffixes = [".cptest.idm.oclc.org", ".idm.oclc.org", ".oclc.org"];
|
||
for (var i = 0; i < suffixes.length; i++) {
|
||
var suffix = suffixes[i];
|
||
if (h.length > suffix.length && h.toLowerCase().slice(-suffix.length) === suffix) {
|
||
tp.push(["setComposerHost", "https://c2-piano-io" + suffix]);
|
||
break;
|
||
}
|
||
}
|
||
})();
|
||
tp.push(["setTags", ["safety","labSafety"]]);
|
||
tp.push(["setContentCreated", "2009-08-03T00:00:00.000-04:00"]);
|
||
tp.push(["setContentAuthor", "Jyllian N. Kemsley"]);
|
||
tp.push(["setCustomVariable", "primaryTaxonomy","safety/labSafety"]);
|
||
tp.push(["setCustomVariable", "keyWords", ["Sheri Sangji","UCLA","Cal/OSHA","Safety"]]);
|
||
tp.push(["setContentSection", "safety/labSafety"]);
|
||
tp.push(["setContentIsNative", false]);
|
||
tp.push(["init", function() {
|
||
tp.experience.init();
|
||
tp.experience.execute();
|
||
}]);
|
||
tp.push(["addHandler", "experienceExecute", function() {
|
||
console.log('[PianoCookie] experienceExecute handler fired');
|
||
console.log('[PianoCookie] __onPianoExperienceComplete available:', typeof window.__onPianoExperienceComplete === 'function');
|
||
window.__pianoExperienceExecuted = true;
|
||
if (typeof window.__onPianoExperienceComplete === 'function') {
|
||
window.__onPianoExperienceComplete();
|
||
} else {
|
||
console.log('[PianoCookie] Webpack bundle not loaded yet, flag set for deferred pickup');
|
||
}
|
||
}]);
|
||
</script>
|
||
|
||
|
||
|
||
<!-- OPTIMIZATION: Enhanced header reveal ad with better fallbacks -->
|
||
|
||
<script>
|
||
(function () {
|
||
// Function to initialize header reveal ad
|
||
function initHeaderRevealAd() {
|
||
if (typeof googletag === 'undefined' || !googletag.cmd) {
|
||
// Retry after delay if GPT not ready
|
||
setTimeout(initHeaderRevealAd, 100);
|
||
return;
|
||
}
|
||
|
||
googletag.cmd.push(function () {
|
||
googletag.pubads().addEventListener('slotRenderEnded', function (event) {
|
||
if (event.slot.getSlotElementId() === 'div-gpt-ad-8773544-1') {
|
||
if (event.size != null) {
|
||
window.scrollTo(0, 0);
|
||
|
||
// DOM element removal with framework-agnostic approach
|
||
var headerAd = document.getElementById('div-gpt-ad-21681463464-1');
|
||
if (headerAd) headerAd.remove();
|
||
|
||
} else if (event.size === null) {
|
||
// DOM element removal with framework-agnostic approach
|
||
var revealAd = document.getElementById('div-gpt-ad-8773544-1');
|
||
if (revealAd) revealAd.remove();
|
||
}
|
||
}
|
||
});
|
||
});
|
||
}
|
||
|
||
// Execute when DOM is ready
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', initHeaderRevealAd);
|
||
} else {
|
||
initHeaderRevealAd();
|
||
}
|
||
})();
|
||
</script>
|
||
|
||
|
||
<!-- <script src="https://www.google.com/recaptcha/api.js" async defer></script> -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!--<sly data-sly-test.appResourcesPath=/etc.clientlibs/cen-cloud/clientlibs/clientlib-site/resources data-sly-call="libs.core.wcm.components.page.v3.page.head__002e__resources__002e__html$1@461eeda5"></sly>-->
|
||
|
||
</head>
|
||
<body class="page basicpage cen-cloud.site" id="page-5331b287e8" data-cmp-link-accessibility-enabled data-cmp-link-accessibility-text="opens in a new tab" data-cmp-data-layer-name="adobeDataLayer">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="root responsivegrid">
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--12 aem-Grid--default--12 ">
|
||
|
||
<div class="genericAds aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="advertisement pt-1 pb-1 bg-gray">
|
||
<h6 class="advertisement-label" role="region" aria-label="Advertisement-genericAds4">Advertisement</h6>
|
||
<div class="article-top-ads" id="div-gpt-ad-21681463464-1">
|
||
<script>
|
||
googletag.cmd.push(function()
|
||
{
|
||
googletag.display('div-gpt-ad-21681463464-1');
|
||
});
|
||
</script>
|
||
</div>
|
||
<div id='div-gpt-ad-8773544-1'>
|
||
<script>
|
||
googletag.cmd.push(function() { googletag.display('div-gpt-ad-8773544-1'); });
|
||
</script>
|
||
</div>
|
||
</div>
|
||
<script>
|
||
// On disable-lazy-loading pages, Adventive rich-media ads expand (~450px on load)
|
||
// then collapse on first scroll (~343px), shifting all article content below by ~82px.
|
||
// Lock the ad slot to its expanded height so the collapse has no layout impact.
|
||
// On normal pages the collapse is intentional UX, so we leave it alone.
|
||
(function() {
|
||
if (document.documentElement.getAttribute('data-disable-lazy-loading') !== 'true') return;
|
||
var adSlot = document.getElementById('div-gpt-ad-8773544-1');
|
||
if (!adSlot || !window.ResizeObserver) return;
|
||
var locked = false;
|
||
var observer = new ResizeObserver(function(entries) {
|
||
var entry = entries[0];
|
||
var h = entry.borderBoxSize ? entry.borderBoxSize[0].blockSize : entry.contentRect.height;
|
||
if (!locked && h > 90) {
|
||
// Ad has expanded beyond a standard banner height — lock this height.
|
||
adSlot.style.minHeight = Math.round(h) + 'px';
|
||
locked = true;
|
||
observer.disconnect();
|
||
}
|
||
});
|
||
observer.observe(adSlot);
|
||
})();
|
||
</script>
|
||
|
||
|
||
</div>
|
||
<div class="experiencefragment aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
<div class="experiencefragment aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="xf-content-height">
|
||
<div class="root responsivegrid">
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--16 aem-Grid--default--16 ">
|
||
|
||
<div class="acsHeader aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
<nav class="uber-menu d-none d-lg-block" aria-label="Main">
|
||
<a href="#main-content" class="skip-link">Skip to main content</a>
|
||
<ul class="uber-menu--list" role="list">
|
||
|
||
<li class="uber-menu--item ">
|
||
|
||
<a href="https://www.acs.org/" target="_blank" rel="noopener noreferrer" aria-label="ACS (opens in new tab)">
|
||
|
||
<img src="/content/dam/acs-cen-redesign/2025/logo/icon-acs-color_uberMenu-2026.svg" alt="ACS logo" loading="eager" class="logo-acs-header" aria-hidden="true"/>
|
||
|
||
<span aria-hidden="true">ACS</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li class="uber-menu--item ">
|
||
|
||
<a href="https://pubs.acs.org/" target="_blank" rel="noopener noreferrer" aria-label="ACS Publications (opens in new tab)">
|
||
|
||
<span aria-hidden="true">ACS Publications</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li class="uber-menu--item active">
|
||
|
||
<a href="/" target="_blank" rel="noopener noreferrer" aria-label="C&EN (opens in new tab)">
|
||
|
||
<span aria-hidden="true">C&EN</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li class="uber-menu--item ">
|
||
|
||
<a href="https://www.cas.org/" target="_blank" rel="noopener noreferrer" aria-label="CAS (opens in new tab)">
|
||
|
||
<span aria-hidden="true">CAS</span>
|
||
</a>
|
||
</li>
|
||
|
||
<li class="uber-menu--item ">
|
||
|
||
<a href="https://chemistryjobs.acs.org/" target="_blank" rel="noopener noreferrer" aria-label="Jobs (opens in new tab)">
|
||
|
||
<span aria-hidden="true">Jobs</span>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
<div id="acsStickyHeader-sentinel" style="height: 1px; width: 100%; visibility: hidden; pointer-events: none;"></div>
|
||
|
||
|
||
<header class="site-header sticky-top" id="acsStickyHeader">
|
||
<div class="site-header--inner">
|
||
<ul class="site-header--navigation text-nowrap" role="list">
|
||
<li class="site-header--navigation-menu">
|
||
<section>
|
||
|
||
|
||
<span class="tooltip-wrapper">
|
||
<button class="btn btn-menu collapsed tooltip-btn" type="button" aria-controls="site-menu" aria-label="Main menu">
|
||
<span class="icon-menu" aria-hidden="true" id="header-menu-button">
|
||
<svg xmlns="http://www.w3.org/2000/svg" height="40" viewBox="0 -960 960 960" width="40" fill="#242424">
|
||
<path d="M140-254.62v-50.25h680v50.25H140Zm0-200.25v-50.26h680v50.26H140Zm0-200.26v-50.25h680v50.25H140Z"/>
|
||
</svg>
|
||
</span>
|
||
</button>
|
||
<span id="menuTooltip" class="tooltip-text" role="tooltip" aria-hidden="true">Main menu</span>
|
||
</span>
|
||
<div class="site-header--menu-panel shadow-lg hidden" id="site-menu" role="dialog" aria-label="menu" aria-hidden="true">
|
||
<div class="container-lg">
|
||
<div class="row p-3 p-md-0 mb-md-4 mb-1 d-xl-none text-center">
|
||
<div class="col-12">
|
||
<ul class="header-menu-inline--bullet" aria-label="Navigation Links">
|
||
|
||
<li class="header-menu-item">
|
||
<a href="/explore/news.html" target="_self">News</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
<a href="/topics.html" target="_self">Topics</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
<a href="/newsletter.html" target="_self">Newsletter</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
<a href="/explore/podcasts.html" target="_self">Podcasts</a>
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="row">
|
||
<div class="col-lg-2 col-md-6">
|
||
|
||
<h2 class="header-menu-title" tabindex="-1">
|
||
|
||
|
||
<a href="/explore.html" target="_self" id="sectionExplore" class="link-arrow d-none d-md-inline">
|
||
Explore
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" aria-hidden="true" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
|
||
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
|
||
</svg>
|
||
</a>
|
||
|
||
|
||
|
||
<button class="btn btn-lg btn-block text-red text-start fw-semibold btn-chevron d-md-none" type="button" data-collapse-target="#menu-panel-explore" aria-expanded="false" aria-controls="menu-panel-explore">
|
||
Explore<span class="btn-chevron--toggle" aria-hidden="true"></span>
|
||
</button>
|
||
</h2>
|
||
<a href="#sectionHighlights" class="skip-link">Skip
|
||
Explore section</a>
|
||
<div class="mobile-menu-panel collapse d-md-block" id="menu-panel-explore">
|
||
<ul class="header-menu-vert mb-md-5" role="list" aria-label="Types of Articles">
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/features.html" target="_self">Features
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/perspectives.html" target="_self">Perspectives
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/interviews.html" target="_self">Interviews
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/acs-news.html" target="_self">ACS News
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/graphics.html" target="_self">Graphics
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/chempics.html" target="_self">Chempics
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/games.html" target="_self">Games
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/newscripts.html" target="_self">Newscripts
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/webinars.html" target="_self">Webinars
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/explore/white-papers.html" target="_self">Whitepapers<br />& E-books
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="col-lg-4 col-md-6">
|
||
<h2 class="header-menu-title" tabindex="-1">
|
||
|
||
|
||
<a id="sectionHighlights" href="/highlights.html" target="_self" class="link-arrow d-none d-md-inline">
|
||
Highlights
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" aria-hidden="true" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
|
||
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
|
||
</svg>
|
||
</a>
|
||
|
||
<button class="btn btn-lg btn-block text-red text-start fw-semibold btn-chevron d-md-none" type="button" data-collapse-target="#menu-panel-highlights" aria-expanded="false" aria-controls="menu-panel-highlights">
|
||
Highlights<span class="btn-chevron--toggle" aria-hidden="true"></span>
|
||
</button>
|
||
</h2>
|
||
|
||
<a href="#sectionTopics" class="skip-link">Skip
|
||
Highlights section</a>
|
||
<div class="mobile-menu-panel collapse d-md-block" id="menu-panel-highlights">
|
||
<ul class="header-menu-vert-bullet" role="list" aria-label="Highlighted Articles">
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/biological-chemistry/biotechnology/human-trial-chemogenetic-brain-therapy/104/web/2026/08" target="_self">
|
||
First human trials of designer protein therapies stun US neuroscientists
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/articles/104/web/2026/08/long-covid-pots-mecfs-drug-trials-ethics.html" target="_self">
|
||
Access to potential long COVID drugs dwindles as trials falter
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/business/finance/CENs-Global-Top-50-2026/104/web/2026/07" target="_self">
|
||
C&EN's Global Top 50 chemical firms for 2026
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/environment/rare-earth-mining-brazil/104/web/2026/05" target="_self">
|
||
The road to sustainable rare earths runs through Brazil
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/people/profiles/cens-2026-talented-12/104/web/2026/05" target="_self">
|
||
C&EN's 2026 Talented Twelve
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/materials/nanomaterials/buckyballs-boron-buckminster-fullerene-nanomaterials/104/web/2026/06" target="_self">
|
||
Introducing boron buckyballs
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="col-lg-6 col-md-12">
|
||
<div class="row">
|
||
<div class="col-lg-8 col-md-8">
|
||
|
||
<h2 class="header-menu-title" tabindex="-1">
|
||
|
||
|
||
<a id="sectionTopics" href="/topics.html" target="_self" class="link-arrow d-none d-md-inline">
|
||
TOPICS
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" aria-hidden="true" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
|
||
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
|
||
</svg>
|
||
</a>
|
||
|
||
|
||
<button class="btn btn-lg btn-block text-red text-start fw-semibold btn-chevron d-md-none" type="button" data-collapse-target="#menu-panel-topics" aria-expanded="false" aria-controls="menu-panel-topics">
|
||
TOPICS<span class="btn-chevron--toggle" aria-hidden="true"></span>
|
||
</button>
|
||
</h2>
|
||
<a href="#sectionMagazine" class="skip-link">Skip TOPICS
|
||
section</a>
|
||
<div class="mobile-menu-panel collapse d-md-block" id="menu-panel-topics">
|
||
<ul class="header-menu-vert column-count-lg-2 mb-md-4" role="list" aria-label="List of Topics">
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/analytical-chemistry.html" target="_self">Analytical Chemistry
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/biological-chemistry.html" target="_self">Biological Chemistry
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/business.html" target="_self">Business
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/careers.html" target="_self">Careers
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/education.html" target="_self">Education
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/energy.html" target="_self">Energy
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/environment.html" target="_self">Environment
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/food.html" target="_self">Food
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/materials.html" target="_self">Materials
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/people.html" target="_self">People
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/pharmaceuticals.html" target="_self">Pharmaceuticals
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/physical-chemistry.html" target="_self">Physical Chemistry
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/policy.html" target="_self">Policy
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/research-integrity.html" target="_self">Research Integrity
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/safety.html" target="_self">Safety
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item">
|
||
|
||
<a href="/topics/synthesis.html" target="_self">Synthesis
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="col-lg-4 col-md-4">
|
||
|
||
|
||
<h2 class="header-menu-title" tabindex="-1">
|
||
|
||
|
||
<a id="sectionMagazine" href="/magazine/all-issue.html" target="_self" class="link-arrow d-none d-md-inline">
|
||
MAGAZINE
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" aria-hidden="true" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
|
||
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
|
||
</svg>
|
||
</a>
|
||
|
||
<button class="btn btn-lg btn-block text-red text-start fw-semibold btn-chevron d-md-none" type="button" data-collapse-target="#menu-panel-magazine" aria-expanded="false" aria-controls="menu-panel-magazine">
|
||
MAGAZINE<span class="btn-chevron--toggle" aria-hidden="true"></span>
|
||
</button>
|
||
</h2>
|
||
<a href="#sectionSocial" class="skip-link">Skip Magazine section</a>
|
||
<div class="mobile-menu-panel collapse d-md-block" id="menu-panel-magazine">
|
||
|
||
|
||
<a aria-hidden="true" tabindex="-1" href="/magazine/104/10409.html" target="_self">
|
||
|
||
|
||
|
||
<img data-lazy-src="https://s7d1.scene7.com/is/image/CENODS/10409-ofc?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" class="img-fluid mb-3" aria-hidden="true" tabindex="-1"/>
|
||
|
||
</a>
|
||
<ul class="header-menu-vert mb-md-5" role="list" aria-label="Magazine Issues" href="#sectionSocial">
|
||
<li class="header-menu-item fw-bold">
|
||
|
||
|
||
<a href="/magazine/104/10409.html" target="_self">
|
||
|
||
Volume 104 |
|
||
|
||
|
||
Issue 9
|
||
|
||
August 24, 2026
|
||
</a>
|
||
|
||
<ul class="header-menu-inline">
|
||
<li class="header-menu-item header-menu-item--sm fw-normal">
|
||
|
||
<a href="/magazine/all-issue.html" target="_self">Previous
|
||
Issues</a>
|
||
</li>
|
||
</ul>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="row mt-md-0 mt-3">
|
||
<div class="col-lg-12 text-center">
|
||
<ul id="sectionSocial" class="header-menu-inline" role="list" aria-label="Follow Us on Social Media">
|
||
|
||
<li class="header-menu-item menu-social">
|
||
|
||
<a href="https://www.facebook.com/CENews" onclick="window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" title="facebook" aria-label="facebook">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-facebook" viewBox="0 0 16 16" aria-hidden="true">
|
||
<path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951"/>
|
||
</svg>
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item menu-social">
|
||
|
||
<a href="https://www.instagram.com/cenmag/" onclick="window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" title="instagram" aria-label="instagram">
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-instagram" viewBox="0 0 16 16" aria-hidden="true">
|
||
<path d="M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.9 3.9 0 0 0-1.417.923A3.9 3.9 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.9 3.9 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.9 3.9 0 0 0-.923-1.417A3.9 3.9 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0zm-.717 1.442h.718c2.136 0 2.389.007 3.232.046.78.035 1.204.166 1.486.275.373.145.64.319.92.599s.453.546.598.92c.11.281.24.705.275 1.485.039.843.047 1.096.047 3.231s-.008 2.389-.047 3.232c-.035.78-.166 1.203-.275 1.485a2.5 2.5 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.047-3.232.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.5 2.5 0 0 1-.92-.598 2.5 2.5 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.233s.008-2.388.046-3.231c.036-.78.166-1.204.276-1.486.145-.373.319-.64.599-.92s.546-.453.92-.598c.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045zm4.988 1.328a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92m-4.27 1.122a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217m0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334"/>
|
||
</svg>
|
||
|
||
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item menu-social">
|
||
|
||
<a href="https://x.com/cenmag" onclick="window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" title="x" aria-label="x">
|
||
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-twitter-x" viewBox="0 0 16 16" aria-hidden="true">
|
||
<path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"/>
|
||
</svg>
|
||
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item menu-social">
|
||
|
||
<a href="https://www.linkedin.com/showcase/c&en/" onclick="window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" title="linkedin" aria-label="linkedin">
|
||
|
||
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-linkedin" viewBox="0 0 16 16" aria-hidden="true">
|
||
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z"/>
|
||
</svg>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="header-menu-item menu-social">
|
||
|
||
<a href="https://bsky.app/profile/cenmag.bsky.social" onclick="window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" title="bsky" aria-label="bsky">
|
||
|
||
|
||
|
||
|
||
|
||
<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" height="24" width="24" aria-hidden="true">
|
||
<path d="M12 10.8c-1.087 -2.114 -4.046 -6.053 -6.798 -7.995C2.566 0.944 1.561 1.266 0.902 1.565 0.139 1.908 0 3.08 0 3.768c0 0.69 0.378 5.65 0.624 6.479 0.815 2.736 3.713 3.66 6.383 3.364 0.136 -0.02 0.275 -0.039 0.415 -0.056 -0.138 0.022 -0.276 0.04 -0.415 0.056 -3.912 0.58 -7.387 2.005 -2.83 7.078 5.013 5.19 6.87 -1.113 7.823 -4.308 0.953 3.195 2.05 9.271 7.733 4.308 4.267 -4.308 1.172 -6.498 -2.74 -7.078a8.741 8.741 0 0 1 -0.415 -0.056c0.14 0.017 0.279 0.036 0.415 0.056 2.67 0.297 5.568 -0.628 6.383 -3.364 0.246 -0.828 0.624 -5.79 0.624 -6.478 0 -0.69 -0.139 -1.861 -0.902 -2.206 -0.659 -0.298 -1.664 -0.62 -4.3 1.24C16.046 4.748 13.087 8.687 12 10.8Z">
|
||
</path>
|
||
</svg>
|
||
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</section>
|
||
</li>
|
||
|
||
|
||
<li class="site-header--navigation-search">
|
||
<span class="tooltip-wrapper">
|
||
<button class="btn btn-search collapsed tooltip-btn" type="button" aria-controls="search-panel" aria-label="Search">
|
||
<span class="icon-search" aria-hidden="true" id="header-search-button">
|
||
<svg xmlns="http://www.w3.org/2000/svg" height="40" viewBox="0 -960 960 960" width="40" fill="#242424">
|
||
<path d="M787.64-137.33 530.87-394.1q-29.9 25.86-69.4 40.06-39.51 14.19-81.78 14.19-102.1 0-172.82-70.68-70.71-70.68-70.71-171.84 0-101.17 70.68-171.91t171.99-70.74q101.31 0 172.03 70.69 70.73 70.7 70.73 171.9 0 42.3-14.39 81.84-14.38 39.54-40.53 70.69l257.17 256.1-36.2 36.47ZM379.28-390.1q80.41 0 136.23-55.96 55.82-55.97 55.82-136.38t-55.82-136.37q-55.82-55.96-136.23-55.96-80.75 0-136.81 55.96t-56.06 136.37q0 80.41 56.06 136.38 56.06 55.96 136.81 55.96Z"/>
|
||
</svg>
|
||
</span>
|
||
</button>
|
||
<span id="searchTooltip" class="tooltip-text" role="tooltip" aria-hidden="true">Search</span>
|
||
</span>
|
||
<div class="site-header--search-panel shadow-lg hidden" id="search-panel" role="dialog" aria-labelledby="search-heading" aria-hidden="true">
|
||
<div class="row">
|
||
<div class="col-lg-6 offset-lg-3">
|
||
<h2 id="search-heading" class="visually-hidden">Search C&EN</h2>
|
||
<form role="search">
|
||
<div class="input-group">
|
||
<div class="form-floating">
|
||
<input type="search" class="form-control form-control-lg" id="search-input" placeholder="Search C&EN"/>
|
||
<label for="search-input" aria-hidden="true">Search C&EN</label>
|
||
</div>
|
||
<button class="btn btn-primary btn-lg" type="submit" id="search-button">Search</button>
|
||
</div>
|
||
</form>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</li>
|
||
|
||
|
||
|
||
<li class="site-header--navigation-item text-item d-none d-xl-block">
|
||
<a href="/explore/news.html" target="_self">News</a>
|
||
</li>
|
||
|
||
<li class="site-header--navigation-item text-item d-none d-xl-block">
|
||
<a href="/topics.html" target="_self">Topics</a>
|
||
</li>
|
||
|
||
<li class="site-header--navigation-item text-item d-none d-xl-block">
|
||
<a href="/newsletter.html" target="_self">Newsletter</a>
|
||
</li>
|
||
|
||
<li class="site-header--navigation-item text-item d-none d-xl-block">
|
||
<a href="/explore/podcasts.html" target="_self">Podcasts</a>
|
||
</li>
|
||
|
||
|
||
</ul>
|
||
<div class="site-header--logo">
|
||
|
||
<a href="/" target="_self" aria-label="C&EN homepage">
|
||
<img src="/content/dam/acs-cen-redesign/2025/logo/logo-cen-tagline-red.svg" alt="C&EN logo" loading="eager" class="logo-cen-header"/>
|
||
</a>
|
||
</div>
|
||
<div class="site-header--account">
|
||
|
||
|
||
|
||
<div class="site-header--account-btn-group" id="site-header">
|
||
<div class="d-none d-lg-block upgradeButton" id="header-user-button" data-src="/subscribe.html" data-save-articles="/saved-articles.html" data-save-preferences="/preferences.html">
|
||
</div>
|
||
<div id="header-user-account" data-src="/subscribe.html">
|
||
</div>
|
||
</div></div>
|
||
</div>
|
||
</header></div>
|
||
<div class="trendingMenuItem aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
<nav class="trending-menu" aria-label="Trending Topics">
|
||
<ul class="trending-menu--list" role="list">
|
||
<li class="trending-menu--label">
|
||
|
||
<a href="/trending.html">
|
||
<img data-lazy-src="/content/dam/acs-cen-redesign/2025/logo/trending-icon.svg" alt="" aria-hidden="true" decoding="async"/>
|
||
Trending:<span class="visually-hidden"> View all trending topics</span>
|
||
</a>
|
||
|
||
|
||
</li>
|
||
|
||
|
||
<li class="trending-menu--item">
|
||
<a href="/trending/lab-safety.html">Lab Safety</a>
|
||
</li>
|
||
|
||
<li class="trending-menu--item">
|
||
<a href="/trending/climate-solutions.html">Climate Solutions</a>
|
||
</li>
|
||
|
||
<li class="trending-menu--item">
|
||
<a href="/trending/PFAS.html">PFAS</a>
|
||
</li>
|
||
|
||
<li class="trending-menu--item">
|
||
<a href="/trending/AI.html">Artificial Intelligence</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</nav>
|
||
</div>
|
||
<div class="loginWayfindingModal aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
<div class="modal fade" id="loginModal" tabindex="-1" aria-labelledby="loginModalLabel" aria-hidden="true" data-login-wayfinding-modal>
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<div class="modal-content">
|
||
<div class="modal-header border-0">
|
||
<span class="tooltip-wrapper ms-auto"><button type="button" class="btn-close tooltip-btn" id="loginModalCloseButton" aria-describedby="closeMessage" data-bs-dismiss="modal" aria-label="Close"></button>
|
||
<span id="closeMessage" class="tooltip-item" role="tooltip" style="display: none;" aria-hidden="true">Close</span></span>
|
||
</div>
|
||
<div class="modal-body">
|
||
<div class="p-md-5 pt-md-0">
|
||
|
||
<div class="text-center mb-4" aria-hidden="true">
|
||
<img class="img-fluid" src="/content/dam/acs-cen-redesign/2025/logo/logo-cen-tagline-red.svg"/>
|
||
</div>
|
||
|
||
<h2 class="modal-title fs-3 fw-bold mb-4 text-center" id="loginModalLabel">Log in or create an account</h2>
|
||
|
||
<ul class="list-checklist mb-4">
|
||
|
||
<li class="mb-1">Access thousands of C&EN articles</li>
|
||
|
||
<li class="mb-1">Get personalized recommendations</li>
|
||
|
||
<li class="mb-1">Follow your preferred chemistry topics</li>
|
||
|
||
<li class="mb-1">Save your favorite articles</li>
|
||
|
||
</ul>
|
||
|
||
|
||
<a href="/acs/auth/login" id="loginModalSubscriberLogin" data-login-type="subscriber" role="button" class="btn btn-primary btn-lg btn-block mb-3">Log In</a>
|
||
|
||
|
||
|
||
<p class="font-14 text-medium-gray text-center">
|
||
Don't have an account?
|
||
<a href="/acs/auth/login" class="text-decoration-underline">Create one</a>
|
||
</p>
|
||
|
||
<div class="d-flex align-items-center my-3">
|
||
<hr class="flex-grow-1 opacity-25" aria-hidden="true"/>
|
||
<span class="px-3 small text-muted" tabindex="-1" data-modal-arrow-cycle>Or</span>
|
||
<hr class="flex-grow-1 opacity-25" aria-hidden="true"/>
|
||
</div>
|
||
|
||
|
||
<a href="/acs/auth/login?connection=cirrus" id="loginModalInstitutionLogin" data-login-type="institution" role="button" class="btn btn-outline-primary btn-block btn-icon-start mb-3"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-building" viewBox="0 0 16 16">
|
||
<path d="M4 2.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3 0a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zM4 5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zM7.5 5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zM4.5 8a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5zm2.5.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 .5.5v1a.5.5 0 0 1-.5.5h-1a.5.5 0 0 1-.5-.5zm3.5-.5a.5.5 0 0 0-.5.5v1a.5.5 0 0 0 .5.5h1a.5.5 0 0 0 .5-.5v-1a.5.5 0 0 0-.5-.5z"/>
|
||
<path d="M2 1a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1zm11 0H3v14h3v-2.5a.5.5 0 0 1 .5-.5h3a.5.5 0 0 1 .5.5V15h3z"/>
|
||
</svg> Access Through Institution</a>
|
||
|
||
<a href="/bilateral-login.html" id="loginModalFederationLogin" data-login-type="federation" class="btn btn-outline-primary btn-block btn-icon-start mb-3" role="button" aria-label="Access Through Federation">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-shield-lock" viewBox="0 0 16 16">
|
||
<path d="M5.338 1.59a61 61 0 0 0-2.837.856.48.48 0 0 0-.328.39c-.554 4.157.726 7.19 2.253 9.188a10.7 10.7 0 0 0 2.287 2.233c.346.244.652.42.893.533q.18.085.293.118a1 1 0 0 0 .101.025 1 1 0 0 0 .1-.025q.114-.034.294-.118c.24-.113.547-.29.893-.533a10.7 10.7 0 0 0 2.287-2.233c1.527-1.997 2.807-5.031 2.253-9.188a.48.48 0 0 0-.328-.39c-.651-.213-1.75-.56-2.837-.855C9.552 1.29 8.531 1.067 8 1.067c-.53 0-1.552.223-2.662.524zM5.072.56C6.157.265 7.31 0 8 0s1.843.265 2.928.56c1.11.3 2.229.655 2.887.87a1.54 1.54 0 0 1 1.044 1.262c.596 4.477-.787 7.795-2.465 9.99a11.8 11.8 0 0 1-2.517 2.453 7 7 0 0 1-1.048.625c-.28.132-.581.24-.829.24s-.548-.108-.829-.24a7 7 0 0 1-1.048-.625 11.8 11.8 0 0 1-2.517-2.453C1.928 10.487.545 7.169 1.141 2.692A1.54 1.54 0 0 1 2.185 1.43 63 63 0 0 1 5.072.56"/>
|
||
<path d="M9.5 6.5a1.5 1.5 0 0 1-1 1.415l.385 1.99a.5.5 0 0 1-.491.595h-.788a.5.5 0 0 1-.49-.595l.384-1.99a1.5 1.5 0 1 1 2-1.415"/>
|
||
</svg>
|
||
Federation</a>
|
||
|
||
<div class="text-center">
|
||
<div class="tooltip-wrapper">
|
||
<button type="button" class="btn btn-white btn-sm btn-chevron collapsed" data-modal-institution-toggle aria-expanded="false" aria-controls="login-modal-institution-information">Which should I use?<span class="btn-chevron--toggle"></span></button>
|
||
</div>
|
||
</div>
|
||
<div id="login-modal-institution-information" class="collapse" data-modal-institution-panel>
|
||
<p class="mt-2"><strong>Institution:</strong> Log in through your organization's institutional access. Use this option if you normally select your institution from a list and then sign in with your organization credentials</p>
|
||
<p class="mb-0"><strong>Federation:</strong> Log in through a federation service that connects your organization to multiple systems. Use this option if your organization instructs you to use federated sign-in.</p>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<script>
|
||
(function initLoginWayfindingModal() {
|
||
var scriptEl = document.currentScript;
|
||
var loginModal = scriptEl && scriptEl.previousElementSibling && scriptEl.previousElementSibling.matches('[data-login-wayfinding-modal]')
|
||
? scriptEl.previousElementSibling
|
||
: document.querySelector('[data-login-wayfinding-modal]');
|
||
if (!loginModal) return;
|
||
|
||
function normalizeAuthHref(href) {
|
||
if (!href) return href;
|
||
return href.replace(/(\/acs\/auth\/[^?#]+)\.html(?=([?#]|$))/i, '$1');
|
||
}
|
||
|
||
function buildCanonicalLoginHref(connection) {
|
||
var currentPageURL = encodeURIComponent(window.location.href);
|
||
var base = '/acs/auth/login';
|
||
if (connection) {
|
||
return base + '?connection=' + encodeURIComponent(connection) + '&pageURL=' + currentPageURL;
|
||
}
|
||
return base + '?pageURL=' + currentPageURL;
|
||
}
|
||
|
||
function appendPageURL(href) {
|
||
if (!href) return href;
|
||
var normalizedHref = normalizeAuthHref(href);
|
||
if (normalizedHref && !normalizedHref.includes('pageURL=')) {
|
||
var separator = normalizedHref.includes('?') ? '&' : '?';
|
||
normalizedHref = normalizedHref + separator + 'pageURL=' + encodeURIComponent(window.location.href);
|
||
}
|
||
return normalizedHref;
|
||
}
|
||
|
||
var institutionInfoToggle = loginModal.querySelector('[data-modal-institution-toggle]');
|
||
var institutionInfoPanel = loginModal.querySelector('[data-modal-institution-panel]');
|
||
if (institutionInfoToggle && institutionInfoPanel) {
|
||
var collapseDurationMs = 350;
|
||
|
||
function showInstitutionInfo() {
|
||
institutionInfoPanel.style.height = '0px';
|
||
institutionInfoPanel.classList.remove('collapse');
|
||
institutionInfoPanel.classList.add('collapsing');
|
||
institutionInfoPanel.offsetHeight;
|
||
institutionInfoPanel.style.height = institutionInfoPanel.scrollHeight + 'px';
|
||
|
||
institutionInfoToggle.classList.remove('collapsed');
|
||
institutionInfoToggle.setAttribute('aria-expanded', 'true');
|
||
|
||
setTimeout(function () {
|
||
institutionInfoPanel.classList.remove('collapsing');
|
||
institutionInfoPanel.classList.add('collapse', 'show');
|
||
institutionInfoPanel.style.height = '';
|
||
}, collapseDurationMs);
|
||
}
|
||
|
||
function hideInstitutionInfo() {
|
||
institutionInfoPanel.style.height = institutionInfoPanel.scrollHeight + 'px';
|
||
institutionInfoPanel.offsetHeight;
|
||
institutionInfoPanel.classList.add('collapsing');
|
||
institutionInfoPanel.classList.remove('collapse', 'show');
|
||
institutionInfoPanel.style.height = '0px';
|
||
|
||
institutionInfoToggle.classList.add('collapsed');
|
||
institutionInfoToggle.setAttribute('aria-expanded', 'false');
|
||
|
||
setTimeout(function () {
|
||
institutionInfoPanel.classList.remove('collapsing');
|
||
institutionInfoPanel.classList.add('collapse');
|
||
institutionInfoPanel.style.height = '';
|
||
}, collapseDurationMs);
|
||
}
|
||
|
||
institutionInfoToggle.addEventListener('click', function (e) {
|
||
e.preventDefault();
|
||
e.stopPropagation();
|
||
|
||
if (institutionInfoPanel.classList.contains('collapsing')) {
|
||
return;
|
||
}
|
||
|
||
if (institutionInfoPanel.classList.contains('show')) {
|
||
hideInstitutionInfo();
|
||
} else {
|
||
showInstitutionInfo();
|
||
}
|
||
});
|
||
}
|
||
|
||
loginModal.addEventListener('show.bs.modal', function () {
|
||
if (institutionInfoToggle && institutionInfoPanel) {
|
||
institutionInfoPanel.classList.remove('collapsing', 'show');
|
||
institutionInfoPanel.classList.add('collapse');
|
||
institutionInfoPanel.style.height = '';
|
||
institutionInfoToggle.classList.add('collapsed');
|
||
institutionInfoToggle.setAttribute('aria-expanded', 'false');
|
||
}
|
||
|
||
// Force canonical auth endpoints for modal CTAs.
|
||
var subscriberAnchor = loginModal.querySelector('.modal-body [data-login-type="subscriber"][href]');
|
||
if (subscriberAnchor) {
|
||
subscriberAnchor.setAttribute('href', buildCanonicalLoginHref(''));
|
||
}
|
||
|
||
var institutionAnchor = loginModal.querySelector('.modal-body [data-login-type="institution"][href]');
|
||
if (institutionAnchor) {
|
||
institutionAnchor.setAttribute('href', buildCanonicalLoginHref('cirrus'));
|
||
}
|
||
|
||
// Normalize any remaining auth links and preserve pageURL.
|
||
var currentPageURL = encodeURIComponent(window.location.href);
|
||
var links = loginModal.querySelectorAll('a[href*="/acs/auth/login"], a[href*="/acs/auth/"]');
|
||
links.forEach(function (link) {
|
||
var href = normalizeAuthHref(link.getAttribute('href'));
|
||
if (href && !href.includes('pageURL=')) {
|
||
var separator = href.includes('?') ? '&' : '?';
|
||
href = href + separator + 'pageURL=' + currentPageURL;
|
||
}
|
||
link.setAttribute('href', href);
|
||
});
|
||
|
||
// Append pageURL to federation anchor so the bilateral institution
|
||
// list page can forward the original page URL through to login.
|
||
var federationAnchor = loginModal.querySelector('.modal-body [data-login-type="federation"][href]');
|
||
if (federationAnchor) {
|
||
var fedHref = federationAnchor.getAttribute('href') || '';
|
||
if (fedHref && !fedHref.includes('pageURL=')) {
|
||
var sep = fedHref.includes('?') ? '&' : '?';
|
||
fedHref = fedHref + sep + 'pageURL=' + currentPageURL;
|
||
federationAnchor.setAttribute('href', fedHref);
|
||
}
|
||
}
|
||
});
|
||
|
||
// Capture-phase handler ensures modal auth links are normalized before
|
||
// any delegated click handlers can rewrite the destination.
|
||
loginModal.addEventListener('click', function (e) {
|
||
var target = e.target;
|
||
var anchor = target.closest('a[href]');
|
||
if (!anchor || !loginModal.contains(anchor)) return;
|
||
|
||
var href = normalizeAuthHref(anchor.getAttribute('href') || '');
|
||
if (!href) return;
|
||
|
||
if (href.indexOf('/acs/auth/') !== -1) {
|
||
var loginType = anchor.getAttribute('data-login-type');
|
||
// Canonicalize all modal auth navigations to extensionless login endpoint.
|
||
if (loginType === 'institution') {
|
||
href = buildCanonicalLoginHref('cirrus');
|
||
} else if (loginType === 'subscriber') {
|
||
href = buildCanonicalLoginHref('');
|
||
} else {
|
||
href = appendPageURL(href);
|
||
}
|
||
|
||
// Preserve normalized href for hover/status bar and browser history.
|
||
anchor.setAttribute('href', href);
|
||
|
||
// Stop competing handlers and force consistent servlet navigation.
|
||
e.preventDefault();
|
||
e.stopImmediatePropagation();
|
||
window.location.assign(href);
|
||
return;
|
||
}
|
||
}, true);
|
||
|
||
// Fallback for button-based CTAs (when authored without href).
|
||
loginModal.addEventListener('click', function (e) {
|
||
var btn = e.target.closest('[data-login-type]');
|
||
if (!btn || !loginModal.contains(btn) || btn.tagName === 'A') return;
|
||
|
||
var loginType = btn.getAttribute('data-login-type');
|
||
if (loginType === 'subscriber') {
|
||
e.preventDefault();
|
||
window.location.href = buildCanonicalLoginHref('');
|
||
return;
|
||
}
|
||
|
||
if (loginType === 'institution') {
|
||
e.preventDefault();
|
||
window.location.href = buildCanonicalLoginHref('cirrus');
|
||
return;
|
||
}
|
||
|
||
if (loginType === 'federation') {
|
||
var federationHref = appendPageURL('/bilateral-login.html');
|
||
if (!federationHref) return;
|
||
e.preventDefault();
|
||
window.location.href = federationHref;
|
||
}
|
||
});
|
||
})();
|
||
</script></div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
<div class="responsivegrid aem-GridColumn--default--none aem-GridColumn aem-GridColumn--default--8 aem-GridColumn--offset--default--2">
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--16 aem-Grid--default--16 ">
|
||
|
||
<div class="articlePage aem-GridColumn aem-GridColumn--default--12"><section>
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--12 aem-Grid--default--12 ">
|
||
|
||
|
||
|
||
</div>
|
||
</section>
|
||
|
||
|
||
<main id="main-content" aria-label="main-content">
|
||
<article class="" role="region">
|
||
<section>
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Default Variant -->
|
||
|
||
|
||
<!-- Progress Variant -->
|
||
|
||
|
||
<div class="article-header-sticky d-none shadow">
|
||
<div class="article-header-sticky--inner">
|
||
<div class="row align-items-center">
|
||
<div class="col-lg-6 offset-lg-3 col-6 text-center">
|
||
<p class="fs-6 text-truncate mb-0">
|
||
Learning From UCLA
|
||
</p>
|
||
</div>
|
||
<div class="col-lg-3 col-6 text-end">
|
||
<div class="article-utility-bar--actions">
|
||
<ul>
|
||
<li>
|
||
<a class="btn btn-sm font-mono text-uppercase text-dark howerBorder" tabindex="0" data-title="Learning From UCLA" data-print="true" aria-label="Share, Learning From UCLA" onclick="openShareModal(event)" role="button">
|
||
<span class="utility-btn-label">Share</span>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-share-fill text-red" viewBox="0 0 16 16">
|
||
<path d="M11 2.5a2.5 2.5 0 1 1 .603 1.628l-6.718 3.12a2.5 2.5 0 0 1 0 1.504l6.718 3.12a2.5 2.5 0 1 1-.488.876l-6.718-3.12a2.5 2.5 0 1 1 0-3.256l6.718-3.12A2.5 2.5 0 0 1 11 2.5"/>
|
||
</svg>
|
||
</a>
|
||
</li>
|
||
<li>
|
||
<a data-path="/content/cen/articles/87/i31/Learning-UCLA" class="btn btn-sm font-mono text-uppercase text-dark howerBorder saveIconAnalytics" data-taxonomy="Lab Safety" data-authorname="Jyllian N. Kemsley" aria-label="Save, Learning From UCLA" role="button" tabindex="0">
|
||
<span class="utility-btn-label">Save</span>
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="bi bi-bookmark text-red" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
||
<path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1z"/>
|
||
</svg>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="article-header-sticky--track">
|
||
<div id="progress-tracker" class="article-header-sticky--tracker"></div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- Chapter Navigation Variant -->
|
||
|
||
|
||
<!-- Article Custom Menu Variant -->
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Fallback for edit mode when configuration is missing -->
|
||
|
||
</section>
|
||
<div class="article-masthead--wrapper">
|
||
<div class="row hideScroll align-items-center">
|
||
<section>
|
||
|
||
|
||
<article>
|
||
<!-- TEXT-ONLY LAYOUT: Show when 'noImage' selected (but NOT for legacy articles with hero image) OR (no displayOptions AND not a legacy article with hero image) -->
|
||
|
||
<div class="article-masthead--wrapper ps-lg-5 pe-lg-5 pt-3 ps-3 pe-3">
|
||
<div class="row flex-column">
|
||
<div class="col-xxl-6 offset-xxl-3 col-xl-8 offset-xl-2">
|
||
<div class="article-masthead">
|
||
|
||
|
||
<div class="tags">
|
||
<!-- Iterate through collections tags -->
|
||
|
||
<!-- Iterate through primary child tags -->
|
||
|
||
|
||
<a tabindex="0" href="/topics/safety/lab-safety.html" class="tag-item">Lab Safety</a>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
<!-- Title and deck START -->
|
||
<h1 class="article-title">
|
||
Learning From UCLA
|
||
</h1>
|
||
<p class="article-deck">
|
||
Details of the experiment that led to a researcher’s death prompt evaluations of academic safety practices
|
||
</p>
|
||
<!-- Title and deck END -->
|
||
|
||
<!-- Byline START -->
|
||
<div class="article-byline">
|
||
<p>
|
||
|
||
by
|
||
|
||
|
||
|
||
<a href="/staffDirectory.html" rel="author" class="article-byline--author">
|
||
Jyllian N. Kemsley</a>
|
||
|
||
|
||
</p>
|
||
</div>
|
||
<!-- Byline END -->
|
||
|
||
<div class="article-utility-bar">
|
||
<div class="row">
|
||
<div class="col-lg-7">
|
||
<div class="article-utility-bar--date">
|
||
<time datetime="2025-01-21T09:53:40-05:00">
|
||
<span class="date">August 3, 2009</span>
|
||
</time>
|
||
|
||
<span class="reading-time" aria-label="Estimated reading time: 26">
|
||
<span class="time-value">26</span>
|
||
min read
|
||
</span>
|
||
|
||
|
||
<p class="">
|
||
|
||
|
||
A version of this story appeared in
|
||
|
||
<a href="/magazine/87/8731.html">
|
||
Volume 87, Issue
|
||
31
|
||
</a>
|
||
|
||
|
||
</p>
|
||
|
||
</div>
|
||
</div>
|
||
<div class="col-lg-5 text-end">
|
||
<div class="article-utility-bar--actions">
|
||
<ul> <li>
|
||
<a class="btn btn-sm font-mono text-uppercase text-dark howerBorder" tabindex="0" data-title="Learning From UCLA" data-print="true" onclick="openShareModal(event)" aria-label="Share, Learning From UCLA" role="button"><span class="utility-btn-label">Share</span><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-share-fill text-red" viewBox="0 0 16 16">
|
||
<path d="M11 2.5a2.5 2.5 0 1 1 .603 1.628l-6.718 3.12a2.5 2.5 0 0 1 0 1.504l6.718 3.12a2.5 2.5 0 1 1-.488.876l-6.718-3.12a2.5 2.5 0 1 1 0-3.256l6.718-3.12A2.5 2.5 0 0 1 11 2.5"/>
|
||
</svg></a>
|
||
</li>
|
||
<li>
|
||
<a data-path="/content/cen/articles/87/i31/Learning-UCLA" data-taxonomy="Lab Safety" data-authorname="Jyllian N. Kemsley" class="btn btn-sm font-mono text-uppercase text-dark howerBorder" aria-label="Save, Learning From UCLA" role="button" tabindex="0"><span class="utility-btn-label">Save</span>
|
||
<svg xmlns="http://www.w3.org/2000/svg" class="bi bi-bookmark text-red saveIconAnalytics" width="16" height="16" fill="currentColor" viewBox="0 0 16 16">
|
||
<path d="M2 2a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v13.5a.5.5 0 0 1-.777.416L8 13.101l-5.223 2.815A.5.5 0 0 1 2 15.5zm2-1a1 1 0 0 0-1 1v12.566l4.723-2.482a.5.5 0 0 1 .554 0L13 14.566V2a1 1 0 0 0-1-1z"/>
|
||
</svg><span class="tooltip-text" aria-hidden="true">Save</span>
|
||
</a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- IMAGE/VIDEO LAYOUT: Show when legacy article with hero image (PRIORITY) OR displayOptions='withImage' AND media exists -->
|
||
|
||
|
||
</article></section>
|
||
</div>
|
||
<section>
|
||
|
||
|
||
|
||
</section>
|
||
<section>
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--12 aem-Grid--default--12 ">
|
||
|
||
|
||
|
||
</div>
|
||
</section>
|
||
<div class="article-body--wrapper">
|
||
<div class="container-fluid p-lg-5 pt-lg-3 p-3">
|
||
<div class="row article-body--row">
|
||
<div class="col-xl-3 pe-xl-5 d-none d-xl-block article-left">
|
||
<section>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</section>
|
||
<section>
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--12 aem-Grid--default--12 ">
|
||
|
||
|
||
|
||
</div>
|
||
</section>
|
||
</div>
|
||
<div class="col-xl-6 col-lg-8 mx-auto article-body ps-xxl-3 pe-xxl-3 ps-xl-1 pe-xl-1" id="main-article-body">
|
||
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--12 aem-Grid--default--12 ">
|
||
|
||
<div class="bespokeText aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="article-body clearfix" id="a">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p style="margin-top:-20px;"/>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-1 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-0e2f5e6b7c" class="cmp-container">
|
||
|
||
<div class="image">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Check if mobile image exists -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Create the class string conditionally -->
|
||
|
||
|
||
|
||
<!-- Regular image render logic with responsive images -->
|
||
|
||
|
||
<figure class="w-md d-block mx-auto ms-md-3 mb-md-3 float-md-end clearfix" style="clear: both">
|
||
<h2 class="heading-line-bottom fs-6 fw-bold">
|
||
REACTION
|
||
</h2>
|
||
|
||
|
||
|
||
<!-- Use picture element for responsive images when mobile image exists -->
|
||
|
||
|
||
<!-- Fallback to regular img when no mobile image -->
|
||
|
||
<span class="tooltip-wrapper">
|
||
<img data-lazy-src="https://s7d1.scene7.com/is/image/CENODS/8731sci1_notebookcxd_lg?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" data-srcset="https://s7d1.scene7.com/is/image/CENODS/8731sci1_notebookcxd_lg?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" class="w-100" decoding="async"/>
|
||
<span class="tooltip-textImage" aria-hidden="true"></span>
|
||
</span>
|
||
|
||
|
||
|
||
|
||
<figcaption>
|
||
|
||
|
||
Sangji's lab notebook reveals that she planned to react vinyl bromide with tert-butyllithium as the first step of a larger synthesis.
|
||
|
||
<span class="divider-vert"></span>
|
||
|
||
<span class="credit">Credit:
|
||
UCLA</span>
|
||
</figcaption>
|
||
</figure>
|
||
|
||
|
||
<!-- Regular gif render logic -->
|
||
|
||
|
||
<!-- Regular video render logic -->
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content"><span class="text-first-letter"><b>On Jan. 16, </b>Sheharbano (Sheri) Sangji, a 23-year-old chemistry research assistant, died from injuries sustained in a chemical fire on Dec. 29, 2008, in a laboratory at the <a href="http://www.ucla.edu/" shape="rect" target="_blank">University of California, Los Angeles</a> (<em><a href="http://pubs.acs.org/isubscribe/journals/cen/87/i04/html/8704news1.html" shape="rect" target="_blank">C&EN Online</a></em><a href="http://pubs.acs.org/isubscribe/journals/cen/87/i04/html/8704news1.html" shape="rect"> Latest News, Jan. 22</a>).</span></p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The incident has trained a spotlight on safety practices in academic labs, with researchers highlighting the need for awareness of risks and regular hazard assessments, while cautioning against developing an adversarial relationship with campus environmental health and safety officials.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Before researchers can learn from what went wrong, however, they must first understand what happened.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Sangji had started work in the lab of <a href="http://faculty.chemistry.ucla.edu/institution/personnel?personnel_id=552980" shape="rect" target="_blank">Patrick Harran</a>, a chemistry professor at UCLA, on Oct. 13. According to copies of Sangji’s lab notebook obtained from UCLA through a California Public Records Act request, Sangji planned in December to scale up a reaction she’d run once before, on Oct. 17, to produce 4-hydroxy-4-vinyldecane from either 4-undecanone or 4-decanone—the structure and molecular weight written in her lab notebook are inconsistent with the named reagent.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-5 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-014c244a54" class="cmp-container">
|
||
|
||
<div class="image">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Check if mobile image exists -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Create the class string conditionally -->
|
||
|
||
|
||
|
||
<!-- Regular image render logic with responsive images -->
|
||
|
||
|
||
<figure class="w-md d-block mx-auto ms-md-3 mb-md-3 float-md-end clearfix" style="clear: both">
|
||
<h2 class="heading-line-bottom fs-6 fw-bold">
|
||
Sangji
|
||
</h2>
|
||
|
||
|
||
|
||
<!-- Use picture element for responsive images when mobile image exists -->
|
||
|
||
|
||
<!-- Fallback to regular img when no mobile image -->
|
||
|
||
<span class="tooltip-wrapper">
|
||
<img data-lazy-src="https://s7d1.scene7.com/is/image/CENODS/8731sci1_shericxd5?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" data-srcset="https://s7d1.scene7.com/is/image/CENODS/8731sci1_shericxd5?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" class="w-100" decoding="async"/>
|
||
<span class="tooltip-textImage" aria-hidden="true"></span>
|
||
</span>
|
||
|
||
|
||
|
||
|
||
<figcaption>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="credit">Credit:
|
||
Courtesy of Naveen Sangji</span>
|
||
</figcaption>
|
||
</figure>
|
||
|
||
|
||
<!-- Regular gif render logic -->
|
||
|
||
|
||
<!-- Regular video render logic -->
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The first step of that reaction was to generate vinyllithium by reacting vinylbromide with two equivalents of <em>tert</em>-butyllithium (tBuLi), a pyrophoric chemical that ignites spontaneously in air.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">That’s an acceptable way to approach the synthesis Sangji was doing, says <a href="http://www.chem.harvard.edu/research/faculty/elias_corey.php" shape="rect" target="_blank">E. J. Corey</a>, a Nobel Laureate and chemistry professor at <a href="http://www.harvard.edu/" shape="rect" target="_blank">Harvard University</a>. A Grignard reagent could be used instead of vinyllithium to do the addition to the ketone, Corey says, but side reactions would reduce the yield. And the best way to generate a clean lithium reagent, Corey says, is to use two equivalents of tBuLi (<a href="http://pubs.acs.org/cgi-bin/cen/trustedproxy.cgi?redirect=http://pubs.acs.org/doi/abs/10.1021/ja00775a024" shape="rect" target="_blank" title="Solvolytic behavior of the four epimeric 7-chloro-2-hydroxybicyclo[2.2.1]heptane p-toluenesulfonates"><em>J. Am. Chem. Soc. </em><strong>1972,</strong> <em>94, </em>7210</a>).</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">When Sangji had done the reaction in October, she added 28 mL of anhydrous ether to a flame-dried 200-mL flask. Next, she added 3.0 mL of vinyl bromide and stirred the mixture for 15 minutes at –78 ºC. She then charged the flask with 53.79 mL of 1.67 M tBuLi in pentane. She further stirred the mixture for two hours, then moved it to a 0 ºC bath for 30 minutes, and finally took it back to –78 ºC.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Separately, she added 6 mL of ether and 3.90 mL of 4-undecanone to another flame-dried flask and cooled the mixture. She then used a double-tipped needle to transfer the material to the tBuLi flask. She stirred the reaction at –78 ºC for two hours, then warmed it to –10 ºC before quenching the reaction with 80 mL of NaHCO<sub>3</sub>. Her crude yield was 3.60 g of 4-hydroxy-4-vinyldecane, or 86.75%.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">At the end of December, Sangji’s goal was to generate three times that amount of material—a “moderate” scale reaction, Harran said, according to a transcript of his interview with Joel E. Aplin and Maurice S. Jurado, deputy fire marshals at UCLA, that was obtained by C&EN through a public records act request.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Using information from the notes and reports from the UCLA fire marshal, UCLA Fire Department, <a href="http://map.ais.ucla.edu/go/police" shape="rect" target="_blank">UCLA Police Department</a>, <a href="http://map.ais.ucla.edu/go/police" shape="rect" target="_blank">UCLA Environmental Health & Safety Office</a> (EH&S), <a href="http://lafd.org/http://lafd.org/" shape="rect" target="_blank">Los Angeles City Fire Department</a>, and <a href="http://www.dir.ca.gov/dosh/" shape="rect" target="_blank">California Division of Occupational Safety & Health</a> (Cal/OSHA), also obtained through public records requests, C&EN has tried to put together as detailed an account as possible of what happened to Sangji that day.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-11 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-46a178859f" class="cmp-container">
|
||
|
||
<div class="image">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Check if mobile image exists -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Create the class string conditionally -->
|
||
|
||
|
||
|
||
<!-- Regular image render logic with responsive images -->
|
||
|
||
|
||
<figure class="w-md d-block mx-auto ms-md-3 mb-md-3 float-md-end clearfix" style="clear: both">
|
||
<h2 class="heading-line-bottom fs-6 fw-bold">
|
||
EQUIPPED
|
||
</h2>
|
||
|
||
|
||
|
||
<!-- Use picture element for responsive images when mobile image exists -->
|
||
|
||
|
||
<!-- Fallback to regular img when no mobile image -->
|
||
|
||
<span class="tooltip-wrapper">
|
||
<img data-lazy-src="https://s7d1.scene7.com/is/image/CENODS/8731sci1_daviscxd?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" data-srcset="https://s7d1.scene7.com/is/image/CENODS/8731sci1_daviscxd?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" class="w-100" decoding="async"/>
|
||
<span class="tooltip-textImage" aria-hidden="true"></span>
|
||
</span>
|
||
|
||
|
||
|
||
|
||
<figcaption>
|
||
|
||
|
||
Davis dons goggles, gloves, and a flame-resistant lab coat to do experiments at Dow.
|
||
|
||
<span class="divider-vert"></span>
|
||
|
||
<span class="credit">Credit:
|
||
Dow Chemical</span>
|
||
</figcaption>
|
||
</figure>
|
||
|
||
|
||
<!-- Regular gif render logic -->
|
||
|
||
|
||
<!-- Regular video render logic -->
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Sangji was working on a nitrogen manifold in a fume hood in a lab on the fourth floor of UCLA’s Molecular Sciences Building. She had titrated the tBuLi twice to determine its concentration—1.69 M—and needed 159.5 mL of the reagent to react with 9.0 mL of vinyl bromide. She was drawing up the tBuLi in roughly 50-mL aliquots in a 60-mL plastic syringe equipped with a 1.5-inch, 20-gauge needle.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">For unknown reasons, the syringe plunger came out of the barrel and the tBuLi was exposed to the atmosphere. Although it wasn’t part of her experiment, an open flask of hexane was also in the hood and Sangji knocked it over. The tBuLi ignited and the solvent caught fire, as did Sangji’s clothes. She was wearing nitrile gloves, no lab coat, and no one remembers if she was wearing eye protection.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Although there was a safety shower in the lab, Sangji did not use it. Instead, Weifeng Chen, a postdoctoral researcher in Harran’s group who was cleaning up one of the lab’s benches, wrapped a lab coat around Sangji to try to put out the fire. “She was screaming and was moving around and I was attempting to wrap her tightly,” Chen told Cal/OSHA Investigator Ramon Porras. Chen abandoned the lab coat when it started burning. He then started pouring water on Sangji from a nearby sink, while she sat on the floor.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-14 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-53e4438776" class="cmp-container">
|
||
|
||
<div class="inArticleRevealAds">
|
||
<style>
|
||
.inArticleRevealAd1 {
|
||
clear:both;
|
||
padding : 20px 0px 20px 0px;
|
||
}
|
||
</style>
|
||
<script>
|
||
$(".inArticleRevealAds").removeClass("section");
|
||
</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="inArticleRevealAd1" id="div-gpt-ad-2894946-1">
|
||
<script>
|
||
(function() {
|
||
var adId = 'div-gpt-ad-2894946-1';
|
||
var consentCheckAttempts = 0;
|
||
var maxAttempts = 50; // 5 seconds max wait
|
||
|
||
// Check if Osano consent is granted
|
||
function hasOsanoConsent() {
|
||
try {
|
||
return window.Osano &&
|
||
window.Osano.cm &&
|
||
typeof window.Osano.cm.getConsent === 'function' &&
|
||
window.Osano.cm.getConsent().MARKETING === 'ACCEPT';
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
// Display the ad
|
||
function displayRevealAd() {
|
||
if (!window.googletag || !googletag.cmd) {
|
||
console.warn('[RevealAd] GPT not ready for:', adId);
|
||
return;
|
||
}
|
||
|
||
googletag.cmd.push(function() {
|
||
// Add render event listener before displaying
|
||
var renderListener = function(event) {
|
||
if (event.slot.getSlotElementId() === adId) {
|
||
// Mark parent container as processed to release CLS min-height
|
||
var adElement = document.getElementById(adId);
|
||
if (adElement) {
|
||
var parentSection = adElement.closest('.inArticleRevealAds');
|
||
if (parentSection) {
|
||
parentSection.classList.add('ad-processed');
|
||
}
|
||
}
|
||
|
||
if (event.isEmpty) {
|
||
console.warn('[RevealAd] ⚠️ No ad returned for:', adId, '(empty - no campaigns targeting this placement)');
|
||
} else {
|
||
console.log('[RevealAd] ✅ Ad rendered successfully for:', adId,
|
||
'Size:', event.size,
|
||
'Creative ID:', event.creativeId);
|
||
}
|
||
// Remove listener after first render
|
||
googletag.pubads().removeEventListener('slotRenderEnded', renderListener);
|
||
}
|
||
};
|
||
|
||
googletag.pubads().addEventListener('slotRenderEnded', renderListener);
|
||
|
||
try {
|
||
googletag.display(adId);
|
||
console.log('[RevealAd] 📤 Display called for:', adId);
|
||
} catch (error) {
|
||
console.error('[RevealAd] ❌ Display error for ' + adId + ':', error);
|
||
}
|
||
});
|
||
}
|
||
|
||
// Poll for consent with fallback
|
||
function checkConsentWithPoll() {
|
||
if (hasOsanoConsent()) {
|
||
console.log('[RevealAd] ✅ Osano consent detected, displaying:', adId);
|
||
displayRevealAd();
|
||
return true;
|
||
}
|
||
|
||
consentCheckAttempts++;
|
||
if (consentCheckAttempts >= maxAttempts) {
|
||
console.warn('[RevealAd] ⏰ Consent timeout after 5s, user may have declined or banner not shown');
|
||
// Mark container as processed to release CLS min-height
|
||
var adElement = document.getElementById(adId);
|
||
if (adElement) {
|
||
var parentSection = adElement.closest('.inArticleRevealAds');
|
||
if (parentSection) {
|
||
parentSection.classList.add('ad-processed');
|
||
}
|
||
}
|
||
return true; // Stop polling
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
// Check if consent already granted
|
||
if (hasOsanoConsent()) {
|
||
console.log('[RevealAd] ✅ Consent already granted, displaying:', adId);
|
||
displayRevealAd();
|
||
} else {
|
||
// Wait for Osano consent event
|
||
console.log('[RevealAd] ⏳ Waiting for Osano consent for:', adId);
|
||
|
||
// Listen for multiple possible consent events
|
||
var consentGranted = false;
|
||
|
||
var handleConsent = function() {
|
||
if (!consentGranted && hasOsanoConsent()) {
|
||
consentGranted = true;
|
||
console.log('[RevealAd] ✅ Osano consent granted (event triggered), displaying:', adId);
|
||
displayRevealAd();
|
||
}
|
||
};
|
||
|
||
window.addEventListener('osano-cm-consent-saved', handleConsent);
|
||
window.addEventListener('osano-cm-initialized', handleConsent);
|
||
|
||
// Also poll every 100ms as fallback (some Osano configs don't fire events reliably)
|
||
var pollInterval = setInterval(function() {
|
||
if (checkConsentWithPoll()) {
|
||
clearInterval(pollInterval);
|
||
}
|
||
}, 100);
|
||
}
|
||
})();
|
||
</script>
|
||
</div>
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Hui Ding, a postdoctoral researcher in an adjacent lab, heard Sangji screaming. He went into the lab and saw Chen trying to put out the fire. Ding also saw that “the tip of the reagent bottle was positioned sideways and was also on fire,” he told Porras. Ding returned to his lab and called 911, then checked on Chen and Sangji again before going to get Harran from his office on the floor above.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">When Ding returned to the lab with Harran, Harran saw that Sangji’s hands, torso, and neck were burned. “Her clothing from the waist up was largely burned off and large blisters were forming on her abdomen and hands—the skin seemed to be separating from her hands,” he told Porras in an e-mail. Sangji was conscious, asking for more water, where emergency responders were, and for someone to call her roommates. When Harran heard sirens, he went down to the road to tell the emergency personnel where they needed to go.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-16 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-c669ce5e48" class="cmp-container">
|
||
|
||
<div class="articleBox">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="box-standard mx-auto float-xl-end ms-xl-3 mb-3 ">
|
||
|
||
<div class="box-description">
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p></p><p class="eyebrow"><b>INCIDENT INFORMATION</b> (PDFs)</p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/Sangji_lab_notebook_tBuLi_expts.pdf" target="_blank" rel="noopener noreferrer">Sheri Sangji's lab notebook pages</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/UCLA_EHS_Harran_lab_inspection_report_2008-11-05.pdf" target="_blank" rel="noopener noreferrer">UCLA EH&S Harran lab inspection report</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/UCLA_EHS_accident_report_2008-12-29.pdf" target="_blank" rel="noopener noreferrer">UCLA EH&S accident report</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/LA_Fire_Dept_report_with_Sangji_interview_2009-01-08.pdf" target="_blank" rel="noopener noreferrer">Los Angeles Fire Dept report with Sangji interview</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/UCLA_Fire_Marshal_Harran_interview_2009-02-05.pdf" target="_blank" rel="noopener noreferrer">UCLA Fire Marshal Harran interview</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/Cal-OSHA_Harran_statement_2009-01-22.pdf" target="_blank" rel="noopener noreferrer">Cal/OSHA Harran statement</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/Cal-OSHA_Chen_statement_2009-01-22.pdf" target="_blank" rel="noopener noreferrer">Cal/OSHA Chen statement</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/Cal-OSHA_Ding_statement_2009-01-22.pdf" target="_blank" rel="noopener noreferrer">Cal/OSHA Ding statement</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/Cal-OSHA_UCLA_citation_2009-05-04.pdf" target="_blank" rel="noopener noreferrer">Cal/OSHA UCLA citation</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/CA_State_Fire_Marshal_report_undated.pdf" target="_blank" rel="noopener noreferrer">California State Fire Marshal report</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://www.cdph.ca.gov/programs/ohb-face/Documents/09CA001.pdf" target="_blank" rel="noopener noreferrer">California Fatality Assessment and Control Evaluation report</a></p></div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content"><strong>UCLA police dispatch</strong> recorded the 911 call at 2:54 PM as an “unknown type chemical fire.” Emergency crews were dispatched at 2:57 PM, and Christopher Lutton, a UCLA deputy fire marshal; a fire engine; and emergency medical personnel arrived at the building at 3:01 PM. Lutton donned full protective gear and went up to the lab to assess the situation, with dispatch recording at 3:06 PM that the fire was out upon arrival. Lutton cleared the other emergency responders to go up to the lab. Once medical personnel arrived, Sangji was put on a rolling chair and moved under the safety shower for decontamination. She was then transported to <a href="http://www.uclahealth.org/homepage_med.cfm?id=264" shape="rect" target="_blank">UCLA Ronald Reagan Medical Center</a>. From there she was transferred to <a href="http://www.grossmanburncenter.com/" shape="rect" target="_blank">Grossman Burn Center</a>, in Sherman Oaks, Calif., where she died on Jan. 16.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Harran told Cal/OSHA and fire marshal investigators that the lab generally follows <a href="http://www.sigmaaldrich.com/etc/medialib/docs/Aldrich/Bulletin/al_techbull_al134.Par.0001.File.tmp/al_techbull_al134.pdf" shape="rect" target="_blank">Aldrich Technical Bulletin AL-134</a> for handling air-sensitive reagents. The bulletin first recommends heating glassware in an oven to eliminate any adsorbed moisture, then cooling it in an inert atmosphere. Sangji refers in her notebook to using flame-dried flasks and the syringe found at the scene was plastic.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Additionally, if a researcher is using a syringe to transfer the reagent, the bulletin says to use a 1- to 2-foot-long needle. The Cal/OSHA report says that Sangji’s was 1.5 inches.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-19 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-8bee881497" class="cmp-container">
|
||
|
||
<div class="sponsoredContent">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="adunit" data-adunit="cen" data-dimensions="fluid" data-targeting='{"Topic":"safety,labSafety","pos":""}'></div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The Aldrich bulletin also recommends pressurizing the reagent bottle with high-purity dry nitrogen such that the pressure in the bottle pushes out the syringe plunger. “The plunger should not be pulled back since this tends to cause leaks and create gas bubbles,” the bulletin says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">But Harran told fire marshal investigators that he prefers not to pressurize the bottle to push out the material. “I find that a little dangerous because then it can jump on you,” he told Aplin and Jurado. Harran said that he favors using a nitrogen line with a bubbler, under enough N<sub>2</sub> pressure so that as he withdraws the syringe plunger to pull in reagent, the bubbler keeps going.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">“Aldrich recommends regulating the inert gas to about 3 to 5 psi to pressurize the bottle,” says Mark Potyen, a R&D scientist at <a href="http://www.sigmaaldrich.com/" shape="rect" target="_blank">Sigma-Aldrich</a>. “Through a 16-gauge needle, the largest Aldrich recommends, the movement of the plunger is manageable and is a safer technique than pulling the plunger of the syringe to use the reduced pressure in the syringe to draw up the material.” This is partially why Aldrich recommends glass rather than plastic syringes, Potyen says, because pressure at 3 to 5 psi cannot push up a plastic syringe plunger.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-22 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-f0780661e6" class="cmp-container">
|
||
|
||
<div class="image">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Check if mobile image exists -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Create the class string conditionally -->
|
||
|
||
|
||
|
||
<!-- Regular image render logic with responsive images -->
|
||
|
||
|
||
<figure class="w-sm d-block mx-auto ms-md-3 mb-md-3 float-md-end clearfix" style="clear: both">
|
||
<h2 class="heading-line-bottom fs-6 fw-bold">
|
||
Harran
|
||
</h2>
|
||
|
||
|
||
|
||
<!-- Use picture element for responsive images when mobile image exists -->
|
||
|
||
|
||
<!-- Fallback to regular img when no mobile image -->
|
||
|
||
<span class="tooltip-wrapper">
|
||
<img data-lazy-src="https://s7d1.scene7.com/is/image/CENODS/8731sci1_harrancxd1?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" data-srcset="https://s7d1.scene7.com/is/image/CENODS/8731sci1_harrancxd1?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" class="w-100" decoding="async"/>
|
||
<span class="tooltip-textImage" aria-hidden="true"></span>
|
||
</span>
|
||
|
||
|
||
|
||
|
||
<figcaption>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<span class="credit">Credit:
|
||
Courtesy of Patrick Harran</span>
|
||
</figcaption>
|
||
</figure>
|
||
|
||
|
||
<!-- Regular gif render logic -->
|
||
|
||
|
||
<!-- Regular video render logic -->
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Aldrich also recommends using a syringe that is twice the volume that you intend to deliver and advises against reusing syringes for multiple transfers, Potyen says, since a dirty syringe could result in a locked-up barrel.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">For amounts larger than 50 mL, Aldrich advocates that researchers transfer the reagent by cannulating, or using a double-tipped needle to transfer the reagent under pressure from the bottle into a sealed graduate cylinder, then again from the cylinder into the reaction flask.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">“I would have preferred that [Sangji] had done the cannula technique,” Harran told Aplin and Jurado. “We use both methods in the laboratory. …. I don’t know if she had done the cannulation technique previously, so she may have been repeating the procedure that she had done simply on a larger scale.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-25 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-ddd705b5d1" class="cmp-container">
|
||
|
||
<div class="sponsoredContent">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="adunit" data-adunit="cen" data-dimensions="fluid" data-targeting='{"Topic":"safety,labSafety","pos":""}'></div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Although Harran told Cal/OSHA Investigator Porras that he talked with Sangji on the morning of Dec. 29 about what she planned to do that day, he did not indicate whether they discussed specific experimental procedures.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Looking at what actually went wrong with Sangji’s experiment, there is not enough information available to say for certain. In the materials obtained by C&EN, no one documented the state of the hood immediately after the accident. And although Fire Marshal Lutton took photographs of the scene, he did so after fire officials asked Harran to shut down the experiment to ensure that the hood was safe.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Postdoc Ding noted that, when he first entered the lab, a reagent bottle was sideways and on fire—but he did not say whether that was the tBuLi bottle or the hexane flask. If it was the tBuLi bottle, and it was not clamped as specified by the Aldrich bulletin, it could have been a clue that perhaps Sangji, using a needle too short for the reagent bottle, had upended the bottle in one hand while trying to handle a 60-mL syringe with the other, and things went awry from there.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Alternatively, although Harran told C&EN in an interview in May that he remembered that the bubbler on the nitrogen manifold was active when he later returned to the lab and shut down the experiment, he couldn’t recall if the port to the tBuLi bottle was open. Perhaps Sangji had simply forgotten to turn on the gas to the bottle, then pulled too hard on the syringe plunger, not realizing that she was fighting a lack of pressure in the bottle.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Other possibilities include that the tBuLi reacted with moisture in the undried syringe, or with air that got into the syringe while Sangji was pulling up the reagent. Or Sangji was on her second or third transfer with a used syringe, it locked up, and she tried to release it.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Last but not least, since she was using a 60-mL syringe for 50 mL or more of tBuLi, perhaps she simply overshot while pulling out the plunger.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-31 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-2337b2f3ee" class="cmp-container">
|
||
|
||
<div class="image">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Check if mobile image exists -->
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Create the class string conditionally -->
|
||
|
||
|
||
|
||
<!-- Regular image render logic with responsive images -->
|
||
|
||
|
||
<figure class="w-md d-block mx-auto ms-md-3 mb-md-3 float-md-end clearfix" style="clear: both">
|
||
<h2 class="heading-line-bottom fs-6 fw-bold">
|
||
PYROPHORIC
|
||
</h2>
|
||
|
||
|
||
|
||
<!-- Use picture element for responsive images when mobile image exists -->
|
||
|
||
|
||
<!-- Fallback to regular img when no mobile image -->
|
||
|
||
<span class="tooltip-wrapper">
|
||
<img data-lazy-src="https://s7d1.scene7.com/is/image/CENODS/8731sci1_pyrophoriccxd1?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" data-srcset="https://s7d1.scene7.com/is/image/CENODS/8731sci1_pyrophoriccxd1?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1" class="w-100" decoding="async"/>
|
||
<span class="tooltip-textImage" aria-hidden="true"></span>
|
||
</span>
|
||
|
||
|
||
|
||
|
||
<figcaption>
|
||
|
||
|
||
A recommended set-up for syringing tert-butyllithium includes inert gas supply and venting to a bubbler, as well as a glass syringe.
|
||
|
||
<span class="divider-vert"></span>
|
||
|
||
<span class="credit">Credit:
|
||
John Palmer/UC San Diego</span>
|
||
</figcaption>
|
||
</figure>
|
||
|
||
|
||
<!-- Regular gif render logic -->
|
||
|
||
|
||
<!-- Regular video render logic -->
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Los Angeles Fire Department investigators were able to speak briefly with Sangji at the emergency room, where she told them that “she pulled the plunger out too far, the plunger came out of the housing of the syringe, and the chemical spilled out and flashed.” She also told them about the spilled hexane.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">But UCLA fire marshal investigators never spoke with Sangji, despite being told on Jan. 6 that she could be interviewed.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Sangji’s family also did not discuss the incident with her while she was in the hospital, says her sister, Naveen Sangji, because they were trying to stay focused on the positive and “we thought we had all the time in the world to get to the unpleasant stuff.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Whether Sangji should have been doing the experiment under closer supervision is an open question. Both Harran and <a href="http://www.legalaffairs.ucla.edu/" shape="rect" target="_blank">Kevin S. Reed</a>, UCLA’s vice chancellor for legal affairs, have said in written statements that Sangji was an experienced chemist. Sangji graduated from <a href="http://www.pomona.edu/" shape="rect" target="_blank">Pomona College</a> in May 2008 with a bachelor’s degree in chemistry. While at Pomona, she spent three years working for chemistry professor Daniel O’Leary doing peptide chemistry. Neither of her published papers involves alkyllithium or similarly hazardous reagents (<a href="http://pubs.acs.org/cgi-bin/cen/trustedproxy.cgi?redirect=http://pubs.acs.org/doi/abs/10.1021/ol052539d" shape="rect" target="_blank" title=" Direct Assignment of the Relative Configuration in Acyclic 1,3-Diols by 1H NMR Spectroscopy"><em>Org. Lett.</em> <strong>2005,</strong> <em>7,</em> 5721</a>; <a href="http://pubs.acs.org/cgi-bin/cen/trustedproxy.cgi?redirect=http://pubs.acs.org/doi/abs/10.1021/ja062621j" shape="rect" target="_blank" title="Enantioselective Photocycloaddition Mediated by Chiral Brønsted Acids: Asymmetric Synthesis of the Rocaglamides"><em>J. Am. Chem. Soc.</em> <strong>2006,</strong> <em>128,</em> 7754</a>).</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-35 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-2ca7880db0" class="cmp-container">
|
||
|
||
<div class="genericAds">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="article-small-ads landing-page-ads landingads-noborder advertisement div-w-100 pt-1 pb-1">
|
||
<div class="advertisement-label" role="region" aria-label="Advertisement-genericAds1">Advertisement</div>
|
||
<div class="adunit" data-adunit="cen" data-dimensions="300x250" data-targeting='{"Topic":"safety,labSafety,,,,","Keyword":"Sheri Sangji, UCLA, Cal/OSHA, Safety"}'>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content"><strong>After graduating</strong> from Pomona, Sangji went to work at Norac Pharma, in Azusa, Calif. <a href="http://www.noracpharma.com/about/index.aspx?ncat=8&tm=19" shape="rect" target="_blank">Daniel Levin</a>, president of <a href="http://www.noracpharma.com/" shape="rect" target="_blank">Norac Pharma</a>, says that, although he can’t disclose the specific chemistry Sangji did for the company, she did not work with pyrophoric materials. He adds that, although he thought Sangji had more research experience than average for a chemist with a bachelor’s degree, she was still closely supervised in both the planning and execution of her experiments at the company.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">At UCLA, Harran told Aplin and Jurado that Sangji had trained with an unnamed postdoctoral fellow who had done the tBuLi procedure multiple times. Sangji “had executed it successfully, I think three times, previously,” Harran said.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">But UCLA has no evidence that Sangji used tBuLi more than once before the day of the incident, says university spokesperson Carol Stogsdill. “However, her résumé and work history show that she was familiar with pyrophorics—and, importantly, the techniques we use to handle t-butyllithium are common to those employed when handling a wide range of air- and/or moisture-sensitive chemicals,” Stogsdill says. Sangji “had prior experience with those techniques and was further trained in them in Dr. Harran’s lab.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Because Sangji was an employee rather than a graduate student, Cal/OSHA investigated the incident; as a result of the investigation Cal/OSHA fined the university $31,875 (<a href="http://pubs.acs.org/isubscribe/journals/cen/87/i19/html/8719notw4.html" shape="rect" target="_blank">C&EN, May 11, page 7</a>). The agency cited the UCLA chemistry and biochemistry department for lack of training; failure to document training; failing to correct unsafe laboratory conditions and work practices identified in an Oct. 30, 2008, inspection of Harran’s lab; and failing to ensure that employees wore appropriate personal protective equipment (PPE), such as lab coats.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">On the training front, prior to the incident, the UCLA EH&S office conducted general laboratory safety training at the beginning of every quarter, while principal investigators provided laboratory-specific training.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Having started in mid-October, Sangji missed the EH&S training and would have been expected to attend in January, says James Gibson, director of EH&S. Neither Chen nor Ding had received general safety training from EH&S, either—Chen started at UCLA on Oct. 10, 2008, and Ding told Cal/OSHA investigator Porras in January that he had been at UCLA for four months. Harran and UCLA maintain that all researchers had the laboratory-specific training needed to perform their work safely. EH&S now provides general safety training monthly, and researchers cannot receive keys to their labs until the training is complete, Gibson says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-41 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-19673bd238" class="cmp-container">
|
||
|
||
<div class="sponsoredContent">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="adunit" data-adunit="cen" data-dimensions="fluid" data-targeting='{"Topic":"safety,labSafety","pos":""}'></div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">UCLA has also now purchased flame-resistant lab coats for researchers using flammable reagents.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The October laboratory inspection was the first for the Harran lab since the group had moved to UCLA from the <a href="http://www.utsouthwestern.edu/" shape="rect" target="_blank">University of Texas Southwestern Medical Center</a> on July 1, 2008. Several of the violations described in the inspection report involve things that could be due to differences in Texas versus California law. The report notes that gas cylinders were not properly restrained, for example, and California requires that gas cylinders have two straps whereas Texas requires only one.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Other violations flagged in the inspection include keeping more than 10 gal of flammable solvents outside of the flammable storage cabinets, and that lab researchers were not wearing PPE. UCLA’s standard practice is to correct such deficiencies at the time of the inspection and in a Nov. 5, 2008, e-mail to Harran, UCLA Chemical Safety Officer Michael Wheatley says that the lab “was able to correct some deficiencies on the spot,” although he doesn’t specify what those were. But in the aftermath of the incident Cal/OSHA investigators again flagged flammable solvent storage and PPE issues, noting that photos of the lab taken after the incident showed approximately 14 gal of flammable liquids inside a hood, and Sangji was not wearing a lab coat.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Generally, UCLA rules at the time gave Harran 30 days to correct the deficiencies. In that Nov. 5 e-mail, Wheatley asked Harran to set up a time to go over the report.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Harran replied on Nov. 12, asking if the meeting could wait until his group moved out of their temporary labs and into their permanent location, which was still under construction. “Our labs on four are overcrowded and disorganized,” Harran wrote. “I wasn’t planning to be in temporary space for this long. We should be moving soon.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">“That should be no problem,” Wheatley responded. The labs did not relocate until early January.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Gibson says that UCLA historically has inspected labs once a year, and new labs were simply added to the cycle without necessarily getting additional support from EH&S officers during the setup period. UCLA is considering how to remedy that gap, Gibson says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Gibson also says that, although the incident occurred over the winter holiday for the university and administrative offices were closed, UCLA expects that research labs will generally be open 365 days per year.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The <a href="http://osfm.fire.ca.gov/" shape="rect" target="_blank">California State Fire Marshal</a> Arson Bomb Investigation Division reviewed the information collected by UCLA fire marshal investigators and concluded that the incident was an accident and closed the case. Although UCLA requested that the California Office of the State Fire Marshal review the Aldrich-recommended syringe procedure to see whether it meets the fire-code requirements for a closed system for a solid or liquid hazardous material, the state fire marshal declined to consider the matter, says Ernie Paez, chief of the South Fire & Life Safety Division of the Office of the State Fire Marshal.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-50 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-00a25553c0" class="cmp-container">
|
||
|
||
<div class="sponsoredContent">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="adunit" data-adunit="cen" data-dimensions="fluid" data-targeting='{"Topic":"safety,labSafety","pos":""}'></div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Cal/OSHA is reviewing the incident, as is standard for a case involving a fatality, to determine whether to forward its findings to the Los Angeles district attorney’s office to evaluate whether criminal prosecution is warranted. UCLA has withdrawn its appeal of Cal/OSHA’s citations (<a href="http://pubs.acs.org/isubscribe/journals/cen/87/i26/html/8726sci2.html" shape="rect" target="_blank">C&EN, June 29, page 30</a>).</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content"><strong>Sangji’s family</strong> has been very unhappy with how the various investigations have gone, Naveen Sangji says. She notes that, except for Cal/OSHA Investigator Porras, everyone else directly involved in investigating the incident was a UCLA employee. She also questions Cal/OSHA’s thoroughness, given that the Cal/OSHA report says Sangji was syringing 20 mL of tBuLi, not three 50-mL aliquots.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">“We feel like we’ve gotten nowhere with the state agencies and the university,” Naveen says. “We think it’s time for the district attorney to step in and figure out what’s going on. We want to know who was responsible and who failed in their duties to make sure Sheri was safe at work, and those people should answer for their failures.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The family wrote to the American Chemical Society on July 6, asking the society to issue a public statement reprimanding Harran for disregarding the safety of his researchers, and to demand full disclosure of the events of the day.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">In her July 17 response to the letter, Madeleine Jacobs, executive director and chief executive officer of ACS, which publishes C&EN, writes that “issuing a rebuke to a specific individual or individuals is not an option consistent with our role. There are entities, such as Cal/OSHA, which investigate and apportion blame in these circumstances, and we are obliged to respect their oversight role.” Jacobs adds that “there may be an opportunity for ACS to develop a statement that highlights the tragedy of deaths such as Sheri’s as compelling examples of the need for stronger safety practices in academic laboratories.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Anna Davis, who is approaching her first anniversary as a research scientist working on catalyst discovery for water-soluble polymers at <a href="http://www.dow.com/" shape="rect" target="_blank">Dow Chemical</a>, agrees that academic lab safety could be improved. She says that safety at Dow is generally much more a part of the laboratory culture than in the academic institutions at which she’s worked. Davis received her Ph.D. from <a href="http://www.berkeley.edu/" shape="rect" target="_blank">UC Berkeley</a> and did postdoctoral research at <a href="http://www.northwestern.edu/" shape="rect" target="_blank">Northwestern University</a>.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">“I was fortunate to work for professors that took safety seriously,” Davis says, “But I think that the culture varies too much from one research group to another” in academia, and consequences are minimal when something bad happens. In contrast, at Dow it’s emphasized from day one that, no matter what your job is or where you work, safety is a job expectation and is a critical part of your job performance, Davis says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">When asked whether the emphasis on safety is a deterrent to being open and honest when things go wrong in the lab, Davis responds: “You’re certainly going to get in trouble if you’re lax about safety here. But I think that if you do an earnest job of trying to follow safety practices, then no, I wouldn’t say that you’re afraid to discuss a near miss or an accident.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-58 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-85f24db982" class="cmp-container">
|
||
|
||
<div class="genericAds">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="article-small-ads landing-page-ads landingads-noborder advertisement div-w-100 pt-1 pb-1">
|
||
<div class="advertisement-label" role="region" aria-label="Advertisement-genericAds1">Advertisement</div>
|
||
<div class="adunit" data-adunit="cen" data-dimensions="300x250" data-targeting='{"Topic":"safety,labSafety,,,,","Keyword":"Sheri Sangji, UCLA, Cal/OSHA, Safety"}'>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Sangji’s death has inspired at least some members of the academic chemistry community to take stock of the safety procedures in their labs. <a href="http://www.stanford.edu/dept/chemistry/faculty/waymouth/" shape="rect" target="_blank">Robert M. Waymouth</a>, a chemistry professor at <a href="http://www.stanford.edu/" shape="rect" target="_blank">Stanford University</a>, works in the area of organometallic chemistry and catalysis. Although Waymouth typically spends part of every group meeting discussing safety issues that come up in his group, news of the UCLA fire inspired a meeting devoted entirely to talking about what was known about the incident and whether any lab procedures should be changed, Waymouth says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">In keeping with federal OSHA lab standards, certain things in his lab have always had trigger points—for example, using more than 500 mL of an extremely flammable solvent like diethyl ether—that require an explicit risk assessment. In those cases, the researcher doing the experiment must fill out a form and go over it with someone else, to explain what they’re doing and why and to review the appropriate safety procedures if something goes wrong. And everyone in the lab is informed of the experiment so the group knows what’s going on.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">That protocol now applies to any reaction involving tBuLi. The group’s lab-safety manual has also been revised to contain more explicit directions regarding use of PPE, Waymouth says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Waymouth emphasizes that evaluating safety risks needs to be a constant and ongoing thing. Safety shouldn’t be something done at a training seminar and then forgotten, he says. Faculty “need to make sure that there’s an awareness in the real day-to-day environment about what’s the best way to do things safely,” he says. “You need to establish a safety environment where people can encourage others to have safe practices and not be embarrassed about it.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">And just as essential, lab workers “have to have the mind-set that something can always go wrong,” Waymouth says. “If you have thought about it beforehand, you will be more prepared to deal with it. If you’re surprised, then it is more difficult to respond rationally. A prepared mind is the most important safety attitude that you can have.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content"><a href="http://www3.imperial.ac.uk/people/t.welton" shape="rect" target="_blank">Tom Welton</a>, head of the department of chemistry at <a href="http://www3.imperial.ac.uk/" shape="rect" target="_blank">Imperial College London</a>, would agree. Risk assessments in the U.K. started to become part of the research culture there about 20 years ago—when Welton was a postdoctoral researcher—after an incident at the <a href="http://www.sussex.ac.uk/" shape="rect" target="_blank">University of Sussex</a>.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">A third-year graduate student at Sussex was distilling a triacetylene under nonstandard conditions, says <a href="http://www.sussex.ac.uk/chemistry/profile1745.html" shape="rect" target="_blank">Anthony McCaffery</a>, a Sussex chemistry professor who was head of his department at the time. The apparatus exploded, blowing out a window and embedding a large piece of metal in the student’s abdomen. The researcher lost a foot or two of his intestine, if McCaffery recalls correctly, and returned to the school to finish his Ph.D. after recovering from his injury.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-65 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-4688f3a11e" class="cmp-container">
|
||
|
||
<div class="articleBox">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="box-standard mx-auto float-xl-end ms-xl-3 mb-3 ">
|
||
|
||
<div class="box-description">
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p></p><p class="eyebrow"><b>MORE COVERAGE</b></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p>Visit <a href="http://cenblog.org/"><b>C&ENtral Science</b></a> to read Jyllian's blog entries related to this story</p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p>» <a title="" href="http://cenblog.org/2009/08/03/evaluating-safety/"> Evaluating Safety</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p>» <a title="" href="http://cenblog.org/2009/08/04/personal-protection-from-fire/"> Personal Protection from Fire</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p>» <a title="" href="http://cenblog.org/2009/08/05/tampering-with-evidence/"> Tampering with Evidence?</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p>» <a title="" href="http://cenblog.org/2009/08/06/promoting-safe-research-practices/"> Promoting Safe Research Practices</a></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p>» <a title="" href="http://cenblog.org/2009/08/07/some-thoughts-on-lab-incidents/"> Some Thoughts on Lab Incidents</a></p></div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The U.K. government had recently created the country’s <a href="http://www.hse.gov.uk/" shape="rect" target="_blank">Health & Safety Executive</a> to prevent death, injury, and ill health in workplaces. The Sussex incident was the first case the agency decided to prosecute. “I was required to appear in the local Magistrate’s Court and the County Court to defend the indefensible, since they charged us with failure to carry out a proper risk assessment, which was not a widely accepted procedure in university research at the time,” McCaffery says. The university pled guilty and was fined.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content"><strong>The end result</strong> for academic chemistry research in the U.K. was that risk assessments have become an integral part of experiments. The assessments don’t apply just to chemical reactions but also to equipment such as lasers. The initial assessments were “much like some kind of legal record where if we got sued we could say we’d done this,” Welton says, but the paperwork has evolved over the years into a simple table that is printed on one side of every page spread in his department’s lab notebooks—risk assessment on the left, experimental notes on the right. “Twenty years ago, it was very much about a legal defense should it be necessary,” Welton says. “Now it is about making the person engage in the risk management of what they’re doing.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-67 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-9a300677dd" class="cmp-container">
|
||
|
||
<div class="articleBox">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="box-standard mx-auto float-xl-end ms-xl-3 mb-3 ">
|
||
|
||
<div class="box-description">
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p></p><p class="eyebrow"><b>SAFETY INFORMATION</b></p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://www.sigmaaldrich.com/etc/medialib/docs/Aldrich/Bulletin/al_techbull_al134.Par.0001.File.tmp/al_techbull_al134.pdf" target="_blank" rel="noopener noreferrer">Sigma-Aldrich technical bulletin on handling air-sensitive materials</a> (PDF)</p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/_img/87/i31/Imperial_College_London_hazard_assessment_forms.pdf" target="_blank" rel="noopener noreferrer">Imperial College London hazard assessment form</a> (PDF)</p></div>
|
||
|
||
|
||
|
||
|
||
<div class="summary-desc"> <p><a href="http://pubs.acs.org/cen/safety/" target="_blank" rel="noopener noreferrer">C&EN Safety Letters</a></p></div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Chemistry students in the U.K. start doing risk assessments in their very first undergraduate lab, so the process is second nature by the time they get their bachelor’s degree, Welton says. He adds that the training is critical not just from a safety perspective, but also for future employment. “If we don’t train students in risk management and safety procedures, then we’re not training them for employment in modern industry,” Welton says. “If we want someone to turn up in a job and be productive, they can’t do that if they’re not safety aware.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">UCLA has made significant changes to its health and safety program in the aftermath of Sangji’s death, beyond fixing the specific issues identified by Cal/OSHA.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">UCLA laboratory safety inspections have been standardized and expanded. Items identified as critical—for example, missing or inoperable fire extinguishers or eyewash stations, or lack of PPE—must be corrected within 48 hours; other deficiencies, within 30 days. Gibson’s office is working to develop a computer system that will streamline much of the inspection process.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-70 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-0cfb586a86" class="cmp-container">
|
||
|
||
<div class="sponsoredContent">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="adunit" data-adunit="cen" data-dimensions="fluid" data-targeting='{"Topic":"safety,labSafety","pos":""}'></div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">University research labs are also now required to quantify chemical, biological, and other hazards; to assess risks based on laboratory activities; specify appropriate PPE; and train all lab personnel in the appropriate use of PPE for their experiments.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">And if a lab balks at any point? Chancellor <a href="http://chancellor.ucla.edu/biography" shape="rect" target="_blank">Gene Block</a> “has made it very clear in his communications that EH&S has the authority to shut down labs, and we take that responsibility very seriously,” Gibson says. If a lab is shut down, it can’t reopen until the professor appears before the university’s newly formed safety committee and provides an action plan to improve safety in the lab.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">The safety committee recently issued its first report to the chancellor. It said that UCLA still has more to do to develop a top-down culture of safety consciousness and suggests that reward systems should be developed to encourage compliance with safety procedures in labs. It also says that the university needs to increase accountability and oversight, improve and expand outreach and training, improve laboratory design, and improve inventory and record keeping.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-73 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-400554376a" class="cmp-container">
|
||
|
||
<div class="sponsoredContent">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="adunit" data-adunit="cen" data-dimensions="fluid" data-targeting='{"Topic":"safety,labSafety","pos":""}'></div>
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">As UCLA works to develop a new safety culture on campus, it needs to watch that an adversarial relationship doesn’t build up between researchers and EH&S officers, says <a href="http://web.mit.edu/Chemistry/www/faculty/danheiser.html" shape="rect" target="_blank">Rick L. Danheiser</a>, a chemistry professor and chair of his department’s safety committee at <a href="http://www.mit.edu/" shape="rect" target="_blank">Massachusetts Institute of Technology</a>. MIT has twice won the ACS <a href="http://membership.acs.org/c/chas/" shape="rect" target="_blank">Division of Chemical Health & Safety</a>’s <a href="http://membership.acs.org/c/chas/awards/awards-criteria.htm#College%20and%20University%20Health%20and%20Safety%20Award%20Criteria" shape="rect" target="_blank">College & University Health & Safety Award</a>, in 1991 and again in 2005.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">In Danheiser’s opinion, the key to his department’s success in developing a safe laboratory environment is that the department recruited graduate students and postdocs to help develop the policies and procedures that they would be expected to follow. “Everything is done in groups that involve the faculty and graduate student or postdoctoral researchers so that all regard it as an enterprise that we are all involved in,” Danheiser says. “In my experience that’s really important in ensuring that there’s full compliance.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">This approach includes having faculty and student members of the safety committee participate in unannounced laboratory inspections twice a year. Having that self-inspection component also helps prevent adversarial relationships from developing between researchers and safety officials, Danheiser says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">When Danheiser talks to new students and postdocs joining his lab, he emphasizes to them that it is their responsibility to evaluate whether or not they are comfortable performing an experiment. “I expect them to be able to make the determination whether they are certain they have enough knowledge and experience to do an experiment safely,” Danheiser says. If not, then they need to seek assistance from others in the group, him, the department safety coordinator, or even from MIT EH&S.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">Danheiser adds that one issue of concern at MIT has involved postdocs who were trained in other countries and thus are used to a different laboratory culture. “It’s sometimes more difficult to retrain them to follow the rules we have, as compared to a beginning graduate student,” Danheiser says.</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content"><strong>In those cases,</strong> it’s not only important to have the faculty adviser make the rules clear, but also to have a culture that reinforces them through peer pressure in the lab, Danheiser says. “If the great majority of people enthusiastically comply with the safety program and support it and understand why all of the rules are in place to protect people, then they can police themselves.”</p>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<p class="article-content">One of the challenges in lab safety is that the lab setting becomes very familiar to people who work in it day in and day out. “When you do something over and over, your perception of the risk may change even though the risk itself doesn’t change,” says Lawrence M. Gibbs, associate vice provost for EH&S at Stanford. His department tries to use information about incidents to remind researchers not to get too comfortable. In that way, hopefully something positive can come out of Sangji’s death. “It was a tragic, tragic incident,” Gibbs says. “We all have to learn from it and use it as reinforcement to help people understand the potential risks of working with high-hazard materials in this environment.</p>
|
||
|
||
|
||
|
||
|
||
|
||
<div class="long-form-text-par-80 container responsivegrid">
|
||
|
||
|
||
|
||
|
||
<div id="container-3ad3633bd1" class="cmp-container">
|
||
|
||
<div class="copyright"><!-- Include Author Auto BackByline Component -->
|
||
<div style="clear: both;"></div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="article-copyright mt-5 mb-5">
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
|
||
<ul class="article-copyright--actions">
|
||
|
||
<li>
|
||
<a href="mailto:cenfeedback@acs.org?subject=Contact the reporter : Learning From UCLA&body=https://cen.acs.org/articles/87/i31/Learning-UCLA.html">Send the reporter feedback </a>
|
||
</li>
|
||
|
||
<li>
|
||
<a href="https://cen.acs.org/static/about/contactus.html">Submit a Letter to the Editor for publication </a>
|
||
</li>
|
||
</ul>
|
||
</div>
|
||
|
||
<div class="col-md-6">
|
||
<div class="article-copyright--statement">
|
||
|
||
|
||
<li>Chemical & Engineering News</li>
|
||
|
||
|
||
<li>ISSN <span>0009-2347</li>
|
||
|
||
<li>Copyright ©
|
||
2026 American Chemical Society</li>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', function () {
|
||
|
||
// Check if the #enableFadeEffect element exists
|
||
if (document.querySelector('#enableFadeEffect')) {
|
||
// Select all .bespokeText elements
|
||
const bespokeTexts = document.querySelectorAll('.bespokeText');
|
||
|
||
if (bespokeTexts.length > 0) {
|
||
// Get the last .bespokeText in the DOM
|
||
const lastBespokeText = bespokeTexts[bespokeTexts.length - 1];
|
||
|
||
// Find the .article-body inside the last .bespokeText
|
||
const articleBody = lastBespokeText.querySelector('.article-body');
|
||
|
||
if (articleBody) {
|
||
articleBody.classList.add('has-no-access');
|
||
}
|
||
}
|
||
}
|
||
});
|
||
</script>
|
||
</div>
|
||
<div class="socialSharing aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
<!-- Share article preview START -->
|
||
|
||
<div class="article-share-preview mt-5 mb-5">
|
||
<div class="article-share-preview--header align-items-center justify-content-between">
|
||
<h2 class="fw-bold fs-5 fs-md-6 mb-0">Enjoyed the article?</h2>
|
||
<a class="btn-primary-social btn-icon-end" onclick="openShareModal(event)" aria-label="Share, Learning From UCLA" data-title="Learning From UCLA" data-print="true" role="button">Share
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-share-fill" viewBox="0 0 16 16">
|
||
<path d="M11 2.5a2.5 2.5 0 1 1 .603 1.628l-6.718 3.12a2.5 2.5 0 0 1 0 1.504l6.718 3.12a2.5 2.5 0 1 1-.488.876l-6.718-3.12a2.5 2.5 0 1 1 0-3.256l6.718-3.12A2.5 2.5 0 0 1 11 2.5"/>
|
||
</svg>
|
||
</a>
|
||
</div>
|
||
<div class="article-share-preview--body">
|
||
|
||
<article class="article-item article-item--horz" role="presentation">
|
||
<div class="article-item--content">
|
||
<div class="article-item--title" role="heading" aria-level="3">
|
||
<a>Learning From UCLA</a>
|
||
</div>
|
||
<div class="article-item--description">
|
||
Details of the experiment that led to a researcher’s death prompt evaluations of academic safety practices
|
||
</div>
|
||
<div class="article-item--meta">
|
||
<span class="url">cen.acs.org</span>
|
||
</div>
|
||
</div>
|
||
<!-- Check if video exists first, then fallback to image -->
|
||
|
||
|
||
<div class="article-item--image">
|
||
<a>
|
||
<img data-lazy-src="https://s7d1.scene7.com/is/image/CENODS/8731sci1_notebookcxd_lg:Widescreen?$responsive$&qlt=90,0&resMode=sharp2&fmt=webp&op_sharpen=1"/>
|
||
</a>
|
||
</div>
|
||
|
||
|
||
</article>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Share article preview END -->
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div class="xfpage page basicpage">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="xf-content-height">
|
||
<div class="root responsivegrid">
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--16 aem-Grid--default--16 ">
|
||
|
||
<div class="noAccess aem-GridColumn aem-GridColumn--default--12"><!-- Edit mode placeholder -->
|
||
|
||
|
||
<!-- Initialize models -->
|
||
|
||
|
||
|
||
<!-- Check for Anonymous User -->
|
||
|
||
|
||
<!-- Check for Logged-in User but not Authorized -->
|
||
|
||
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
var link = document.querySelector('.noaccess-subscription-link');
|
||
if (link) {
|
||
link.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
var baseUrl = link.getAttribute('data-subscription-url');
|
||
var currentUrl = window.location.href;
|
||
var separator = baseUrl.includes('?') ? '&' : '?';
|
||
var targetUrl = baseUrl + separator + 'redirectUrl=' + encodeURIComponent(currentUrl);
|
||
window.location.href = targetUrl;
|
||
});
|
||
}
|
||
var loggedInLink = document.querySelector('.noaccess-loggedin-subscription-link');
|
||
if (loggedInLink) {
|
||
loggedInLink.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
var baseUrl = loggedInLink.getAttribute('data-subscription-url');
|
||
var currentUrl = window.location.href;
|
||
var separator = baseUrl.includes('?') ? '&' : '?';
|
||
var targetUrl = baseUrl + separator + 'redirectUrl=' + encodeURIComponent(currentUrl);
|
||
window.location.href = targetUrl;
|
||
});
|
||
}
|
||
var subscribeButton = document.getElementById('subscribe-button-no-access');
|
||
if (subscribeButton) {
|
||
subscribeButton.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
var baseUrl = subscribeButton.getAttribute('data-subscription-url');
|
||
var currentUrl = window.location.href;
|
||
var separator = baseUrl.includes('?') ? '&' : '?';
|
||
var targetUrl = baseUrl + separator + 'redirectUrl=' + encodeURIComponent(currentUrl);
|
||
window.location.href = targetUrl;
|
||
});
|
||
}
|
||
});
|
||
</script></div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="col-xl-3 d-none d-xl-block article-right">
|
||
<section>
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--12 aem-Grid--default--12 ">
|
||
|
||
<div class="genericAds aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="advertisement mb-5">
|
||
<div class="advertisement-label" role="region" aria-label="Advertisement-genericAds3">Advertisement</div>
|
||
<div class="adunit" data-adunit="cen" data-dimensions="300x250" data-targeting='{"Topic":"safety,labSafety,,,,","Keyword":"Sheri Sangji, UCLA, Cal/OSHA, Safety"}'>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</section>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</article>
|
||
<!-- Recirculation START -->
|
||
<section>
|
||
|
||
<!-- Recirculation START -->
|
||
|
||
<section class="recirculation p-lg-5 pt-4 p-3 pb-4">
|
||
|
||
<div class="container-fluid">
|
||
<div class="row">
|
||
|
||
|
||
<div class="col-xl-8 col-lg-8">
|
||
<h2 class="mb-lg-5 mb-4 fw-bold" id="more-in-heading">
|
||
More in
|
||
|
||
<a href="/topics/safety/lab-safety.html" class="testing" aria-labelledby="more-in-heading">
|
||
Lab Safety
|
||
</a>
|
||
|
||
</h2>
|
||
|
||
<!-- Piano Container (Priority) -->
|
||
<div class="row gx-lg-5" id="articlepagerecirculation"></div>
|
||
|
||
<!-- Servlet fallback (if piano is empty) -->
|
||
<div id="aem-recirculation-wrapper">
|
||
<div class="row gx-lg-5 mb-lg-5" id="recirculation-list" data-current-page-path="/content/cen/articles/87/i31/Learning-UCLA" data-primary-tag="safety">
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="col-xl-3 offset-xl-1 col-lg-4">
|
||
|
||
<!-- Tabbed Article List START -->
|
||
<div class="tabbed-article-list">
|
||
<ul class="nav nav-underline" id="tabs-editor-popular" role="tablist">
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link active" id="editorspicks-tab" data-bs-toggle="tab" data-bs-target="#editorspicks-tab-pane" type="button" role="tab" aria-controls="editorspicks-tab-pane" aria-selected="true">Editor's Picks</button>
|
||
</li>
|
||
<li class="nav-item" role="presentation">
|
||
<button class="nav-link" id="popular-tab" data-bs-toggle="tab" data-bs-target="#popular-tab-pane" type="button" role="tab" aria-controls="popular-tab-pane" aria-selected="false">Popular</button>
|
||
</li>
|
||
</ul>
|
||
<div class="tab-content" id="tabs-editor-popular-content">
|
||
<div class="tab-pane fade show active" id="editorspicks-tab-pane" role="tabpanel" aria-labelledby="editorspicks-tab">
|
||
<div class="tab-body">
|
||
<ol class="tab-body--list" id="editorspicks-tab-list">
|
||
</ol>
|
||
</div>
|
||
|
||
</div>
|
||
<div class="tab-pane fade" id="popular-tab-pane" role="tabpanel" aria-labelledby="popular-tab">
|
||
<div class="tab-body">
|
||
<ol class="tab-body--list" id="popular-tab-list">
|
||
</ol>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<!-- Tabbed Article List END -->
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
</section>
|
||
|
||
<!-- Recirculation END --></section>
|
||
<section>
|
||
|
||
<span class="backtotop-tooltip d-none d-lg-block">
|
||
<span class="tooltip-wrapper" style="width: 54px;">
|
||
<span id="topMessage" class="tooltip-text" role="tooltip">Return to top</span>
|
||
<button type="button" id="backToTop" aria-describedby="topMessage" class="btn btn-dark btn-lg btn-backtotop tooltip-btn rounded p-3" aria-label="Return to top">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" fill="currentColor" class="bi bi-arrow-up" viewBox="0 0 16 16">
|
||
<path fill-rule="evenodd" d="M8 15a.5.5 0 0 0 .5-.5V2.707l3.146 3.147a.5.5 0 0 0 .708-.708l-4-4a.5.5 0 0 0-.708 0l-4 4a.5.5 0 1 0 .708.708L7.5 2.707V14.5a.5.5 0 0 0 .5.5"/>
|
||
</svg>
|
||
</button>
|
||
</span>
|
||
</span>
|
||
|
||
<script>
|
||
document.addEventListener("DOMContentLoaded", function () {
|
||
const tooltip = document.querySelector(".backtotop-tooltip");
|
||
|
||
function updateTooltipPosition() {
|
||
const articleMeter = document.querySelector(".article-meter");
|
||
tooltip.style.bottom = articleMeter ? "175px" : "127px";
|
||
}
|
||
|
||
// Initial position set
|
||
updateTooltipPosition();
|
||
|
||
// Observe changes in body subtree to detect addition/removal of .article-meter
|
||
const observer = new MutationObserver((mutationsList) => {
|
||
for (const mutation of mutationsList) {
|
||
if (
|
||
mutation.type === "childList" &&
|
||
(Array.from(mutation.addedNodes).some(node => node.classList && node.classList.contains('article-meter')) ||
|
||
Array.from(mutation.removedNodes).some(node => node.classList && node.classList.contains('article-meter')))
|
||
) {
|
||
updateTooltipPosition();
|
||
break;
|
||
}
|
||
}
|
||
});
|
||
|
||
observer.observe(document.body, { childList: true, subtree: true });
|
||
});
|
||
|
||
</script></section>
|
||
</main>
|
||
<div class="xfpage page basicpage">
|
||
|
||
|
||
|
||
|
||
|
||
<div class="xf-content-height">
|
||
<div class="root responsivegrid">
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--16 aem-Grid--default--16 ">
|
||
|
||
<div class="meteredBar aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="meteredbar-outer-container grid-x meteredbar-mustard " id="cen-main-metered-bar">
|
||
|
||
|
||
<div class="article-meter alert fixed-bottom alert-dismissible fade show" role="alert" id="article-meter">
|
||
<div class="container">
|
||
<div class="article-meter--row">
|
||
<div class="article-meter--column">
|
||
<div class="article-meter--wrapper">
|
||
<p class="article-meter--counter">2/3</p>
|
||
<p class="article-meter--text">FREE ARTICLES LEFT THIS MONTH</p>
|
||
</div>
|
||
</div>
|
||
<div class="article-meter--column">
|
||
<p class="mb-0 d-flex align-items-center">
|
||
<span class="article-meter--message ">Chemistry matters. Join us to get the news you need.</span>
|
||
<a tabindex="0" class="btn btn-primary btn-sm btn-icon-end text-capitalize tooltip-wrapper metered-bar-subscribe" aria-label="Get access to more C&EN articles" type="button" data-subscription-url="/subscribe.html">
|
||
|
||
|
||
|
||
<span class="tooltip-text" aria-hidden="true">Get More </span>
|
||
Get More
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
|
||
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
|
||
</svg>
|
||
</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<button tabindex="0" type="button" class="btn-close tooltip-wrapper" data-bs-dismiss="alert" aria-label="Close">
|
||
<span class="tooltip-text positionTooltip" aria-hidden="true">Close</span>
|
||
</button>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script>
|
||
var meteredJson = '{"user_type":"anonymous","user_id":"5C6E75DE-A243-451A-A721-693585869D67","article_count":2,"threshold":3,"acsType":"A"}';
|
||
|
||
function getCookieValue(name) {
|
||
var escapedName = name.replace(/[.*+?^$()|[\]{}\\]/g, '\\$&');
|
||
var match = document.cookie.match(new RegExp('(?:^|; )' + escapedName + '=([^;]*)'));
|
||
return match ? decodeURIComponent(match[1]) : null;
|
||
}
|
||
|
||
function parseAccessList(raw) {
|
||
if (!raw) {
|
||
return null;
|
||
}
|
||
|
||
var candidates = [raw];
|
||
try {
|
||
candidates.push(decodeURIComponent(raw));
|
||
} catch (e) {}
|
||
try {
|
||
candidates.push(decodeURIComponent(decodeURIComponent(raw)));
|
||
} catch (e) {}
|
||
|
||
for (var i = 0; i < candidates.length; i++) {
|
||
var value = candidates[i];
|
||
if (!value) {
|
||
continue;
|
||
}
|
||
try {
|
||
var parsed = JSON.parse(value);
|
||
if (Array.isArray(parsed)) {
|
||
return parsed;
|
||
}
|
||
if (typeof parsed === 'string') {
|
||
var reparsed = JSON.parse(parsed);
|
||
if (Array.isArray(reparsed)) {
|
||
return reparsed;
|
||
}
|
||
}
|
||
} catch (e) {}
|
||
}
|
||
return null;
|
||
}
|
||
|
||
function getInstituteNameFromAccessList() {
|
||
try {
|
||
var accessListRaw = getCookieValue('_pc_accessList');
|
||
var accessList = parseAccessList(accessListRaw);
|
||
if (!Array.isArray(accessList) || accessList.length === 0) {
|
||
return null;
|
||
}
|
||
|
||
var firstEntry = accessList[0] || {};
|
||
return firstEntry.resourceName || firstEntry.resoruceName || null;
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
function getInstitutionTypeFromAccessList() {
|
||
try {
|
||
var accessListRaw = getCookieValue('_pc_accessList');
|
||
var accessList = parseAccessList(accessListRaw);
|
||
if (!Array.isArray(accessList) || accessList.length === 0) {
|
||
return null;
|
||
}
|
||
|
||
var firstEntry = accessList[0] || {};
|
||
return firstEntry.description || null;
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
function parseJsonSafe(raw) {
|
||
try {
|
||
return raw ? JSON.parse(raw) : null;
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
function parseCenUserCookie() {
|
||
try {
|
||
var cenUserRaw = getCookieValue('cen_user');
|
||
if (!cenUserRaw) {
|
||
return null;
|
||
}
|
||
return parseJsonSafe(atob(cenUserRaw));
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
function parseCenLoginCookieData() {
|
||
var raw = getCookieValue('cenLogin4');
|
||
if (!raw) {
|
||
return null;
|
||
}
|
||
|
||
try {
|
||
var decoded = decodeURIComponent(raw);
|
||
// Legacy/readable format used by frontend user.js: <prefix>+<base64-json>
|
||
var plusIdx = decoded.indexOf('+');
|
||
if (plusIdx > -1 && plusIdx < decoded.length - 1) {
|
||
var possibleJson = atob(decoded.substring(plusIdx + 1));
|
||
var parsed = parseJsonSafe(possibleJson);
|
||
if (parsed) {
|
||
return parsed;
|
||
}
|
||
}
|
||
} catch (e) {
|
||
// Continue to next fallback.
|
||
}
|
||
|
||
try {
|
||
// Fallback if raw cookie itself is a base64 encoded JSON blob
|
||
var parsedRaw = parseJsonSafe(atob(raw));
|
||
if (parsedRaw) {
|
||
return parsedRaw;
|
||
}
|
||
} catch (e) {
|
||
// ignore
|
||
}
|
||
|
||
return null;
|
||
}
|
||
|
||
function hasPianoIpAccess() {
|
||
try {
|
||
var accessListRaw = getCookieValue('_pc_accessList');
|
||
var accessList = parseAccessList(accessListRaw);
|
||
return Array.isArray(accessList) && accessList.length > 0;
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function hasEmailDomainContractInAccessList() {
|
||
try {
|
||
var accessListRaw = getCookieValue('_pc_accessList');
|
||
var accessList = parseAccessList(accessListRaw);
|
||
if (!Array.isArray(accessList) || accessList.length === 0) {
|
||
return false;
|
||
}
|
||
for (var i = 0; i < accessList.length; i++) {
|
||
var entry = accessList[i] || {};
|
||
if (entry.type === 'email_domain_contract') {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function isTruthyIsIp(value) {
|
||
if (value === true || value === 1) {
|
||
return true;
|
||
}
|
||
if (value === false || value === 0 || value == null) {
|
||
return false;
|
||
}
|
||
var s = String(value).trim().toLowerCase();
|
||
return s === 'true' || s === '1';
|
||
}
|
||
|
||
/**
|
||
* First {@code termId} on a {@code _pc_accessList} row with truthy {@code isIp} only (matches server).
|
||
*/
|
||
function getTermIdForPianoContractListFromAccessList() {
|
||
try {
|
||
var accessListRaw = getCookieValue('_pc_accessList');
|
||
var accessList = parseAccessList(accessListRaw);
|
||
if (!Array.isArray(accessList)) {
|
||
return null;
|
||
}
|
||
for (var i = 0; i < accessList.length; i++) {
|
||
var entry = accessList[i] || {};
|
||
if (!isTruthyIsIp(entry.isIp)) {
|
||
continue;
|
||
}
|
||
var tid = entry.termId;
|
||
if (tid != null && String(tid).trim()) {
|
||
return String(tid).trim();
|
||
}
|
||
}
|
||
return null;
|
||
} catch (e) {
|
||
return null;
|
||
}
|
||
}
|
||
|
||
function hasPianoAccessListIpTermIdForContractList() {
|
||
return getTermIdForPianoContractListFromAccessList() != null;
|
||
}
|
||
|
||
function hasInstitutionTypeInAccessList() {
|
||
try {
|
||
var accessListRaw = getCookieValue('_pc_accessList');
|
||
var accessList = parseAccessList(accessListRaw);
|
||
if (!Array.isArray(accessList) || accessList.length === 0) {
|
||
return false;
|
||
}
|
||
for (var i = 0; i < accessList.length; i++) {
|
||
var entry = accessList[i] || {};
|
||
if (Object.prototype.hasOwnProperty.call(entry, 'type') && entry.type !== null && entry.type !== '') {
|
||
return true;
|
||
}
|
||
}
|
||
return false;
|
||
} catch (e) {
|
||
return false;
|
||
}
|
||
}
|
||
|
||
function isInstitutionOnlyAccess() {
|
||
return getCookieValue('cen_inst') === '1';
|
||
}
|
||
|
||
function hasTruthyInstitution(userData) {
|
||
if (!userData || userData.institution === undefined || userData.institution === null) {
|
||
return false;
|
||
}
|
||
var v = userData.institution;
|
||
return v === true || v === 'true' || v === 1 || v === '1';
|
||
}
|
||
|
||
function isNamedNonInstitutionUser(userData) {
|
||
if (!userData) {
|
||
return false;
|
||
}
|
||
var fname = userData.fname || '';
|
||
if (!fname || fname === 'null') {
|
||
return false;
|
||
}
|
||
return fname.toLowerCase() !== 'institution user';
|
||
}
|
||
|
||
function resolveAccessType(userStore) {
|
||
if (hasEmailDomainContractInAccessList()) {
|
||
return 'institutional_login';
|
||
}
|
||
|
||
var rawPianoList = hasPianoIpAccess();
|
||
var hasInstitutionType = hasInstitutionTypeInAccessList();
|
||
var institutionOnly = isInstitutionOnlyAccess();
|
||
var hasCenLogin4Cookie = !!getCookieValue('cenLogin4');
|
||
var loginData = parseCenLoginCookieData();
|
||
var cenUserData = parseCenUserCookie();
|
||
var institutionFlag = hasTruthyInstitution(loginData) || hasTruthyInstitution(cenUserData);
|
||
var hasNamedUserData = isNamedNonInstitutionUser(loginData) || isNamedNonInstitutionUser(cenUserData);
|
||
// Prevent stale cen_user display data from classifying anonymous IP sessions as logged-in users.
|
||
var isIndividualLoggedIn = hasCenLogin4Cookie && hasNamedUserData && !institutionFlag && !institutionOnly;
|
||
|
||
// institutional_login when _pc_accessList has type "email_domain_contract" (handled above).
|
||
// IP-authenticated (site-license anonymous): _pc_accessList but no type on entries.
|
||
var inIpMeteringContext = institutionOnly || (rawPianoList && !hasInstitutionType);
|
||
|
||
// Do not rely on cenLogin4 presence for institutional vs IP-only split.
|
||
// institutional_login from _pc_accessList is only for type "email_domain_contract" (see early return).
|
||
if (institutionFlag) {
|
||
if (rawPianoList) {
|
||
return 'ip_authenticated';
|
||
}
|
||
if (institutionOnly) {
|
||
return 'ip_authenticated';
|
||
}
|
||
return 'institutional_login';
|
||
}
|
||
|
||
if (inIpMeteringContext) {
|
||
if (isIndividualLoggedIn) {
|
||
return 'ip_authenticated_individual_login';
|
||
}
|
||
return 'ip_authenticated';
|
||
}
|
||
|
||
if (isIndividualLoggedIn) {
|
||
return 'individual_login';
|
||
}
|
||
|
||
return 'anonymous';
|
||
}
|
||
|
||
var meteredUserStore = {};
|
||
try {
|
||
meteredUserStore = meteredJson ? JSON.parse(meteredJson) : {};
|
||
} catch (e) {
|
||
meteredUserStore = {};
|
||
}
|
||
|
||
meteredUserStore.institute_name = getInstituteNameFromAccessList();
|
||
var institutionType = getInstitutionTypeFromAccessList();
|
||
if (institutionType) {
|
||
meteredUserStore.institution_type = institutionType;
|
||
}
|
||
meteredUserStore.access_type = resolveAccessType(meteredUserStore);
|
||
localStorage.setItem("meteredUserStore", JSON.stringify(meteredUserStore));
|
||
|
||
/** Full Piano contract/list proxy response (see {@code PianoAccessContractListServlet}). */
|
||
var LS_PIANO_CONTRACT = 'cenPianoContractList';
|
||
var __cenContractListFetchInFlight = false;
|
||
/** Poll timer while waiting for Piano to set {@code _pc_accessList}. */
|
||
var __cenAccessListPollTimer = null;
|
||
var __cenPcAccessListWaitScheduled = false;
|
||
var CEN_PIANO_ACCESS_LIST_POLL_MS = 200;
|
||
var CEN_PIANO_ACCESS_LIST_MAX_WAIT_MS = 20000;
|
||
|
||
function stopWaitingForPcAccessListCookie() {
|
||
if (__cenAccessListPollTimer != null) {
|
||
clearTimeout(__cenAccessListPollTimer);
|
||
__cenAccessListPollTimer = null;
|
||
}
|
||
}
|
||
|
||
/** True when cookie exists, is not email-domain-only, and has a {@code termId} on a row with truthy {@code isIp}. */
|
||
function isReadyForPianoContractListFetch() {
|
||
if (hasEmailDomainContractInAccessList()) {
|
||
return false;
|
||
}
|
||
return !!(hasPianoIpAccess() && getTermIdForPianoContractListFromAccessList());
|
||
}
|
||
|
||
/**
|
||
* Polls until {@code _pc_accessList} is usable for contract-list (Piano often sets it shortly after load)
|
||
* or until {@code CEN_PIANO_ACCESS_LIST_MAX_WAIT_MS}. Coexists with {@code piano:accessListReady}.
|
||
*/
|
||
function waitForPcAccessListCookieThenFetchPianoContractList() {
|
||
if (hasEmailDomainContractInAccessList()) {
|
||
return;
|
||
}
|
||
if (__cenAccessListPollTimer != null) {
|
||
return;
|
||
}
|
||
var deadline = Date.now() + CEN_PIANO_ACCESS_LIST_MAX_WAIT_MS;
|
||
|
||
function tick() {
|
||
__cenAccessListPollTimer = null;
|
||
if (hasEmailDomainContractInAccessList()) {
|
||
return;
|
||
}
|
||
if (isReadyForPianoContractListFetch()) {
|
||
fetchPianoContractListForMeteredBar();
|
||
return;
|
||
}
|
||
if (Date.now() >= deadline) {
|
||
return;
|
||
}
|
||
__cenAccessListPollTimer = setTimeout(tick, CEN_PIANO_ACCESS_LIST_POLL_MS);
|
||
}
|
||
|
||
__cenAccessListPollTimer = setTimeout(tick, 0);
|
||
}
|
||
|
||
function schedulePcAccessListWaitOnce() {
|
||
if (__cenPcAccessListWaitScheduled) {
|
||
return;
|
||
}
|
||
__cenPcAccessListWaitScheduled = true;
|
||
waitForPcAccessListCookieThenFetchPianoContractList();
|
||
}
|
||
|
||
/**
|
||
* Reads {@code pianoResponse.contracts[]} — prefers the row whose {@code contract_id} matches
|
||
* {@code accessListTermId}, otherwise the first row with a non-empty {@code description}.
|
||
*/
|
||
function extractContractDescriptionFromPianoWrapper(wrapper) {
|
||
if (!wrapper || !wrapper.pianoResponse) {
|
||
return null;
|
||
}
|
||
var contracts = wrapper.pianoResponse.contracts;
|
||
if (!Array.isArray(contracts) || contracts.length === 0) {
|
||
return null;
|
||
}
|
||
var termId = wrapper.accessListTermId ? String(wrapper.accessListTermId).trim() : '';
|
||
var fallbackDesc = null;
|
||
for (var i = 0; i < contracts.length; i++) {
|
||
var c = contracts[i] || {};
|
||
var d = c.description != null && String(c.description).trim() ? String(c.description).trim() : '';
|
||
if (!d) {
|
||
continue;
|
||
}
|
||
if (termId && String(c.contract_id || '').trim() === termId) {
|
||
return d;
|
||
}
|
||
if (!fallbackDesc) {
|
||
fallbackDesc = d;
|
||
}
|
||
}
|
||
return fallbackDesc;
|
||
}
|
||
|
||
/** Writes {@code institution_type} from Piano contract/list into {@code localStorage.meteredUserStore}. */
|
||
function mergePianoContractListIntoMeteredUserStore(wrapper) {
|
||
var desc = extractContractDescriptionFromPianoWrapper(wrapper);
|
||
if (!desc) {
|
||
return;
|
||
}
|
||
try {
|
||
var raw = localStorage.getItem('meteredUserStore');
|
||
var store = raw ? JSON.parse(raw) : {};
|
||
if (!store || typeof store !== 'object') {
|
||
store = {};
|
||
}
|
||
store.institution_type = desc;
|
||
if (wrapper && wrapper.accessListTermId) {
|
||
store.piano_contract_list_term_id = wrapper.accessListTermId;
|
||
}
|
||
localStorage.setItem('meteredUserStore', JSON.stringify(store));
|
||
} catch (e) {}
|
||
}
|
||
|
||
function fetchPianoContractListForMeteredBar() {
|
||
if (!hasPianoIpAccess() || hasEmailDomainContractInAccessList()) {
|
||
return;
|
||
}
|
||
var termId = getTermIdForPianoContractListFromAccessList();
|
||
if (!termId) {
|
||
return;
|
||
}
|
||
if (__cenContractListFetchInFlight) {
|
||
return;
|
||
}
|
||
__cenContractListFetchInFlight = true;
|
||
var url = '/acs/piano/contract-list-by-access?termId=' + encodeURIComponent(termId);
|
||
fetch(url, { credentials: 'same-origin', redirect: 'follow' })
|
||
.then(function(response) {
|
||
return response.json().then(function(data) {
|
||
return { ok: response.ok, data: data };
|
||
});
|
||
})
|
||
.then(function(result) {
|
||
if (!result || !result.data) {
|
||
return;
|
||
}
|
||
if (result.data.skipped) {
|
||
return;
|
||
}
|
||
if (!result.ok || result.data.error) {
|
||
return;
|
||
}
|
||
try {
|
||
localStorage.setItem(LS_PIANO_CONTRACT, JSON.stringify(result.data));
|
||
} catch (e) {}
|
||
mergePianoContractListIntoMeteredUserStore(result.data);
|
||
})
|
||
.catch(function() {})
|
||
.finally(function() {
|
||
__cenContractListFetchInFlight = false;
|
||
});
|
||
}
|
||
|
||
window.addEventListener('piano:accessListReady', function() {
|
||
stopWaitingForPcAccessListCookie();
|
||
fetchPianoContractListForMeteredBar();
|
||
});
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', schedulePcAccessListWaitOnce, { once: true });
|
||
} else {
|
||
schedulePcAccessListWaitOnce();
|
||
}
|
||
window.addEventListener('load', schedulePcAccessListWaitOnce, { once: true });
|
||
</script>
|
||
<script>
|
||
if (window.frameElement) {
|
||
window.showloginpopup = function (type) {
|
||
window.parent.showloginpopup(type);
|
||
}
|
||
}
|
||
</script>
|
||
<script>
|
||
document.addEventListener('DOMContentLoaded', function() {
|
||
var btn = document.querySelector('.metered-bar-subscribe');
|
||
if (btn) {
|
||
btn.addEventListener('click', function(e) {
|
||
e.preventDefault();
|
||
var baseUrl = btn.getAttribute('data-subscription-url');
|
||
var currentUrl = window.location.href;
|
||
// Append redirectUrl as a query param, handling existing params
|
||
var separator = baseUrl.includes('?') ? '&' : '?';
|
||
var targetUrl = baseUrl + separator + 'redirectUrl=' + encodeURIComponent(currentUrl);
|
||
window.location.href = targetUrl;
|
||
});
|
||
}
|
||
|
||
// Explicitly initialize Bootstrap Alert and add manual dismiss handler as fallback
|
||
var alertElement = document.getElementById('article-meter');
|
||
var closeButton = alertElement ? alertElement.querySelector('[data-bs-dismiss="alert"]') : null;
|
||
|
||
if (closeButton && alertElement) {
|
||
// Manual dismiss handler as fallback (in case Bootstrap handler doesn't work)
|
||
closeButton.addEventListener('click', function(e) {
|
||
// Dispatch the close.bs.alert event before closing (for cookieBar margin management)
|
||
var closeEvent = new Event('close.bs.alert', { bubbles: true, cancelable: true });
|
||
alertElement.dispatchEvent(closeEvent);
|
||
|
||
// Use Bootstrap's Alert API if available
|
||
if (window.bootstrap && window.bootstrap.Alert) {
|
||
var bsAlert = window.bootstrap.Alert.getOrCreateInstance(alertElement);
|
||
bsAlert.close();
|
||
} else {
|
||
// Fallback: manually remove the alert with proper transition
|
||
alertElement.classList.remove('show');
|
||
setTimeout(function() {
|
||
// Dispatch closed.bs.alert event after removal
|
||
var closedEvent = new Event('closed.bs.alert', { bubbles: true });
|
||
document.dispatchEvent(closedEvent);
|
||
alertElement.remove();
|
||
}, 150); // Wait for fade transition
|
||
}
|
||
});
|
||
}
|
||
});
|
||
</script>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
<div class="experiencefragment aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div class="xf-content-height">
|
||
<div class="root responsivegrid">
|
||
|
||
|
||
<div class="aem-Grid aem-Grid--16 aem-Grid--default--16 ">
|
||
|
||
<div class="pre-footer aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
<aside id="prefooter" class="site-prefooter pt-xl-5 pb-xl-5 container-xl" role="complementary" aria-label="Pre-footer" style="display: none;">
|
||
<div class="row">
|
||
<!-- Newsletter Section -->
|
||
<div id="prefooter-newsletter" class="col-lg-6 pe-lg-5 site-prefooter--content mx-auto newsletter-section">
|
||
<div class="row">
|
||
<div class="col-auto d-none d-lg-block">
|
||
<img data-lazy-src="/content/dam/acs-cen-redesign/2025/logo/icon-prefooter-newsletter.svg" class="img-fluid prefooter-img" decoding="async"/>
|
||
</div>
|
||
<div class="col">
|
||
<h4 class="fs-4 mt-3 mt-lg-0 fw-semibold" aria-level="2">C&EN's Elements Newsletter</h4>
|
||
<p class="text-medium-gray">Stay on top of the chemistry world with your editor-curated roundup of C&EN stories</p>
|
||
<div id="form_output"></div>
|
||
<form data-primary-tag="341921710" class="mb-3" role="form" method="post" action="#" name="CENNonMemberSubscriptonWidget2023" id="form725">
|
||
<div class="input-group">
|
||
<div class="form-floating">
|
||
<input type="email" class="form-control" id="EmailAddress" placeholder="Email Address" aria-label="Email Address" aria-describedby="subscribe-button"/>
|
||
<label for="EmailAddress">Email Address</label>
|
||
</div>
|
||
<button class="btn btn-primary" type="submit" id="subscribe-button">
|
||
Subscribe
|
||
</button>
|
||
</div>
|
||
<div id="accessible-alert" role="alert" aria-live="assertive" aria-atomic="true" style="display: none;"></div>
|
||
</form>
|
||
<div>
|
||
<p class="font-12"><a href="https://www.acs.org/privacy.html">Privacy Policy</a></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- Membership Section -->
|
||
<div id="prefooter-membership" class="col-lg-6 ps-lg-5 site-prefooter--content mx-auto membership-section">
|
||
<div class="row">
|
||
<div class="col-auto d-none d-lg-block">
|
||
<img data-lazy-src="/content/dam/acs-cen-redesign/2025/logo/icon-prefooter-subscribe.svg" class="img-fluid prefooter-img" decoding="async"/>
|
||
</div>
|
||
|
||
<div class="col">
|
||
<h3 class="fs-4 mt-3 mt-lg-0 fw-semibold">Chemistry News That Matters</h3>
|
||
<p class="text-medium-gray">C&EN empowers those in and around the global chemical enterprise</p>
|
||
<p>
|
||
<a href="/subscribe.html" class="link-arrow">
|
||
<span id="upgrade-text" style="display:none;">
|
||
Upgrade
|
||
</span>
|
||
<span id="subscribe-text" style="display:inline;">
|
||
Subscribe to C&EN
|
||
</span>
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
|
||
<path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708"/>
|
||
</svg>
|
||
</a>
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</aside></div>
|
||
<div class="acsFooter aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- Debug section -->
|
||
<div style="display: none">
|
||
<h4>Debug leftColumns:</h4>
|
||
<p>leftColumns exists: no</p>
|
||
|
||
<!-- Try to output some raw data -->
|
||
|
||
</div>
|
||
|
||
|
||
<!-- Footer START -->
|
||
<footer class="site-footer" role="contentinfo">
|
||
<div class="row">
|
||
<div class="col-xl-4">
|
||
<p class="site-tagline">The Edge in Chemistry News</p>
|
||
</div>
|
||
<div class="col-xl-2 col-lg-3 col-md-3 ms-md-auto col-6">
|
||
<ul class="footer-menu-vert" role="list">
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="/subscribe.html">
|
||
Subscribe
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="/static/about/aboutus.html">
|
||
About C&EN
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="/static/about/contactus.html">
|
||
Contact
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://acsmediakit.org/">
|
||
Advertise
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://acsmediakit.org/cen-brandlab/">
|
||
ACS Brandlab
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://pubs.acs.org/">
|
||
ACS Publications
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="col-xl-2 col-lg-3 col-md-3 me-md-auto col-6">
|
||
<ul class="footer-menu-vert" role="list">
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://chemistryjobs.acs.org/">
|
||
ACS Chemistry Careers
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://membership.join.acs.org">
|
||
Join ACS
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://membership.renew.acs.org">
|
||
Renew Membership
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://communities.acs.org/">
|
||
ACS Network
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://www.cas.org/">
|
||
CAS
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://cen.acs.org/static/about/standards-practices.html">
|
||
Standards & Practices
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
<div class="col-xl-2 col-lg-3">
|
||
<div class="footer-content--app">
|
||
<h2 class="footer-menu-heading mb-3">C&EN Mobile App</h2>
|
||
<ul class="footer-menu-inline" role="list">
|
||
|
||
<li class="footer-menu-item mb-3">
|
||
<a href="https://apps.apple.com/us/app/chemistry-news-by-c-en/id1482036259" target="_blank" rel="noopener" class="hover-shadow" aria-label="Download on the App Store (opens in new tab)">
|
||
<img data-lazy-src="/content/dam/acs-cen-redesign/2025/logo/app-badge-appstore.svg" alt="Download on the App Store" aria-hidden="true"/>
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item mb-3">
|
||
<a href="https://play.google.com/store/apps/details?id=org.acs.cenmobile&hl=en" target="_blank" rel="noopener" class="hover-shadow" aria-label="Get it on Google Play (opens in new tab)">
|
||
<img data-lazy-src="/content/dam/acs-cen-redesign/2025/logo/app-badge-googleplay.svg" alt="Get it on Google Play" aria-hidden="true"/>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
<div class="col-xl-2 col-lg-3">
|
||
<div class="footer-content--social">
|
||
<h2 class="footer-menu-heading mb-3">Follow C&EN</h2>
|
||
<ul class="footer-menu-inline" role="list">
|
||
|
||
<li class="footer-menu-item menu-social">
|
||
<a href="https://www.facebook.com/CENews" onclick="event.stopPropagation(); window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" rel="noopener" title="facebook">
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-facebook" viewBox="0 0 16 16">
|
||
<path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951"/>
|
||
</svg>
|
||
|
||
|
||
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item menu-social">
|
||
<a href="https://www.instagram.com/cenmag/" onclick="event.stopPropagation(); window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" rel="noopener" title="instagram">
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" fill="currentColor" class="bi bi-instagram" viewBox="0 0 16 16" aria-hidden="true">
|
||
<path d="M8 0C5.829 0 5.556.01 4.703.048 3.85.088 3.269.222 2.76.42a3.9 3.9 0 0 0-1.417.923A3.9 3.9 0 0 0 .42 2.76C.222 3.268.087 3.85.048 4.7.01 5.555 0 5.827 0 8.001c0 2.172.01 2.444.048 3.297.04.852.174 1.433.372 1.942.205.526.478.972.923 1.417.444.445.89.719 1.416.923.51.198 1.09.333 1.942.372C5.555 15.99 5.827 16 8 16s2.444-.01 3.298-.048c.851-.04 1.434-.174 1.943-.372a3.9 3.9 0 0 0 1.416-.923c.445-.445.718-.891.923-1.417.197-.509.332-1.09.372-1.942C15.99 10.445 16 10.173 16 8s-.01-2.445-.048-3.299c-.04-.851-.175-1.433-.372-1.941a3.9 3.9 0 0 0-.923-1.417A3.9 3.9 0 0 0 13.24.42c-.51-.198-1.092-.333-1.943-.372C10.443.01 10.172 0 7.998 0zm-.717 1.442h.718c2.136 0 2.389.007 3.232.046.78.035 1.204.166 1.486.275.373.145.64.319.92.599s.453.546.598.92c.11.281.24.705.275 1.485.039.843.047 1.096.047 3.231s-.008 2.389-.047 3.232c-.035.78-.166 1.203-.275 1.485a2.5 2.5 0 0 1-.599.919c-.28.28-.546.453-.92.598-.28.11-.704.24-1.485.276-.843.038-1.096.047-3.232.047s-2.39-.009-3.233-.047c-.78-.036-1.203-.166-1.485-.276a2.5 2.5 0 0 1-.92-.598 2.5 2.5 0 0 1-.6-.92c-.109-.281-.24-.705-.275-1.485-.038-.843-.046-1.096-.046-3.233s.008-2.388.046-3.231c.036-.78.166-1.204.276-1.486.145-.373.319-.64.599-.92s.546-.453.92-.598c.282-.11.705-.24 1.485-.276.738-.034 1.024-.044 2.515-.045zm4.988 1.328a.96.96 0 1 0 0 1.92.96.96 0 0 0 0-1.92m-4.27 1.122a4.109 4.109 0 1 0 0 8.217 4.109 4.109 0 0 0 0-8.217m0 1.441a2.667 2.667 0 1 1 0 5.334 2.667 2.667 0 0 1 0-5.334"/>
|
||
</svg>
|
||
|
||
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item menu-social">
|
||
<a href="https://twitter.com/cenmag" onclick="event.stopPropagation(); window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" rel="noopener" title="x">
|
||
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" fill="currentColor" class="bi bi-twitter-x" viewBox="0 0 16 16">
|
||
<path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"/>
|
||
</svg>
|
||
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item menu-social">
|
||
<a href="https://www.linkedin.com/showcase/c&en/" onclick="event.stopPropagation(); window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" rel="noopener" title="linkedin">
|
||
|
||
|
||
|
||
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="24" fill="currentColor" class="bi bi-linkedin" viewBox="0 0 16 16">
|
||
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z"/>
|
||
</svg>
|
||
|
||
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item menu-social">
|
||
<a href="https://bsky.app/profile/cenmag.bsky.social" onclick="event.stopPropagation(); window.open(this.href, 'popupWindow', 'width=600,height=600,scrollbars=yes,resizable=yes'); return false;" rel="noopener" title="bsky">
|
||
|
||
|
||
|
||
|
||
|
||
<svg fill="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" width="24">
|
||
<path d="M12 10.8c-1.087 -2.114 -4.046 -6.053 -6.798 -7.995C2.566 0.944 1.561 1.266 0.902 1.565 0.139 1.908 0 3.08 0 3.768c0 0.69 0.378 5.65 0.624 6.479 0.815 2.736 3.713 3.66 6.383 3.364 0.136 -0.02 0.275 -0.039 0.415 -0.056 -0.138 0.022 -0.276 0.04 -0.415 0.056 -3.912 0.58 -7.387 2.005 -2.83 7.078 5.013 5.19 6.87 -1.113 7.823 -4.308 0.953 3.195 2.05 9.271 7.733 4.308 4.267 -4.308 1.172 -6.498 -2.74 -7.078a8.741 8.741 0 0 1 -0.415 -0.056c0.14 0.017 0.279 0.036 0.415 0.056 2.67 0.297 5.568 -0.628 6.383 -3.364 0.246 -0.828 0.624 -5.79 0.624 -6.478 0 -0.69 -0.139 -1.861 -0.902 -2.206 -0.659 -0.298 -1.664 -0.62 -4.3 1.24C16.046 4.748 13.087 8.687 12 10.8Z"></path>
|
||
</svg>
|
||
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="row mt-5 justify-content-between">
|
||
<div class="col-lg-9 me-auto">
|
||
<div class="row align-items-center">
|
||
<div class="col-lg-3 site-logo">
|
||
<a href="https://www.acs.org/" aria-label="C&EN homepage">
|
||
<img data-lazy-src="/content/dam/acs-cen-redesign/2025/logo/logo-cen-tagline-white.svg" alt="C&EN logo" class="img-fluid logo-cen-footer"/>
|
||
</a>
|
||
</div>
|
||
<div class="col-lg-9 site-sublinks">
|
||
<ul class="footer-menu-inline font-14 mb-2">
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://www.acs.org/help.html">
|
||
Help
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://www.acs.org/accessibility-statement.html">
|
||
Accessibility Statement
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://www.acs.org/content/acs/en/privacy.html">
|
||
Privacy Policy
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="https://www.acs.org/content/acs/en/terms.html">
|
||
Terms of Use
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a href="/static/about/site-map.html">
|
||
Site Map
|
||
</a>
|
||
</li>
|
||
|
||
<li class="footer-menu-item">
|
||
<a>
|
||
<style>*.osano-cm-widget {
|
||
display: none;
|
||
}
|
||
</style> <a href="#" style=" color: rgb(255,255,255);
|
||
" id="manageCookies"> Manage Cookies</a>
|
||
</a>
|
||
</li>
|
||
|
||
</ul>
|
||
<p class="text-light font-12 text-opacity-50 mb-0">
|
||
Copyright ©
|
||
2026 American Chemical Society. All
|
||
Rights Reserved.
|
||
</p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
<div class="col-lg-3 site-organization">
|
||
<a href="https://www.acs.org/">
|
||
<img data-lazy-src="/content/dam/acs-cen-redesign/2025/logo/logo-acs-white-2026.svg" alt="American Chemical Society logo" class="img-fluid logo-cen-footer"/>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
<div id="live-status" aria-hidden="true" class="visually-hidden accessibility-announcement"></div>
|
||
</footer>
|
||
<!-- Footer END -->
|
||
</div>
|
||
<div class="acsSocialShare aem-GridColumn aem-GridColumn--default--12">
|
||
|
||
|
||
|
||
|
||
<!-- Start Modal -->
|
||
<div class="modal fade pr-3" id="shareModal" tabindex="-1" aria-labelledby="shareModalTitle" aria-hidden="true">
|
||
<div class="modal-dialog modal-sm modal-dialog-centered">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h2 class="modal-title fs-5 fw-bold" id="shareModalTitle">
|
||
Share This Article</h2>
|
||
<span class="tooltip-wrapper ms-auto">
|
||
<button type="button" class="btn-close tooltip-btn" aria-describedby="closeMessage" data-bs-dismiss="modal" aria-label="Close" tabindex="0"></button>
|
||
<span aria-hidden="true" id="closeMessage" class="tooltip-text" role="tooltip">Close</span>
|
||
</span>
|
||
</div>
|
||
<div class="modal-body p-0">
|
||
<div class="row">
|
||
<div class="col mx-auto">
|
||
<div class="list-group list-group-flush">
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<div id="copy-feedback" class="visually-hidden" aria-live="polite"></div>
|
||
<button class="list-group-item list-group-item-action d-flex py-3 align-items-center" data-target-site="copy-link">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-link text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M6.354 5.5H4a3 3 0 0 0 0 6h3a3 3 0 0 0 2.83-4H9q-.13 0-.25.031A2 2 0 0 1 7 10.5H4a2 2 0 1 1 0-4h1.535c.218-.376.495-.714.82-1z"/>
|
||
<path d="M9 5.5a3 3 0 0 0-2.83 4h1.098A2 2 0 0 1 9 6.5h3a2 2 0 1 1 0 4h-1.535a4 4 0 0 1-.82 1H12a3 3 0 1 0 0-6z"/>
|
||
</svg>
|
||
<span id="copy-link">Copy Link</span>
|
||
</button>
|
||
|
||
|
||
|
||
|
||
<button class="list-group-item list-group-item-action py-3 d-flex align-items-center social-share-icon" data-target-site="facebook">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-facebook text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951"/>
|
||
</svg>
|
||
Facebook
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button class="list-group-item list-group-item-action d-flex py-3 align-items-center" data-target-site="twitter">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-twitter-x text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865z"/>
|
||
</svg>
|
||
X
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button class="list-group-item list-group-item-action d-flex py-3 align-items-center" data-target-site="linkedin">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-linkedin text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M0 1.146C0 .513.526 0 1.175 0h13.65C15.474 0 16 .513 16 1.146v13.708c0 .633-.526 1.146-1.175 1.146H1.175C.526 16 0 15.487 0 14.854zm4.943 12.248V6.169H2.542v7.225zm-1.2-8.212c.837 0 1.358-.554 1.358-1.248-.015-.709-.52-1.248-1.342-1.248S2.4 3.226 2.4 3.934c0 .694.521 1.248 1.327 1.248zm4.908 8.212V9.359c0-.216.016-.432.08-.586.173-.431.568-.878 1.232-.878.869 0 1.216.662 1.216 1.634v3.865h2.401V9.25c0-2.22-1.184-3.252-2.764-3.252-1.274 0-1.845.7-2.165 1.193v.025h-.016l.016-.025V6.169h-2.4c.03.678 0 7.225 0 7.225z"/>
|
||
</svg>
|
||
LinkedIn
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button class="list-group-item list-group-item-action d-flex py-3 align-items-center" data-target-site="bluesky">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-bluesky text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M3.468 1.948C5.303 3.325 7.276 6.118 8 7.616c.725-1.498 2.698-4.29 4.532-5.668C13.855.955 16 .186 16 2.632c0 .489-.28 4.105-.444 4.692-.572 2.04-2.653 2.561-4.504 2.246 3.236.551 4.06 2.375 2.281 4.2-3.376 3.464-4.852-.87-5.23-1.98-.07-.204-.103-.3-.103-.218 0-.081-.033.014-.102.218-.379 1.11-1.855 5.444-5.231 1.98-1.778-1.825-.955-3.65 2.28-4.2-1.85.315-3.932-.205-4.503-2.246C.28 6.737 0 3.12 0 2.632 0 .186 2.145.955 3.468 1.948"/>
|
||
</svg>
|
||
Bluesky
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button class="list-group-item list-group-item-action d-flex py-3 align-items-center" data-target-site="reddit">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-reddit text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M6.167 8a.83.83 0 0 0-.83.83c0 .459.372.84.83.831a.831.831 0 0 0 0-1.661m1.843 3.647c.315 0 1.403-.038 1.976-.611a.23.23 0 0 0 0-.306.213.213 0 0 0-.306 0c-.353.363-1.126.487-1.67.487-.545 0-1.308-.124-1.671-.487a.213.213 0 0 0-.306 0 .213.213 0 0 0 0 .306c.564.563 1.652.61 1.977.61zm.992-2.807c0 .458.373.83.831.83s.83-.381.83-.83a.831.831 0 0 0-1.66 0z"/>
|
||
<path d="M16 8A8 8 0 1 1 0 8a8 8 0 0 1 16 0m-3.828-1.165c-.315 0-.602.124-.812.325-.801-.573-1.9-.945-3.121-.993l.534-2.501 1.738.372a.83.83 0 1 0 .83-.869.83.83 0 0 0-.744.468l-1.938-.41a.2.2 0 0 0-.153.028.2.2 0 0 0-.086.134l-.592 2.788c-1.24.038-2.358.41-3.17.992-.21-.2-.496-.324-.81-.324a1.163 1.163 0 0 0-.478 2.224q-.03.17-.029.353c0 1.795 2.091 3.256 4.669 3.256s4.668-1.451 4.668-3.256c0-.114-.01-.238-.029-.353.401-.181.688-.592.688-1.069 0-.65-.525-1.165-1.165-1.165"/>
|
||
</svg>
|
||
Reddit
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button class="list-group-item list-group-item-action d-flex py-3 align-items-center" data-target-site="wechat">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-wechat text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M11.176 14.429c-2.665 0-4.826-1.8-4.826-4.018 0-2.22 2.159-4.02 4.824-4.02S16 8.191 16 10.411c0 1.21-.65 2.301-1.666 3.036a.32.32 0 0 0-.12.366l.218.81a.6.6 0 0 1 .029.117.166.166 0 0 1-.162.162.2.2 0 0 1-.092-.03l-1.057-.61a.5.5 0 0 0-.256-.074.5.5 0 0 0-.142.021 5.7 5.7 0 0 1-1.576.22M9.064 9.542a.647.647 0 1 0 .557-1 .645.645 0 0 0-.646.647.6.6 0 0 0 .09.353Zm3.232.001a.646.646 0 1 0 .546-1 .645.645 0 0 0-.644.644.63.63 0 0 0 .098.356"/>
|
||
<path d="M0 6.826c0 1.455.781 2.765 2.001 3.656a.385.385 0 0 1 .143.439l-.161.6-.1.373a.5.5 0 0 0-.032.14.19.19 0 0 0 .193.193q.06 0 .111-.029l1.268-.733a.6.6 0 0 1 .308-.088q.088 0 .171.025a6.8 6.8 0 0 0 1.625.26 4.5 4.5 0 0 1-.177-1.251c0-2.936 2.785-5.02 5.824-5.02l.15.002C10.587 3.429 8.392 2 5.796 2 2.596 2 0 4.16 0 6.826m4.632-1.555a.77.77 0 1 1-1.54 0 .77.77 0 0 1 1.54 0m3.875 0a.77.77 0 1 1-1.54 0 .77.77 0 0 1 1.54 0"/>
|
||
</svg>
|
||
Wechat
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button data-open="email-to-friend-model" id="email-to" class="list-group-item list-group-item-action d-flex py-3 align-items-center" data-target-site="email">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-envelope text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1zm13 2.383-4.708 2.825L15 11.105zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741M1 11.105l4.708-2.897L1 5.383z"/>
|
||
</svg>
|
||
Email
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<button class="list-group-item list-group-item-action py-3 d-flex align-items-center" id="shareModalPrint" data-target-site="print">
|
||
<svg xmlns="http://www.w3.org/2000/svg" width="28" height="28" fill="currentColor" class="bi bi-printer text-red fs-3 me-3" viewBox="0 0 16 16">
|
||
<path d="M2.5 8a.5.5 0 1 0 0-1 .5.5 0 0 0 0 1"/>
|
||
<path d="M5 1a2 2 0 0 0-2 2v2H2a2 2 0 0 0-2 2v3a2 2 0 0 0 2 2h1v1a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2v-1h1a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2h-1V3a2 2 0 0 0-2-2zM4 3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1v2H4zm1 5a2 2 0 0 0-2 2v1H2a1 1 0 0 1-1-1V7a1 1 0 0 1 1-1h12a1 1 0 0 1 1 1v3a1 1 0 0 1-1 1h-1v-1a2 2 0 0 0-2-2zm7 2v3a1 1 0 0 1-1 1H5a1 1 0 0 1-1-1v-3a1 1 0 0 1 1-1h6a1 1 0 0 1 1 1"/>
|
||
</svg>
|
||
Print
|
||
</button>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<div class="modal fade" id="shareModalEmail" tabindex="-1" aria-labelledby="modalTitle" aria-modal="true" role="dialog">
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h2 class="modal-title fs-5 fw-bold" id="modalTitle">
|
||
Share "" via email
|
||
</h2>
|
||
<span class="tooltip-wrapper ms-auto">
|
||
<button id="emailClose" type="button" class="btn-close tooltip-btn" aria-describedby="closeMessage" data-bs-dismiss="modal" aria-label="Close" tabindex="0">
|
||
</button>
|
||
<span id="closeMessage" class="tooltip-text" role="tooltip">Close</span>
|
||
</span>
|
||
</div>
|
||
<div class="modal-body">
|
||
<form id="shareEmailForm" novalidate>
|
||
<!-- Hidden fields for form data -->
|
||
<input type="hidden" id="published_date"/>
|
||
<input type="hidden" id="article_title"/>
|
||
<input type="hidden" id="volume_number"/>
|
||
<input type="hidden" id="issue_number"/>
|
||
<input type="hidden" id="volIssuePath"/>
|
||
|
||
<div class="mb-3">
|
||
<label for="shareEmailTo" class="form-label">Send Email to*</label>
|
||
<input type="email" class="form-control" id="shareEmailTo" required aria-required="true" aria-describedby="shareEmailToHelpBlock error-emailto" autocomplete="email"/>
|
||
<div id="shareEmailToHelpBlock" class="form-text">
|
||
To send an email to multiple recipients, separate email addresses with a comma,
|
||
semicolon, or both.
|
||
</div>
|
||
<div class="msg error-emailto text-danger d-none" role="alert"></div>
|
||
</div>
|
||
|
||
<div class="mb-3">
|
||
<label for="shareYourName" class="form-label">Your Name*</label>
|
||
<input type="text" class="form-control" id="shareYourName" required aria-required="true" aria-describedby="error-name" autocomplete="name"/>
|
||
<div class="msg error-name text-danger d-none" role="alert"></div>
|
||
</div>
|
||
|
||
<div class="mb-3">
|
||
<label for="shareYourEmailAddress" class="form-label">Your Email Address*</label>
|
||
<input type="email" class="form-control" id="shareYourEmailAddress" required aria-required="true" aria-describedby="error-emailfrom" autocomplete="email"/>
|
||
<div class="msg error-emailfrom text-danger d-none" role="alert"></div>
|
||
</div>
|
||
|
||
<div class="mb-3">
|
||
<label for="shareNote" class="form-label">Add a Note</label>
|
||
<textarea class="form-control" id="shareNote" rows="3" aria-describedby="error-comment shareNoteHelpBlock" maxlength="500" placeholder="Optional personal message (5-500 characters)"></textarea>
|
||
<div id="shareNoteHelpBlock" class="form-text">
|
||
Optional personal message to include with the shared article.
|
||
</div>
|
||
<div class="msg error-comment text-danger d-none" role="alert"></div>
|
||
</div>
|
||
|
||
<div class="mb-3">
|
||
<div class="g-recaptcha" data-sitekey="6LfYCj4UAAAAABZV31I11EJZes7esrxqCbBs4ZFO" data-callback="enableBtn" data-expired-callback="expiredCallback" role="application" aria-label="CAPTCHA verification" tabindex="0">
|
||
</div>
|
||
</div>
|
||
|
||
<div class="mb-3 text-center">
|
||
<button id="submit-email-btn" class="btn btn-primary" type="submit" data-loading-start>
|
||
<span class="btn-text">Send Email</span>
|
||
</button>
|
||
<button class="btn btn-primary d-none" type="button" disabled data-loading-end>
|
||
<span class="spinner-border spinner-border-sm me-2" role="status" aria-hidden="true"></span>
|
||
Sending...
|
||
</button>
|
||
</div>
|
||
|
||
<!-- Reset button (hidden, used by JS) -->
|
||
<button type="reset" id="reset-email-btn" class="d-none" aria-hidden="true"></button>
|
||
</form>
|
||
</div>
|
||
<div class="modal-footer text-center">
|
||
<div class="d-flex justify-content-between align-items-center w-100">
|
||
<span class="font-12 text-muted">
|
||
Chemical & Engineering News will not share your email address with any other person or company.
|
||
</span>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
|
||
<!-- Thank You Email Modal -->
|
||
<div class="modal fade" id="thank-you-email-modal" tabindex="-1">
|
||
<div class="modal-dialog modal-dialog-centered">
|
||
<div class="modal-content">
|
||
<div class="modal-header">
|
||
<h5 class="modal-title" role="heading" aria-level="2">Email Sent Successfully</h5>
|
||
<span class="tooltip-wrapper ms-auto">
|
||
<button tabindex="0" type="button" class="btn-close tooltip-btn" aria-describedby="thankYouCloseMessage" data-bs-dismiss="modal" aria-label="Close">
|
||
</button>
|
||
<span id="thankYouCloseMessage" class="tooltip-text" role="tooltip" aria-hidden="true">Close</span>
|
||
</span>
|
||
</div>
|
||
<div class="modal-body text-center">
|
||
<p>Your email has been sent to <span id="sent-email"></span></p>
|
||
<p>Article: <a href="#" id="article-heading-confirm"></a></p>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<!-- End Modal --></div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<!-- OPTIMIZED: Simplified footer fallback system -->
|
||
|
||
<script>
|
||
(function() {
|
||
// Check if header initialization was successful
|
||
if (!window.adSystem || !window.adSystem.headerReady) {
|
||
console.warn('⚠️ Header ad initialization failed - using footer fallback');
|
||
|
||
// Fallback initialization (simplified)
|
||
window.adSystem = {
|
||
initialized: false,
|
||
headerReady: false,
|
||
fallbackMode: true
|
||
};
|
||
}
|
||
|
||
// Throttle guard — prevents duplicate ad rendering from multiple callers
|
||
var _adRenderLastCall = 0;
|
||
var _adRenderPending = null;
|
||
var AD_RENDER_THROTTLE = 1000; // 1 second cooldown
|
||
|
||
// Enhanced renderDynamicAds function (backward compatibility + new features)
|
||
window.renderDynamicAds = function() {
|
||
var now = Date.now();
|
||
if (now - _adRenderLastCall < AD_RENDER_THROTTLE) {
|
||
if (!_adRenderPending) {
|
||
_adRenderPending = setTimeout(function() {
|
||
_adRenderPending = null;
|
||
window.renderDynamicAds();
|
||
}, AD_RENDER_THROTTLE - (now - _adRenderLastCall));
|
||
}
|
||
console.log('[Ads] Throttled renderDynamicAds call (last was ' + (now - _adRenderLastCall) + 'ms ago)');
|
||
return;
|
||
}
|
||
_adRenderLastCall = now;
|
||
|
||
// Use header function if available, otherwise use jQuery version
|
||
if (typeof window.renderDynamicAdsHeader === 'function') {
|
||
console.log('[Ads] Using header ad rendering (optimal)');
|
||
return window.renderDynamicAdsHeader();
|
||
}
|
||
|
||
// Fallback to jQuery-based rendering
|
||
console.log('[Ads] Using jQuery fallback ad rendering');
|
||
|
||
if (!window.googletag || !googletag.cmd) {
|
||
console.warn('[Ads] GPT not ready for ad rendering');
|
||
return;
|
||
}
|
||
|
||
googletag.cmd.push(function() {
|
||
var adUnits = document.querySelectorAll('.adunit');
|
||
var newSlots = [];
|
||
|
||
adUnits.forEach(function(el, index) {
|
||
var slotId = el.id;
|
||
|
||
// Generate ID if missing (important for dynamically inserted ads)
|
||
if (!slotId) {
|
||
slotId = 'fallback-ad-' + Date.now() + '-' + index;
|
||
el.id = slotId;
|
||
}
|
||
|
||
// Skip slots that are already defined and rendered
|
||
if (el.dataset.slotDefined === "true" || el.hasAttribute('data-google-query-id')) {
|
||
return;
|
||
}
|
||
|
||
try {
|
||
var adUnitPath = el.dataset.adunit || 'cen';
|
||
var adPath = '/8868/' + adUnitPath.replace(/^\/+/, '').replace(/^8868\//, '');
|
||
|
||
// --- Parse dimensions (supports CSV + fluid) ---
|
||
var rawDims = (el.dataset.dimensions || '728x90').toString().trim().toLowerCase();
|
||
var dimensions = [];
|
||
if (rawDims.includes(',')) {
|
||
rawDims.split(',').forEach(function(item) {
|
||
item = item.trim();
|
||
if (item === 'fluid') dimensions.push('fluid');
|
||
else if (item.includes('x')) {
|
||
var p = item.split('x');
|
||
dimensions.push([parseInt(p[0]), parseInt(p[1])]);
|
||
}
|
||
});
|
||
} else if (rawDims === 'fluid') {
|
||
dimensions = ['fluid'];
|
||
} else if (rawDims.includes('x')) {
|
||
var p = rawDims.split('x');
|
||
dimensions = [[parseInt(p[0]), parseInt(p[1])]];
|
||
} else {
|
||
dimensions = [[728, 90]];
|
||
}
|
||
|
||
// --- Apply size mapping if present ---
|
||
window.dfpSizeMapping = {
|
||
'my-size-mapping': [
|
||
{ browser: [730, 0], ad_sizes: [[728, 90], [970, 90]] },
|
||
{ browser: [0, 0], ad_sizes: [[320, 50]] }
|
||
]
|
||
};
|
||
|
||
var mappingName = el.dataset.sizeMapping;
|
||
var mappingRules = window.dfpSizeMapping && window.dfpSizeMapping[mappingName];
|
||
|
||
var builtMapping = null;
|
||
|
||
if (mappingRules) {
|
||
// Union all sizes from mapping
|
||
dimensions = [];
|
||
mappingRules.forEach(function(rule) {
|
||
var list = Array.isArray(rule.ad_sizes[0]) ? rule.ad_sizes : [rule.ad_sizes];
|
||
list.forEach(function(sz) {
|
||
if (sz === 'fluid') dimensions.push('fluid');
|
||
else if (Array.isArray(sz)) dimensions.push(sz);
|
||
});
|
||
});
|
||
// Build mapping
|
||
var builder = googletag.sizeMapping();
|
||
mappingRules.forEach(function(rule) {
|
||
var list = Array.isArray(rule.ad_sizes[0]) ? rule.ad_sizes : [rule.ad_sizes];
|
||
builder.addSize(rule.browser, list);
|
||
});
|
||
builtMapping = builder.build();
|
||
}
|
||
|
||
// --- Define slot ---
|
||
var slot = googletag.defineSlot(adPath, dimensions, slotId);
|
||
if (!slot) {
|
||
console.warn('[Ads] Failed to define slot:', adPath, slotId);
|
||
return;
|
||
}
|
||
|
||
if (builtMapping) slot.defineSizeMapping(builtMapping);
|
||
|
||
// --- Apply data-targeting ---
|
||
if (el.dataset.targeting) {
|
||
try {
|
||
var tg = JSON.parse(el.dataset.targeting);
|
||
Object.keys(tg).forEach(function(k) {
|
||
var v = tg[k];
|
||
if (typeof v === 'string' && v.includes(',')) {
|
||
v = v.split(',').map(s => s.trim());
|
||
}
|
||
slot.setTargeting(k, v);
|
||
});
|
||
} catch (e) {
|
||
console.warn('[Ads] Bad targeting JSON:', el.dataset.targeting);
|
||
}
|
||
}
|
||
|
||
slot.addService(googletag.pubads());
|
||
el.dataset.slotDefined = "true";
|
||
googletag.display(slotId);
|
||
newSlots.push(slot);
|
||
|
||
console.log('[Ads] Rendered:', slotId, 'path:', adPath, 'dimensions:', dimensions);
|
||
} catch (error) {
|
||
console.error('[Ads] Error:', slotId, error);
|
||
}
|
||
|
||
});
|
||
|
||
if (newSlots.length === 0) {
|
||
console.log('[Ads] No new ad slots to render');
|
||
}
|
||
});
|
||
};
|
||
|
||
// jQuery-dependent enhancements (only if jQuery available)
|
||
function initializeJQueryEnhancements() {
|
||
if (typeof $ === 'undefined') {
|
||
return;
|
||
}
|
||
|
||
$(document).ready(function() {
|
||
try {
|
||
// $.dfp() is a SEPARATE rendering path that bypasses renderDynamicAds throttle.
|
||
// Only use it as a last-resort fallback if the header system completely failed.
|
||
if (!window.adSystem.initialized && !window.adSystem.headerReady) {
|
||
console.log('[Ads] Using jQuery DFP as last-resort fallback');
|
||
$.dfp({
|
||
dfpID: '8868',
|
||
sizeMapping: {
|
||
'my-size-mapping': [
|
||
{ browser: [730, 0], ad_sizes: [[728, 90], [970, 90]] },
|
||
{ browser: [0, 0], ad_sizes: [320, 50] }
|
||
]
|
||
}
|
||
});
|
||
}
|
||
|
||
// Mobile adjustments (always run)
|
||
if (document.documentElement.clientWidth <= 768) {
|
||
var boxAd = $('#boxAD');
|
||
var vRectAd = $('#vRectAD');
|
||
|
||
if (boxAd.length) {
|
||
boxAd.removeClass('pull-left pull-right').attr('align', 'center');
|
||
}
|
||
if (vRectAd.length) {
|
||
vRectAd.removeClass('pull-left pull-right').attr('align', 'center');
|
||
}
|
||
}
|
||
|
||
} catch (error) {
|
||
console.error('jQuery enhancement error:', error);
|
||
}
|
||
});
|
||
}
|
||
|
||
// Initialize jQuery enhancements
|
||
if (document.readyState === 'loading') {
|
||
document.addEventListener('DOMContentLoaded', initializeJQueryEnhancements);
|
||
} else {
|
||
initializeJQueryEnhancements();
|
||
}
|
||
|
||
})();
|
||
</script>
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
<script type="text/javascript" src="/_Incapsula_Resource?SWJIYLWA=719d34d31c8e3a6e6fffd425f7e032f3&ns=2&cb=422524100" async></script></body>
|
||
</html>
|