-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
347 lines (291 loc) · 80.8 KB
/
index.html
File metadata and controls
347 lines (291 loc) · 80.8 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"><title>Juse's Blog - 积跬步 至千里</title><meta name="author" content="Juse"><meta name="copyright" content="Juse"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#ffffff"><meta property="og:type" content="website">
<meta property="og:title" content="Juse's Blog">
<meta property="og:url" content="https://biojuse.com/index.html">
<meta property="og:site_name" content="Juse's Blog">
<meta property="og:locale" content="zh_CN">
<meta property="og:image" content="https://biojuse.com/pic/gitav.png">
<meta property="article:author" content="Juse">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://biojuse.com/pic/gitav.png"><link rel="shortcut icon" href="/pic/webiron.png"><link rel="canonical" href="https://biojuse.com/"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free/css/all.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.min.css" media="print" onload="this.media='all'"><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":false,"languages":{"hits_empty":"找不到您查询的内容:${query}"}},
translate: {"defaultEncoding":1,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"简"},
noticeOutdate: undefined,
highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
copy: {
success: '复制成功',
error: '复制错误',
noSupport: '浏览器不支持'
},
relativeDate: {
homepage: true,
post: false
},
runtime: '',
date_suffix: {
just: '刚刚',
min: '分钟前',
hour: '小时前',
day: '天前',
month: '个月前'
},
copyright: undefined,
lightbox: 'fancybox',
Snackbar: undefined,
source: {
justifiedGallery: {
js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
}
},
isPhotoFigcaption: false,
islazyload: false,
isAnchor: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: 'Juse\'s Blog',
isPost: false,
isHome: true,
isHighlightShrink: false,
isToc: false,
postUpdate: '2026-04-10 10:46:13'
}</script><noscript><style type="text/css">
#nav {
opacity: 1
}
.justified-gallery img {
opacity: 1
}
#recent-posts time,
#post-meta time {
display: inline !important
}
</style></noscript><script>(win=>{
win.saveToLocal = {
set: function setWithExpiry(key, value, ttl) {
if (ttl === 0) return
const now = new Date()
const expiryDay = ttl * 86400000
const item = {
value: value,
expiry: now.getTime() + expiryDay,
}
localStorage.setItem(key, JSON.stringify(item))
},
get: function getWithExpiry(key) {
const itemStr = localStorage.getItem(key)
if (!itemStr) {
return undefined
}
const item = JSON.parse(itemStr)
const now = new Date()
if (now.getTime() > item.expiry) {
localStorage.removeItem(key)
return undefined
}
return item.value
}
}
win.getScript = url => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
script.onerror = reject
script.onload = script.onreadystatechange = function() {
const loadState = this.readyState
if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
script.onload = script.onreadystatechange = null
resolve()
}
document.head.appendChild(script)
})
win.activateDarkMode = function () {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
win.activateLightMode = function () {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
const t = saveToLocal.get('theme')
if (t === 'dark') activateDarkMode()
else if (t === 'light') activateLightMode()
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
if (asideStatus === 'hide') {
document.documentElement.classList.add('hide-aside')
} else {
document.documentElement.classList.remove('hide-aside')
}
}
const detectApple = () => {
if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
document.documentElement.classList.add('apple')
}
}
detectApple()
})(window)</script><link rel="stylesheet" href="/css/mycss.css"><link rel="stylesheet" href="/css/bg.css"><link rel="stylesheet" href="/css/hp.css"><script src="https://cdn1.tianli0.top/npm/vue@2.6.14/dist/vue.min.js"></script><script src="https://cdn1.tianli0.top/npm/element-ui@2.15.6/lib/index.js"></script><link rel="stylesheet" href="https://cdn1.tianli0.top/npm/element-ui@2.15.6/packages/theme-chalk/lib/index.css"><!-- hexo injector head_end start --><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Zfour/Butterfly-double-row-display@1.00/cardlistpost.min.css"/>
<style>#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags:before {content:"\A";
white-space: pre;}#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags > .article-meta__separator{display:none}</style>
<link rel="stylesheet" href="https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper.min.css" media="print" onload="this.media='all'"><link rel="stylesheet" href="https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiperstyle.css" media="print" onload="this.media='all'"><!-- hexo injector head_end end --><meta name="generator" content="Hexo 5.4.2"><link rel="alternate" href="/atom.xml" title="Juse's Blog" type="application/atom+xml">
</head><body><div id="loading-box"><div class="loading-left-bg"></div><div class="loading-right-bg"></div><div class="spinner-box"><div class="configure-border-1"><div class="configure-core"></div></div><div class="configure-border-2"><div class="configure-core"></div></div><div class="loading-word">加载中...</div></div></div><div id="web_bg"></div><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img is-center"><img src="/pic/gitav.png" onerror="onerror=null;src='/img/friend_404.gif'" alt="avatar"/></div><div class="sidebar-site-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">64</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">18</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">10</div></a></div><hr/><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fa fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group hide" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 文章</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fa fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fa fa-folder-open"></i><span> 分类</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/messageboard/"><i class="fa-fw fa fa-paper-plane"></i><span> 留言板</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fa fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/myself/"><i class="fa-fw fa fa-id-card"></i><span> 我自己</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fa fa-sitemap"></i><span> 关于</span></a></div><div class="menus_item"><a class="site-page group hide" href="javascript:void(0);"><i class="fa-fw fas fa-shoe-prints"></i><span> 杂项</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/talk/"><i class="fa-fw fa fa-book"></i><span> 琐碎的日常</span></a></li><li><a class="site-page child" href="/new/"><i class="fa-fw fa fa-bell"></i><span> 更新日志</span></a></li></ul></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url('/pic/sygx.png')"><nav id="nav"><span id="blog_name"><a id="site-name" href="/">Juse's Blog</a></span><div id="menus"><div id="search-button"><a class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> 搜索</span></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fa fa-home"></i><span> 首页</span></a></div><div class="menus_item"><a class="site-page group hide" href="javascript:void(0);"><i class="fa-fw fas fa-list"></i><span> 文章</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/archives/"><i class="fa-fw fa fa-archive"></i><span> 归档</span></a></li><li><a class="site-page child" href="/tags/"><i class="fa-fw fa fa-tags"></i><span> 标签</span></a></li><li><a class="site-page child" href="/categories/"><i class="fa-fw fa fa-folder-open"></i><span> 分类</span></a></li></ul></div><div class="menus_item"><a class="site-page" href="/messageboard/"><i class="fa-fw fa fa-paper-plane"></i><span> 留言板</span></a></div><div class="menus_item"><a class="site-page" href="/link/"><i class="fa-fw fa fa-link"></i><span> 友链</span></a></div><div class="menus_item"><a class="site-page" href="/myself/"><i class="fa-fw fa fa-id-card"></i><span> 我自己</span></a></div><div class="menus_item"><a class="site-page" href="/about/"><i class="fa-fw fa fa-sitemap"></i><span> 关于</span></a></div><div class="menus_item"><a class="site-page group hide" href="javascript:void(0);"><i class="fa-fw fas fa-shoe-prints"></i><span> 杂项</span><i class="fas fa-chevron-down"></i></a><ul class="menus_item_child"><li><a class="site-page child" href="/talk/"><i class="fa-fw fa fa-book"></i><span> 琐碎的日常</span></a></li><li><a class="site-page child" href="/new/"><i class="fa-fw fa fa-bell"></i><span> 更新日志</span></a></li></ul></div></div><div id="toggle-menu"><a class="site-page"><i class="fas fa-bars fa-fw"></i></a></div></div></nav><div id="site-info"><h1 id="site-title">Juse's Blog</h1><div id="site-subtitle"><span id="subtitle"></span></div><div id="site_social_icons"><a class="social-icon" href="/qq.html" target="_blank" title=""><i class="fab fa-qq"></i></a><a class="social-icon" href="https://space.bilibili.com/31269335" target="_blank" title=""><i class="fab fa-bilibili"></i></a><a class="social-icon" href="https://github.com/JuseTiZ" target="_blank" title=""><i class="fab fa-github"></i></a><a class="social-icon" href="https://steamcommunity.com/id/291195857/" target="_blank" title=""><i class="fab fa-steam"></i></a></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts" id="recent-posts"><div class="recent-post-item"><div class="post_cover left"><a href="/2026/03/09/hexo+butterfly%20%E5%8D%9A%E5%AE%A2%E8%AF%84%E8%AE%BA%E7%B3%BB%E7%BB%9F%E8%BF%81%E7%A7%BB%EF%BC%88Valine+LeanCloud%20%E5%88%B0%20Waline+Neon%EF%BC%89/" title="hexo+butterfly 博客评论系统迁移(Valine+LeanCloud 到 Waline+Neon)"><img class="post_bg" src="/pic/1114180.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="hexo+butterfly 博客评论系统迁移(Valine+LeanCloud 到 Waline+Neon)"></a></div><div class="recent-post-info"><a class="article-title" href="/2026/03/09/hexo+butterfly%20%E5%8D%9A%E5%AE%A2%E8%AF%84%E8%AE%BA%E7%B3%BB%E7%BB%9F%E8%BF%81%E7%A7%BB%EF%BC%88Valine+LeanCloud%20%E5%88%B0%20Waline+Neon%EF%BC%89/" title="hexo+butterfly 博客评论系统迁移(Valine+LeanCloud 到 Waline+Neon)">hexo+butterfly 博客评论系统迁移(Valine+LeanCloud 到 Waline+Neon)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2026-03-09T13:10:00.000Z" title="发表于 2026-03-09 21:10:00">2026-03-09</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2026-03-21T07:48:57.455Z" title="更新于 2026-03-21 15:48:57">2026-03-21</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%8D%9A%E5%AE%A2/">博客</a></span></div><div class="content">前言在前不久,LeanCloud 发布公告,宣布其停止新用户注册和新应用创建,且将于 2027 年 1 月 12 日停止服务。
此时我刚捣鼓好 Valine 的邮件通知系统没有多久,但可惜的是我不得不面对现实。由于 Valine 官方基本沉寂,我大概率等不来一个好的替代方案(Valine 仅支持 LeanCloud 作为数据库)。在这段时间忙完自己的论文后,终于有了时间来处理博客事务,研究了一天成功将博客的评论系统进行了迁移,故有此文。
评论系统迁移一些可能需要提前注意的事项迁移到 Waline 可能需要你有一个自己的域名(因为要绑定一个子域名作为评论管理系统页面),如果你没有自己的域名,可以考虑购买一个或使用其他评论系统作为替代(即本文内容对你可能无用)。此外,本博客基于 hexo+butterfly 搭建,一些后续的调整可能在其他主题中不适用。
Waline 部署这一部分内容主要来自:Waline 官方教程 —— 快速上手,并针对部分内容进行细节补充。
部署服务端及创建数据库这两个部分基本与上述官方教程无异,虽然当前 Vercel 页面布局可能存在些许不同,但总体流程没有变化,所以 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2025/11/20/%E4%BD%BF%E7%94%A8%20PheTK%20%E8%BF%9B%E8%A1%8C%E5%85%A8%E8%A1%A8%E5%9E%8B%E7%BB%84%E5%85%B3%E8%81%94%E5%88%86%E6%9E%90/" title="使用 PheTK 进行全表型组关联分析"><img class="post_bg" src="/pic2/20251120_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="使用 PheTK 进行全表型组关联分析"></a></div><div class="recent-post-info"><a class="article-title" href="/2025/11/20/%E4%BD%BF%E7%94%A8%20PheTK%20%E8%BF%9B%E8%A1%8C%E5%85%A8%E8%A1%A8%E5%9E%8B%E7%BB%84%E5%85%B3%E8%81%94%E5%88%86%E6%9E%90/" title="使用 PheTK 进行全表型组关联分析">使用 PheTK 进行全表型组关联分析</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2025-11-20T07:00:00.000Z" title="发表于 2025-11-20 15:00:00">2025-11-20</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2025-11-21T03:01:47.244Z" title="更新于 2025-11-21 11:01:47">2025-11-21</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">前言全表型组关联分析(PheWAS,Phenome-wide Association Studies)是一类用于系统性探索遗传变异与多种表型之间关联的研究方法。与常见的全基因组关联分析(GWAS)相比,二者的视角恰好相反:
GWAS 关注的是“针对一个表型,在基因组范围内寻找哪些变异与之相关”;
PheWAS 则关注“针对某个特定变异(或一类变异),在众多表型中寻找它会影响哪些性状”。
近年来,随着测序规模的扩大与统计方法的发展,稀有变异(rare variants)在复杂性状中的作用逐渐受到重视。由于单个稀有变异往往难以单独检出显著关联,研究者通常采用 burden analysis 等策略将同一基因中的有害变异聚合起来,以提升统计功效。在典型的 burden 分析流程中,通常会:
识别基因中的功能有害变异,例如预测的 loss-of-function 变异或机器学习模型给出的高致病性错义变异;
根据样本是否携带这些有害变异进行编码,编码方式可以是简单的二元(0/1),也可以使用携带数量作为计数值;
对编码后的变量在多种表型上执行关联分析,从而识别哪些表型与该类有害变异显著相关 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2025/05/24/%E4%BD%BF%E7%94%A8%20igv-reports%20%E8%BF%9B%E8%A1%8C%E5%9F%BA%E5%9B%A0%E7%BB%84%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/" title="使用 igv-reports 进行基因组数据可视化"><img class="post_bg" src="/pic2/GPT_19_32_42.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="使用 igv-reports 进行基因组数据可视化"></a></div><div class="recent-post-info"><a class="article-title" href="/2025/05/24/%E4%BD%BF%E7%94%A8%20igv-reports%20%E8%BF%9B%E8%A1%8C%E5%9F%BA%E5%9B%A0%E7%BB%84%E6%95%B0%E6%8D%AE%E5%8F%AF%E8%A7%86%E5%8C%96/" title="使用 igv-reports 进行基因组数据可视化">使用 igv-reports 进行基因组数据可视化</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2025-05-24T11:00:00.000Z" title="发表于 2025-05-24 19:00:00">2025-05-24</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2025-08-21T08:06:46.123Z" title="更新于 2025-08-21 16:06:46">2025-08-21</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9D%82%E9%A1%B9/">杂项</a></span></div><div class="content">基因组数据分析中,Integrative Genomics Viewer(IGV)以其直观的交互式界面和丰富的可视化功能,成为我们查看变异和注释等基因组信息的首选工具。然而,在某些情景下 IGV 的可视化优势难以发挥:基因组数据在服务器上,但在服务器中无法方便地调用图形页面,而基因组数据下载到本地再使用 IGV 可视化又过于不便且耗时(特别是在数据量庞大的情况下)。
针对这一问题,igv-reports 成为了一个很好的替代工具。它能够将 IGV 的会话内容和基因组浏览快照一并打包成静态 HTML 报告。生成的报告文件下载到本地后,用户可直接在浏览器中查看和交互,操作体验与 IGV 类似,同时支持灵活分享,兼顾效率与便捷性。
Source: https://igvteam.github.io/igv-reports/examples/example_vcf.html
需要注意的是,igv-reports 适用于可视化基因组部分区域时使用,例如你关注的是某些变异位置或特定基因附近的比对情况/信号时,使用 igv-reports 是合适的。但如果你想要大尺度地进行可视化(例如展示整条 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2025/04/14/linux%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20du%20%E6%8E%92%E6%9F%A5%E6%96%87%E4%BB%B6%E6%95%B0%E9%87%8F%E8%BF%87%E5%A4%A7%E7%9A%84%E7%9B%AE%E5%BD%95/" title="linux 中使用 du 排查文件数量过大的目录"><img class="post_bg" src="/pic2/GPT16_05_44.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="linux 中使用 du 排查文件数量过大的目录"></a></div><div class="recent-post-info"><a class="article-title" href="/2025/04/14/linux%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20du%20%E6%8E%92%E6%9F%A5%E6%96%87%E4%BB%B6%E6%95%B0%E9%87%8F%E8%BF%87%E5%A4%A7%E7%9A%84%E7%9B%AE%E5%BD%95/" title="linux 中使用 du 排查文件数量过大的目录">linux 中使用 du 排查文件数量过大的目录</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2025-04-14T08:00:00.000Z" title="发表于 2025-04-14 16:00:00">2025-04-14</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2025-04-14T08:17:41.416Z" title="更新于 2025-04-14 16:17:41">2025-04-14</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9D%82%E9%A1%B9/">杂项</a></span></div><div class="content">这一段时间对服务器进行备份时发现有些目录的扫描速度非常慢,经调查这些目录大多都是某些 pipeline 在运行时产生的中间文件,虽然其存储占用并不大但由于文件小且多导致在处理这一部分目录时不必要地产生了过大的时间开销,遂在网上寻找定位这些目录的方法并觉得可以水篇博客,固有此文。
这篇文章将介绍如何使用 du 识别出那些包含文件数量过大的目录。
基础介绍每个文件/目录在 Linux 中都有一个 Inode(Index Node),文件系统创建时有固定的 Inode 总数,用尽会导致无法新建文件,而过大的 Inode 数量也会导致一些困扰(在我的应用场景中即部分命令的运行时间开销大幅增加),可以使用 df -ih 查看当前各个文件系统的的 Inode 情况:
123456$ df -ihFilesystem Inodes IUsed IFree IUse% Mounted ondevtmpfs 63M 1.1K 63M 1% /devtmpfs 63M 30K 63M 1% /d ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2025/04/14/trim_galore%20%E5%90%8E%20Per%20Base%20Sequence%20Content%20%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%E7%9A%84%E5%8E%9F%E5%9B%A0/" title="trim_galore 后 Per Base Sequence Content 出现问题的原因"><img class="post_bg" src="/pic2/20250414151458.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="trim_galore 后 Per Base Sequence Content 出现问题的原因"></a></div><div class="recent-post-info"><a class="article-title" href="/2025/04/14/trim_galore%20%E5%90%8E%20Per%20Base%20Sequence%20Content%20%E5%87%BA%E7%8E%B0%E9%97%AE%E9%A2%98%E7%9A%84%E5%8E%9F%E5%9B%A0/" title="trim_galore 后 Per Base Sequence Content 出现问题的原因">trim_galore 后 Per Base Sequence Content 出现问题的原因</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2025-04-14T07:00:00.000Z" title="发表于 2025-04-14 15:00:00">2025-04-14</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2025-04-14T08:15:13.569Z" title="更新于 2025-04-14 16:15:13">2025-04-14</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9D%82%E9%A1%B9/">杂项</a></span></div><div class="content">最近在处理基因组数据时,遇到的大多数据都已经处理过,所以 fastQC 里基本没有问题,可以直接用来比对。不过这几天有一个数据比较异常,所以按照惯例地跑了一下 trim_galore,发现了一个意料之外的情况:
质控前,所有数据都有 Adapter Content 的警告,但是其他方面没有问题:
质控后,Adapter Content 的警告消失,但是 Per Base Sequence Content 全部爆红:
经过比较,原因都是 reads 末端的碱基组成异常导致:
经调查在 Trim Galore github 中已经有人提到过(issue #81),这里简单阐述下原因:
Trim Galore 在过滤时采用非常严格的策略,具体来说,它并不只在接头完全匹配时才进行移除,而是在末端开始进行逐个匹配。例如,假设识别到的接头序列为 AGATCGGAAGAGC,而某一个 reads 从末端开始为 ACCTCG,虽然这里从第二个碱基开始就不能和接头匹配上,但是由于第一个碱基 A 和接头相匹配,因此被 Trim Galore 移除,这也是为什么能在运行 trim_gal ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2025/03/22/%E5%9F%BA%E4%BA%8E%20genmap%20%E8%AE%A1%E7%AE%97%E5%9F%BA%E5%9B%A0%E7%BB%84%20mappability/" title="基于 genmap 计算基因组 mappability"><img class="post_bg" src="/pic2/genmap.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="基于 genmap 计算基因组 mappability"></a></div><div class="recent-post-info"><a class="article-title" href="/2025/03/22/%E5%9F%BA%E4%BA%8E%20genmap%20%E8%AE%A1%E7%AE%97%E5%9F%BA%E5%9B%A0%E7%BB%84%20mappability/" title="基于 genmap 计算基因组 mappability">基于 genmap 计算基因组 mappability</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2025-03-22T03:30:00.000Z" title="发表于 2025-03-22 11:30:00">2025-03-22</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2025-08-22T05:00:53.321Z" title="更新于 2025-08-22 13:00:53">2025-08-22</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">基因组的 mappability 是指测序产生的短读长能够被唯一且准确比对到参考基因组特定区域的能力。它反映了基因组不同区域因序列特征(如重复序列、低复杂度区域等)对比对结果可靠性的影响。例如,高度重复区域(如 Alu 元件)的 mappability 通常较低,因为 reads 可能匹配到多个位置。
在实际分析中,有时我们会过滤低 mappability 区域的突变,避免因比对错误导致的假阳性误判。本文将介绍如何使用生物信息学工具 GenMap 获得基因组的 mappability 信息。
GenMapGenMap github page:
https://github.com/cpockrandt/genmap
GenMap paper:
GenMap: ultra-fast computation of genome mappability
https://doi.org/10.1093/bioinformatics/btaa222
相较于先前的 mappability 计算工具(例如 GEM),GenMap 的搜索策略有所优化并且算法不依赖于启发式方法,因此具有更高的运行效率和 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2025/02/12/VCF%20%E6%96%87%E4%BB%B6%E8%BD%AC%E5%9D%90%E6%A0%87%E7%9A%84%E6%96%B9%E6%B3%95%E6%B1%87%E6%80%BB%E5%8F%8A%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/" title="VCF 文件转坐标的方法汇总及注意事项"><img class="post_bg" src="/pic2/vcflift.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="VCF 文件转坐标的方法汇总及注意事项"></a></div><div class="recent-post-info"><a class="article-title" href="/2025/02/12/VCF%20%E6%96%87%E4%BB%B6%E8%BD%AC%E5%9D%90%E6%A0%87%E7%9A%84%E6%96%B9%E6%B3%95%E6%B1%87%E6%80%BB%E5%8F%8A%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9/" title="VCF 文件转坐标的方法汇总及注意事项">VCF 文件转坐标的方法汇总及注意事项</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2025-02-12T08:00:00.000Z" title="发表于 2025-02-12 16:00:00">2025-02-12</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2025-04-14T03:22:54.356Z" title="更新于 2025-04-14 11:22:54">2025-04-14</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9D%82%E9%A1%B9/">杂项</a></span></div><div class="content">历史数据的整合分析往往涉及不同时期使用不同参考基因组版本产生的数据。例如,某些较早的研究可能基于 hg19/GRCh37 进行分析,而新的研究多采用 hg38/GRCh38。为了进行比较分析,需要将这些数据统一到同一个版本。
坐标转换是通过 chain file 来实现的,该文件记录了两个基因组版本之间的对应关系,包含了基因组重排、插入和删除等信息。转换工具会根据这些信息将原始坐标映射到目标版本的相应位置。
正文本文将介绍如何使用两款主流工具 CrossMap 和 GATK LiftoverVcf 以及最近的一个新工具 BCFtools liftover 进行 VCF 文件的坐标转换。在说明之前,首先简要介绍三个软件的差别:
CrossMap 除了 VCF 的坐标映射外,也支持很多其他文件格式的坐标转换。对于 VCF 文件而言,CrossMap 并不要求其具有完备的 Meta-information 和 Header line 部分,只需要突变数据行符合格式即可。
GATK LiftoverVcf 则主要支持对 VCF 文件的坐标进行转换。其要求 VCF 文件具有完整的 Meta-i ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2024/12/28/bedtools%20merge%20%E4%B8%8D%E5%90%88%E5%B9%B6%E7%9B%B8%E9%82%BB%E5%8C%BA%E9%97%B4%EF%BC%88%E4%BB%85%E5%90%88%E5%B9%B6%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4%EF%BC%89/" title="bedtools merge 不合并相邻区间(仅合并重叠区间)"><img class="post_bg" src="/pic/cover6.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="bedtools merge 不合并相邻区间(仅合并重叠区间)"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/12/28/bedtools%20merge%20%E4%B8%8D%E5%90%88%E5%B9%B6%E7%9B%B8%E9%82%BB%E5%8C%BA%E9%97%B4%EF%BC%88%E4%BB%85%E5%90%88%E5%B9%B6%E9%87%8D%E5%8F%A0%E5%8C%BA%E9%97%B4%EF%BC%89/" title="bedtools merge 不合并相邻区间(仅合并重叠区间)">bedtools merge 不合并相邻区间(仅合并重叠区间)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-12-28T09:30:00.000Z" title="发表于 2024-12-28 17:30:00">2024-12-28</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-12-28T09:42:32.613Z" title="更新于 2024-12-28 17:42:32">2024-12-28</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">关于 bedtools merge 的详细参数设定可见:
bedtools merge documentation:
https://bedtools.readthedocs.io/en/latest/content/tools/merge.html
默认情况下,bedtools merge 会对所有重叠区间及相邻区间进行合并,例如:
12345# 运行前chr1 10000 10001chr1 10001 10002# 运行后chr1 10000 10002
但在最近遇到的分析场景中,我仅想合并重叠的点并对它们的值求平均,并不想将它们与相邻的点合并起来,例如:
123chr1 10000 10001 0.1chr1 10000 10001 0.2chr1 10001 10002 0.3
这里我仅想在 chr1:10000-10001 上进行合并且求平均,但此时使用 bedtools merge -c 4 -o mean 会输出以下结果:
1chr1 10000 10002 0.2
这并不符合我的预期工作情况,在查阅参数说明后,发现了以下关键参数:
-d:Ma ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2024/12/18/%E5%9F%BA%E4%BA%8E%20US-align%20%E8%AE%A1%E7%AE%97%E4%B8%A4%E4%B8%AA%E8%9B%8B%E7%99%BD%E7%BB%93%E6%9E%84%E4%B9%8B%E9%97%B4%E7%9A%84%20RMSD%20%E5%92%8C%20TM-score/" title="基于 US-align 计算两个蛋白结构之间的 RMSD 和 TM-score"><img class="post_bg" src="/pic2/usalign_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="基于 US-align 计算两个蛋白结构之间的 RMSD 和 TM-score"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/12/18/%E5%9F%BA%E4%BA%8E%20US-align%20%E8%AE%A1%E7%AE%97%E4%B8%A4%E4%B8%AA%E8%9B%8B%E7%99%BD%E7%BB%93%E6%9E%84%E4%B9%8B%E9%97%B4%E7%9A%84%20RMSD%20%E5%92%8C%20TM-score/" title="基于 US-align 计算两个蛋白结构之间的 RMSD 和 TM-score">基于 US-align 计算两个蛋白结构之间的 RMSD 和 TM-score</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-12-18T08:40:00.000Z" title="发表于 2024-12-18 16:40:00">2024-12-18</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-12-18T08:54:14.022Z" title="更新于 2024-12-18 16:54:14">2024-12-18</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">在蛋白质结构研究里,比较不同蛋白质结构之间的相似性是一个核心任务,尤其是在结构预测、同源建模和结构功能关系研究中。以下是一些常用到的衡量蛋白结构间相似性的指标:
RMSD(均方根偏差):该值是衡量两种蛋白质三维结构之间原子位置差异的标准度量。较小的 RMSD 值意味着两个结构相似度较高,RMSD 值对大分子在全局对齐时的大小和形状变化非常敏感。
TM-score:相较于 RMSD,TM-score 更加关注结构的全局相似性,且对于蛋白质的尺寸和形状变化具有更高的鲁棒性。TM-score 的值介于 0 到 1 之间,值越接近 1,表示两个结构越相似。
本文将介绍如何使用 US-align 对两个蛋白结构进行 align(对齐)并计算其 RMSD 及 TM-score。
US-alignUS-align github page:
https://github.com/pylelab/USalign
该软件的研究团队也同样是 TM-align 的开发者。相比其他的计算工具,US-align 有以下优点:
支持比对除蛋白质以外的生物大分子及其复合物(例如 DNA / RNA 等)。
通过 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2024/11/16/%E4%BD%BF%E7%94%A8%20ESM%20%E8%AE%A1%E7%AE%97%E8%9B%8B%E7%99%BD%E5%BA%8F%E5%88%97%E7%9A%84%E7%AA%81%E5%8F%98%E5%BD%B1%E5%93%8D%E5%88%86%E6%95%B0/" title="使用 ESM 计算蛋白序列的突变影响分数"><img class="post_bg" src="/pic2/esm_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="使用 ESM 计算蛋白序列的突变影响分数"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/11/16/%E4%BD%BF%E7%94%A8%20ESM%20%E8%AE%A1%E7%AE%97%E8%9B%8B%E7%99%BD%E5%BA%8F%E5%88%97%E7%9A%84%E7%AA%81%E5%8F%98%E5%BD%B1%E5%93%8D%E5%88%86%E6%95%B0/" title="使用 ESM 计算蛋白序列的突变影响分数">使用 ESM 计算蛋白序列的突变影响分数</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-11-16T08:00:00.000Z" title="发表于 2024-11-16 16:00:00">2024-11-16</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-12-06T08:28:30.538Z" title="更新于 2024-12-06 16:28:30">2024-12-06</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">ESM(Evolutionary Scale Modeling) 是由 Facebook AI Research 开发的蛋白质语言模型。其基于大规模的蛋白质序列数据进行训练,能够捕捉蛋白质序列中的复杂模式和进化信息,从而在多个生物学下游应用中表现出色。
预训练好的 ESM 可用于多个生物学下游应用,本文将就其突变影响分析方面的功能进行介绍。
关于 ESMESM 预测突变影响的方式是无监督的,也就是说 ESM 的训练过程中并未使用到与突变影响相关的标签进行有监督学习。其评估每个氨基酸错义突变影响程度的方式是掩蔽该位置上的氨基酸并计算两种氨基酸(参考氨基酸与突变氨基酸)在该位置出现的对数似然比:
ESM 的预训练阶段使用了类似于 BERT 的掩码任务,因此 ESM 可以给出每个位点里各类氨基酸出现的概率,而参考氨基酸(Ref,即未突变时的氨基酸)和突变氨基酸(Alt)的概率差异即可作为一种 effect score。可以简单理解为,突变氨基酸出现的概率比参考氨基酸低越多,说明这类突变越有害。这种无监督的评估方式也被用于许多其他的深度学习工具,例如 EVE 和 GPN 等。
Refe ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2024/11/09/%E5%9F%BA%E4%BA%8E%20JCVI%20%E5%85%B1%E7%BA%BF%E6%80%A7%E5%88%86%E6%9E%90%E7%A1%AE%E5%AE%9A%E4%B8%80%E5%AF%B9%E4%B8%80%E7%9B%B4%E7%B3%BB%E5%90%8C%E6%BA%90%E5%9F%BA%E5%9B%A0/" title="基于 JCVI 共线性分析确定一对一直系同源基因"><img class="post_bg" src="/pic2/jcvi_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="基于 JCVI 共线性分析确定一对一直系同源基因"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/11/09/%E5%9F%BA%E4%BA%8E%20JCVI%20%E5%85%B1%E7%BA%BF%E6%80%A7%E5%88%86%E6%9E%90%E7%A1%AE%E5%AE%9A%E4%B8%80%E5%AF%B9%E4%B8%80%E7%9B%B4%E7%B3%BB%E5%90%8C%E6%BA%90%E5%9F%BA%E5%9B%A0/" title="基于 JCVI 共线性分析确定一对一直系同源基因">基于 JCVI 共线性分析确定一对一直系同源基因</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-11-09T09:30:00.000Z" title="发表于 2024-11-09 17:30:00">2024-11-09</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-11-11T02:54:35.905Z" title="更新于 2024-11-11 10:54:35">2024-11-11</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">前段时间因为课题需求,需要获取两个物种间的所有一对一直系同源基因对(One-to-One ortholog, 为避免文章内容冗余后面统称 OTO)。由于两个目标物种在 Ensembl 上都有,所以可以直接通过 BioMart 下载其基因的同源关系并提取出来。
但经过筛选和过滤后,发现 BioMart 中能确定的 OTO 数量极低,不太能满足分析需求。考虑到我所分析的目标基因类型在不同物种间具有高顺序保守性和序列保守性,因此想看看能不能通过 JCVI 的共线性结果来获取更多的 OTO 作为补充,发现效果还挺不错,固有此文。
JCVI 介绍JCVI 是一个用于比较基因组学分析的多功能工具包,共线性分析只是它其中的一个子功能。
JCVI 的安装,最简单的方式是通过 pip:
1pip install jcvi
也可通过 conda 或 mamba 安装:
1conda install bioconda::jcvi
此外也需要安装用于比对的 LAST:
1conda install bioconda::last
关于 JCVI 的运行,更多细节可见:JCVI tutorial
请注意, ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2024/10/10/%E8%8E%B7%E5%8F%96%20vcf%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%AF%8F%E4%B8%AA%E4%B8%AA%E4%BD%93%E6%90%BA%E5%B8%A6%E7%9A%84%E7%AA%81%E5%8F%98%E6%95%B0%E9%87%8F/" title="获取 vcf 文件中每个个体携带的突变数量"><img class="post_bg" src="/pic2/vcf_count_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="获取 vcf 文件中每个个体携带的突变数量"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/10/10/%E8%8E%B7%E5%8F%96%20vcf%20%E6%96%87%E4%BB%B6%E4%B8%AD%E6%AF%8F%E4%B8%AA%E4%B8%AA%E4%BD%93%E6%90%BA%E5%B8%A6%E7%9A%84%E7%AA%81%E5%8F%98%E6%95%B0%E9%87%8F/" title="获取 vcf 文件中每个个体携带的突变数量">获取 vcf 文件中每个个体携带的突变数量</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-10-10T06:30:00.000Z" title="发表于 2024-10-10 14:30:00">2024-10-10</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-10-17T02:01:31.557Z" title="更新于 2024-10-17 10:01:31">2024-10-17</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9D%82%E9%A1%B9/">杂项</a></span></div><div class="content">最近的工作涉及到处理大量种群数据,其中有个分析需要统计每个个体携带的突变数量,在网上搜寻了诸多方法后确定了一些比较高效的策略,固有此文记录。
本文的部分流程参考源:
BioStars "how to count variants par sample per chromosome in a vcf file?"
提取每个个体携带的突变数量该流程主要通过 plink2 实现:
12plink2 --vcf [vcf file] --out [plink output1]plink2 --pfile [plink output1] --sample-counts --out [plink output2]
[vcf file]:此处填入 vcf 文件的路径。
[plink output1]:此处填入 plink2 输出的文件前缀。
[plink output2]:此处填入 plink2 输出的文件前缀。
运行结束后,可以得到以 .scount 结尾的文件,其中各列的含义如下:
#IID:标识每个样本的编号。
HOM_REF_CT:纯合参考基因型计数,个体纯合参考基因型的位点数量 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2024/09/19/vscode%20%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%80%9A%E8%BF%87%20jupyter%20notebook%20%E4%BD%BF%E7%94%A8%20R/" title="vscode 在远程服务器上通过 jupyter notebook 使用 R"><img class="post_bg" src="/pic2/vscode_jupyter_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="vscode 在远程服务器上通过 jupyter notebook 使用 R"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/09/19/vscode%20%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E9%80%9A%E8%BF%87%20jupyter%20notebook%20%E4%BD%BF%E7%94%A8%20R/" title="vscode 在远程服务器上通过 jupyter notebook 使用 R">vscode 在远程服务器上通过 jupyter notebook 使用 R</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-09-19T09:00:00.000Z" title="发表于 2024-09-19 17:00:00">2024-09-19</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-09-20T02:18:17.541Z" title="更新于 2024-09-20 10:18:17">2024-09-20</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">最近一段时间的关键分析要用到 R,但是办公电脑的机械硬盘前段时间出了问题,现在用 Rstudio 会非常卡顿,加上相关分析对计算资源的要求也比较高,就想着是否有什么办法能在服务器上也弄一个类似于 Rstudio 的可视化界面出来作为辅助。
不过看了一圈发现 Rstudio 的 server 版本似乎局限性不少,而且还要用到 root 权限。考虑到平时运行 Python 进行分析时大多数时候都在 jupyter notebook 上进行,就想着是否能套用过来,于是就有了这篇文章。
安装该文章的具体实现在 Linux + mamba 环境下完成,如果你没有 conda/mamba 环境,可以参考网上资料进行安装。
首先确认你的环境中有 R,如果没有可以通过以下命令安装:
12mamba install conda-forge::r-baseR # 确认可以进入 R 终端,使用 q() 退出
通过 mamba 安装 IRkernel 和 jupyter(使用 conda 也行,本文章以 mamba 为准):
12mamba install r::r-irkernelmamba instal ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2024/08/23/%E7%B0%87%E7%AA%81%E5%8F%98%E7%9A%84%E7%B1%BB%E5%9E%8B%E7%AE%80%E4%BB%8B%E5%8F%8A%E8%AF%86%E5%88%AB%E6%96%B9%E6%B3%95/" title="簇突变的类型简介及识别方法(Clustered mutation classification)"><img class="post_bg" src="/pic2/clustered_mt_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="簇突变的类型简介及识别方法(Clustered mutation classification)"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/08/23/%E7%B0%87%E7%AA%81%E5%8F%98%E7%9A%84%E7%B1%BB%E5%9E%8B%E7%AE%80%E4%BB%8B%E5%8F%8A%E8%AF%86%E5%88%AB%E6%96%B9%E6%B3%95/" title="簇突变的类型简介及识别方法(Clustered mutation classification)">簇突变的类型简介及识别方法(Clustered mutation classification)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">发表于</span><time class="post-meta-date-created" datetime="2024-08-23T12:30:00.000Z" title="发表于 2024-08-23 20:30:00">2024-08-23</time><span class="article-meta-separator">|</span><i class="fas fa-history"></i><span class="article-meta-label">更新于</span><time class="post-meta-date-updated" datetime="2024-08-23T12:29:12.593Z" title="更新于 2024-08-23 20:29:12">2024-08-23</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/">学习</a><i class="fas fa-angle-right article-meta-link"></i><a class="article-meta__categories" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9D%82%E9%A1%B9/">杂项</a></span></div><div class="content">基因组中,某些特殊的突变过程可能会导致一小段区域内连续的突变发生。这些突变在基因组中呈现成簇分布,因此被称作 clustered mutation(本文将称其为簇突变)。研究这些突变的分布及组成有助于我们揭示导致其发生的内源性和外源性过程。该文章将主要讲述簇突变的类别并列举一些会导致特定类别的生物学原因,同时介绍该领域中的某些生物信息学工具等。
簇突变类型簇突变类型主要被分作六类,其中五类针对碱基水平的变化,一类针对插入及缺失(InDel):
DSB(Doublet Base Substitutions):双碱基替换,表示这两个突变发生在相邻的碱基上。某些外源性过程例如紫外线损伤会导致双碱基替换的发生(CC>TT),此外 DNA 修复缺陷和聚合酶功能突变也会导致 DSB 发生。
MBS (Multiple Base Substitutions):多碱基替换,表示在很短的序列范围内发生多个碱基突变且这些突变彼此相邻。由于该簇突变的出现数量很有限,因此尚未得到全面研究。
Omikli:源自希腊语,意为 雾 或 薄雾,也被称作 diffuse hypermutation(弥漫性超 ...</div></div></div><nav id="pagination"><div class="pagination"><span class="page-number current">1</span><a class="page-number" href="/page/2/#content-inner">2</a><span class="space">…</span><a class="page-number" href="/page/5/#content-inner">5</a><a class="extend next" rel="next" href="/page/2/#content-inner"><i class="fas fa-chevron-right fa-fw"></i></a></div></nav></div><div class="aside-content" id="aside-content"><div class="card-widget card-info"><div class="is-center"><div class="avatar-img"><img src="/pic/gitav.png" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info__name">Juse</div><div class="author-info__description">偶尔徒步行进倒也不错</div></div><div class="card-info-data site-data is-center"><a href="/archives/"><div class="headline">文章</div><div class="length-num">64</div></a><a href="/tags/"><div class="headline">标签</div><div class="length-num">18</div></a><a href="/categories/"><div class="headline">分类</div><div class="length-num">10</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/JuseTiZ"><i class="fab fa-github"></i><span>Follow Juse</span></a><div class="card-info-social-icons is-center"><a class="social-icon" href="/qq.html" target="_blank" title=""><i class="fab fa-qq"></i></a><a class="social-icon" href="https://space.bilibili.com/31269335" target="_blank" title=""><i class="fab fa-bilibili"></i></a><a class="social-icon" href="https://github.com/JuseTiZ" target="_blank" title=""><i class="fab fa-github"></i></a><a class="social-icon" href="https://steamcommunity.com/id/291195857/" target="_blank" title=""><i class="fab fa-steam"></i></a></div></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>公告</span></div><div class="announcement_content"><p align="center"><b>人生是旷野,不是轨道</b><br>⭐⭐🗞️ 阅前须知 📰⭐⭐<br>请保持批判思维<br>请先思考后行动</p></div><div id="welcome-info"></div></div><div class="sticky_layout"><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>分类</span>
<a class="card-more-btn" href="/categories/" title="查看更多">
<i class="fas fa-angle-right"></i></a>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%8D%9A%E5%AE%A2/"><span class="card-category-list-name">博客</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%AD%A6%E4%B9%A0/"><span class="card-category-list-name">学习</span><span class="card-category-list-count">54</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%96%87%E7%8C%AE%E9%98%85%E8%AF%BB/"><span class="card-category-list-name">文献阅读</span><span class="card-category-list-count">2</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0/"><span class="card-category-list-name">机器学习</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%9D%82%E9%A1%B9/"><span class="card-category-list-name">杂项</span><span class="card-category-list-count">17</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%AD%A6%E4%B9%A0/%E6%B7%B1%E5%BA%A6%E5%AD%A6%E4%B9%A0/"><span class="card-category-list-name">深度学习</span><span class="card-category-list-count">1</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/"><span class="card-category-list-name">生信</span><span class="card-category-list-count">29</span></a><ul class="card-category-list child"><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E5%AD%A6%E4%B9%A0/%E7%94%9F%E4%BF%A1/%E5%BB%BA%E6%A0%91/"><span class="card-category-list-name">建树</span><span class="card-category-list-count">2</span></a></li></ul></li></ul></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>标签</span></div><div class="card-tag-cloud"><a href="/tags/%E7%94%9F%E7%89%A9%E4%BF%A1%E6%81%AF%E5%AD%A6/" style="font-size: 1.45em; color: rgb(136, 42, 177)">生物信息学</a><a href="/tags/%E7%94%9F%E4%BF%A1/" style="font-size: 1.45em; color: rgb(181, 197, 184)">生信</a><a href="/tags/%E7%B3%BB%E7%BB%9F%E5%8F%91%E8%82%B2%E5%88%86%E6%9E%90/" style="font-size: 1.27em; color: rgb(74, 17, 1)">系统发育分析</a><a href="/tags/%E6%96%87%E7%8C%AE/" style="font-size: 1.21em; color: rgb(196, 79, 75)">文献</a><a href="/tags/%E5%9F%BA%E5%9B%A0%E7%BB%84%E5%AD%A6/" style="font-size: 1.15em; color: rgb(132, 68, 132)">基因组学</a><a href="/tags/JuseKit/" style="font-size: 1.33em; color: rgb(57, 185, 18)">JuseKit</a><a href="/tags/%E8%BD%AC%E5%BD%95%E7%BB%84/" style="font-size: 1.39em; color: rgb(47, 138, 26)">转录组</a><a href="/tags/IQtree/" style="font-size: 1.21em; color: rgb(43, 53, 197)">IQtree</a><a href="/tags/%E5%9F%BA%E5%9B%A0%E7%BB%84/" style="font-size: 1.21em; color: rgb(64, 35, 124)">基因组</a><a href="/tags/%E5%AF%8C%E9%9B%86%E7%BD%91%E7%BB%9C%E5%9B%BE/" style="font-size: 1.15em; color: rgb(174, 188, 148)">富集网络图</a><a href="/tags/%E6%AF%94%E8%BE%83%E8%BD%AC%E5%BD%95%E7%BB%84%E5%AD%A6/" style="font-size: 1.33em; color: rgb(123, 7, 159)">比较转录组学</a><a href="/tags/%E5%B7%AE%E5%BC%82%E8%A1%A8%E8%BE%BE%E5%88%86%E6%9E%90/" style="font-size: 1.21em; color: rgb(186, 97, 48)">差异表达分析</a><a href="/tags/%E7%81%AB%E5%B1%B1%E5%9B%BE/" style="font-size: 1.15em; color: rgb(165, 87, 119)">火山图</a><a href="/tags/linux/" style="font-size: 1.15em; color: rgb(144, 94, 112)">linux</a><a href="/tags/%E6%AF%94%E8%BE%83%E8%BD%AC%E5%BD%95%E7%BB%84/" style="font-size: 1.15em; color: rgb(127, 134, 34)">比较转录组</a><a href="/tags/GO%E5%AF%8C%E9%9B%86%E5%88%86%E6%9E%90/" style="font-size: 1.15em; color: rgb(187, 76, 52)">GO富集分析</a><a href="/tags/GO-annotation/" style="font-size: 1.15em; color: rgb(128, 106, 29)">GO annotation</a><a href="/tags/%E5%BA%8F%E5%88%97%E4%B8%B2%E8%81%94/" style="font-size: 1.15em; color: rgb(167, 1, 175)">序列串联</a></div></div><div class="card-widget card-archives"><div class="item-headline"><i class="fas fa-archive"></i><span>归档</span><a class="card-more-btn" href="/archives/" title="查看更多">
<i class="fas fa-angle-right"></i></a></div><ul class="card-archive-list"><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2026/03/"><span class="card-archive-list-date">三月 2026</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/11/"><span class="card-archive-list-date">十一月 2025</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/05/"><span class="card-archive-list-date">五月 2025</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/04/"><span class="card-archive-list-date">四月 2025</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/03/"><span class="card-archive-list-date">三月 2025</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2025/02/"><span class="card-archive-list-date">二月 2025</span><span class="card-archive-list-count">1</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/12/"><span class="card-archive-list-date">十二月 2024</span><span class="card-archive-list-count">2</span></a></li><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/11/"><span class="card-archive-list-date">十一月 2024</span><span class="card-archive-list-count">2</span></a></li></ul></div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>网站资讯</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">文章数目 :</div><div class="item-count">64</div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">125.4k</div></div><div class="webinfo-item"><div class="item-name">本站访客数 :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">本站总访问量 :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">最后更新时间 :</div><div class="item-count" id="last-push-date" data-lastPushDate="2026-04-10T02:46:12.706Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div id="footer-wrap"><div id="ft"><div class="ft-item-1"><div class="t-top"><div class="t-t-l"><p class="ft-t t-l-t">想说的话😉</p><div class="bg-ad"><div>Genes are not destiny. While they play a large role in shaping how we act, how we feel, and how we interact with others, our environment and personal choices have just as much impact on our behavior.</div><div class="btn-xz-box"><a class="btn-xz" target="_blank" rel="noopener" href="https://habitica.com/static/home">游戏人生不游戏 🎯</a></div></div></div><div class="t-t-r"><p class="ft-t t-l-t">仙人指路😝</p><ul class="ft-links"><li><a target="_blank" rel="noopener" href="https://www.fomal.cc/">建站参考</a><a target="_blank" rel="noopener" href="https://emojixd.com/">表情大全</a></li><li><a target="_blank" rel="noopener" href="https://jusetiz.github.io/talk/">看看生活</a><a target="_blank" rel="noopener" href="https://jusetiz.github.io/messageboard/">我要留言</a></li><li><a target="_blank" rel="noopener" href="https://jusetiz.github.io/myself/">关于博主</a><a target="_blank" rel="noopener" href="https://jusetiz.github.io/archives/">文章归档</a></li><li><a target="_blank" rel="noopener" href="https://jusetiz.github.io/categories/">文章分类</a><a target="_blank" rel="noopener" href="https://jusetiz.github.io/tags/">文章标签</a></li><li><a target="_blank" rel="noopener" href="https://jusetiz.github.io/about/">有的没的</a><a target="_blank" rel="noopener" href="https://jusetiz.github.io/new/">更新日志</a></li><li><a target="_blank" rel="noopener" href="https://jusetiz.github.io/link/">友情链接</a><a target="_blank" rel="noopener" href="https://jusetiz.github.io/404.html">404页面</a></li></ul></div></div></div><div class="ft-item-2"><p class="ft-t">友人链接🔗</p><div class="ft-img-group"><div class="img-group-item"><a target="_blank" rel="noopener" href="https://linctanny.github.io/"><img src="https://linctanny.github.io/img/p7.jpeg" alt=""/></a></div><div class="img-group-item"><a target="_blank" rel="noopener" href="https://robust-vase.github.io/"><img src="https://robust-vase.github.io/img/John_King.webp" alt=""/></a></div><div class="img-group-item"><a target="_blank" rel="noopener" href="https://blog.stariverfeel.eu.org/"><img src="https://avatars.githubusercontent.com/u/26035995?v=4" alt=""/></a></div></div></div></div><div class="copyright">©2022 - 2026 @ Juse</div><div class="framework-info"><span>框架 </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo </a><span class="footer-separator">|</span><span> 主题 </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly </a><span class="footer-separator">|</span><span> 部署 </span><a target="_blank" rel="noopener" href="https://github.com/">GitPage </a><span class="footer-separator">|</span><span> 加速 </span><a target="_blank" rel="noopener" href="https://dash.cloudflare.com/">Cloudflare </a><span class="footer-separator">|</span><span> </span><a href="https://icp.gov.moe/?keyword=20232400" target="_blank">萌ICP备20232400号</a></div><div id="workboard"></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="translateLink" type="button" title="简繁转换">简</button><button id="darkmode" type="button" title="浅色和深色模式转换"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="单栏和双栏切换"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside_config" type="button" title="设置"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="回到顶部"><i class="fas fa-arrow-up"></i></button></div></div><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">搜索</span><span id="loading-status"></span><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="is-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> 数据库加载中</span></div><div class="search-wrap"><div id="local-search-input"><div class="local-search-box"><input class="local-search-box--input" placeholder="搜索文章" type="text"/></div></div><hr/><div id="local-search-results"></div></div></div><div id="search-mask"></div></div><div class="js-pjax" id="rightMenu"><div class="rightMenu-group rightMenu-small"><a class="rightMenu-item" href="javascript:window.history.back();"><i class="fa fa-arrow-left"></i></a><a class="rightMenu-item" href="javascript:window.history.forward();"><i class="fa fa-arrow-right"></i></a><a class="rightMenu-item" href="javascript:window.location.reload();"><i class="fa fa-refresh"></i></a><a class="rightMenu-item" href="/"><i class="fa fa-home"></i></a></div><div class="rightMenu-group rightMenu-line hide" id="menu-text"><a class="rightMenu-item" href="javascript:rmf.copySelect();"><i class="fa fa-copy"></i><span>复制</span></a><a class="rightMenu-item" href="javascript:window.open("https://cn.bing.com/search?q="+window.getSelection().toString());window.location.reload();"><i class="fa fa-search"></i><span>必应搜索</span></a></div><div class="rightMenu-group rightMenu-line hide" id="menu-too"><a class="rightMenu-item" href="javascript:window.open(window.getSelection().toString());window.location.reload();"><i class="fa fa-link"></i><span>转到链接</span></a></div><div class="rightMenu-group rightMenu-line hide" id="menu-paste"><a class="rightMenu-item" href="javascript:rmf.paste()"><i class="fa fa-copy"></i><span>粘贴</span></a></div><div class="rightMenu-group rightMenu-line hide" id="menu-post"><a class="rightMenu-item" href="#post-comment"><i class="fas fa-comment"></i><span>空降评论</span></a><a class="rightMenu-item" href="javascript:rmf.copyWordsLink()"><i class="fa fa-link"></i><span>复制本文地址</span></a></div><div class="rightMenu-group rightMenu-line hide" id="menu-to"><a class="rightMenu-item" href="javascript:rmf.openWithNewTab()"><i class="fa fa-window-restore"></i><span>新窗口打开</span></a><a class="rightMenu-item" id="menu-too" href="javascript:rmf.open()"><i class="fa fa-link"></i><span>转到链接</span></a><a class="rightMenu-item" href="javascript:rmf.copyLink()"><i class="fa fa-copy"></i><span>复制链接</span></a></div><div class="rightMenu-group rightMenu-line hide" id="menu-img"><a class="rightMenu-item" href="javascript:rmf.saveAs()"><i class="fa fa-download"></i><span>保存图片</span></a><a class="rightMenu-item" href="javascript:rmf.openWithNewTab()"><i class="fa fa-window-restore"></i><span>在新窗口打开</span></a><a class="rightMenu-item" href="javascript:rmf.copyLink()"><i class="fa fa-copy"></i><span>复制图片链接</span></a></div><div class="rightMenu-group rightMenu-line"><a class="rightMenu-item" href="/about/"><i class="fa fa-sitemap"></i><span>有的没的</span></a><a class="rightMenu-item" href="/new/"><i class="fa fa-bell"></i><span>更新日志</span></a><a class="rightMenu-item" href="javascript:rmf.fullScreen();"><i class="fas fa-expand"></i><span>切换全屏</span></a><a class="rightMenu-item" href="javascript:window.print();"><i class="fa-solid fa-print"></i><span>打印页面</span></a></div></div><div><script src="/js/utils.js"></script><script src="/js/main.js"></script><script src="/js/tw_cn.js"></script><script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.min.js"></script><script src="/js/search/local-search.js"></script><script>var preloader = {
endLoading: () => {
document.body.style.overflow = 'auto';
document.getElementById('loading-box').classList.add("loaded")
},
initLoading: () => {
document.body.style.overflow = '';
document.getElementById('loading-box').classList.remove("loaded")
}
}
window.addEventListener('load',preloader.endLoading())</script><div class="js-pjax"><script>function subtitleType () {
if (true) {
window.typed = new Typed("#subtitle", {
strings: ["Be patient, be positive. 📷📷📷","Patience is key in life. 🔑🔑🔑"],
startDelay: 300,
typeSpeed: 100,
loop: true,
backSpeed: 30
})
} else {
document.getElementById("subtitle").innerHTML = 'Be patient, be positive. 📷📷📷'
}
}
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
}
} else {
subtitleType()
}</script></div><script src="https://cdn.staticfile.org/jquery/3.6.3/jquery.min.js"></script><script type="text/javascript" src="/js/rightmenu.js"></script><script type="text/javascript" src="/js/txmap.js"></script><script type="text/javascript" src="/js/copy12.js"></script><script type="text/javascript" src="/js/ldex.js"></script><script type="text/javascript" src="/js/runtime.js"></script><script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/activate-power-mode.min.js"></script><script>POWERMODE.colorful = true;
POWERMODE.shake = false;
POWERMODE.mobile = true;
document.body.addEventListener('input', POWERMODE);
</script><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script></div><!-- hexo injector body_end start --> <script data-pjax>if(document.getElementById('recent-posts') && (location.pathname ==='/'|| '/' ==='all')){
var parent = document.getElementById('recent-posts');
var child = '<div class="recent-post-item" style="width:100%;height: auto"><div id="catalog_magnet"><div class="magnet_item"><a class="magnet_link" href="https://biojuse.com/categories/学习/生信/"><div class="magnet_link_context" style=""><span style="font-weight:500;flex:1">📚 Juseの生信分享 (29)</span><span style="padding:0px 4px;border-radius: 8px;"><i class="fas fa-arrow-circle-right"></i></span></div></a></div><div class="magnet_item"><a class="magnet_link" href="https://biojuse.com/categories/学习/绘图/"><div class="magnet_link_context" style=""><span style="font-weight:500;flex:1">👩💻 Juseの绘图经验 (4)</span><span style="padding:0px 4px;border-radius: 8px;"><i class="fas fa-arrow-circle-right"></i></span></div></a></div><div class="magnet_item"><a class="magnet_link" href="https://biojuse.com/categories/学习/杂项/"><div class="magnet_link_context" style=""><span style="font-weight:500;flex:1">🤹 Juseの琐碎教程 (17)</span><span style="padding:0px 4px;border-radius: 8px;"><i class="fas fa-arrow-circle-right"></i></span></div></a></div><div class="magnet_item"><a class="magnet_link" href="https://biojuse.com/categories/学习/文献阅读/"><div class="magnet_link_context" style=""><span style="font-weight:500;flex:1">📕 Juseの文献笔记 (2)</span><span style="padding:0px 4px;border-radius: 8px;"><i class="fas fa-arrow-circle-right"></i></span></div></a></div><div class="magnet_item"><a class="magnet_link" href="https://biojuse.com/categories/软件开发/"><div class="magnet_link_context" style=""><span style="font-weight:500;flex:1">🧰 Juseの软件开发 (8)</span><span style="padding:0px 4px;border-radius: 8px;"><i class="fas fa-arrow-circle-right"></i></span></div></a></div><div class="magnet_item"><a class="magnet_link" href="https://biojuse.com/categories/博客/"><div class="magnet_link_context" style=""><span style="font-weight:500;flex:1">📑 Juseの博客轻改 (2)</span><span style="padding:0px 4px;border-radius: 8px;"><i class="fas fa-arrow-circle-right"></i></span></div></a></div><a class="magnet_link_more" target="_blank" rel="noopener" href="https://jusetiz.github.io/categories" style="flex:1;text-align: center;margin-bottom: 10px;">查看更多...</a></div></div>';
console.log('已挂载magnet')
parent.insertAdjacentHTML("afterbegin",child)}
</script><style>#catalog_magnet{flex-wrap: wrap;display: flex;width:100%;justify-content:space-between;padding: 10px 10px 0 10px;align-content: flex-start;}.magnet_item{flex-basis: calc(33.333333333333336% - 5px);background: #f2f2f2;margin-bottom: 10px;border-radius: 8px;transition: all 0.2s ease-in-out;}.magnet_item:hover{background: #b30070}.magnet_link_more{color:#555}.magnet_link{color:black}.magnet_link:hover{color:white}@media screen and (max-width: 600px) {.magnet_item {flex-basis: 100%;}}.magnet_link_context{display:flex;padding: 10px;font-size:16px;transition: all 0.2s ease-in-out;}.magnet_link_context:hover{padding: 10px 20px;}</style>
<style></style><script data-pjax>
function butterfly_swiper_injector_config(){
var parent_div_git = document.getElementById('recent-posts');
var item_html = '<div class="recent-post-item" style="height: auto;width: 100%"><div class="blog-slider swiper-container-fade swiper-container-horizontal" id="swiper_container"><div class="blog-slider__wrp swiper-wrapper" style="transition-duration: 0ms;"><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/09/01/JuseKit(八) —— 计算转录组组装指标/" alt=""><img width="48" height="48" src="/pic2/jusekit.png" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-09-01</span><a class="blog-slider__title" href="2023/09/01/JuseKit(八) —— 计算转录组组装指标/" alt="">JuseKit(八) —— 计算转录组组装指标</a><div class="blog-slider__text">本次更新新增了计算转录组组装指标的功能,经实测比 Trinity 快且结果一致。</div><a class="blog-slider__button" href="2023/09/01/JuseKit(八) —— 计算转录组组装指标/" alt="">详情 </a></div></div><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/08/04/JuseKit(七) —— 绘制 GO 富集分析气泡图/" alt=""><img width="48" height="48" src="/pic2/jusekit.png" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-08-04</span><a class="blog-slider__title" href="2023/08/04/JuseKit(七) —— 绘制 GO 富集分析气泡图/" alt="">JuseKit(七) —— 绘制 GO 富集分析气泡图</a><div class="blog-slider__text">本次更新新增 GO 富集气泡图绘制方法,只需文件一键执行!</div><a class="blog-slider__button" href="2023/08/04/JuseKit(七) —— 绘制 GO 富集分析气泡图/" alt="">详情 </a></div></div><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/07/12/DiscoVista 可视化系统发育不一致/" alt=""><img width="48" height="48" src="/pic/cover4.jpg" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-07-12</span><a class="blog-slider__title" href="2023/07/12/DiscoVista 可视化系统发育不一致/" alt="">DiscoVista 可视化系统发育不一致</a><div class="blog-slider__text">使用合适的工具将系统发育的不一致更加清晰地呈现出来。</div><a class="blog-slider__button" href="2023/07/12/DiscoVista 可视化系统发育不一致/" alt="">详情 </a></div></div><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/05/04/关于 PAML 的一二三事/" alt=""><img width="48" height="48" src="/pic/cover4.jpg" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-05-04</span><a class="blog-slider__title" href="2023/05/04/关于 PAML 的一二三事/" alt="">关于 PAML 的一二三事</a><div class="blog-slider__text">PAML 进行正选择检测、选择压力分析和物种分歧时间估计的详细介绍,包括诸多需要注意的事项。</div><a class="blog-slider__button" href="2023/05/04/关于 PAML 的一二三事/" alt="">详情 </a></div></div><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/07/04/JuseKit(六) —— 绘制火山图/" alt=""><img width="48" height="48" src="/pic2/jusekit.png" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-07-04</span><a class="blog-slider__title" href="2023/07/04/JuseKit(六) —— 绘制火山图/" alt="">JuseKit(六) —— 绘制火山图</a><div class="blog-slider__text">此次更新新增了绘制火山图的功能,仅需输入对应格式的文件即可一键绘制火山图。</div><a class="blog-slider__button" href="2023/07/04/JuseKit(六) —— 绘制火山图/" alt="">详情 </a></div></div><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/05/14/JuseKit(五) —— 用于系统发育分析的序列过滤/" alt=""><img width="48" height="48" src="/pic2/jusekit.png" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-05-14</span><a class="blog-slider__title" href="2023/05/14/JuseKit(五) —— 用于系统发育分析的序列过滤/" alt="">JuseKit(五) —— 用于系统发育分析的序列过滤</a><div class="blog-slider__text">本次更新带来序列过滤功能,可根据序列长度及物种序列数过滤比对。</div><a class="blog-slider__button" href="2023/05/14/JuseKit(五) —— 用于系统发育分析的序列过滤/" alt="">详情 </a></div></div><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/04/06/文献分享篇(一)—— 系统发育转录组学是否靠谱?/" alt=""><img width="48" height="48" src="/pic/wxyd1.png" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-04-06</span><a class="blog-slider__title" href="2023/04/06/文献分享篇(一)—— 系统发育转录组学是否靠谱?/" alt="">系统发育转录组学是否靠谱?</a><div class="blog-slider__text">随着转录组数据增多,基于转录组进行的系统发育分析研究也不断涌现。本文将介绍系统发育转录组学和系统发育基因组学的差异以及前者的优缺点。</div><a class="blog-slider__button" href="2023/04/06/文献分享篇(一)—— 系统发育转录组学是否靠谱?/" alt="">详情 </a></div></div><div class="blog-slider__item swiper-slide" style="width: 750px; opacity: 1; transform: translate3d(0px, 0px, 0px); transition-duration: 0ms;"><a class="blog-slider__img" href="2023/03/13/单基因-dN、dS-和-ω-的滑动窗口绘制方法/" alt=""><img width="48" height="48" src="/pic/slwd.png" alt="" onerror="this.src=https://unpkg.zhimg.com/akilar-candyassets/image/loading.gif; this.onerror = null;"/></a><div class="blog-slider__content"><span class="blog-slider__code">2023-03-13</span><a class="blog-slider__title" href="2023/03/13/单基因-dN、dS-和-ω-的滑动窗口绘制方法/" alt="">单基因 dN、dS 和 ω 的滑动窗口绘制方法</a><div class="blog-slider__text">绘制可以观察基因内不同部位选择情况的滑动窗口图,基于 Kaks_calculator 计算。</div><a class="blog-slider__button" href="2023/03/13/单基因-dN、dS-和-ω-的滑动窗口绘制方法/" alt="">详情 </a></div></div></div><div class="blog-slider__pagination swiper-pagination-clickable swiper-pagination-bullets"></div></div></div>';
console.log('已挂载butterfly_swiper')
parent_div_git.insertAdjacentHTML("afterbegin",item_html)
}
var elist = 'undefined'.split(',');
var cpage = location.pathname;
var epage = 'all';
var flag = 0;
for (var i=0;i<elist.length;i++){
if (cpage.includes(elist[i])){
flag++;
}
}
if ((epage ==='all')&&(flag == 0)){
butterfly_swiper_injector_config();
}
else if (epage === cpage){
butterfly_swiper_injector_config();
}
</script><script defer src="https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper.min.js"></script><script defer data-pjax src="https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper_init.js"></script><!-- hexo injector body_end end --></body></html>