2345.html 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689
  1. <!DOCTYPE html>
  2. <html lang="en" data-default-color-scheme=auto>
  3. <head><!-- hexo injector head_begin start -->
  4. <script async src="https://analytics.umami.is/script.js" data-website-id="e59ec28a-c9a7-4104-9e62-a9f7eb3fac0b"></script>
  5. <!-- hexo injector head_begin end -->
  6. <meta charset="UTF-8">
  7. <link rel="apple-touch-icon" sizes="76x76" href="https://img.limour.top/2023/08/29/64ee07361815a.webp">
  8. <link rel="icon" href="https://img.limour.top/2023/08/29/64ee07361815a.webp">
  9. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, shrink-to-fit=no">
  10. <meta http-equiv="x-ua-compatible" content="ie=edge">
  11. <meta name="theme-color" content="#2f4154">
  12. <meta name="author" content="Limour">
  13. <meta name="keywords" content="">
  14. <meta name="description" content="If you have a library which was sequenced across multiple flowcells, you can pool the reads from both sequencing runs. Follow the steps in Running Multi-Library Samples to combine them in a single ce">
  15. <meta property="og:type" content="article">
  16. <meta property="og:title" content="cellranger定量:One Library, Multiple Flowcells">
  17. <meta property="og:url" content="https://occdn.limour.top/2345.html">
  18. <meta property="og:site_name" content="Limour&#39;s Blog">
  19. <meta property="og:description" content="If you have a library which was sequenced across multiple flowcells, you can pool the reads from both sequencing runs. Follow the steps in Running Multi-Library Samples to combine them in a single ce">
  20. <meta property="og:locale" content="en_US">
  21. <meta property="og:image" content="https://img-cdn.limour.top/2022/09/25/632fc9055a801.png">
  22. <meta property="og:image" content="https://img-cdn.limour.top/2022/09/25/632fcc42859d5.png">
  23. <meta property="article:published_time" content="2022-09-25T07:06:03.000Z">
  24. <meta property="article:modified_time" content="2023-09-01T13:28:03.469Z">
  25. <meta property="article:author" content="Limour">
  26. <meta name="twitter:card" content="summary_large_image">
  27. <meta name="twitter:image" content="https://img-cdn.limour.top/2022/09/25/632fc9055a801.png">
  28. <title>cellranger定量:One Library, Multiple Flowcells - Limour&#39;s Blog</title>
  29. <link rel="stylesheet" href="https://jscdn.limour.top/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" />
  30. <link rel="stylesheet" href="https://jscdn.limour.top/npm/github-markdown-css@4.0.0/github-markdown.min.css" />
  31. <link rel="stylesheet" href="https://jscdn.limour.top/npm/hint.css@2.7.0/hint.min.css" />
  32. <link rel="stylesheet" href="https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.css" />
  33. <!-- 主题依赖的图标库,不要自行修改 -->
  34. <!-- Do not modify the link that theme dependent icons -->
  35. <link rel="stylesheet" href="//at.alicdn.com/t/font_1749284_hj8rtnfg7um.css">
  36. <link rel="stylesheet" href="//at.alicdn.com/t/font_1736178_lbnruvf0jn.css">
  37. <link rel="stylesheet" href="/css/main.css" />
  38. <link id="highlight-css" rel="stylesheet" href="/css/highlight.css" />
  39. <link id="highlight-css-dark" rel="stylesheet" href="/css/highlight-dark.css" />
  40. <link rel="stylesheet" href="/theme-inject/custom.css">
  41. <script id="fluid-configs">
  42. var Fluid = window.Fluid || {};
  43. Fluid.ctx = Object.assign({}, Fluid.ctx)
  44. var CONFIG = {"hostname":"occdn.limour.top","root":"/","version":"1.9.5-a","typing":{"enable":true,"typeSpeed":70,"cursorChar":"_","loop":false,"scope":[]},"anchorjs":{"enable":true,"element":"h1,h2,h3,h4,h5,h6","placement":"left","visible":"hover","icon":"§"},"progressbar":{"enable":true,"height_px":3,"color":"#29d","options":{"showSpinner":false,"trickleSpeed":100}},"code_language":{"enable":true,"default":"TEXT"},"copy_btn":true,"image_caption":{"enable":true},"image_zoom":{"enable":true,"img_url_replace":["",""]},"toc":{"enable":true,"placement":"right","headingSelector":"h1,h2,h3,h4,h5,h6","collapseDepth":0},"lazyload":{"enable":true,"loading_img":"https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg","onlypost":false,"offset_factor":2},"web_analytics":{"enable":false,"follow_dnt":true,"baidu":null,"google":{"measurement_id":null},"tencent":{"sid":null,"cid":null},"woyaola":null,"cnzz":null,"leancloud":{"app_id":null,"app_key":null,"server_url":null,"path":"window.location.pathname","ignore_local":false}},"search_path":"/local-search.xml","include_content_in_search":true};
  45. if (CONFIG.web_analytics.follow_dnt) {
  46. var dntVal = navigator.doNotTrack || window.doNotTrack || navigator.msDoNotTrack;
  47. Fluid.ctx.dnt = dntVal && (dntVal.startsWith('1') || dntVal.startsWith('yes') || dntVal.startsWith('on'));
  48. }
  49. </script>
  50. <script src="/js/utils.js" ></script>
  51. <script src="/js/color-schema.js" ></script>
  52. <meta name="generator" content="Hexo 6.3.0"></head>
  53. <body>
  54. <header>
  55. <div class="header-inner" style="height: 70vh;">
  56. <nav id="navbar" class="navbar fixed-top navbar-expand-lg navbar-dark scrolling-navbar">
  57. <div class="container">
  58. <a class="navbar-brand" href="/">
  59. <strong>Limour&#39;s Blog</strong>
  60. </a>
  61. <button id="navbar-toggler-btn" class="navbar-toggler" type="button" data-toggle="collapse"
  62. data-target="#navbarSupportedContent"
  63. aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
  64. <div class="animated-icon"><span></span><span></span><span></span></div>
  65. </button>
  66. <!-- Collapsible content -->
  67. <div class="collapse navbar-collapse" id="navbarSupportedContent">
  68. <ul class="navbar-nav ml-auto text-center">
  69. <li class="nav-item">
  70. <a class="nav-link" href="/">
  71. <i class="iconfont icon-home-fill"></i>
  72. <span>Home</span>
  73. </a>
  74. </li>
  75. <li class="nav-item">
  76. <a class="nav-link" href="/archives/">
  77. <i class="iconfont icon-archive-fill"></i>
  78. <span>Archives</span>
  79. </a>
  80. </li>
  81. <li class="nav-item" id="search-btn">
  82. <a class="nav-link" target="_self" href="javascript:;" data-toggle="modal" data-target="#modalSearch" aria-label="Search">
  83. <i class="iconfont icon-search"></i>
  84. </a>
  85. </li>
  86. <li class="nav-item" id="color-toggle-btn">
  87. <a class="nav-link" target="_self" href="javascript:;" aria-label="Color Toggle">
  88. <i class="iconfont icon-dark" id="color-toggle-icon"></i>
  89. </a>
  90. </li>
  91. </ul>
  92. </div>
  93. </div>
  94. </nav>
  95. <div id="banner" class="banner" parallax=true
  96. style="background: url('https://img.limour.top/2023/08/29/64ee08e108638.webp') no-repeat center center; background-size: cover;">
  97. <div class="full-bg-img">
  98. <div class="mask flex-center" style="background-color: rgba(0, 0, 0, 0.3)">
  99. <div class="banner-text text-center fade-in-up">
  100. <div class="h2">
  101. <span id="subtitle" data-typed-text="cellranger定量:One Library, Multiple Flowcells"></span>
  102. </div>
  103. <div class="mt-3">
  104. <span class="post-meta">
  105. <i class="iconfont icon-date-fill" aria-hidden="true"></i>
  106. <time datetime="2022-09-25 15:06" pubdate>
  107. September 25, 2022 pm
  108. </time>
  109. </span>
  110. </div>
  111. <div class="mt-1">
  112. <span class="post-meta mr-2">
  113. <i class="iconfont icon-chart"></i>
  114. 2.3k words
  115. </span>
  116. <span class="post-meta mr-2">
  117. <i class="iconfont icon-clock-fill"></i>
  118. 19 mins
  119. </span>
  120. </div>
  121. </div>
  122. </div>
  123. </div>
  124. </div>
  125. </div>
  126. </header>
  127. <main>
  128. <div class="container-fluid nopadding-x">
  129. <div class="row nomargin-x">
  130. <div class="side-col d-none d-lg-block col-lg-2">
  131. </div>
  132. <div class="col-lg-8 nopadding-x-md">
  133. <div class="container nopadding-x-md" id="board-ctn">
  134. <div id="board">
  135. <article class="post-content mx-auto">
  136. <h1 id="seo-header">cellranger定量:One Library, Multiple Flowcells</h1>
  137. <div class="markdown-body">
  138. <p><img src="https://img-cdn.limour.top/2022/09/25/632fc9055a801.png" srcset="https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg" lazyload></p>
  139. <p>If you have a library which was sequenced across multiple flowcells, you can pool the reads from both sequencing runs. Follow the steps in <a target="_blank" rel="noopener" href="https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/2.0/advanced/multi-library-samples">Running Multi-Library Samples</a> to combine them in a single cellranger count run.</p>
  140. <p><img src="https://img-cdn.limour.top/2022/09/25/632fcc42859d5.png" srcset="https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg" lazyload></p>
  141. <h2 id="重命名R1、R2"><a href="#重命名R1、R2" class="headerlink" title="重命名R1、R2"></a>重命名R1、R2</h2><p><a target="_blank" rel="noopener" href="https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/2.0/using/fastq-input#wrongname">My FASTQs are not named like any of the above examples</a>. It is likely that you received files that were processed through a proprietary LIMS system, which employs its own naming conventions.</p>
  142. <p>10x pipelines need files named in the <code>bcl2fastq</code> or <code>demux</code> convention in order to run properly. You will need to determine which file corresponds to which sample and which read type, likely by consulting your sequencing core or the individual who demultiplexed your flowcell.</p>
  143. <p>It is highly likely that these files were initially processed with <code>bcl2fastq</code>, so you will need to rename the files in the following format, once you track down their origin:</p>
  144. <p><code>[Sample Name]</code>_S1_L00<code>[Lane Number]</code>_<code>[Read Type]</code>_001.fastq.gz</p>
  145. <p>Where <code>Read Type</code> is one of:</p>
  146. <ul>
  147. <li><code>I1</code>: Sample index read (optional)</li>
  148. <li><code>I2</code>: Sample index read (optional)</li>
  149. <li><code>R1</code>: Read 1</li>
  150. <li><code>R2</code>: Read 2</li>
  151. </ul>
  152. <p>After you have renamed those files into that format, you’ll use the following arguments:</p>
  153. <p>Situation</p>
  154. <p>Argument+Value</p>
  155. <p>All samples</p>
  156. <p><code>--fastqs=/PATH/TO/PROJECT_FOLDER</code></p>
  157. <p>Process <code>SAMPLENAME</code> from all lanes</p>
  158. <p><code>--fastqs=/PATH/TO/PROJECT_FOLDER \</code><br><code>--sample=SAMPLENAME</code></p>
  159. <p>Process <code>SAMPLENAME</code> from lane 1 only</p>
  160. <p><code>--sample=SAMPLENAME \</code><br><code>--fastqs=/PATH/TO/PROJECT_FOLDER \</code><br><code>--lanes=1</code></p>
  161. <h3 id="重命名前"><a href="#重命名前" class="headerlink" title="重命名前"></a>重命名前</h3><p>├── SRR12391722<br>│ ├── SRR12391722_1.fastq.gz<br>│ └── SRR12391722_2.fastq.gz<br>├── SRR12391723<br>│ ├── SRR12391723_1.fastq.gz<br>│ └── SRR12391723_2.fastq.gz<br>├── SRR12391724<br>│ ├── SRR12391724_1.fastq.gz<br>│ └── SRR12391724_2.fastq.gz<br>└── SRR12391725<br>│├── SRR12391725_1.fastq.gz<br>│└── SRR12391725_2.fastq.gz</p>
  162. <h3 id="重命名后"><a href="#重命名后" class="headerlink" title="重命名后"></a>重命名后</h3><p>SRX8890106<br>├── SRX8890106_S1_L001_R1_001.fastq.gz<br>├── SRX8890106_S1_L001_R2_001.fastq.gz<br>├── SRX8890106_S1_L002_R1_001.fastq.gz<br>├── SRX8890106_S1_L002_R2_001.fastq.gz<br>├── SRX8890106_S1_L003_R1_001.fastq.gz<br>├── SRX8890106_S1_L003_R2_001.fastq.gz<br>├── SRX8890106_S1_L004_R1_001.fastq.gz<br>└── SRX8890106_S1_L004_R2_001.fastq.gz</p>
  163. <h2 id="进行定量"><a href="#进行定量" class="headerlink" title="进行定量"></a>进行定量</h2><p><a target="_blank" rel="noopener" href="https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/using/tutorial_ct">Running cellranger count</a>; <a target="_blank" rel="noopener" href="https://support.10xgenomics.com/single-cell-gene-expression/software/pipelines/latest/installation">cellranger 安装</a></p>
  164. <figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br></pre></td><td class="code"><pre><code class="hljs bash"><span class="hljs-meta">#!/bin/bash</span><br><span class="hljs-built_in">export</span> PATH=/opt/cellranger/cellranger-6.1.2:<span class="hljs-variable">$PATH</span><br>db=/opt/cellranger/refdata-gex-GRCh38-2020-A<br>data=/home/jovyan/work_st/sce/GSE137829/data<br>work=/home/jovyan/work_st/sce/GSE137829/res<br><span class="hljs-built_in">mkdir</span> <span class="hljs-variable">$work</span><br><span class="hljs-built_in">cd</span> <span class="hljs-variable">$work</span><br><span class="hljs-keyword">for</span> sample <span class="hljs-keyword">in</span> <span class="hljs-variable">$&#123;data&#125;</span>/*;<br><span class="hljs-keyword">do</span><br><span class="hljs-built_in">echo</span> <span class="hljs-variable">$sample</span><br>sample_res=<span class="hljs-variable">$&#123;sample##*/&#125;</span><br>cellranger count --<span class="hljs-built_in">id</span>=<span class="hljs-variable">$sample_res</span> \<br>--localcores=12 \<br>--transcriptome=<span class="hljs-variable">$db</span> \<br>--fastqs=<span class="hljs-variable">$sample</span> \<br>--sample=<span class="hljs-variable">$sample_res</span> \<br>--expect-cells=5000<br><span class="hljs-keyword">done</span><br></code></pre></td></tr></table></figure>
  165. <ul>
  166. <li>nano 103.sh</li>
  167. <li>chmod +x 103.sh</li>
  168. <li>.&#x2F;103.sh</li>
  169. </ul>
  170. </div>
  171. <hr/>
  172. <div>
  173. <div class="post-metas my-3">
  174. <div class="post-meta mr-3 d-flex align-items-center">
  175. <i class="iconfont icon-category"></i>
  176. <span class="category-chains">
  177. <span class="category-chain">
  178. <a href="/categories/%E5%8E%9F%E5%A7%8B%E6%95%B0%E6%8D%AE/" class="category-chain-item">原始数据</a>
  179. </span>
  180. </span>
  181. </div>
  182. </div>
  183. <div class="license-box my-3">
  184. <div class="license-title">
  185. <div>cellranger定量:One Library, Multiple Flowcells</div>
  186. <div>https://occdn.limour.top/2345.html</div>
  187. </div>
  188. <div class="license-meta">
  189. <div class="license-meta-item">
  190. <div>Author</div>
  191. <div>Limour</div>
  192. </div>
  193. <div class="license-meta-item license-meta-date">
  194. <div>Posted on</div>
  195. <div>September 25, 2022</div>
  196. </div>
  197. <div class="license-meta-item">
  198. <div>Licensed under</div>
  199. <div>
  200. <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  201. <span class="hint--top hint--rounded" aria-label="BY - Attribution">
  202. <i class="iconfont icon-by"></i>
  203. </span>
  204. </a>
  205. <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  206. <span class="hint--top hint--rounded" aria-label="NC - Non-commercial">
  207. <i class="iconfont icon-nc"></i>
  208. </span>
  209. </a>
  210. <a class="print-no-link" target="_blank" href="https://creativecommons.org/licenses/by-nc-sa/4.0/">
  211. <span class="hint--top hint--rounded" aria-label="SA - Share-alike">
  212. <i class="iconfont icon-sa"></i>
  213. </span>
  214. </a>
  215. </div>
  216. </div>
  217. </div>
  218. <div class="license-icon iconfont"></div>
  219. </div>
  220. <div class="post-prevnext my-3">
  221. <article class="post-prev col-6">
  222. <a href="/2349.html" title="从ENI数据库下载fastq文件">
  223. <i class="iconfont icon-arrowleft"></i>
  224. <span class="hidden-mobile">从ENI数据库下载fastq文件</span>
  225. <span class="visible-mobile">Previous</span>
  226. </a>
  227. </article>
  228. <article class="post-next col-6">
  229. <a href="/2338.html" title="使用JTK_CYCLE算法分析生物节律">
  230. <span class="hidden-mobile">使用JTK_CYCLE算法分析生物节律</span>
  231. <span class="visible-mobile">Next</span>
  232. <i class="iconfont icon-arrowright"></i>
  233. </a>
  234. </article>
  235. </div>
  236. </div>
  237. <article id="comments" lazyload>
  238. <div id="waline"></div>
  239. <script type="text/javascript">
  240. Fluid.utils.loadComments('#waline', function() {
  241. Fluid.utils.createCssLink('https://cdn.staticfile.org/waline/2.15.5/waline.min.css')
  242. Fluid.utils.createScript('https://cdn.staticfile.org/waline/2.15.5/waline.min.js', function() {
  243. var options = Object.assign(
  244. {"serverURL":"https://comments.limour.top","path":"window.location.pathname","meta":["nick","mail","link"],"requiredMeta":["nick"],"lang":"zh-CN","emoji":["https://jscdn.limour.top/gh/walinejs/emojis/weibo"],"dark":"html[data-user-color-scheme=\"dark\"]","wordLimit":0,"pageSize":10},
  245. {
  246. el: '#waline',
  247. path: window.location.pathname
  248. }
  249. )
  250. Waline.init(options);
  251. Fluid.utils.waitElementVisible('#waline .vcontent', () => {
  252. var imgSelector = '#waline .vcontent img:not(.vemoji)';
  253. Fluid.plugins.imageCaption(imgSelector);
  254. Fluid.plugins.fancyBox(imgSelector);
  255. })
  256. });
  257. });
  258. </script>
  259. <noscript>Please enable JavaScript to view the comments</noscript>
  260. </article>
  261. </article>
  262. </div>
  263. </div>
  264. </div>
  265. <div class="side-col d-none d-lg-block col-lg-2">
  266. <aside class="sidebar" style="margin-left: -1rem">
  267. <div id="toc">
  268. <p class="toc-header">
  269. <i class="iconfont icon-list"></i>
  270. <span>Table of Contents</span>
  271. </p>
  272. <div class="toc-body" id="toc-body"></div>
  273. </div>
  274. </aside>
  275. </div>
  276. </div>
  277. </div>
  278. <a id="scroll-top-button" aria-label="TOP" href="#" role="button">
  279. <i class="iconfont icon-arrowup" aria-hidden="true"></i>
  280. </a>
  281. <div class="modal fade" id="modalSearch" tabindex="-1" role="dialog" aria-labelledby="ModalLabel"
  282. aria-hidden="true">
  283. <div class="modal-dialog modal-dialog-scrollable modal-lg" role="document">
  284. <div class="modal-content">
  285. <div class="modal-header text-center">
  286. <h4 class="modal-title w-100 font-weight-bold">Search</h4>
  287. <button type="button" id="local-search-close" class="close" data-dismiss="modal" aria-label="Close">
  288. <span aria-hidden="true">&times;</span>
  289. </button>
  290. </div>
  291. <div class="modal-body mx-3">
  292. <div class="md-form mb-5">
  293. <input type="text" id="local-search-input" class="form-control validate">
  294. <label data-error="x" data-success="v" for="local-search-input">Keyword</label>
  295. </div>
  296. <div class="list-group" id="local-search-result"></div>
  297. </div>
  298. </div>
  299. </div>
  300. </div>
  301. </main>
  302. <footer>
  303. <div class="footer-inner">
  304. <div class="footer-content">
  305. <a target="_blank" rel="nofollow noopener" href="http://www.beian.gov.cn/portal/registerSystemInfo?recordcode=43130202000203"><img src="https://img.limour.top/2023/08/27/64eadeb81d6a0.webp" srcset="https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg" lazyload>湘公网安备 43130202000203号 </a> <a target="_blank" rel="nofollow noopener" href="https://beian.miit.gov.cn/">湘ICP备20008299号 </a> <a target="_blank" rel="nofollow noopener" href="https://icp.gov.moe/?keyword=20210128">萌ICP备20210128号</a> <br> <a href="https://www.foreverblog.cn/" target="_blank"> <img src="https://img.foreverblog.cn/logo_en_default.png" srcset="https://jscdn.limour.top/gh/Limour-dev/Sakurairo_Vision/load_svg/inload.svg" lazyload alt="" style="width:auto;height:24px"> </a> <br> <a href="https://hexo.io" target="_blank" rel="nofollow noopener"><span>Hexo</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/fluid-dev/hexo-theme-fluid" target="_blank" rel="nofollow noopener"><span>Fluid</span></a> <i class="iconfont icon-love"></i> <a href="https://github.com/limour-blog/archives-occdn" target="_blank" rel="nofollow noopener"><span>SRC</span></a>
  306. </div>
  307. </div>
  308. </footer>
  309. <!-- Scripts -->
  310. <script src="https://jscdn.limour.top/npm/nprogress@0.2.0/nprogress.min.js" ></script>
  311. <link rel="stylesheet" href="https://jscdn.limour.top/npm/nprogress@0.2.0/nprogress.min.css" />
  312. <script>
  313. NProgress.configure({"showSpinner":false,"trickleSpeed":100})
  314. NProgress.start()
  315. window.addEventListener('load', function() {
  316. NProgress.done();
  317. })
  318. </script>
  319. <script src="https://jscdn.limour.top/npm/jquery@3.6.4/dist/jquery.min.js" ></script>
  320. <script src="https://jscdn.limour.top/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" ></script>
  321. <script src="/js/events.js" ></script>
  322. <script src="/js/plugins.js" ></script>
  323. <script src="https://lib.baomitu.com/typed.js/2.0.12/typed.min.js" ></script>
  324. <script>
  325. (function (window, document) {
  326. var typing = Fluid.plugins.typing;
  327. var subtitle = document.getElementById('subtitle');
  328. if (!subtitle || !typing) {
  329. return;
  330. }
  331. var text = subtitle.getAttribute('data-typed-text');
  332. typing(text);
  333. })(window, document);
  334. </script>
  335. <script src="/js/img-lazyload.js" ></script>
  336. <script>
  337. Fluid.utils.createScript('https://jscdn.limour.top/npm/tocbot@4.20.1/dist/tocbot.min.js', function() {
  338. var toc = jQuery('#toc');
  339. if (toc.length === 0 || !window.tocbot) { return; }
  340. var boardCtn = jQuery('#board-ctn');
  341. var boardTop = boardCtn.offset().top;
  342. window.tocbot.init(Object.assign({
  343. tocSelector : '#toc-body',
  344. contentSelector : '.markdown-body',
  345. linkClass : 'tocbot-link',
  346. activeLinkClass : 'tocbot-active-link',
  347. listClass : 'tocbot-list',
  348. isCollapsedClass: 'tocbot-is-collapsed',
  349. collapsibleClass: 'tocbot-is-collapsible',
  350. scrollSmooth : true,
  351. includeTitleTags: true,
  352. headingsOffset : -boardTop,
  353. }, CONFIG.toc));
  354. if (toc.find('.toc-list-item').length > 0) {
  355. toc.css('visibility', 'visible');
  356. }
  357. Fluid.events.registerRefreshCallback(function() {
  358. if ('tocbot' in window) {
  359. tocbot.refresh();
  360. var toc = jQuery('#toc');
  361. if (toc.length === 0 || !tocbot) {
  362. return;
  363. }
  364. if (toc.find('.toc-list-item').length > 0) {
  365. toc.css('visibility', 'visible');
  366. }
  367. }
  368. });
  369. });
  370. </script>
  371. <script src=https://lib.baomitu.com/clipboard.js/2.0.11/clipboard.min.js></script>
  372. <script>Fluid.plugins.codeWidget();</script>
  373. <script>
  374. Fluid.utils.createScript('https://jscdn.limour.top/npm/anchor-js@4.3.1/anchor.min.js', function() {
  375. window.anchors.options = {
  376. placement: CONFIG.anchorjs.placement,
  377. visible : CONFIG.anchorjs.visible
  378. };
  379. if (CONFIG.anchorjs.icon) {
  380. window.anchors.options.icon = CONFIG.anchorjs.icon;
  381. }
  382. var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
  383. var res = [];
  384. for (var item of el) {
  385. res.push('.markdown-body > ' + item.trim());
  386. }
  387. if (CONFIG.anchorjs.placement === 'left') {
  388. window.anchors.options.class = 'anchorjs-link-left';
  389. }
  390. window.anchors.add(res.join(', '));
  391. Fluid.events.registerRefreshCallback(function() {
  392. if ('anchors' in window) {
  393. anchors.removeAll();
  394. var el = (CONFIG.anchorjs.element || 'h1,h2,h3,h4,h5,h6').split(',');
  395. var res = [];
  396. for (var item of el) {
  397. res.push('.markdown-body > ' + item.trim());
  398. }
  399. if (CONFIG.anchorjs.placement === 'left') {
  400. anchors.options.class = 'anchorjs-link-left';
  401. }
  402. anchors.add(res.join(', '));
  403. }
  404. });
  405. });
  406. </script>
  407. <script>
  408. Fluid.utils.createScript('https://lib.baomitu.com/fancybox/3.5.7/jquery.fancybox.min.js', function() {
  409. Fluid.plugins.fancyBox();
  410. });
  411. </script>
  412. <script>Fluid.plugins.imageCaption();</script>
  413. <script src="/js/local-search.js" ></script>
  414. <!-- 主题的启动项,将它保持在最底部 -->
  415. <!-- the boot of the theme, keep it at the bottom -->
  416. <script src="/js/boot.js" ></script>
  417. <noscript>
  418. <div class="noscript-warning">Blog works best with JavaScript enabled</div>
  419. </noscript>
  420. <!-- hexo injector body_end start -->
  421. <script defer src="/theme-inject/timeliness.js"></script>
  422. <!-- hexo injector body_end end --></body>
  423. </html>