PageSourceSearch

https://biojuse.com/

html biojuse.com collected 2026-10-09 22:08:02 UTC 82,640 bytes, 340 lines download raw bytes

1<!DOCTYPE html><html lang="zh-CN" data-theme="light"><head><link rel="shortcut icon" href="/pic/webiron.png"><link rel="icon" type="image/png" href="/pic/webiron.png"><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">
2<meta property="og:title" content="Juse&#39;s Blog">
3<meta property="og:url" content="https://biojuse.com/index.html">
4<meta property="og:site_name" content="Juse&#39;s Blog">
5<meta property="og:locale" content="zh_CN">
6<meta property="og:image" content="https://biojuse.com/pic/gitav.png">
7<meta property="article:author" content="Juse">
8<meta name="twitter:card" content="summary">
9<meta name="twitter:image" content="https://biojuse.com/pic/gitav.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'">
9<script>const GLOBAL_CONFIG = { 
10  root: '/',
11  algolia: undefined,
12  localSearch: {"path":"/search.xml","preload":false,"languages":{"hits_empty":"找不到您查询的内容:${query}"}},
13  translate: {"defaultEncoding":1,"translateDelay":0,"msgToTraditionalChinese":"繁","msgToSimplifiedChinese":"简"},
14  noticeOutdate: undefined,
15  highlight: {"plugin":"highlighjs","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false},
16  copy: {
17    success: '复制成功',
18    error: '复制错误',
19    noSupport: '浏览器不支持'
20  },
21  relativeDate: {
22    homepage: true,
23    post: false
24  },
25  runtime: '',
26  date_suffix: {
27    just: '刚刚',
28    min: '分钟前',
29    hour: '小时前',
30    day: '天前',
31    month: '个月前'
32  },
33  copyright: undefined,
34  lightbox: 'fancybox',
35  Snackbar: undefined,
36  source: {
37    justifiedGallery: {
38      js: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.js',
39      css: 'https://cdn.jsdelivr.net/npm/flickr-justified-gallery/dist/fjGallery.min.css'
40    }
41  },
42  isPhotoFigcaption: false,
43  islazyload: false,
44  isAnchor: false
45}</script>
45<script id="config-diff">var GLOBAL_CONFIG_SITE = {
46  title: 'Juse\'s Blog',
47  isPost: false,
48  isHome: true,
49  isHighlightShrink: false,
50  isToc: false,
51  postUpdate: '2026-09-15 11:45:30'
52}</script>
52<noscript><style type="text/css">
53  #nav {
54    opacity: 1
55  }
56  .justified-gallery img {
57    opacity: 1
58  }
59
60  #recent-posts time,
61  #post-meta time {
62    display: inline !important
63  }
64</style></noscript>
64<script>(win=>{
65    win.saveToLocal = {
66      set: function setWithExpiry(key, value, ttl) {
67        if (ttl === 0) return
68        const now = new Date()
69        const expiryDay = ttl * 86400000
70        const item = {
71          value: value,
72          expiry: now.getTime() + expiryDay,
73        }
74        localStorage.setItem(key, JSON.stringify(item))
75      },
76
77      get: function getWithExpiry(key) {
78        const itemStr = localStorage.getItem(key)
79
80        if (!itemStr) {
81          return undefined
82        }
83        const item = JSON.parse(itemStr)
84        const now = new Date()
85
86        if (now.getTime() > item.expiry) {
87          localStorage.removeItem(key)
88          return undefined
89        }
90        return item.value
91      }
92    }
93  
94    win.getScript = url => new Promise((resolve, reject) => {
95      const script = document.createElement('script')
96      script.src = url
97      script.async = true
98      script.onerror = reject
99      script.onload = script.onreadystatechange = function() {
100        const loadState = this.readyState
101        if (loadState && loadState !== 'loaded' && loadState !== 'complete') return
102        script.onload = script.onreadystatechange = null
103        resolve()
104      }
105      document.head.appendChild(script)
106    })
107  
108      win.activateDarkMode = function () {
109        document.documentElement.setAttribute('data-theme', 'dark')
110        if (document.querySelector('meta[name="theme-color"]') !== null) {
111          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
112        }
113      }
114      win.activateLightMode = function () {
115        document.documentElement.setAttribute('data-theme', 'light')
116        if (document.querySelector('meta[name="theme-color"]') !== null) {
117          document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
118        }
119      }
120      const t = saveToLocal.get('theme')
121    
122          if (t === 'dark') activateDarkMode()
123          else if (t === 'light') activateLightMode()
124        
125      const asideStatus = saveToLocal.get('aside-status')
126      if (asideStatus !== undefined) {
127        if (asideStatus === 'hide') {
128          document.documentElement.classList.add('hide-aside')
129        } else {
130          document.documentElement.classList.remove('hide-aside')
131        }
132      }
133    
134    const detectApple = () => {
135      if(/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)){
136        document.documentElement.classList.add('apple')
137      }
138    }
139    detectApple()
140    })(window)</script>
140<link rel="stylesheet" href="/css/mycss.css"><link rel="stylesheet" href="/css/bg.css"><link rel="stylesheet" href="/css/hp.css"><!-- hexo injector head_end start --><link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/Zfour/[email protected]/cardlistpost.min.css"/>
141<style>#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags:before {content:"\A";
142  white-space: pre;}#recent-posts > .recent-post-item >.recent-post-info > .article-meta-wrap > .tags > .article-meta__separator{display:none}</style>
143<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">
144</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">68</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/09/15/codex-cli-wecom-notification/" title="将 Codex CLI 运行状况接入企业微信通知"><img class="post_bg" src="/pic2/ChatGPT0915.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="将 Codex CLI 运行状况接入企业微信通知"></a></div><div class="recent-post-info"><a class="article-title" href="/2026/09/15/codex-cli-wecom-notification/" title="将 Codex CLI 运行状况接入企业微信通知">将 Codex CLI 运行状况接入企业微信通知</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-09-15T03:30:00.000Z" title="发表于 2026-09-15 11:30:00">2026-09-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="2026-09-15T03:43:47.214Z" title="更新于 2026-09-15 11:43:47">2026-09-15</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">整活:你是否也让 Codex 在服务器上跑着任务,然后每隔几十秒切回终端看一眼?你是否也遇到过它早就做完了,却因为窗口在后台而白白等了半小时?更难受的是,Codex 有时不是在工作,而是在安静地等你点一个权限审批。
145既然人不能一直盯着终端,那就让终端主动来找人。本文将 Codex CLI 的通知接入企业微信群机器人。在匹配的事件触发时,脚本会把普通回合结束、计划制定完成、提问和权限审批消息推送到企业微信。为求方便,你也可以将本文的链接直接提供给 Codex CLI 并让其进行有关配置,有望相较自己从头配置消耗更少的 token,但注意企业微信的 webhook 仍需自行提供。
146当前消息分为四种(详细的模板可根据自身需求在脚本里进行进一步调整):
147
148✅ Codex 本轮已结束:包含项目、目录、原始任务和最终回复。
149⏳ Codex 已制定 plan,等待决策:包含任务和计划正文,提醒回到 Codex 选择执行或修改。
150⏳ Codex 等待你的决策:由提问工具触发;能否显示完整问题和选项取决于参数格式。
151🔐 Codex 等待权限审批:包含申请原因、工具以及命令摘要。
152
153需要先强调:企业微信 ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2026/07/02/%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E8%BF%9E%E5%A4%96%E7%BD%91%EF%BC%9F%E7%94%A8%20VS%20Code%20RemoteForward%20%E8%B7%91%E9%80%9A%20Codex%20CLI/" title="远程服务器无法连外网?用 VS Code RemoteForward 跑通 Codex CLI"><img class="post_bg" src="/pic2/ChatGPT20_12_47.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="远程服务器无法连外网?用 VS Code RemoteForward 跑通 Codex CLI"></a></div><div class="recent-post-info"><a class="article-title" href="/2026/07/02/%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E6%97%A0%E6%B3%95%E8%BF%9E%E5%A4%96%E7%BD%91%EF%BC%9F%E7%94%A8%20VS%20Code%20RemoteForward%20%E8%B7%91%E9%80%9A%20Codex%20CLI/" title="远程服务器无法连外网?用 VS Code RemoteForward 跑通 Codex CLI">远程服务器无法连外网?用 VS Code RemoteForward 跑通 Codex CLI</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-07-02T12:20:00.000Z" title="发表于 2026-07-02 20:20:00">2026-07-02</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-07-14T01:21:58.380Z" title="更新于 2026-07-14 09:21:58">2026-07-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">整活开头:你是否还在为课题组服务器上无法连外网而使用不了 GPT + Codex cli 而发愁?你是否还在因自己冲了 GPT plus 而无法充分利用 Codex 额度而锤头顿足?跟着本文,我将手把手教你如何在无法连外网的远程服务器上使用 GPT + Codex cli 进行 vibe coding!
154整活结束,其实这类教程在网上也已经有一些资源了,但是多多少少有些细节没讲清楚 or 有很多后续容易出问题的点没有讲清楚,所以干脆自己做个更详细的教程出来,也算水一篇博客。
155前提需求:
156
157订阅了 GPT plus 及以上的套餐。
158有一个自己的 VPN/机场/梯子。
159使用的 IDE 为 VScode(本文的示例是以 VScode 为准的)。
160
161流程1. 安装 Codex cli安装 Codex cli 并不困难,可以参考我在前不久发的文章进行操作,仅需把命令换为 npm install -g @openai/codex。
1622. Remote config 中配置 RemoteForward通过配置 RemoteForward 可以让远端服务器走本地主机的某个端口,这是最关键的一步。首先点击 ...</div></div></div><div class="recent-post-item"><div class="post_cover left"><a href="/2026/07/02/%E4%BD%BF%E7%94%A8%20dadi%20%E6%8E%A8%E6%96%AD%E9%80%82%E5%BA%94%E5%BA%A6%E6%95%88%E5%BA%94%EF%BC%88DFE%EF%BC%89/" title="使用 dadi 推断适应度效应(DFE)"><img class="post_bg" src="/pic2/ChatGPT16_05_18.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="使用 dadi 推断适应度效应(DFE)"></a></div><div class="recent-post-info"><a class="article-title" href="/2026/07/02/%E4%BD%BF%E7%94%A8%20dadi%20%E6%8E%A8%E6%96%AD%E9%80%82%E5%BA%94%E5%BA%A6%E6%95%88%E5%BA%94%EF%BC%88DFE%EF%BC%89/" title="使用 dadi 推断适应度效应(DFE)">使用 dadi 推断适应度效应(DFE)</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-07-02T07:30:00.000Z" title="发表于 2026-07-02 15:30:00">2026-07-02</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-07-02T08:27:26.995Z" title="更新于 2026-07-02 16:27:26">2026-07-02</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">前言适应度效应分布(Distribution of Fitness Effects,DFE)是群体遗传学中的一个核心概念,用于描述新产生突变对生物适应度的影响大
162小及其分布情况。一般认为,大多数新突变是近中性或有害的,只有极少数能够带来适应性优势。准确推断 DFE,不仅有助于理解自然选择如何塑造遗传多样性,也为遗传负荷评估、疾病变异解释以及进化历史研究提供了重要依据。
163在这类分析中,许多基于位点频谱(Site Frequency Spectrum,SFS)的 DFE 推断方法得到了广泛应用。这类方法通常利用中性位点与受选择位点的频谱差异,通过建立群体遗传学模型来估计选择系数的分布。在一个典型的 DFE 推断流程中,通常需要:
164
165构建中性位点和目标位点的位点频谱(SFS);
166根据中性位点估计群体历史(demographic history)参数;
167在固定人口历史模型的基础上,拟合受选择位点的选择系数分布;
168根据模型参数推断不同强度有害突变所占的比例,并进一步开展生物学解释。
169
170本文将介绍一个常被用于 DFE 推断的群体遗传学软件 —— dadi。
171dadi 使用文章:Inferring t ...</div></div></div><div class="recent-post-item"><div class="post_cover right"><a href="/2026/06/12/Claude%20code%20%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E5%AE%89%E8%A3%85%EF%BC%88%E6%97%A0root%EF%BC%89/" title="Claude code 在远程服务器上的安装(无root)"><img class="post_bg" src="/pic2/20260612_02.png" onerror="this.onerror=null;this.src='/img/404.jpg'" alt="Claude code 在远程服务器上的安装(无root)"></a></div><div class="recent-post-info"><a class="article-title" href="/2026/06/12/Claude%20code%20%E5%9C%A8%E8%BF%9C%E7%A8%8B%E6%9C%8D%E5%8A%A1%E5%99%A8%E4%B8%8A%E7%9A%84%E5%AE%89%E8%A3%85%EF%BC%88%E6%97%A0root%EF%BC%89/" title="Claude code 在远程服务器上的安装(无root)">Claude code 在远程服务器上的安装(无root)</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-06-12T11:00:00.000Z" title="发表于 2026-06-12 19:00:00">2026-06-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="2026-06-15T02:58:14.068Z" title="更新于 2026-06-15 10:58:14">2026-06-15</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">写这篇文章的原因是,我按照网上一些已有教程操作在服务器上没法成功安装 Claude code,问题出在自己下载 Nodejs 的包并调用 npm 时会出现以下报错:
1721/usr/bin/env: node: No such file or directory
173
174亦或者是:
175123node: /lib64/libm.so.6: version `GLIBC_2.27&#x27; not found (required by node)node: /lib64/libc.so.6: version `GLIBC_2.28&#x27; not found (required by node)node: /lib64/libc.so.6: version `GLIBC_2.25&#x27; not found (required by node)
176
177究其原因可能是我的一些环境配置过于紊乱导致出现冲突,尝试了一些其他的方法发现有更简单的安装方式,固有此文。
178安装方案整体的安装方案其实很简单,首先用 mamba/conda 安装一个只有 nodejs 的纯净环境:
17912conda create - ...</div></div></div><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 日停止服务。
180此时我刚捣鼓好 Valine 的邮件通知系统没有多久,但可惜的是æ
180ˆ‘不得不面对现实。由于 Valine 官方基本沉寂,我大概率等不来一个好的替代方案(Valine 仅支持 LeanCloud 作为数据库)。在这段时间忙完自己的论文后,终于有了时间来处理博客事务,研究了一天成功将博客的评论系统进行了迁移,故有此文。
181评论系统迁移一些可能需要提前注意的事项迁移到 Waline 可能需要你有一个自己的域名(因为要绑定一个子域名作为评论管理系统页面),如果你没有自己的域名,可以考虑购买一个或使用其他评论系统作为替代(即本文内容对你可能无用)。此外,本博客基于 hexo+butterfly 搭建,一些后续的调整可能在其他主题中不适用。
182Waline 部署这一部分内容主要来自:Waline 官方教程 —— 快速上手,并针对部分内容进行细节补充。
183部署服务端及创建数据库这两个部分基本与上述官方教程无异,虽然当前 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)相比,二者的视角恰好相反:
184
185GWAS 关注的是“针对一个表型,在基因组范围内寻找哪些变异与之相关”;
186PheWAS 则关注“针对某个特定变异(或一类变异),在众多表型中寻找它会影响哪些性状”。
187
188近年来,随着测序规模的扩大与统计方法的发展,稀有变异(rare variants)在复杂性状中的作用逐渐受到重视。由于单个稀有变异往往难以单独检出显著关联,研究者通常采用 burden analysis 等策略将同一基因中的有害变异聚合起来,以提升统计功效。在典型的 burden 分析流程中,通常会:
189
190识别基因中的功能有害变异,例如预测的 loss-of-function 变异或机器学习模型给出的高致病性错义变异;
191根据样本是否携带这些有害变异进行编码,编码方式可以是简单的二元(0/1),也可以使用携带数量作为计数值;
192对编码后的变量在多种表型上执行关联分析,从而识别哪些表型与该类有害变异显著相关 ...</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 可视化又过于不便且耗时(特别是在数据量庞大的情况下)。
193针对这一问题,igv-reports 成为了一个很好的替代工具。它能够将 IGV 的会话内容和基因组浏览快照一并打包成静态 HTML 报告。生成的报告文件下载到本地后,用户可直接在浏览器中查看和交互,操作体验与 IGV 类似,同时支持灵活分享,兼顾效率与便捷性。
194
195
196Source: https://igvteam.github.io/igv-reports/examples/example_vcf.html
197
198需要注意的是,igv-reports 适用于可视化基因组部分区域时使用,例如你关注的是æ
198Ÿäº›å˜å¼‚位置或特定基因附近的比对情况/信号时,使用 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 在运行时产生的中间文件,虽然其存储占用并不大但由于文件小且多导致在处理这一部分目录时不必要地产生了过大的时间开销,遂在网上寻找定位这些目录的方法并觉得可以水篇博客,固有此文。
199这篇文章将介绍如何使用 du 识别出那些包含文件数量过大的目录。
200基础介绍每个文件/目录在 Linux 中都有一个 Inode(Index Node),文件系统创建时有固定的 Inode 总数,用尽会导致无法新建文件,而过大的 Inode 数量也会导致一些困扰(在我的应用场景中即部分命令的运行时间开销大幅增加),可以使用 df -ih 查看当前各个文件系统的的 Inode 情况:
201123456$ 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,发现了一个意料之外的情况:
202
203质控前,所有数据都有 Adapter Content 的警告,但是其他方面没有问题:
204
205
206
207
208质控后,Adapter Content 的警告消失,但是 Per Base Sequence Content 全部爆红:
209
210
211
212经过比较,原因都是 reads 末端的碱基组成异常导致:
213
214
215经调查在 Trim Galore github 中已经有人提到过(issue #81),这里简单阐述下原因:
216Trim 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 可能匹配到多个位置。
217在实际分析中,有时我们会过滤低 mappability 区域的突变,避免因比对错误导致的假阳性误判。本文将介绍如何使用生物信息学工具 GenMap 获得基因组的 mappability 信息。
218GenMapGenMap github page:
219https://github.com/cpockrandt/genmap
220GenMap paper:
221GenMap: ultra-fast computation of genome mappability
222https://doi.org/10.1093/bioinformatics/btaa222
223相较于先前的 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。为了进行比较分析,需要将这些数据统一到同一个版本。
224坐标转换是通过 chain file 来实现的,该文件记录了两个基因组版本之间的对应关系,包含了基因组重排、插入和删除等信息。转换工具会根据这些信息将原始坐标映射到目标版本的相应位置。
225正文本文将介绍如何使用两款主流工具 CrossMap 和 GATK LiftoverVcf 以及最近的一个新工具 BCFtools liftover 进行 VCF 文件的坐标转换。在说明之前,首先简要介绍三个软件的差别:
226
227CrossMap 除了 VCF 的坐标映射外,也支持很多其他文件格式的坐标转换。对于 VCF 文件而言,CrossMap 并不要求其具有完备的 Meta-information 和 Header line 部分,只需要突变数据行符合格式即可。
228GATK 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 的详细参数设定可见:
229bedtools merge documentation:
230https://bedtools.readthedocs.io/en/latest/content/tools/merge.html
231
232
233默认情况下,bedtools merge 会对所有重叠区间及相邻区间进行合并,例如:
23412345# 运行前chr1	10000	10001chr1	10001	10002# 运行后chr1	10000	10002
235
236但在最近遇到的分析场景中,我仅想合并重叠的点并对它们的值求平均,并不想将它们与相邻的点合并起来,例如:
237123chr1	10000	10001	0.1chr1	10000	10001	0.2chr1	10001	10002	0.3
238
239这里我仅想在 chr1:10000-10001 上进行合并且求平均,但此时使用 bedtools merge -c 4 -o mean 会输出以下结果:
2401chr1    10000   10002   0.2
241
242这并不符合我的预期工作情况,在查阅参数说明后,发现了以下关键参数:
243
244-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">在蛋白质结构研究里,比较不同蛋白质结构之间的相似性是一个核心任务,尤其是在结构预测、同源建模和结构功能关系研究中。以下是一些常用到的衡量蛋白结构间相似性的指标:
245
246RMSD(均方根偏差):该值是衡量两种蛋白质三维结构之间原子位置差异的标准度量。较小的 RMSD 值意味着两个结构相似度较高,RMSD 值对大分子在全局对齐时的大小和形状变化非常敏感。
247TM-score:相较于 RMSD,TM-score 更加关注结构的全局相似性,且对于蛋白质的尺寸和形状变化具有更高的鲁棒性。TM-score 的值介于 0 到 1 之间,值越接近 1,表示两个结构越相似。
248
249本文将介绍如何使用 US-align 对两个蛋白结构进行 align(对齐)并计算其 RMSD 及 TM-score。
250US-alignUS-align github page:
251https://github.com/pylelab/USalign
252该软件的研究团队也同样是 TM-align 的开发者。相比其他的计算工具,US-align 有以下优点:
253
254支持比对除蛋白质以外的生物大分子及其复合物(例如 DNA / RNA 等)。
255通过 ...</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 开发的蛋白质语言模型。其基于大规模的蛋白质序列数据进行训练,能够捕捉蛋白质序列中的复杂模式和进åŒ
255–信息,从而在多个生物学下游应用中表现出色。
256预训练好的 ESM 可用于多个生物学下游应用,本文将就其突变影响分析方面的功能进行介绍。
257关于 ESMESM 预测突变影响的方式是无监督的,也就是说 ESM 的训练过程中并未使用到与突变影响相关的标签进行有监督学习。其评估每个氨基酸错义突变影响程度的方式是掩蔽该位置上的氨基酸并计算两种氨基酸(参考氨基酸与突变氨基酸)在该位置出现的对数似然比:
258
259
260ESM 的预训练阶段使用了类似于 BERT 的掩码任务,因此 ESM 可以给出每个位点里各类氨基酸出现的概率,而参考氨基酸(Ref,即未突变时的氨基酸)和突变氨基酸(Alt)的概率差异即可作为一种 effect score。可以简单理解为,突变氨基酸出现的概率比参考氨基酸低越多,说明这类突变越有害。这种无监督的评估方式也被用于许多其他的深度学习工具,例如 EVE 和 GPN 等。
261
262
263Refe ...</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">&hellip;</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">68</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">
264            <i class="fas fa-folder-open"></i>
265            <span>分类</span>
266            <a class="card-more-btn" href="/categories/" title="查看更多">
267    <i class="fas fa-angle-right"></i></a>
268            </div>
269            <ul class="card-category-list" id="aside-cat-list">
270            <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">58</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">
270机器学习</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">20</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">30</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>
271            </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(182, 60, 109)">生物信息学</a><a href="/tags/%E7%94%9F%E4%BF%A1/" style="font-size: 1.45em; color: rgb(131, 196, 167)">生信</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(99, 80, 4)">系统发育分析</a><a href="/tags/%E6%96%87%E7%8C%AE/" style="font-size: 1.21em; color: rgb(102, 187, 149)">文献</a><a href="/tags/%E5%9F%BA%E5%9B%A0%E7%BB%84%E5%AD%A6/" style="font-size: 1.15em; color: rgb(108, 86, 192)">基因组学</a><a href="/tags/JuseKit/" style="font-size: 1.33em; color: rgb(144, 166, 139)">JuseKit</a><a href="/tags/%E8%BD%AC%E5%BD%95%E7%BB%84/" style="font-size: 1.39em; color: rgb(98, 4, 47)">转录组</a><a href="/tags/IQtree/" style="font-size: 1.21em; color: rgb(137, 98, 135)">IQtree</a><a href="/tags/%E5%9F%BA%E5%9B%A0%E7%BB%84/" style="font-size: 1.21em; color: rgb(56, 92, 51)">基因组</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(102, 124, 55)">富集网络图</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(124, 164, 124)">比较转录组学</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(28, 125, 62)">差异表达分析</a><a href="/tags/%E7%81%AB%E5%B1%B1%E5%9B%BE/" style="font-size: 1.15em; color: rgb(164, 27, 179)">火山图</a><a href="/tags/linux/" style="font-size: 1.15em; color: rgb(33, 195, 184)">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(152, 142, 11)">比较转录组</a><a href="/tags/GO%E5%AF%8C%E9%9B%86%E5%88%86%E6%9E%90/" style="font-size: 1.15em; color: rgb(84, 145, 63)">GO富集分析</a><a href="/tags/GO-annotation/" style="font-size: 1.15em; color: rgb(23, 186, 157)">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(110, 179, 30)">序列串联</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="查看更多">
272    <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/09/"><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/2026/07/"><span class="card-archive-list-date">七月 2026</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/2026/06/"><span class="card-archive-list-date">
272六月 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/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></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">68</div></div><div class="webinfo-item"><div class="item-name">本站总字数 :</div><div class="item-count">137.9k</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-09-15T03:45:30.167Z"><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">&copy;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(&quot;https://cn.bing.com/search?q=&quot;+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>
272<script src="/js/utils.js"></script>
272<script src="/js/main.js"></script>
272<script src="/js/tw_cn.js"></script>
272<script src="https://cdn.jsdelivr.net/npm/@fancyapps/ui/dist/fancybox.umd.min.js"></script>
272<script src="/js/search/local-search.js"></script>
272<script>var preloader = {
273  endLoading: () => {
274    document.body.style.overflow = 'auto';
275    document.getElementById('loading-box').classList.add("loaded")
276  },
277  initLoading: () => {
278    document.body.style.overflow = '';
279    document.getElementById('loading-box').classList.remove("loaded")
280
281  }
282}
283window.addEventListener('load',preloader.endLoading())</script>
283<div class="js-pjax">
283<script>function subtitleType () {
284  if (true) { 
285    window.typed = new Typed("#subtitle", {
286      strings: ["Be patient, be positive. 📷📷📷","Patience is key in life. 🔑🔑🔑"],
287      startDelay: 300,
288      typeSpeed: 100,
289      loop: true,
290      backSpeed: 30
291    })
292  } else {
293    document.getElementById("subtitle").innerHTML = 'Be patient, be positive. 📷📷📷'
294  }
295}
296
297if (true) {
298  if (typeof Typed === 'function') {
299    subtitleType()
300  } else {
301    getScript('https://cdn.jsdelivr.net/npm/typed.js/lib/typed.min.js').then(subtitleType)
302  }
303} else {
304  subtitleType()
305}</script>
305</div>
305<script src="https://cdn.staticfile.org/jquery/3.6.3/jquery.min.js"></script>
305<script type="text/javascript" src="/js/rightmenu.js"></script>
305<script type="text/javascript" src="/js/txmap.js"></script>
305<script type="text/javascript" src="/js/copy12.js"></script>
305<script type="text/javascript" src="/js/ldex.js"></script>
305<script type="text/javascript" src="/js/runtime.js"></script>
305<script src="https://cdn.jsdelivr.net/npm/butterfly-extsrc/dist/activate-power-mode.min.js"></script>
305<script>POWERMODE.colorful = true;
306POWERMODE.shake = false;
307POWERMODE.mobile = true;
308document.body.addEventListener('input', POWERMODE);
309</script>
309<script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>
309</div><!-- hexo injector body_end start --> 
309<script data-pjax>if(document.getElementById('recent-posts') && (location.pathname ==='/'|| '/' ==='all')){
310    var parent = document.getElementById('recent-posts');
311    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の生信分享 (30)</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の琐碎教程 (20)</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>';
312    console.log('已挂载magnet')
313    parent.insertAdjacentHTML("afterbegin",child)}
314     </script>
314<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>
315    <style></style>
315<script data-pjax>
316  function butterfly_swiper_injector_config(){
317    var parent_div_git = document.getElementById('recent-posts');
318    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>
318<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>
318<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;">
318<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>
318<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>
318<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>
318<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>
318<div class="blog-slider__pagination swiper-pagination-clickable swiper-pagination-bullets"></div></div></div>';
319    console.log('已挂载butterfly_swiper')
320    parent_div_git.insertAdjacentHTML("afterbegin",item_html)
321    }
322  var elist = 'undefined'.split(',');
323  var cpage = location.pathname;
324  var epage = 'all';
325  var flag = 0;
326
327  for (var i=0;i<elist.length;i++){
328    if (cpage.includes(elist[i])){
329      flag++;
330    }
331  }
332
333  if ((epage ==='all')&&(flag == 0)){
334    butterfly_swiper_injector_config();
335  }
336  else if (epage === cpage){
337    butterfly_swiper_injector_config();
338  }
339  </script>
339<script defer src="https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper.min.js"></script>
339<script defer data-pjax src="https://npm.elemecdn.com/hexo-butterfly-swiper/lib/swiper_init.js"></script>
339<!-- hexo injector body_end end -->
339<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v4bc70e2c01a94c73b74392e4234840661791215815920" integrity="sha512-L0ha0OXavK/8okipN9F8BtP84dg9DUhPERbBXzwI6dgTA55d2+yweo3pn5CSFYs45/r8md2+xvUPtTdvTNRfjA==" data-cf-beacon='{"version":"2024.11.0","token":"bd2e7894bb674047b30a25395adfa648","r":1,"spa":2}' crossorigin="anonymous"></script>
339
340</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.