查看原文
其他

再怎么强调生物信息学数据分析学习过程的计算机基础知识的打磨都不为过,我把它粗略的分成基于R语言的统计可视化,以及基于Linux的NGS数据处理

之前我们生信菜鸟团已经发布的:购买入门级服务器免费送Linux直播培训服务 ,提到了可以购置一款《1核2G服务器》标准品,既可以练习Linux命令,也可以打搭建一个博客:五分钟搞定你的个人博客,还可以做图床,或者隧道。但是,这个超级便宜的服务器真的是配置只能做入门Linux命令的练习,根本就没办法做NGS数据分析。

我这里拿腾讯云服务器举例,首先查看自己购买的云主机:https://console.cloud.tencent.com/cvm/index

查看服务器配置

df -h free -g

挂载云硬盘

首先购买:

/dev/vda1 * 2048 104857566 104855519 50G 83 Linux /dev/vdb1 2048 2097151999 2097149952 1000G 83 Linux/dev/vdc1 2048 1048575999 1048573952 500G 83 Linux

挂载购置的云硬盘

sudo fdisk -lsudo fdisk /dev/vdb# 按照界面的提示,依次输入“n”(新建分区)、“p”(新建扩展分区)、“1”(使用第1个主分区),两次回车(使用默认配置),输入“w”(保存分区表),开始分区。sudo fdisk /dev/vdc
sudo fdisk -ldf -hsudo mkfs.ext4 /dev/vdc1 sudo mkfs.ext4 /dev/vdb1
sudo mkdir /datasudo mkdir /project
sudo mount /dev/vdb1 /data/sudo mount /dev/vdc1 /project/

还需要修改**/etc/fstab**文件

sudo vim /etc/fstab

然后在文件末尾添加下面内容,要注意盘号对应

/dev/vdb1 /data ext4 defaults 0 1 /dev/vdc1 /project ext4 defaults 0 1

设置硬盘用户配额

  1. 安装quota
sudo apt install quota
  1. 文件系统启用quota
sudo fdisk -lsudo mount -o remount,usrquota,grpquota /data sudo mount -o remount,usrquota,grpquota /project mount | grep /dev ##/dev/vdd1 on /trainee2 type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)## 可以看到现在已经启用了quota

如果是自己的服务器,修改**/etc/fstab**文件

/dev/vdb1 /data ext4 defaults,usrquota,grpquota 0 0/dev/vdc1 /project ext4 defaults,usrquota,grpquota 0 0

然后运行

sudo mount -o remount /data sudo mount -o remount /project
  1. 生成磁盘配额数据库
sudo quotacheck -mugf /datasudo quotacheck -mugf /project ## 在 trainee2 目录下会多出“aquota.group”,“aquota.user”两个文件
  1. 启用磁盘配额
sudo quotaon /dev/vdb1sudo quotaon /dev/vdc1
## 关闭磁盘配额的命令## sudo quotaoff -avgu## 猜测之前错误就是因为运行了这个命令后没有重新开启
  1. 编辑磁盘配额文件
sudo adduser jmzengsudo edquota -u jmzeng## 针对用户user1修改配置文件

对soft和hard列进行修改,超过soft设定数值,用户会收到提醒,最多使用的空间大小由hard设置,这里设置为50G~60G(NANO编辑器的退出和保存)

Disk quotas for user user1 (uid 500):Filesystem blocks soft hard inodes soft hard/dev/sdb1 0 50000000 60000000 0 0 0
  1. 复制磁盘配额配置文件给多个用户
sudo edquota -p jmzeng user2
  1. 查看配额文件报告
sudo repquota -aug## 显示用户配额:sudo quota -uvs jmzeng
  1. 测试是否有效

切换用户:sudo su quotauser1

创建一个大文件:dd if=/dev/zero of=bigfile bs=1M count=5000

切换回主用户查看该用户的空间使用情况:sudo repquota -auvs

安装必备系统库及软件

管理员的特权

首先是库

sudo apt updatesudo apt install --fix-missing libcurl4-openssl-dev libxml2-dev libgdal-dev libssl-dev libglu1-mesa-dev libmagick++-dev libudunits2-dev

