{"id":239,"date":"2024-01-07T02:55:46","date_gmt":"2024-01-06T18:55:46","guid":{"rendered":"http:\/\/39.105.184.3\/?p=239"},"modified":"2025-12-21T01:06:14","modified_gmt":"2025-12-20T17:06:14","slug":"%e8%ae%a9%e4%bd%a0%e7%9a%84protocol%e5%8a%a8%e8%b5%b7%e6%9d%a5","status":"publish","type":"post","link":"https:\/\/fanyiming.life\/?p=239","title":{"rendered":"\u8ba9\u4f60\u7684Protocol\u201c\u52a8\u201d\u8d77\u6765"},"content":{"rendered":"\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>\u5f15\u5bfcChatGPT\u505a\u4e86\u4e00\u4e2a\u7f51\u9875\u6a21\u677f\uff0c\u611f\u89c9\u8fd9\u6837\u505a\u5b9e\u9a8c\u7684\u65f6\u5019\uff0c\u80fd\u4e00\u76f4\u7ffb\u9875\u770b\u5230\u5b9e\u9a8c\u8fdb\u5ea6\u5728\u5f80\u524d\u8d70\uff0c\u6709\u90a3\u4e48\u4e00\u70b9\u70ab\u9177\u3002\u7528\u7535\u8111\u6216\u8005\u5e73\u677f\u6253\u5f00\uff0c\u624b\u673a\u9875\u9762\u9002\u914d\u6ca1\u505a\uff0c\u4f1a\u5b57\u5f88\u5c0f\u5f88\u4e11\u3002<\/p>\n<\/blockquote>\n\n\n\n<p>\u6548\u679c\uff1a<a href=\"http:\/\/localhost\/?p=3272\" title=\"RIP-seq\">RIP-seq Protocol<\/a><\/p>\n\n\n\n<p>\u4e0d\u540c\u7684\u5b9e\u9a8c\u53ef\u4ee5\u5957\u7528\u76f8\u540c\u4ee3\u7801\uff0c\u5728Json\u6587\u4ef6\u4e2d\u6539\u5b9e\u9a8c\u6b65\u9aa4\u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n\n\n\n<p>\u4ee5\u4e0b\u4e3a\u6e90\u7801\uff1a<\/p>\n\n\n\n<p><code>index.html<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html&gt;<br>&lt;html&gt;<br>&lt;head&gt;<br>&nbsp;&lt;title&gt;&lt;\/title&gt;<br>&nbsp;&lt;link rel=\"stylesheet\" type=\"text\/css\" href=\"styles.css\"&gt;<br>&lt;\/head&gt;<br>&lt;body&gt;<br>&lt;h1&gt;&lt;\/h1&gt;<br>&nbsp;&lt;div id=\"progress-bar\"&gt;<br>&nbsp; &nbsp;&lt;div id=\"progress\"&gt;&lt;\/div&gt;<br>&nbsp; &nbsp;&lt;span id=\"progress-label\"&gt;&lt;\/span&gt;<br>&nbsp;&lt;\/div&gt;<br>\u200b<br>&lt;div class=\"steps-wrapper\"&gt;<br>&nbsp;&lt;div id=\"steps-container\"&gt;&lt;\/div&gt;<br>&nbsp;&lt;div id=\"steps-content\"&gt;<br>&nbsp; &nbsp;&lt;h2&gt;&lt;\/h2&gt;<br>&nbsp;&lt;\/div&gt;<br>&lt;\/div&gt;<br>\u200b<br>&lt;div class=\"substeps-wrapper\"&gt;<br>&nbsp;&lt;div id=\"substeps-container\"&gt;&lt;\/div&gt;<br>&nbsp;&lt;div id=\"substeps-content\"&gt;<br>&nbsp; &nbsp;&lt;h3&gt;&lt;\/h3&gt;<br>&nbsp; &nbsp;&lt;p&gt;&lt;\/p&gt;<br>&nbsp;&lt;\/div&gt;<br>&lt;\/div&gt;<br>\u200b<br>&nbsp;&lt;button id=\"prev-btn\"&gt;\u4e0a\u4e00\u6b65&lt;\/button&gt;<br>&nbsp;&lt;button id=\"next-btn\"&gt;\u4e0b\u4e00\u6b65&lt;\/button&gt;<br>\u200b<br>&nbsp;&lt;script src=\"script.js\"&gt;&lt;\/script&gt;<br>&lt;\/body&gt;<br>&lt;\/html&gt;<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><code>script.js<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>document.addEventListener(\"DOMContentLoaded\", function(event) {<br>&nbsp; &nbsp;var stepsContainer = document.getElementById(\"steps-container\");<br>&nbsp; &nbsp;var stepsContent = document.getElementById(\"steps-content\");<br>&nbsp; &nbsp;var currentStep = 0;<br><br>&nbsp; &nbsp;var substepsContainer = document.getElementById(\"substeps-container\");<br>&nbsp; &nbsp;var substepsContent = document.getElementById(\"substeps-content\");<br>&nbsp; &nbsp;var currentSubstep = 0;<br><br>&nbsp; &nbsp;var prevButton = document.getElementById(\"prev-btn\");<br>&nbsp; &nbsp;var nextButton = document.getElementById(\"next-btn\");<br><br>&nbsp; &nbsp;var steps = &#091;];<br>&nbsp; &nbsp;var title = '';<br><br>&nbsp; &nbsp;function loadInputData() {<br>&nbsp; &nbsp; &nbsp;var xhr = new XMLHttpRequest();<br>&nbsp; &nbsp; &nbsp;xhr.overrideMimeType(\"application\/json\");<br>&nbsp; &nbsp; &nbsp;xhr.open(\"GET\", \"input.json\", true);<br>&nbsp; &nbsp; &nbsp;xhr.onreadystatechange = function() {<br>&nbsp; &nbsp; &nbsp; &nbsp;if (xhr.readyState === 4 &amp;&amp; xhr.status === 200) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var data = JSON.parse(xhr.responseText);<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;steps = data.steps;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;title = data.title;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.getElementsByTagName(\"title\")&#091;0].innerHTML = title; &nbsp; \/\/\u6253\u5370\u6807\u9898<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;document.getElementsByTagName(\"h1\")&#091;0].innerHTML = title; &nbsp; \/\/\u6253\u5370\u6807\u9898<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;renderSteps();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;renderSubsteps();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;updateButtons();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;updateProgressBar();<br>&nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; };<br>&nbsp; &nbsp; &nbsp;document.addEventListener(\"keydown\", function(event) {<br>&nbsp; &nbsp; &nbsp; &nbsp;if (event.key === \"ArrowUp\" || event.key === \"ArrowLeft\") {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;prevButton.click(); \/\/ \u6a21\u62df\u70b9\u51fb\u201c\u4e0a\u4e00\u6b65\u201d\u6309\u94ae<br>&nbsp; &nbsp; &nbsp; } else if (event.key === \"ArrowDown\" || event.key === \"ArrowRight\") {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;nextButton.click(); \/\/ \u6a21\u62df\u70b9\u51fb\u201c\u4e0b\u4e00\u6b65\u201d\u6309\u94ae<br>&nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; });<br>&nbsp; &nbsp; &nbsp;xhr.send();<br>&nbsp; }<br><br>&nbsp; &nbsp;function renderSteps() {<br>&nbsp; &nbsp; &nbsp;var stepsHTML = \"\";<br>&nbsp; &nbsp; &nbsp;for (var i = 0; i &lt; steps.length; i++) {<br>&nbsp; &nbsp; &nbsp; &nbsp;stepsHTML += '&lt;button class=\"step-btn\" data-step=\"' + i + '\"&gt;' + steps&#091;i].title + '&lt;\/button&gt;';<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;stepsContainer.innerHTML = stepsHTML;<br>&nbsp; &nbsp; &nbsp;var stepButtons = document.getElementsByClassName(\"step-btn\");<br>&nbsp; &nbsp; &nbsp;for (var j = 0; j &lt; stepButtons.length; j++) {<br>&nbsp; &nbsp; &nbsp; &nbsp;stepButtons&#091;j].addEventListener(\"click\", function() {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;currentStep = parseInt(this.getAttribute(\"data-step\"));<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;currentSubstep = 0;<br>&nbsp; &nbsp; &nbsp; &nbsp;\/\/\u8f93\u5165Steps\u5185\u5bb9<br>&nbsp; &nbsp; &nbsp; &nbsp; var currentStepObj = steps&#091;currentStep];<br>&nbsp; &nbsp; &nbsp; &nbsp; if (currentStepObj) {<br>&nbsp; &nbsp; &nbsp; &nbsp;stepsContent.getElementsByTagName(\"h2\")&#091;0].innerHTML = steps&#091;currentStep].title;<br>&nbsp; &nbsp; &nbsp; } else {<br>&nbsp; &nbsp; &nbsp; &nbsp;stepsContent.getElementsByTagName(\"h2\")&#091;0].innerHTML = \"\";<br>&nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;renderSubsteps();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;updateButtons();<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;updateProgressBar();<br>&nbsp; &nbsp; &nbsp; });<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\/\/\u8f93\u5165Steps\u5185\u5bb9<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var currentStepObj = steps&#091;currentStep];<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (currentStepObj) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepsContent.getElementsByTagName(\"h2\")&#091;0].innerHTML = steps&#091;currentStep].title;<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; } else {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepsContent.getElementsByTagName(\"h2\")&#091;0].innerHTML = \"\";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br>&nbsp; }<br><br>&nbsp; &nbsp;function renderSubsteps() {<br>&nbsp; &nbsp; &nbsp;var currentStepObj = steps&#091;currentStep];<br>&nbsp; &nbsp; &nbsp;var substepsHTML = \"\";<br><br>&nbsp; &nbsp; &nbsp;if (currentStepObj.substeps) {<br>&nbsp; &nbsp; &nbsp; &nbsp;for (var k = 0; k &lt; currentStepObj.substeps.length; k++) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var substep = currentStepObj.substeps&#091;k];<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;var substepClass = k === currentSubstep ? \"substep-btn current-substep\" : \"substep-btn\";<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;substepsHTML += '&lt;button class=\"' + substepClass + '\" data-substep=\"' + k + '\"&gt;' + substep.title + '&lt;\/button&gt;';<br>&nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; }<br><br>&nbsp; &nbsp; &nbsp;substepsContainer.innerHTML = substepsHTML;<br><br>&nbsp; &nbsp; &nbsp;var substepButtons = document.getElementsByClassName(\"substep-btn\");<br>&nbsp; &nbsp; &nbsp;for (var l = 0; l &lt; substepButtons.length; l++) {<br>&nbsp; &nbsp; &nbsp; &nbsp;substepButtons&#091;l].addEventListener(\"click\", handleSubstepButtonClick);<br>&nbsp; &nbsp; }<br><br>&nbsp; &nbsp; &nbsp;if (currentStepObj.substeps) {<br>&nbsp; &nbsp; &nbsp; &nbsp;substepsContent.style.display = \"block\";<br>&nbsp; &nbsp; } else {<br>&nbsp; &nbsp; &nbsp; &nbsp;substepsContent.style.display = \"none\";<br>&nbsp; &nbsp; }<br>\u200b<br>&nbsp; &nbsp; &nbsp;\/\/ \u79fb\u9664\u4e4b\u524d\u63d2\u5165\u7684\u56fe\u7247\u5143\u7d20<br>&nbsp; &nbsp; &nbsp;var oldImage = substepsContent.querySelector(\"img\");<br>&nbsp; &nbsp; &nbsp;if (oldImage) {<br>&nbsp; &nbsp; &nbsp; oldImage.remove();<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;if (currentStepObj.substeps &amp;&amp; currentStepObj.substeps&#091;currentSubstep]) {<br>&nbsp; &nbsp; &nbsp; &nbsp;substepsContent.getElementsByTagName(\"h3\")&#091;0].innerHTML = currentStepObj.substeps&#091;currentSubstep].title;<br>&nbsp; &nbsp; &nbsp; &nbsp;substepsContent.getElementsByTagName(\"p\")&#091;0].innerHTML = currentStepObj.substeps&#091;currentSubstep].content;<br>&nbsp; &nbsp; } else {<br>&nbsp; &nbsp; &nbsp; &nbsp;substepsContent.getElementsByTagName(\"h3\")&#091;0].innerHTML = \"\";<br>&nbsp; &nbsp; &nbsp; &nbsp;substepsContent.getElementsByTagName(\"p\")&#091;0].innerHTML = \"\";<br>&nbsp; &nbsp; }<br>\u200b<br>&nbsp; &nbsp; &nbsp;\/\/ \u79fb\u9664\u4e4b\u524d\u63d2\u5165\u7684\u56fe\u7247\u5143\u7d20<br>&nbsp; &nbsp; &nbsp;var oldImage = substepsContent.querySelector(\"img\");<br>&nbsp; &nbsp; &nbsp;if (oldImage) {<br>&nbsp; &nbsp; &nbsp; &nbsp;oldImage.parentNode.removeChild(oldImage);<br>&nbsp; &nbsp; }<br>\u200b<br>&nbsp; &nbsp; &nbsp;\/\/ \u63d2\u5165\u65b0\u7684\u56fe\u7247\u5143\u7d20<br>&nbsp; &nbsp; &nbsp;if (currentStepObj.substeps &amp;&amp; currentStepObj.substeps&#091;currentSubstep] &amp;&amp; currentStepObj.substeps&#091;currentSubstep].image) {<br>&nbsp; &nbsp; &nbsp; &nbsp;var image = document.createElement(\"img\");<br>&nbsp; &nbsp; &nbsp; &nbsp;image.src = currentStepObj.substeps&#091;currentSubstep].image;<br>&nbsp; &nbsp; &nbsp; &nbsp;substepsContent.appendChild(image);<br>&nbsp; &nbsp; }<br>&nbsp; }<br><br>&nbsp; &nbsp;function handleSubstepButtonClick() {<br>&nbsp; &nbsp; &nbsp;var substepIndex = parseInt(this.getAttribute(\"data-substep\"));<br>&nbsp; &nbsp; &nbsp;if (substepIndex !== currentSubstep) {<br>&nbsp; &nbsp; &nbsp; &nbsp;currentSubstep = substepIndex;<br>&nbsp; &nbsp; &nbsp; &nbsp;renderSubsteps();<br>&nbsp; &nbsp; &nbsp; &nbsp;updateButtons();<br>&nbsp; &nbsp; &nbsp; &nbsp;updateProgressBar();<br>&nbsp; &nbsp; }<br>&nbsp; }<br><br>\u200b<br><br>&nbsp; &nbsp;function updateButtons() {<br>&nbsp; &nbsp; &nbsp;var currentStepObj = steps&#091;currentStep];<br>&nbsp; &nbsp; &nbsp;prevButton.disabled = currentStep === 0 &amp;&amp; currentSubstep === 0;<br>&nbsp; &nbsp; &nbsp;nextButton.disabled = currentStep === steps.length - 1 &amp;&amp; currentSubstep === currentStepObj.substeps.length - 1;<br><br>&nbsp; }<br><br>&nbsp; &nbsp;function updateProgressBar() {<br>&nbsp; &nbsp; &nbsp;var totalSteps = steps.length;<br>&nbsp; &nbsp; &nbsp;var totalSubsteps = steps&#091;currentStep].substeps ? steps&#091;currentStep].substeps.length : 0;<br><br>&nbsp; &nbsp; &nbsp;var progress = totalSubsteps ? ((currentStep + ((currentSubstep + 1) \/ (totalSubsteps + 0))) \/ totalSteps) * 100 : currentStep * 100;<br>&nbsp; &nbsp; &nbsp;document.getElementById(\"progress\").style.width = progress + \"%\";<br>&nbsp; &nbsp; &nbsp;var progressLabel = document.getElementById(\"progress-label\");<br>&nbsp; &nbsp; &nbsp;var totalProgress = 0;<br>&nbsp; &nbsp; &nbsp;for (var k = 0; k &lt; steps.length; k++) {<br>&nbsp; &nbsp; &nbsp; &nbsp;totalProgress += steps&#091;k].substeps.length;<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;var currentProgress = 0;<br>&nbsp; &nbsp; &nbsp;for (var i = 0; i &lt; currentStep; i++) {<br>&nbsp; &nbsp; &nbsp; &nbsp;currentProgress += steps&#091;i].substeps.length;<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;currentProgress += currentSubstep;<br>&nbsp; &nbsp; &nbsp; &nbsp;progressLabel.textContent = \"Progress: \" + (currentProgress + 1) + \"\/\" + totalProgress; \/\/ \u66f4\u65b0\u8fdb\u5ea6\u6807\u7b7e\u7684\u6587\u672c\u5185\u5bb9<br><br>&nbsp; &nbsp; &nbsp;var stepButtons = document.getElementsByClassName(\"step-btn\");<br>&nbsp; &nbsp; &nbsp;for (var i = 0; i &lt; stepButtons.length; i++) {<br>&nbsp; &nbsp; &nbsp; &nbsp;if (i &lt; currentStep) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepButtons&#091;i].classList.remove(\"current-step\");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepButtons&#091;i].classList.add(\"completed-step\");<br>&nbsp; &nbsp; &nbsp; } else if (i === currentStep) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepButtons&#091;i].classList.add(\"current-step\");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepButtons&#091;i].classList.remove(\"completed-step\");<br>&nbsp; &nbsp; &nbsp; } else {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepButtons&#091;i].classList.remove(\"current-step\");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stepButtons&#091;i].classList.remove(\"completed-step\");<br>&nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;stepButtons&#091;currentStep].scrollIntoView({ block: \"nearest\", inline: \"center\" }); \/\/\u753b\u9762\u5916\u7684\u6309\u94ae\u81ea\u52a8\u6eda\u52a8\u81f3\u753b\u9762\u4e2d\u592e<br>\u200b<br>&nbsp; &nbsp; &nbsp;var substepButtons = document.getElementsByClassName(\"substep-btn\");<br>&nbsp; &nbsp; &nbsp;for (var j = 0; j &lt; substepButtons.length; j++) {<br>&nbsp; &nbsp; &nbsp; &nbsp;if (j &lt; currentSubstep) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;substepButtons&#091;j].classList.remove(\"current-substep\");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;substepButtons&#091;j].classList.add(\"completed-substep\");<br>&nbsp; &nbsp; &nbsp; } else if (j === currentSubstep) {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;substepButtons&#091;j].classList.add(\"current-substep\");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;substepButtons&#091;j].classList.remove(\"completed-substep\");<br>&nbsp; &nbsp; &nbsp; } else {<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;substepButtons&#091;j].classList.remove(\"current-substep\");<br>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;substepButtons&#091;j].classList.remove(\"completed-substep\");<br>&nbsp; &nbsp; &nbsp; }<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;substepButtons&#091;currentSubstep].scrollIntoView({ block: \"nearest\", inline: \"center\" }); \/\/\u753b\u9762\u5916\u7684\u6309\u94ae\u81ea\u52a8\u6eda\u52a8\u81f3\u753b\u9762\u4e2d\u592e<br>&nbsp; }<br><br>&nbsp; &nbsp;prevButton.addEventListener(\"click\", function() {<br>&nbsp; &nbsp; &nbsp;if (currentSubstep &gt; 0) {<br>&nbsp; &nbsp; &nbsp; &nbsp;currentSubstep--;<br>&nbsp; &nbsp; } else if (currentStep &gt; 0) {<br>&nbsp; &nbsp; &nbsp; &nbsp;currentStep--;<br>&nbsp; &nbsp; &nbsp; &nbsp;currentSubstep = steps&#091;currentStep].substeps.length - 1;<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;renderSteps();<br>&nbsp; &nbsp; &nbsp;renderSubsteps();<br>&nbsp; &nbsp; &nbsp;updateButtons();<br>&nbsp; &nbsp; &nbsp;updateProgressBar();<br>\u200b<br>&nbsp; });<br><br>&nbsp; &nbsp;nextButton.addEventListener(\"click\", function() {<br>&nbsp; &nbsp; &nbsp;var currentStepObj = steps&#091;currentStep];<br><br>&nbsp; &nbsp; &nbsp;if (currentSubstep &lt; currentStepObj.substeps.length - 1) {<br>&nbsp; &nbsp; &nbsp; &nbsp;currentSubstep++;<br>&nbsp; &nbsp; } else if (currentStep &lt; steps.length - 1) {<br>&nbsp; &nbsp; &nbsp; &nbsp;currentStep++;<br>&nbsp; &nbsp; &nbsp; &nbsp;currentSubstep = 0;<br>&nbsp; &nbsp; }<br>&nbsp; &nbsp; &nbsp;renderSteps();<br>&nbsp; &nbsp; &nbsp;renderSubsteps();<br>&nbsp; &nbsp; &nbsp;updateButtons();<br>&nbsp; &nbsp; &nbsp;updateProgressBar();<br>&nbsp; });<br><br><br>&nbsp; &nbsp;loadInputData();<br>});<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><code>styles.css<\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>body {\n&nbsp; &nbsp;font-family: 'Roboto', Arial, sans-serif;\n&nbsp; &nbsp;background-color: #f1f1f1;\n&nbsp; &nbsp;color: #333;\n&nbsp; &nbsp;margin: 0;\n&nbsp; &nbsp;padding: 20px;\n&nbsp; &nbsp;border: 1px solid #ccc;\n&nbsp; &nbsp;border-radius: 8px;\n&nbsp; &nbsp;font-size: 16px;\n}\n\n&nbsp;h1 {\n&nbsp; &nbsp;text-align: center;\n}\n\n&nbsp;#progress-bar {\n&nbsp; &nbsp;width: 100%;\n&nbsp; &nbsp;height: 20px;\n&nbsp; &nbsp;background-image: linear-gradient(to right, #ffffff, #a9a8a8);\n&nbsp; &nbsp;margin-bottom: 20px;\n&nbsp; &nbsp;position: relative;\n&nbsp; &nbsp;border: 1px solid #ccc;\n&nbsp; &nbsp;border-radius: 4px;\n}\n\n&nbsp;#progress {\n&nbsp; &nbsp;height: 100%;\n&nbsp; &nbsp;background-color: #0077b6;\n&nbsp; &nbsp;width: 0;\n&nbsp; &nbsp;transition: width 0.3s ease-in-out;\n&nbsp; &nbsp;border: 1px solid #ccc;\n&nbsp; &nbsp;border-radius: 4px;\n}\n\n&nbsp;#steps-container {\n&nbsp; &nbsp;justify-content: center;\n&nbsp; &nbsp;margin-bottom: 20px;\n&nbsp; &nbsp;overflow-x: scroll;\n&nbsp; &nbsp;white-space: nowrap;\n&nbsp; &nbsp;background-color: #fff;\n&nbsp; &nbsp;border: 1px solid #ccc;\n&nbsp; &nbsp;border-radius: 8px;\n&nbsp; &nbsp;padding: 10px;\n}\n\n&nbsp;.step-btn {\n&nbsp; &nbsp;font-size: 16px;\n&nbsp; &nbsp;padding: 0.5rem;\n&nbsp; &nbsp;margin-right: 10px;\n&nbsp; &nbsp;background-color: #f1f1f1;\n&nbsp; &nbsp;border-radius: 5px;\n&nbsp; &nbsp;border-width: 0;\n&nbsp; &nbsp;cursor: pointer;\n&nbsp; &nbsp;min-width: 8rem;\n&nbsp; &nbsp;height: 4rem;\n&nbsp; &nbsp;overflow: hidden;\n&nbsp; &nbsp;text-overflow: ellipsis;\n&nbsp; &nbsp;box-shadow: 0 2px 4px rgba(0, 180, 216, 0.3);\n&nbsp; &nbsp;color: #000000;\n}\n\n&nbsp;.step-btn.active {\n&nbsp; &nbsp;background-color: #0077b6;\n}\n\n&nbsp;#substeps-container {\n&nbsp; &nbsp;overflow-x: scroll;\n&nbsp; &nbsp;white-space: nowrap;\n&nbsp; &nbsp;justify-content: center;\n&nbsp; &nbsp;margin-bottom: 20px;\n&nbsp; &nbsp;background-color: #fff;\n&nbsp; &nbsp;border: 1px solid #ccc;\n&nbsp; &nbsp;border-radius: 8px;\n&nbsp; &nbsp;padding: 10px;\n}\n\n&nbsp;.substep-btn {\n&nbsp; &nbsp;font-size: 1rem;\n&nbsp; &nbsp;padding: 0.3rem;\n&nbsp; &nbsp;margin-right: 10px;\n&nbsp; &nbsp;background-color: #f1f1f1;\n&nbsp; &nbsp;border-radius: 5px;\n&nbsp; &nbsp;border-width: 0;\n&nbsp; &nbsp;cursor: pointer;\n&nbsp; &nbsp;width: 6rem;\n&nbsp; &nbsp;height: 2rem;\n&nbsp; &nbsp;overflow: hidden;\n&nbsp; &nbsp;text-overflow: ellipsis;\n&nbsp; &nbsp;color: #333;\n}\n\n&nbsp;.substep-btn.active {\n&nbsp; &nbsp;background-color: #ccc;\n}\n\n&nbsp;#prev-btn,\n&nbsp;#next-btn {\n&nbsp; &nbsp;font-size: 16px;\n&nbsp; &nbsp;padding: 10px 20px;\n&nbsp; &nbsp;background-color: #5085df;\n&nbsp; &nbsp;color: #fff;\n&nbsp; &nbsp;border: none;\n&nbsp; &nbsp;border-radius: 10px;\n&nbsp; &nbsp;margin: 10px;\n&nbsp; &nbsp;cursor: pointer;\n}\n\n&nbsp;#prev-btn:hover,\n&nbsp;#next-btn:hover {\n&nbsp; &nbsp;background-color: #00a0d8;\n}\n\n&nbsp;#prev-btn:disabled,\n&nbsp;#next-btn:disabled {\n&nbsp; &nbsp;background-color: #ccc;\n&nbsp; &nbsp;cursor: not-allowed;\n}\n\n&nbsp;.current-step {\n&nbsp; &nbsp;background-color: #fff200f5;\n}\n\n&nbsp;.completed-step {\n&nbsp; &nbsp;background-color: #9ccaeb;\n}\n\n&nbsp;.current-substep {\n&nbsp; &nbsp;background-color: #fff200f5;\n}\n\n&nbsp;.completed-substep {\n&nbsp; &nbsp;background-color: #9ccaeb;\n}\n\n&nbsp;#steps-content {\n&nbsp; &nbsp;height: 2rem;\n}\n\n&nbsp;#substeps-content {\n&nbsp; &nbsp;height: 18rem;\n&nbsp; &nbsp;overflow-y: scroll;\n&nbsp; &nbsp;background-color: #fff;\n&nbsp; &nbsp;color: #333;\n&nbsp; &nbsp;border: 1px solid #ccc;\n&nbsp; &nbsp;border-radius: 8px;\n&nbsp; &nbsp;padding: 10px;\n}\n\n&nbsp;html {\n&nbsp; &nbsp;scroll-behavior: smooth;\n}\n\n\/*\u9650\u5236\u56fe\u7247\u5bbd\u5ea6*\/\n&nbsp;#substeps-content img{\nmax-width: 100%;\n}\n\u200b\n\/*\u4e0b\u9762\u8fd9\u4e2a\u9002\u914d\u624b\u673a\u5c4f\u5e55\u597d\u50cf\u6709\u70b9\u95ee\u9898\uff0c\u4e0d\u8fc7\u61d2\u5f97\u4fee\u4e86\uff0c\u53cd\u6b63\u4e5f\u4e0d\u600e\u4e48\u7528\u624b\u673a*\/\n@media screen and (max-width: 480px) {\n&nbsp;#steps-content {\n&nbsp; &nbsp;height: 5rem;\n}\n&nbsp;#substeps-content {\n&nbsp; &nbsp;height: 60rem;\n}\n&nbsp;.substep-btn {\n&nbsp; &nbsp;width: 20rem;\n&nbsp; &nbsp;height: 5rem;\n} &nbsp;\n&nbsp;.step-btn {\n&nbsp; &nbsp;width: 25rem;\n&nbsp; &nbsp;height: 10rem;\n}\n}<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<p><code>input.json <\/code><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n&nbsp;\"title\": \"RIP-seq Protocol\",\n&nbsp;\"steps\": &#091;\n&nbsp; {\n&nbsp; &nbsp; &nbsp;\"title\": \"1. cell cuture\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"1.1\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"NCCIT\u7ec6\u80de\u6bcf\u4e2a\u6837\u54c1\u517b\u52306\u5b54\u677f\u7684\u4e24\u4e2a\u5b54\u957f\u6ee1\uff0c\u5927\u69825~6\u767e\u4e07\u7ec6\u80de\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"http:\/\/localhost\/images\/avatar.jpg\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; },\n&nbsp; {\n&nbsp; &nbsp; &nbsp;\"title\": \"2. Beads preparation\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"2.1\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u4e2a\u6837\u54c1\u752840\u03bcl ProteinG Dyna beads\uff0c\u53d6\u6837\u54c1\u6570 * 40\u03bcL\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"2.2\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u52a00.9 mL Lysis Buffer (\u52a01% protease inhibitor cocktail III)\u6d17\u56db\u6b21\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"2.3\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u7528200\u03bcL Lysis Buffer (\u52a01% protease inhibitor cocktail III)\u91cd\u60ac\uff0c\u6bcf40 \u03bcL beads\u6dfb\u52a05 \u03bcg\u6297\u4f53\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; },\n&nbsp; {\n&nbsp; &nbsp; &nbsp;\"title\": \"3. UV cross-linking\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"3.1\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u4ece\u57f9\u517b\u7bb1\u4e2d\u53d6\u51fa\u7ec6\u80de\uff0c\u5f03\u53bb\u57f9\u517b\u57fa\uff0c\u52a00.5 mL \u9884\u51b7\u7684PBS \uff08\u8fd9\u91cc\u7684PBS\u53ef\u4ee5\u4e0d\u52a0protease inhibitor\uff09\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"3.2\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u5438\u5f03PBS\uff0c\u655e\u5f00\u76d6\u5b50\uff0c\u7ec6\u80de\u88f8\u9732\u5728\u7a7a\u6c14\u4e2d\uff0c\u653e\u5165UV\u4ea4\u8054\u4eea\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"3.3\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"400 mJ\/cm \u4ea4\u8054\u3002\uff08\u5bf9\u4e8e\u672c\u5b9e\u9a8c\u5ba4\u4eea\u5668\uff0c\u70b9energy\uff0c\u8f93\u51654000\uff0c\u7136\u540eStart\uff09\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"3.4\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u4e2a\u5b54\u52a0\u51651mL PBS(\uff0bprotease inhibitor)\uff0c\u5bf9\u4e8eNCCIT\u6765\u8bf4\uff0c\u76f4\u63a5\u7528\u67aa\u5934\u5439\u6253\uff0c\u6536\u96c6\u52302mL EP\u7ba1\u4e2d\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"3.5\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u53f0\u76fc\u84dd\u6cd5\u5bf9\u7ec6\u80de\u8fdb\u884c\u8ba1\u6570\uff0c\u8bb0\u7ec6\u80de\u603b\u6570\uff0c\u6b7b\u6d3b\u90fd\u8981\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"3.6\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u4e2a\u6837\u54c1\u53d6\u75285M\u7ec6\u80de\uff0c4\u2103\uff0c5000rpm\u79bb\u5fc35min\u6536\u96c6\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; },\n&nbsp; {\n\u200b\n&nbsp; &nbsp; &nbsp;\"title\": \"4 \u7ec6\u80de\u88c2\u89e3\u548c\u514d\u75ab\u6c89\u6dc0\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.1\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u79bb\u5fc3\u7ed3\u675f\u540e\uff0c\u5f03\u4e0a\u6e05\uff0c\u6bcf\u4e2a\u7ba1\u5b50\u52a0\u5165150 \u03bcL lysis buffer (\uff0bcocktail)\uff0c\u8f6c\u79fb\u52301.5 mL lowBind EP\u7ba1\u4e2d\u3002\uff08\u56e0\u4e3a\u4e0b\u4e00\u6b65\u8981\u9707\u8361\uff0c\u6211\u4eec\u5b9e\u9a8c\u5ba4\u7684\u90a3\u4e2a\u673a\u5668\u53ea\u80fd\u75281.5mL\u7684\u7ba1\u5b50\uff09\uff0c\u51b0\u4e0a\u653e\u7f6e5min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.2\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u7ba1\u52a0\u516514 \u03bcL Turbo DNase (Ambion, AM2238)\u548c7.5 \u03bcL RNase Inhibitor\uff0c37\u2103\u4e0b1100rpm\u9707\u83615min.\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.3\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"4\u2103, 14000g\u79bb\u5fc310min\uff0c\u5c0f\u5fc3\u53d6\u51fa\uff0c\u4fdd\u6301\u6c89\u6dc0\u5728\u5e95\u90e8\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.4\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u51c6\u5907\u65b0\u7684EP\u7ba1\uff0c\u53d6\u51fa2~3\u03bcL\u4f5c\u4e3aInput\uff0c\u653e\u5230-20\u2103\u6682\u5b58\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.5\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u628a\u5305\u597d\u6297\u4f53\u7684beads\u5206\u6210\u6bcf20\u03bcL\u6700\u521d\u7684beads\u4f53\u79ef\u4e00\u4e2a1.5mL EP\u7ba1\uff0c\u78c1\u529b\u67b6\u653e\u7f6e1min\uff0c\u5f03\u4e0a\u6e05\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.6\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u4e2a\u542b\u6709beads\u7684EP\u7ba1\u4e2d\u52a0\u516575\u03bcL lysates \uff08\u6bcf\u4e2a\u6837\u54c12\u4e2areplicates\uff09\uff0c4\u2103\u6162\u901f\u65cb\u8f6c\u5b75\u80b22h~4h\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.7\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u7528High Stringent Buffer\uff08\uff0bcocktail\uff09\u6d17beads\uff0c\u4e00\u6b21\uff0c4\u2103\u6162\u901f\u65cb\u8f6c10min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.8\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u7528High Salt Buffer\uff08\uff0bcocktail\uff09\u6d17beads\uff0c\u4e00\u6b21\uff0c4\u2103\u6162\u901f\u65cb\u8f6c10min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.9\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u7528Low Salt Buffer\uff08\uff0bcocktail\uff09\u6d17beads\uff0c\u4e00\u6b21\uff0c4\u2103\u6162\u901f\u65cb\u8f6c10min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"4.10\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u628aInput\u4ece\u51b0\u7bb1\u4e2d\u53d6\u51fa\uff0c\u8ddf\u521a\u624d\u6d17\u597d\u7684replicate1\u548creplicate2\u4e00\u8d77\uff0c\u752850 \u03bcL Proteinase K digestion Buffer (\uff0b 2.5\u03bcL RNase Inhibitor\u548c5\u03bcL proteinase K)\u91cd\u60acbeads\uff0c50\u2103, 1100rpm\u632f\u8361 2h\u3002\\n \uff08beads\u5c31\u5446\u5728\u7ba1\u5b50\u91cc\uff0c\u4e4b\u540eRNAC\u62bd\u63d0\u7684\u65f6\u5019\u4f1a\u8dd1\u5230phase-lock tubes\u7684\u5e95\u90e8\u3002\uff09\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; },\n&nbsp; {\n&nbsp; &nbsp; &nbsp;\"title\": \"5 RNA\u62bd\u63d0\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"5.1\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u51c6\u5907Phase-Lock tubes, \u5ba4\u6e2916000g\u79bb\u5fc330s\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"5.2\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u628a\u6837\u54c1\u53d6\u51fa\uff0c\u52a0150\u03bcl lysis Buffer(+cocktail)\u8865\u5168\u4f53\u79ef\u5230200\u03bcL\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"5.3\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u52a0\u5165200 \u03bcL RNA\u62bd\u63d0\u6db2(25:24:1)\uff0c\u5267\u70c8\u9707\u836150\u6b21\uff0c\u5ba4\u6e2913200rpm\u79bb\u5fc35min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"5.4\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u52a0\u5165200\u03bcL\u6c2f\u4eff\uff0c\u5267\u70c8\u9707\u836150\u6b21\uff0c\u5ba4\u6e2913200rpm\u79bb\u5fc35min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"5.5\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u4e0a\u6e05\u6db2\u8f6c\u79fb\u5230\u65b0\u76841.5mL LowBind EP\u7ba1\u4e2d\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; },\n&nbsp; {\n&nbsp; &nbsp; &nbsp;\"title\": \"6 DNA\u6d88\u5316\u540e\u518d\u6b21\u62bd\u63d0\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"6.1\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u7ba1\u52a0\u516518\u03bcL Turbo DNase\uff0c37\u2103, 1100rpm\u632f\u836115min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"6.2\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u51c6\u5907Phase-Lock tubes, \u5ba4\u6e2916000g\u79bb\u5fc330s\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"6.3\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u53cd\u5e94\u7ed3\u675f\u540e\uff0c\u8f6c\u79fb\u5168\u90e8\u6eb6\u6db2\uff08\u5927\u7ea6200\u03bcL\uff09\u81f3Phase-Lock tubes\u4e2d\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"6.4\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u52a0\u5165200 \u03bcL RNA\u62bd\u63d0\u6db2(25:24:1)\uff0c\u5267\u70c8\u9707\u836150\u6b21\uff0c\u5ba4\u6e2913200rpm\u79bb\u5fc35min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"6.5\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u52a0\u5165200\u03bcL\u6c2f\u4eff\uff0c\u5267\u70c8\u9707\u836150\u6b21\uff0c\u5ba4\u6e2913200rpm\u79bb\u5fc35min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"6.6\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u4e0a\u6e05\u6db2\u8f6c\u79fb\u5230\u65b0\u76841.5mL LowBind EP\u7ba1\u4e2d\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; },\n&nbsp; {\n&nbsp; &nbsp; &nbsp;\"title\": \"7 \u6838\u9178\u9187\u6c89\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.1\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u52a0\u516520\u03bcL 3M NaAc\u548c1\u03bcL Glycogen (20\u03bcg\/\u03bcL)\uff0c\u6df7\u5300\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.2\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u52a0\u5165600 \u03bcL\u9884\u51b7\u7684\u65e0\u6c34\u4e59\u9187\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.3\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6df7\u5300\u540e\uff0c\u653e-80\u2103\u9187\u6c89\uff08\u5927\u4e8e2h\uff0c\u957f\u5219\u4e00\u661f\u671f\uff09\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.4\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"4\u2103, 14000g\u79bb\u5fc320min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.5\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u5f03\u4e0a\u6e05\uff0c\u52a0500\u03bcl\u9884\u51b7\u768475%\u4e59\u9187\u30024\u6444\u6c0f\u5ea6\uff0c14000rpm\uff0c\u79bb\u5fc35min\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.6\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u5f03\u4e0a\u6e05\uff0c4\u6444\u6c0f\u5ea6\uff0c14000rpm\uff0c\u79bb\u5fc31min\uff0c\u752810\u03bcl\u67aa\u5934\u5438\u5e72\u4e0a\u6e05\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.7\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u98ce\u5e723min\uff0c\u52a0\u9002\u91cf\u4f53\u79ef\u7684Nuclease-Free Water\uff0c\u6eb6\u89e3\u3002\uff08\u5bf9\u4e8e\u672cRIP-seq\u6765\u8bf4\u52a012\u03bcL\u6d17\u8131\uff09\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"7.8\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u7528NanoDrop\u6d4b\u6d53\u5ea6\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; },\n&nbsp; {\n&nbsp; &nbsp; &nbsp;\"title\": \"8 \u4e8c\u4ee3\u6d4b\u5e8f\u5efa\u5e93\",\n&nbsp; &nbsp; &nbsp;\"substeps\": &#091; &nbsp; &nbsp;\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.1\u6253\u65ad\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6309\u6d53\u5ea6\u6700\u4f4e\u7684\u53d63\u03bcL\u81f3\u516b\u8054\u6392\uff0c\u5176\u4ed6\u53d6\u8ddf\u5b83\u76f8\u540c\u7684ng\u6570\uff0c\u7528RNase-Free Water\u8865\u5168\u81f33\u03bcL\u3002\u6bcf\u7ba1\u52a0\u51653\u03bcL Frag\/Elute Buffer\u300294\u2103\u6253\u65ad8min\uff0c4\u2103 hold\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.2\u4e00\u94fe\u5408\u6210\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u7ba1\u52a0\u51654.8\u03bcL RT strand specificity Reagent \uff0b 1.2\u03bcL First Strand synthesis enzyme mix\uff0c\u53ef\u5148\u9884\u6df7\u3002\\n 25\u2103,10min \u2192 42\u2103,15min \u2192 70\u2103,15min \u2192 4\u2103,hold\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.3\u4e8c\u94fe\u5408\u6210\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u7ba1\u52a0\u516522\u03bcL RNase-Free Water \uff0b 4\u03bcL second strand synthesis reaction buffer with dUTP \uff0b 2\u03bcL Second strand synthesis enzyme mix\uff0c\u53ef\u5148\u9884\u6df7\uff0c\u603b\u4f53\u79ef40\u03bcL\u300216\u2103\u5b75\u80b21h\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.4\u7528beads\u7eaf\u5316\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u7ba1\u52a0\u516572\u03bcL NFTmag NGS DNA clean Beads\uff0c\u6df7\u5300\uff0c\u5ba4\u6e29\u9759\u7f6e5min\uff0c\u78c1\u529b\u67b6\u9759\u7f6e5min\uff0c\u5f03\u4e0a\u6e05\u3002\\n\u5c06tube\u4fdd\u6301\u5728\u78c1\u529b\u67b6\u4e0a\uff0c\u52a0\u5165100\u03bcL 80%\u4e59\u9187\uff0c\u653e30s\uff0c\u5f03\u4e0a\u6e05\u3002\u518d\u52a0\u5165100\u03bcL 80%\u4e59\u9187\uff0c\u653e30s\uff0c\u5f03\u4e0a\u6e05\u3002\u5ba4\u6e29\u5e72\u71e53min\uff0c\u52a0\u516519.5\u03bcL low-EDTA TE\uff0c\u5439\u6253\u6df7\u5300\uff0c\u5ba4\u6e29\u9759\u7f6e2min\uff0c\u78c1\u529b\u67b61min\uff0c\u5438\u53d618.5\u03bcL\u4e0a\u6e05\u81f3\u53e6\u4e00\u516b\u8054\u6392\u4e2d\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.5\u672b\u7aef\u4fee\u590d\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u4e0a\u4e00\u6b65\u7684Tube\u4e2d\uff0c\u6bcf\u7ba1\u52a0\u51655\u03bcL End-Prep Buffer\u548c1.5\u03bcL End-Prep enzymes\uff08\u603b\u4f53\u79ef25\u03bcL\uff09\u300220\u2103,30min \u2192 65\u2103,30min \u2192 4\u2103,hold\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.6\u63a5\u5934\u8fde\u63a5\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u4e0a\u4e00\u6b65\u7684Tube\u4e2d\uff0c\u6bcf\u7ba1\u52a0\u51658.25\u03bcL Ligation buffer\uff0c1.5\u03bcL Ligase Mix\u548c1.25\u03bcL Truncated Adapter\u3002\u5176\u4e2d\uff0cTruncated Adapter\u4e0d\u8981\u8ddf\u53e6\u5916\u4e8c\u8005\u9884\u6df7\uff0c\u6700\u540e\u5355\u72ec\u52a0\uff0c\u4ee5\u514d\u5f62\u6210\u63a5\u5934\u4e8c\u805a\u4f53\u300222\u2103\u53cd\u5e9415min\uff08\u603b\u4f53\u79ef36\u03bcL\uff0c\u70ed\u76d6\u5173\u95ed\uff09\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.7\u7247\u6bb5\u5206\u9009\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u4e0a\u4e00\u6b65\u7684Tube\u4e2d\uff0c\u52a0\u516514\u03bcL Nuclease-Free Water\uff0c\u621050\u03bcL\u4f53\u7cfb\u3002\u52a015\u03bcL beads\uff0c\u6df7\u5300\uff0c\u5ba4\u6e29\u9759\u7f6e5min\uff0c\u78c1\u529b\u67b65min\u3002\u8f6c\u79fb\u4e0a\u6e05\u81f3\u53e6\u4e00\u516b\u8054\u6392\u4e2d\uff08\uff01\uff01\u4e0d\u8981\u4e22\u6389\u4e0a\u6e05\uff01\uff01\uff09\uff0c\u52a010\u03bcL beads\u6df7\u5300\uff0c\u5ba4\u6e29\u9759\u7f6e5min\uff0c\u78c1\u529b\u67b65min\uff0c\u5f03\u4e0a\u6e05\u3002100\u03bcL 80%\u4e59\u9187\u6d17\u4e24\u6b21\u3002\u98ce\u5e723min\uff0c\u52a010.5 \u03bcL low-EDTA TE\uff0c\u5439\u6253\u6df7\u5300\uff0c\u5ba4\u6e29\u9759\u7f6e2min\uff0c\u78c1\u529b\u67b61min\uff0c\u5438\u53d610 \u03bcL\u4e0a\u6e05\u81f3\u53e6\u4e00\u516b\u8054\u6392\u4e2d\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.8PCR\u6587\u5e93\u6269\u589e\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u53d6\u65b0\u7684\u516b\u8054\u6392\uff0c\u6bcf\u7ba1\u52a0\u51656.25\u03bcL 2XPCR mix\u548c0.125\u03bcL UDG enzyme\uff08\u53ef\u4ee5\u770b\u51fa\u540e\u8005\u7528\u91cf\u975e\u5e38\u5c0f\uff0c\u4e8c\u8005\u5148\u9884\u6df7\uff09\u3002\u7136\u540e\u5206\u522b\u52a0\u51654.875\u03bcL\u4e0a\u4e00\u6b65\u5f97\u5230\u7684\u201c\u7247\u6bb5\u5206\u9009\u4ea7\u7269\u201d\uff0c\u518d\u5404\u81ea\u52a0\u5165\u4e0d\u540c\u7684Dual-index primer 1.25 \u03bcL\uff0c\u5728\u5b9e\u9a8c\u8bb0\u5f55\u672c\u4e0a\u8bb0\u6e05\u695a\u52a0\u4e86\u54ea\u51e0\u4e2aprimer\uff0c\u5206\u522b\u5bf9\u5e94\u54ea\u4e2a\u6837\u54c1\u300237\u2103,10min \u2192 98\u2103,1min \u2192 98\u2103,10s \u2192 60\u2103,15s \u2192 72\u2103,30s (goto step3, 8X) \u2192 72\u2103,1min \u2192 4\u2103,hold\u3002\u8fd4\u56de\u53bb8\u6b21\uff0c\u53739\u4e2acycles\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.9\u8dd1\u80f6\u68c0\u6d4b\u6269\u589e\u6548\u679c\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u63d0\u524d\u914d\u7f6e1%\u743c\u8102\u7cd6\u51dd\u80f6\uff0c\u53d62\u03bcL PCR\u4ea7\u7269\u8dd1\u80f6\u3002\u6839\u636e\u7ed3\u679c\uff0c\u770b\u662f\u5426\u6709\u4e2a\u522b\u6837\u54c1\u9700\u8981\u591a\u52a01~2\u4e2a\u5faa\u73af\u3002\u52a0\u5b8c\u5fc3\u91cc\u6709\u6570\u7684\u8bdd\u5c31\u4e0d\u7528\u518d\u8dd1\u80f6\u4e86\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.10 PCR\u4ea7\u7269\u56de\u6536\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6309\u4f53\u79ef\u52a01:1\u7684beads\uff0c\u6df7\u5300\uff0c\u5ba4\u6e295min\uff0c\u78c1\u529b\u67b65min\uff0c\u5f03\u4e0a\u6e05\uff0c100\u03bcL 80%\u4e59\u9187\u6d17\u4e24\u6b21\uff0c\u98ce\u5e722min\uff0c\u52a015\u03bcL low-EDTA TE\u6df7\u5300\uff0c\u5ba4\u6e292min\uff0c\u78c1\u529b\u67b61min\uff0c\u5438\u53d6\u4e0a\u6e05\u81f3\u65b0\u7684\u516b\u8054\u6392\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.11 Qubit\u6838\u9178\u5b9a\u91cf\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6bcf\u4e2aQubit\u7ba1\u4e2d\u52a0\u5165199\u03bcL Qubit\u53cd\u5e94\u6db2\u4f53\uff0c\u52a0\u51651\u03bcL\u6837\u54c1\uff0c\u6df7\u5300\u3002\u653e\u5165\u4eea\u5668\u68c0\u6d4b\uff0c\u8bfb\u6570\uff0c\u8bb0\u5f55\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.12\u6df7\u6837\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u6700\u4f4e\u6d53\u5ea6\u7684\u6837\u54c1\u53d6\u4e00\u534a\uff08\u4fdd\u8bc1\u6709\u4e00\u6b21\u5931\u8bef\u8865\u6551\u7684\u673a\u4f1a\uff09\uff0c\u5176\u4ed6\u53d6\u76f8\u540cng\u6570\uff08\u81f3\u5c11\u5927\u4e8e5ng\uff09\u3002\u53ef\u4ee5\u51e0\u4e2a\u4e00\u7ec4\u6df7\u6837\uff08\u800c\u4e0d\u662f\u5168\u90e8\u6df7\u62101\u4e2a\u6837\uff09\u65b9\u4fbf\u52a0\u6d4b\u3002\u8981\u6ce8\u610f\u8bb0\u5f55\u6bcf\u4e2a\u6837\u54c1\u53d6\u4e86\u51e0\u5fae\u5347\uff0c\u7136\u540e\u6309\u7167\u603b\u4f53\u79ef\u768480%\u52a0\u5165beads\uff0c\u6df7\u5300\uff0c\u5ba4\u6e295min\uff0c\u78c1\u529b\u67b65min\uff0c\u5f03\u4e0a\u6e05\uff0c100\u03bcL 80%\u4e59\u9187\u6d17\u4e24\u6b21\uff0c\u98ce\u5e722min\uff0c\u52a020\u03bcL Low-EDTA TE\u6d17\u8131\uff08\u5982\u679c\u6837\u54c1\u6570\u5c11\uff0c\u51cf\u5c11\u6d17\u8131\u4f53\u79ef\uff09\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.13\u518d\u6b21Qubit\u5b9a\u91cf\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u56e0\u4e3a\u586b\u6d4b\u5e8f\u8ba2\u5355\u9700\u8981\u5199\u6d53\u5ea6\uff0c\u6240\u4ee5\u9700\u8981\u518d\u6d4b\u4e00\u904dQubit\uff0c199\u03bcL Qubit\u53cd\u5e94\u6db2\u4f53\uff0c\u52a0\u51651\u03bcL\u6837\u54c1\uff0c\u6df7\u5300\u3002\u653e\u5165\u4eea\u5668\u68c0\u6d4b\uff0c\u8bfb\u6570\uff0c\u8bb0\u5f55\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; },\n&nbsp; &nbsp; &nbsp; {\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"title\": \"8.14\u586b\u5199\u8ba2\u5355\uff0c\u9001\u6d4b\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"content\": \"\u9ebb\u70e6\u6613\u51fa\u9519\u7684\u5730\u65b9\u5728\u4e8e\u586b\u597d\u6bcf\u4e2a\u5b50\u6837\u54c1\u5bf9\u5e94\u7684Dual-Index Primer\uff0c\u9519\u4e86\u4e0d\u53ea\u803d\u8bef\u81ea\u5df1\u540c\u65f6\u8fd8\u803d\u8bef\u4e00\u8d77\u4e0a\u673a\u7684\u5176\u4ed6\u4eba\u3002\",\n&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;\"image\": \"\"\n&nbsp; &nbsp; &nbsp; }\n&nbsp; &nbsp; ]\n&nbsp; }\n]\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u8fd9\u7bc7\u6587\u7ae0\u5c55\u793a\u4e86\u5982\u4f55\u5229\u7528HTML\u3001CSS\u548cJavaScript\u6784\u5efa\u4e00\u4e2a\u4ea4\u4e92\u5f0f\u5b9e\u9a8c\u6d41\u7a0b\uff08Protocol\uff09\u7f51\u9875\u6a21\u677f\u3002\u901a\u8fc7\u8fdb\u5ea6\u6761\u548c\u5206\u6b65\u5bfc\u822a\uff0c\u5b9e\u9a8c\u6b65\u9aa4\u53d8\u5f97\u53ef\u89c6\u5316\u4e14\u53ef\u8ffd\u8e2a\uff0c\u53ea\u9700\u4fee\u6539JSON\u6587\u4ef6\u5373\u53ef\u9002\u914d\u4e0d\u540c\u5b9e\u9a8c\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-239","post","type-post","status-publish","format-standard","hentry","category-note"],"_links":{"self":[{"href":"https:\/\/fanyiming.life\/index.php?rest_route=\/wp\/v2\/posts\/239","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fanyiming.life\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fanyiming.life\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fanyiming.life\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fanyiming.life\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=239"}],"version-history":[{"count":2,"href":"https:\/\/fanyiming.life\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions"}],"predecessor-version":[{"id":14145,"href":"https:\/\/fanyiming.life\/index.php?rest_route=\/wp\/v2\/posts\/239\/revisions\/14145"}],"wp:attachment":[{"href":"https:\/\/fanyiming.life\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=239"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fanyiming.life\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=239"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fanyiming.life\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=239"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}