一般有基因组测序分析需求的小型实验室都会配置自己的科研服务器。那么,对于新手来说,服务器的选购、软件安装、系统安全方面的内容都有很多课题需要自己研究。 本文介绍一下我踩过的坑。

选购要点

在服务器选购上,选择塔式服务器,其中 Dell T640 是目前流行的款式。 其他配置要包含至少 128 Gb 内存、60 Tb 的硬盘空间,以及 16 核心(32 线程)的 CPU。 如果做人类转录组的分析,在比对步骤,有些软件必须要求最低内存配置是 30 Gb, 言外之意,你的服务器内存必须超过 32 Gb。 假如有对持续供电的需求,可以在单独配置一个外接UPS电池,在实验室意外短时间停电期间用来保证服务器正常工作。 但由于UPS电池一般是铅酸蓄电池(不是锂电池),占地面积大,其使用寿命大约为7年,如需配置还应考虑到安全和自身需求问题。

选购好服务器后,请一定将起放置在平稳,不需移动的地方,电源插头也不应经常插拔。

系统和软件配置

由于 Linux 多种分发版本自身迭代有快慢,而一些分析软件包的开发者可能仅在常见分发版本中开发软件,所以建议所有用户只使用 Ubuntu 系统的,方便测试科研软件包。 如果使用 CentOS 系统一定要注意最近他们版本更新方案,尽量装最新版的。我认为 CentOS 不应该作为科研服务器的系统,它软件迭代速度太慢,很多库文件更新不及时,导致无法测试一些别人开发的软件包。

所有可以全局安装的系统软件和依赖库文件,应使用 Ubuntu 的包管理系统 apt-get 来进行安装,强烈不建议自己编译安装系统文件

对于科研相关的软件包,应安装在所有用户都可以获取的地方,并且与系统软件相区分,因此建议安装在根目录下的 /opt 文件夹中。软件包安装规范应至少在软件所在文件夹的命名上体现出版本信息,例如 /opt/samtools-1.12/。 对于一些数据库文件,应专门安排在 /opt/databases 这样的指定文件夹中,在子文件夹命名时要体现出数据的版本信息或者下载时间(年月日)。

只应在全局中安装 R 软件及其依赖的基本包(即通过 apt install r-base 命令安装时,所提供的必须依赖和包)。其余包,应由用户在自己的/home文件夹中进行安装。我曾在一台服务器上看到了全局安装的一些附加包,而这些包用户在使用时也会自己安装,所以在 R 环境中会显示出两个包文件,应尽量避免这种情况给用户造成混乱。

对于Python,一定要安装 conda,然后让用户自己选 Python 版本创建环境,安装相关软件包。我也曾经发现过有些服务器上装了三四个不同版本的 Python,当用户安装需要使用的软件包就非常麻烦,如果没有使用经常搞不清楚自己所用的软件安装到哪个 Python 版本下。

conda create -n env_name python=x.x
conda activate env_name
conda deactivate env_name
conda env remove -n env_name

系统安全

对于系统安全,首先在创建系统用户的时候,一定使用强健的初始密码。我曾经遇到过使用了弱密码创建初始用户,结果有人撞库成功,入侵服务器。 因此,还应加强服务器ssh登录的端口设置,以及安装一些基本的防护软件,例如 fail2ban

可以给用户开 sudo 权限,方便他们自行全局安装一些特定依赖,但不要把 root 密码搞得尽人皆知。

为了防止错删文件,应将 rm 命令替换为 trash-put,为此,要安装软件包 apt install trash-cli

除此之外,经常要“异地”备份重要文件。


我从2008年开始学习使用 Linux 的个人发行版 Fedora 8, 到现在,由于它版本更新得太快,版本号已经逐渐甩开我的年龄了。。。

这帮社区的人在这么玩下去,版本号升到3位数指日可待。 _(:з」∠)_


这篇也是写代码的一部分,对于 \(\LaTeX\) 的使用,感觉中文排版之前是一个痛点,其他的宏以及类的使用方法看几个例子就足够了。所以这里只记录了如何用 \(Xe\TeX\) 写中文文档。除了中英混排,中日、中韩以及日韩、英日、英韩的混排估计都有类似的排版问题,还需要自己搜索相关资料解决。