然后是软件

sudo apt updatesudo apt install -y net-toolssudo apt install -y openssh-serversudo apt install -y subversion scons libfuse-dev gcc git make sudo apt install -y samtools bcftools bwa ncbi-blast+ sra-toolkit

配置网络服务(博客或者论坛)

接着参考:https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04 设置好ngix的网站服务

sudo apt-get updatesudo apt install -y vim tree nginx htop cmake sudo apt install -y nginx curlcurl -4 icanhazip.com

接着参考:https://www.digitalocean.com/community/tutorials/how-to-install-linux-nginx-mysql-php-lemp-stack-in-ubuntu-16-04 设置好mysql和php服务

sudo ufw allow 'Nginx HTTP'sudo ufw statussudo apt-get -f install mysql-server## 保证密码统一性mysql_secure_installationsudo apt-get -f install php-fpm php-mysqlsudo vi /etc/php/7.0/fpm/php.ini ## change cgi.fix_pathinfo=0sudo systemctl restart php7.0-fpmsudo vi /etc/nginx/sites-available/default

需要设置好 /var/www/html 文件夹权限,就是需要增加一个 www-data 的用户组,里面包含的用户都是可以访问的。

sudo chgrp -R www-data /var/www#sudo usermod -a -G www-data jmzengsudo usermod -a -G www-data ubuntusudo chmod -R 2770 /var/www/html sudo usermod -a -G www-data jmzeng

配置R环境

使用root权限(系统管理员)安装最新版的R,我们的ubuntu是20,所以选择focal这个代号,然后是cran40,全部的代码如下:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys E298A3A825C0D65DFD57CBB651716619E084DAB9sudo add-apt-repository 'deb https://mirrors.ustc.edu.cn/CRAN/bin/linux/ubuntu focal-cran40/'sudo apt updatesudo apt install r-base

实际上还需要使用root权限(系统管理员)安装一些R包。

假如你的ubuntu是其它版本,自己修改:

  • # 18.04,deb https://cloud.r-project.org/bin/linux/ubuntu bionic-cran35/
  • # 16.04, deb https://cloud.r-project.org/bin/linux/ubuntu xenial-cran35/
  • # 14.04,deb https://cloud.r-project.org/bin/linux/ubuntu trusty-cran35/

这里我们使用root权限(系统管理员):sudo  R

options()$repos options()$BioC_mirror#options(BioC_mirror="https://mirrors.ustc.edu.cn/bioc/")options(BioC_mirror="http://mirrors.tuna.tsinghua.edu.cn/bioconductor/")options("repos" = c(CRAN="https://mirrors.tuna.tsinghua.edu.cn/CRAN/"))options()$repos options()$BioC_mirror
# https://bioconductor.org/packages/release/bioc/html/GEOquery.htmlif (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager")BiocManager::install("KEGG.db",ask = F,update = F)

一般来说不会报错,然后继续安装更多的包:

BiocManager::install(c("GSEABase","GSVA","clusterProfiler" ),ask = F,update = F)BiocManager::install(c("GEOquery","limma","impute" ),ask = F,update = F)BiocManager::install(c("org.Hs.eg.db","hgu133plus2.db" ),ask = F,update = F) options()$reposinstall.packages('WGCNA')install.packages(c("FactoMineR", "factoextra"))install.packages(c("ggplot2", "pheatmap","ggpubr"))library("FactoMineR")library("factoextra")
library(GSEABase)library(GSVA)library(clusterProfiler)library(ggplot2)library(ggpubr)library(hgu133plus2.db)library(limma)library(org.Hs.eg.db)library(pheatmap)
BiocManager::install("ChAMP")

不得不说,有一些R包真的很难安装,搞了一个下午,比如ChAMP这个甲基化芯片数据处理包。

配置shiny权限和rsutdio的服务器

安装shiny和rsutdio的服务器,官网找到最新版咯

  • https://www.rstudio.com/products/rstudio/download-server/
  • https://www.rstudio.com/products/shiny/shiny-server/

因为网络问题,直接从其它腾讯云服务器拷贝两个deb文件过来。

