-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
379 lines (316 loc) · 83.2 KB
/
index.html
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
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
<!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: '2025-02-12 16:14:54'
}</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/cover.gif" data-original="/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">58</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><li><a class="site-page child" href="/paper/"><i class="fa-fw fa fa-sticky-note"></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><li><a class="site-page child" href="/paper/"><i class="fa-fw fa fa-sticky-note"></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="/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="/pic/cover.gif" data-original="/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-02-12T08:10:11.548Z" title="更新于 2025-02-12 16:10:11">2025-02-12</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/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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-10T06:29:49.056Z" title="更新于 2024-10-10 14:29:49">2024-10-10</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="/pic/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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><div class="recent-post-item"><div class="post_cover left"><a href="/2024/08/15/rsync%20%E4%B8%AD%E6%8E%92%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E8%A7%84%E5%88%99%E8%AF%A6%E8%A7%A3/" title="rsync 中排除文件的规则详解(rsync --exclude)"><img class="post_bg" src="/pic/cover.gif" data-original="/pic2/rsync.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="rsync 中排除文件的规则详解(rsync --exclude)"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/08/15/rsync%20%E4%B8%AD%E6%8E%92%E9%99%A4%E6%96%87%E4%BB%B6%E7%9A%84%E8%A7%84%E5%88%99%E8%AF%A6%E8%A7%A3/" title="rsync 中排除文件的规则详解(rsync --exclude)">rsync 中排除文件的规则详解(rsync --exclude)</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-15T08:50:00.000Z" title="发表于 2024-08-15 16:50:00">2024-08-15</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-17T13:13:22.167Z" title="更新于 2024-08-17 21:13:22">2024-08-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">前段时间在备份服务器时,由于备份策略的变化,对 rsync 的 exclude patterns 进行了一些更加深入的探索。
这篇文章将介绍如何设计 rsync 的 exclude patterns 以排除特定目录或文件。
命令介绍rsync 是 Linux 和 Unix 中常用的文件复制和同步命令,相比 cp 命令而言更加高效和完善,其优点包括但不限于:
增量复制:rsync 只会复制那些自上次同步后更改的文件部分,极大地减少了数据传输量。例如 a 文件已经同步过一次并且没有发生变化,则 rsync 会跳过。同样,rsync 也会进行完整性检查以确定传输的数据无误。
保留属性:rsync 可以保持文件的权限、时间戳、软硬链接、所有权等属性。
灵活的过滤规则:支持使用包括和排除规则来选择同步的文件或目录。
排除规则rsync 通过参数 --exclude 或 --exclude-from 指定排除的文件模式。其中 --exclude-from 用于指定包含排除模式的文件(包含多个排除规则)。
排除指定文件输入文件名称(如 123.txt)即可排除所有命名为 123.txt 的文 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2024/07/06/Snakemake%20pipeline%20%E6%90%AD%E5%BB%BA%E7%9A%84%E8%BF%9B%E9%98%B6%E6%95%99%E7%A8%8B/" title="Snakemake pipeline 搭建的进阶教程"><img class="post_bg" src="/pic/cover.gif" data-original="/pic2/snakemakecover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Snakemake pipeline 搭建的进阶教程"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/07/06/Snakemake%20pipeline%20%E6%90%AD%E5%BB%BA%E7%9A%84%E8%BF%9B%E9%98%B6%E6%95%99%E7%A8%8B/" title="Snakemake pipeline 搭建的进阶教程">Snakemake pipeline 搭建的进阶教程</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-07-06T13:05:00.000Z" title="发表于 2024-07-06 21:05:00">2024-07-06</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-07-09T04:51:15.393Z" title="更新于 2024-07-09 12:51:15">2024-07-09</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><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E7%94%9F%E7%89%A9%E4%BF%A1%E6%81%AF%E5%AD%A6/">生物信息学</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">关于 SnakemakeSnakemake 是一个工作流管理系统,可用于创建易于迁移和复现的数据分析流程(pipeline),因此被广泛应用于生物学分析中。虽然 Snakemake 算是一个独立的编程语言,但其本质是基于 Python 搭建的,因此如果你对 Python 有一定了解,那么上手 Snakemake 就会更容易很多。并且 Python 技能的掌握对于某些情况下 Pipeline 下游分析部分的拓展是有必要的。
本文将结合多个近些年生物论文中公开的 Snakemake Pipeline,介绍如何搭建一个具有一定功能的 Pipeline。
Snakemake 安装:https://snakemake.readthedocs.io/en/stable/getting_started/installation.html
Snakemake Pipeline 示例教程:https://snakemake.readthedocs.io/en/stable/tutorial/basics.html
有利于提升阅读体验的一些条件:
对于 Python 编程已经具备一定的了解,包括文件 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2024/06/29/%E5%AF%B9%20bedgraph%20%E6%96%87%E4%BB%B6%E8%BF%9B%E8%A1%8C%20lowess%20%E5%B9%B3%E6%BB%91%E6%93%8D%E4%BD%9C/" title="对 bedgraph 文件进行 lowess 平滑操作"><img class="post_bg" src="/pic/cover.gif" data-original="/pic2/bdglowess.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="对 bedgraph 文件进行 lowess 平滑操作"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/06/29/%E5%AF%B9%20bedgraph%20%E6%96%87%E4%BB%B6%E8%BF%9B%E8%A1%8C%20lowess%20%E5%B9%B3%E6%BB%91%E6%93%8D%E4%BD%9C/" title="对 bedgraph 文件进行 lowess 平滑操作">对 bedgraph 文件进行 lowess 平滑操作</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-06-29T03:30:00.000Z" title="发表于 2024-06-29 11:30:00">2024-06-29</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-06-29T03:35:25.317Z" title="更新于 2024-06-29 11:35:25">2024-06-29</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">在进行一些特定的功能基因组学数据分析时,我们可能需要对 bedgraph 文件中每个 bin 的值进行一定的平滑操作,以降低随机噪声的影响并提供更好的可视化效果。例如:
Repli-seq / BrdU-seq 中量化得到的 Replication Timing
OK-seq / Pu-seq 中量化得到的 Replication Fork Directionality
以下是一个用于对 bedgraph 进行 lowess 平滑操作的 python script:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960import pandas as pdimport statsmodels.api as smimport argparsedef get_args(): parser = argparse.ArgumentParser(description='Perform lowess smooth on ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2024/06/09/%E8%8E%B7%E5%8F%96%E5%9F%BA%E5%9B%A0%E7%BB%84%E4%B8%8A%20intron%20%E5%8C%BA%E5%9F%9F%E5%8F%8A%E5%AF%B9%E5%BA%94%E9%93%BE%E4%BF%A1%E6%81%AF%E7%9A%84%E6%96%B9%E6%B3%95/" title="获取基因组上 intron 区域及对应链信息的方法"><img class="post_bg" src="/pic/cover.gif" data-original="/pic/cover5.jpg" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="获取基因组上 intron 区域及对应链信息的方法"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/06/09/%E8%8E%B7%E5%8F%96%E5%9F%BA%E5%9B%A0%E7%BB%84%E4%B8%8A%20intron%20%E5%8C%BA%E5%9F%9F%E5%8F%8A%E5%AF%B9%E5%BA%94%E9%93%BE%E4%BF%A1%E6%81%AF%E7%9A%84%E6%96%B9%E6%B3%95/" title="获取基因组上 intron 区域及对应链信息的方法">获取基因组上 intron 区域及对应链信息的方法</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-06-09T12:30:00.000Z" title="发表于 2024-06-09 20:30:00">2024-06-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-06-09T12:46:13.128Z" title="更新于 2024-06-09 20:46:13">2024-06-09</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><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E7%94%9F%E7%89%A9%E4%BF%A1%E6%81%AF%E5%AD%A6/">生物信息学</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/%E7%94%9F%E4%BF%A1/">生信</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/%E5%9F%BA%E5%9B%A0%E7%BB%84/">基因组</a></span></div><div class="content">流程前置条件:
在环境变量中可调用的 bedtools
本文参考:
Get intronic and intergenic sequences based on gff file from Biostars
https://www.biostars.org/p/112251/
本文可满足的需求:
得到特定区域的 bed 文件(例如 exon / intron 等)。
在得到区域信息的同时进行链信息的区分。
下载基因组注释文件(gtf)以人类最新版本的 gencode 注释为例:
1wget https://ftp.ebi.ac.uk/pub/databases/gencode/Gencode_human/release_46/gencode.v46.basic.annotation.gtf.gz
也可以选择已有的 gtf 文件进行。
得到 transcript 和 exon 区域信息12345678910111213141516GTF="/path/to/gencode.v46.basic.annotation.gtf.gz" # 改为自己实际的注释文件路径,建议使用压缩 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2024/06/09/Ensembl%20VEP%20plugins%20%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%EF%BC%88Alphamissense%E3%80%81dbNSFP%20%E7%AD%89%EF%BC%89/" title="Ensembl VEP plugins 的使用方法(Alphamissense、dbNSFP 等)"><img class="post_bg" src="/pic/cover.gif" data-original="/pic2/vep_cover.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Ensembl VEP plugins 的使用方法(Alphamissense、dbNSFP 等)"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/06/09/Ensembl%20VEP%20plugins%20%E7%9A%84%E4%BD%BF%E7%94%A8%E6%96%B9%E6%B3%95%EF%BC%88Alphamissense%E3%80%81dbNSFP%20%E7%AD%89%EF%BC%89/" title="Ensembl VEP plugins 的使用方法(Alphamissense、dbNSFP 等)">Ensembl VEP plugins 的使用方法(Alphamissense、dbNSFP 等)</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-06-09T11:30:00.000Z" title="发表于 2024-06-09 19:30:00">2024-06-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-06-10T02:58:46.759Z" title="更新于 2024-06-10 10:58:46">2024-06-10</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><span class="article-meta tags"><span class="article-meta-separator">|</span><i class="fas fa-tag"></i><a class="article-meta__tags" href="/tags/%E7%94%9F%E7%89%A9%E4%BF%A1%E6%81%AF%E5%AD%A6/">生物信息学</a><span class="article-meta-link">•</span><a class="article-meta__tags" href="/tags/%E7%94%9F%E4%BF%A1/">生信</a></span></div><div class="content">
前言以下是相关的官网链接,如果想要得到除本文内容以外更全面深入的了解,建议跳转相关链接进行查阅:
VEP plugins documentation:
https://grch37.ensembl.org/info/docs/tools/vep/script/vep_plugins.html
VEP install documentation:
https://grch37.ensembl.org/info/docs/tools/vep/script/vep_download.html
正文安装 VEP此处强烈建议使用 Docker 或者 Singularity 直接拉取 VEP 镜像进行分析,因为在 VEP image 中已经内置好所有的 plugin,无需自己手动下载。
考虑到 Docker 对权限的要求更高,因此这里以普适性更强的 Singularity 为例(Docker 用户有需求可通过文章开头链接前往官网进行参考):
12# 拉取 VEP imagesingularity pull --name vep.sif docker://ensemblorg/ensembl- ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2024/05/10/fasterq-dump%20%E4%B8%8B%E8%BD%BD%20SRA%20%E6%96%87%E4%BB%B6%E6%97%B6%E6%8A%A5%E9%94%99%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%EF%BC%88err%20cmn_iter%EF%BC%89/" title="fasterq-dump 下载 SRA 文件时报错的解决方法(err cmn_iter)"><img class="post_bg" src="/pic/cover.gif" data-original="/pic2/fasterqdump.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="fasterq-dump 下载 SRA 文件时报错的解决方法(err cmn_iter)"></a></div><div class="recent-post-info"><a class="article-title" href="/2024/05/10/fasterq-dump%20%E4%B8%8B%E8%BD%BD%20SRA%20%E6%96%87%E4%BB%B6%E6%97%B6%E6%8A%A5%E9%94%99%E7%9A%84%E8%A7%A3%E5%86%B3%E6%96%B9%E6%B3%95%EF%BC%88err%20cmn_iter%EF%BC%89/" title="fasterq-dump 下载 SRA 文件时报错的解决方法(err cmn_iter)">fasterq-dump 下载 SRA 文件时报错的解决方法(err cmn_iter)</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-05-10T03:00:00.000Z" title="发表于 2024-05-10 11:00:00">2024-05-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-06-27T07:35:12.744Z" title="更新于 2024-06-27 15:35:12">2024-06-27</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">正文这几天下载 SRA,遇到的错误有:
fasterq-dump.3.1.0 err: cmn_iter.c cmn_read_uint8_array
fasterq-dump.3.1.0 err: cmn_iter.c cmn_read_String
以前使用 fasterq-dump 时只是偶然出现这些问题,重新下载也都能解决,但最近有些 SRA 一直下载失败,经过调查发现这种错误在大文件下载时出现异常频繁,且多次下载并没法有效解决问题,因此需要一个替代的方法。
解决方案Prefetch由于 fasterq-dump 直接通过 HTTP 下载得到 fastq 文件,该过程很可能由于一些问题中断从而导致下载失败。因此可以通过更稳定的 prefetch 先得到 sra 文件,再通过 fasterq-dump 提取 fastq 文件。
fasterq-dump fetches SRR on the fly via HTTP and there could be fatal errors during the transfer.prefetch eliminates transf ...</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/cover.gif" data-original="/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">58</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>Juse 抽卡又保底了</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">1</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">49</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">14</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">27</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(86, 187, 170)">生物信息学</a><a href="/tags/%E7%94%9F%E4%BF%A1/" style="font-size: 1.45em; color: rgb(137, 195, 171)">生信</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(70, 106, 191)">系统发育分析</a><a href="/tags/JuseKit/" style="font-size: 1.33em; color: rgb(146, 132, 38)">JuseKit</a><a href="/tags/%E8%BD%AC%E5%BD%95%E7%BB%84/" style="font-size: 1.39em; color: rgb(46, 191, 123)">转录组</a><a href="/tags/IQtree/" style="font-size: 1.21em; color: rgb(31, 71, 79)">IQtree</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(134, 150, 81)">富集网络图</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(16, 132, 127)">比较转录组学</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(141, 186, 30)">差异表达分析</a><a href="/tags/%E7%81%AB%E5%B1%B1%E5%9B%BE/" style="font-size: 1.15em; color: rgb(124, 99, 7)">火山图</a><a href="/tags/linux/" style="font-size: 1.15em; color: rgb(88, 200, 21)">linux</a><a href="/tags/%E6%96%87%E7%8C%AE/" style="font-size: 1.21em; color: rgb(95, 101, 1)">文献</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(0, 7, 12)">比较转录组</a><a href="/tags/GO%E5%AF%8C%E9%9B%86%E5%88%86%E6%9E%90/" style="font-size: 1.15em; color: rgb(49, 49, 159)">GO富集分析</a><a href="/tags/%E5%BA%8F%E5%88%97%E4%B8%B2%E8%81%94/" style="font-size: 1.15em; color: rgb(141, 112, 32)">序列串联</a><a href="/tags/GO-annotation/" style="font-size: 1.15em; color: rgb(102, 74, 14)">GO annotation</a><a href="/tags/%E5%9F%BA%E5%9B%A0%E7%BB%84/" style="font-size: 1.21em; color: rgb(182, 45, 155)">基因组</a><a href="/tags/%E5%9F%BA%E5%9B%A0%E7%BB%84%E5%AD%A6/" style="font-size: 1.15em; color: rgb(151, 1, 87)">基因组学</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/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><li class="card-archive-list-item"><a class="card-archive-list-link" href="/archives/2024/10/"><span class="card-archive-list-date">十月 2024</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/09/"><span class="card-archive-list-date">九月 2024</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/08/"><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/07/"><span class="card-archive-list-date">七月 2024</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/06/"><span class="card-archive-list-date">六月 2024</span><span class="card-archive-list-count">3</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">58</div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">116.2k</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="2025-02-12T08:14:54.068Z"><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="/pic/cover.gif" data-original="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="/pic/cover.gif" data-original="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="/pic/cover.gif" data-original="https://avatars.githubusercontent.com/u/26035995?v=4" alt=""></a></div></div></div></div><div class="copyright">©2022 - 2025 @ 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の生信分享 (27)</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の琐碎教程 (14)</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の博客轻改 (1)</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="/pic/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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/cover.gif" data-original="/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/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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="/pic/cover.gif" data-original="/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/cover.gif" data-original="/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">向来只闻 Phylogenomics,那么 Phylotranscriptomics 又如何呢?</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/cover.gif" data-original="/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 -->
<style>
[bg-lazy] {
background-image: none !important;
background-color: #eee !important;
}
</style>
<script>
window.imageLazyLoadSetting = {
isSPA: false,
preloadRatio: 1,
processImages: null,
};
</script><script>window.addEventListener("load",function(){var t=/\.(gif|jpg|jpeg|tiff|png)$/i,r=/^data:image\/[a-z]+;base64,/;Array.prototype.slice.call(document.querySelectorAll("img[data-original]")).forEach(function(a){var e=a.parentNode;"A"===e.tagName&&(e.href.match(t)||e.href.match(r))&&(e.href=a.dataset.original)})});</script><script>!function(r){r.imageLazyLoadSetting.processImages=t;var e=r.imageLazyLoadSetting.isSPA,n=r.imageLazyLoadSetting.preloadRatio||1,c=a();function a(){var t=Array.prototype.slice.call(document.querySelectorAll("img[data-original]")),e=Array.prototype.slice.call(document.querySelectorAll("[bg-lazy]"));return t.concat(e)}function t(){e&&(c=a());for(var t,o=0;o<c.length;o++)0<=(t=(t=c[o]).getBoundingClientRect()).bottom&&0<=t.left&&t.top<=(r.innerHeight*n||document.documentElement.clientHeight*n)&&function(){var t,e,n,a,i=c[o];e=function(){c=c.filter(function(t){return i!==t}),r.imageLazyLoadSetting.onImageLoaded&&r.imageLazyLoadSetting.onImageLoaded(i)},(t=i).hasAttribute("bg-lazy")?(t.removeAttribute("bg-lazy"),e&&e()):(n=new Image,a=t.getAttribute("data-original"),n.onload=function(){t.src=a,t.removeAttribute("data-original"),e&&e()},t.src!==a&&(n.src=a))}()}function i(){clearTimeout(t.tId),t.tId=setTimeout(t,500)}t(),document.addEventListener("scroll",i),r.addEventListener("resize",i),r.addEventListener("orientationchange",i)}(this);</script><script type="text/javascript" charset="utf-8" src="/js/lazyload-plugin/lazyload.intersectionObserver.min.js"></script></body></html>