\(Xe\TeX\) 支持引擎直接支持 Unicode 字符。别再用什么 CJKutf8 了。 如果你用Linux系统,下载安装\(\TeX Live\) 套装,安装有界面的编辑软件 Gummi,可以完美的撰写中文文档。我觉得使用相关 Windows 环境下的软件,也能完成这个任务。 另外,\(C\TeX\) 宏集做中英文混排据说非常棒,如果无法忍受默认的 \(Xe\TeX\) 排版效果,可以选择 \(C\TeX\) 宏集。对于我来说用最简单的就足够了。

\documentclass{article}
\usepackage{fontspec}
\setmainfont{文泉驿点阵正黑}
\XeTeXlinebreaklocale "zh"
\XeTeXlinebreakskip = 0pt plus 1pt minus 0.1pt
\begin{document}
\title{这是Xe\TeX 编排的中文}
\author{YU Lijia}
\maketitle
Xe\TeX 支持引擎直接支持 Unicode 字符。别再用什么 CJKutf8 了。 如果你用Linux系统,下载安装\TeX Live 套装,安装有界面的编辑软件Gummi,可以完美的撰写中文文档。我觉得使用相关 Windows 环境下的软件,也能完成这个任务。 另外,C\TeX 宏集做中英文混排据说非常棒,如果无法忍受默认的Xe\TeX 排版效果,可以选择C\TeX 宏集。对于我来说用最简单的就足够了。

%\tableofcontents
\section{\TeX Live是什么?}

\begin{tabular}[t]{|l|c|c|}
\hline
对比	& CTeX & TeXLive \\
\hline
操作系统 &	只限于Windows下 &	通用 \\
\hline
制作人 & 中科院吴凌云和其他小伙伴 &	TUG \\
\hline
其他 & 对MiK\TeX 的再封装 & 可刻录在光盘直接运行 \\
\hline
\end{tabular}\\
 
C\TeX\TeX Live都是 \LaTeX 的发行版,包括编译器和配套软件安装包。 C\TeX 已经完全过时。所以发行版一定要选择 \TeX Live。
 
\section{C\TeX 发行版和C\TeX 宏集是什么关系}

C\TeX 发行版是基于MiK\TeX 的 Windows下编译\TeX 文件的软件, C\TeX 宏集是专为中英文混排设计的sty宏包和cls文类的集合。


\end{document}

元旦期间看了两部影片《Soul》和《行骗天下JP:公主篇》,我觉得 Soul 拍得太深奥,不像一部儿童动画电影。影片中反复经历在 The great before、The great beyond、现实的轮回,最有意思的人物是22,她为了寻找自己的Spark(火花),在 The great before 接受了那么多世界公认的专家的指导。相比于男主角来教导22找寻火花,其实最后是22让男主角意识到了火花真正的含义。“鱼与大海”的对话说明我们本来就在海洋里,但仍然认为自己没有找到“海洋”,这段对话对我的启发很大,做好自己的事情,比追寻一个可能不是目标的目标更为重要。

行骗天下这一集的电影,观看的时候带着点悲伤,毕竟里面两位重要配角都在去年去世。整部电影故事一般,但总体上还是欢快带着温馨。据说后面还会拍英雄篇,希望新的剧情给点力。


今年连续更新了4篇水博客。现在我都不敢在开口说什么新的新年计划了,之前的都只完成了一半。自控能力要加强,不要耽误时间。虽然嘴上说着996不好,但是不抓紧时间,吃亏的只能是自己。去年没做完的整理上学期间学习的代码工作在本年内会继续。之前该补的东西,尽量都补上,要不都不好意思开新的坑。

除此之外,还有一条新的经验要牢记:永远不到等到文件夹乱得找不到文件了,再去整理,养成良好的电脑文件归类习惯很重要。先乱放,再整理,是在是太耽误时间了。

人的一生是熵不断增加的过程。整理好自己的用品,安排好各种时间,能降低自己平时生活中的熵(混乱程度)。

再多写一些展望吧。。

  • 我最喜欢的 RNA 将在医疗领域发挥更重大的作用(不止是疫苗)。
  • 如何让其他星球产生含氧且适宜人类生存的大气层是个研究方向,感觉还没准能成功呢。
  • 人机接口这东西,最近还最好先关注一些肢体神经,饶了大脑吧。