sudo apt-get install gdebi-corewget https://download2.rstudio.org/server/bionic/amd64/rstudio-server-1.3.1056-amd64.debsudo gdebi rstudio-server-1.3.1056-amd64.deb

如果要安装 shiny服务,首先需要相应的R包

library(shiny)library(devtools)library(ggplot2)library(pheatmap)library(ggpubr)library(ggstatsplot)library(airway)library(DESeq2)library(edgeR)library(limma)library(clusterProfiler)# library之后均没有报错

library之后均没有报错

sudo systemctl restart shiny-server

可能需要经常重启,安装成功之后查看端口开放情况:netstat -tln

批量新建用户

在Ubuntu中,adduser更适合初级使用者,因为不用去记那些繁琐的参数选项,只要跟着系统的提示一步一步进行下去就行,缺点就是整 个创建过程比较复杂而漫长;

useradd比较适合有些高阶经验的使用者,往往一行命令加参数就能解决很多问题,所以创建起来十分方便。

https://www.cnblogs.com/xudong-bupt/archive/2013/03/13/2958043.html

http://blog.csdn.net/nyist327/article/details/50729743

首先需要新建一个组别来管理他们:sudo groupadd student

然后新建一个文本存放用户信息,比如:huaxi_users.txt

内容如下:

kzheng:kzheng6453qyzhang:qyzhang53535qhe:qhe2526

代码是:

# bash create_user.sh user.vip.batch2 /project/home batch2cut -d":" -f 1 $1 |while read id;doh=$2g=$3echo $idsudo mkdir -p idsudo useradd h/$idsudo chown -R h/$idsudo usermod -aG idsudo chgrp -R h/$idsudo usermod -s /bin/bash $idsudo cp readme.txt idsudo cp /home/ubuntu/.profile idsudo cp /home/ubuntu/.bashrc idsudo chown -R h/$idsudo edquota -p jmzeng $iddone# sudo chpasswd < passwd.txt:'Welcome to Biotrainee() !This is your personal account in our Cloud. Have a fun with it.Please feel free to contact with me( email to jmzeng1314@163.com )(http://www.biotrainee.com/thread-1376-1-1.html)'

批量新建用户可以批量修改密码:sudo chpasswd < huaxi_users.txt

后来我把这个代码又包装了一下:

for i in Aug{001..600};do sudo userdel -r $i;donefor i in Aug{001..600};do sudo groupdel $i;done
echo vip{001..600}|tr ' ' '\n'|while read id;do echo ${id}:pd$(($RANDOM%50000+1)) ;done > user.vip.batch1sudo groupadd batch1 bash create_user.sh user.vip.batch1 /data/home batch1sudo chpasswd < user.vip.batch1
echo vip{601..999}|tr ' ' '\n'|while read id;do echo ${id}:pd$(($RANDOM%50000+1)) ;done > user.vip.batch2sudo groupadd batch2bash create_user.sh user.vip.batch2 /project/home batch2sudo chpasswd < user.vip.batch2
## 显示用户配额:sudo quota -uvs jmzeng

我多么希望可以给10万粉丝人手一个服务器账号,但是哪怕是我可以在代码层面做到,这个服务器的性能也支撑不住!现在建立了1000个账号,就已经很勉强了。

文末友情推荐

要想真正入门生物信息学建议务必购买全套书籍,一点一滴攻克计算机基础知识,书单在:什么,生信入门全套书籍仅需160 。如果大家没有时间自行慢慢摸索着学习,可以考虑我们生信技能树官方举办的学习班:

如果你课题涉及到转录组,欢迎添加一对一客服:详见:你还在花三五万做一个单细胞转录组吗?

号外:生信技能树知识整理实习生招募,长期招募,也可以简单参与软件测评笔记撰写,开启你的分享人生!另外,:绝大部分生信技能树粉丝都没有机会加我微信,已经多次满了5000好友,所以我开通了一个微信好友,前100名添加我,仅需150元即可,3折优惠期机会不容错过哈。我的微信小号二维码在:0元,10小时教学视频直播《跟着百度李彦宏学习肿瘤基因组测序数据分析》


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存