搜索
查看: 6487|回复: 5

一个生信人拿到自己的服务器必须做的十件事

[复制链接]

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-5-22 09:10:56 | 显示全部楼层 |阅读模式
没什么好说的,自己看代码,自己的服务器,你肯定有root权限咯。
如果没有服务器,去AWS买一个咯。几块钱的事情。(云服务器,可以按照小时计费的)哦哦哦,必须安装ubuntu 16.04哦,我是坚定的ubuntu粉丝了,其余linux系统,我懒得去看,不过大同小异哈
下面的IP里面,101.101.101.101 是我随意写的,请替换成你自己的公网IP。查看自己的IP,请用:
[Shell] 纯文本查看 复制代码
## server's public IP address
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
curl -4 icanhazip.com


接下来就是安装各种产品,并且熟悉它们。

[Shell] 纯文本查看 复制代码
## https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql-php-lamp-stack-on-ubuntu-16-04
sudo apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql
sudo apt-get install mysql-server
sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql
#sudo apt-get install phpmyadmin
## mysql的密码请自己记住哦。

101.101.101.101
## 如果看到了网页,说明你的apache安装好了
101.101.101.101/info.php
## 如果你看到了网页,说明你php安装好了。

## 接下来是mysql的管理。

mysql -u root -p
select user,host from mysql.user;
create database your_table; 
## 这里自己查找如何增加一个mysql用户, jmzeng 
select user,host from mysql.user;
flush privileges;

mysql  -u jmzeng -p
mysql -h 127.0.0.1 -u jmzeng -p
mysql -h localhost -u jmzeng -p
mysql -h 101.101.101.101 -u jmzeng -p 
head /etc/mysql/my.cnf  
head /etc/mysql/mysql.conf.d/mysqld.cnf
netstat -an | grep 3306
ps -Af | grep mysqld
sudo systemctl status mysql
ls -lh /var/run/mysqld 
sudo systemctl restart  mysql


## 安装最新版的R
sudo vi /etc/apt/sources.list
# deb http://mirrors.xmu.edu.cn/CRAN/bin/linux/ubuntu/ xenial/
sudo apt-get update
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 51716619E084DAB9
sudo apt-get update
sudo apt-get install r-base-core 
R --version



## 安装一些R包,还有shiny
## http://deanattali.com/2015/05/09/setup-rstudio-shiny-server-digital-ocean/

sudo apt-get -y install libcurl4-gnutls-dev
sudo apt-get -y install libxml2-dev
sudo apt-get -y install libssl-dev
sudo apt-get -y install  libmariadb-client-lgpl-dev


sudo su - \
-c "R -e \"install.packages( c('RSQLite','shiny','devtools','RMySQL'), repos='https://cran.rstudio.com/')\""

## 安装shiny的server , 还有R studio的网页版。
sudo apt-get -y install libapparmor1 gdebi-core
wget https://download2.rstudio.org/rstudio-server-0.99.896-amd64.deb
sudo gdebi rstudio-server-0.99.896-amd64.deb
101.101.101.101:8787
wget https://download3.rstudio.org/ubuntu-12.04/x86_64/shiny-server-1.4.2.786-amd64.deb
sudo gdebi shiny-server-1.4.2.786-amd64.deb
101.101.101.101:3838

## 设置好权限。
sudo adduser  jimmy
sudo groupadd shiny-apps
sudo usermod -aG shiny-apps jimmy
sudo usermod -aG shiny-apps shiny
cd /srv/shiny-server
sudo chown -R jimmy:shiny-apps .
sudo chmod g+w .
sudo chmod g+s .

sudo su - \
-c "R -e \"install.packages( c('shinydashboard','DT','reshape2'), repos='https://cran.rstudio.com/')\""

sudo su - \
-c "R -e \"install.packages( c('shinyBS','GGally','shinyAce','knitr'), repos='https://cran.rstudio.com/')\""

sudo su - \
-c "R -e \"install.packages( c('rmarkdown','shinyjs' ), repos='https://cran.rstudio.com/')\""

sudo R 

source("https://bioconductor.org/biocLite.R")
biocLite("Biobase")
biocLite("Sushi")

sudo systemctl restart shiny-server
sudo systemctl kill -s HUP --kill-who=main shiny-server
## start /stop / status / enable /disable  




#Shutting down apache2 first before installing nginx should fix this problem:
sudo service apache2 stop
# https://www.digitalocean.com/community/tutorials/how-to-install-nginx-on-ubuntu-16-04
## 这个教程写明如何在16.04版本的ubuntu里面安装nginx
# https://mediatemple.net/community/products/developer/204405534/install-nginx-on-ubuntu
## 这个教程写明如何把自己买的多个域名绑定到同一台主机的不同文件夹里面



## 接下来安装nginx、

sudo apt-get update
sudo apt-get install nginx
sudo systemctl  start   nginx
sudo systemctl status nginx
## list the applications configurations for the firewall 
sudo ufw app list
sudo ufw allow 'Nginx HTTP'
sudo ufw status

## server's public IP address
ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
curl -4 icanhazip.com
ls /etc/nginx
## sites-available  sites-enabled  snippets



#给自己的shiny server设置域名:
#https://www.r-statistics.com/2016/10/set-application-domain-name-with-shiny-server/
#https://www.r-bloggers.com/shiny-server-series-part-1-setting-up/
sudo ln -s /etc/nginx/sites-available/shiny.conf  /etc/nginx/sites-enabled/
sudo systemctl restart nginx

# https://www.datascienceriot.com/add-authentication-to-shiny-server-with-nginx/kris/



# 接下来安装JBrowse

# 建立有写权限的目录
sudo mkdir /var/www/jbrowse;
sudo chown `whoami` /var/www/jbrowse;
cd /var/www/jbrowse;
# 下载最新的安装包
curl -O http://jbrowse.org/releases/JBrowse-1.12.1.zip
# 解压之后进入目录
unzip JBrowse-x.x.x.zip
cd JBrowse-x.x.x
#运行目录内的setup.sh文件
./setup.sh

101.101.101.101/jbrowse/JBrowse-1.12.1/index.html?data=sample_data/json/volvox
101.101.101.101/jbrowse/JBrowse-1.12.1/index.html?data=sample_data/json/yeast



具有如下特点:
快速、平滑的滚动和缩放,能较快的浏览你的基因组数据
能够很容易的缩放若干Gbp和深覆盖度测序数据
支持多种基因组学常用格式(如GFF3、BED、FASTA、Wiggle、BigWig、BAM、VCF等其它格式)
对服务器的配置要求低,实际上JBrowse并没有多少后台服务器代码,除了一些转换格式的工具如转换成http文本

当web浏览器导入含有JBrowse的页面时,首先做的是读取由html页面传递的配置文件。
JBrowse里面支持两种配置文件格式,一种是JSOn格式,另外一种是和GBrowse类似的文本配置文件.conf,如果习惯了之前的GBrowse那么用.conf会更加习惯。
jborwse.conf配置文件是基因浏览器的全局配置文件。
tracks.conf是各个数据项的子配置文件。


参考序列就是相当于其它所有track的一个坐标轴,当放大到一定的尺度后上面的碱基是可以被显示出来的。
JBrowse中的参考序列都必须用prepare-refseqs.pl这个格式化脚本来创建。(可以接受.gz .gzip压缩格式的fasta文件)


http://www.cnblogs.com/freemao/p/3741259.html
http://ju.outofmemory.cn/entry/162255

paper:https://genomebiology.biomedcentral.com/articles/10.1186/s13059-016-0924-1
安装指导: http://jbrowse.org/install
jbrowse的wiki页面:  http://gmod.org/wiki/JBrowse
详细配置信息: http://gmod.org/wiki/JBrowse_Configuration_Guide
quick-start tutorial: 
http://jbrowse.org/code/JBrowse-1.11.4/docs/tutorial/
http://jbrowse.org/code/JBrowse-1.12.1/docs/tutorial/


ref=/var/www/html/jbrowse/JBrowse-1.12.1/TF_data/raw/human_genome/hg38.fasta
outDir=/var/www/html/jbrowse/JBrowse-1.12.1/TF_data/json/human
rootDir=/var/www/html/jbrowse/JBrowse-1.12.1/bin/
#$rootDir/prepare-refseqs.pl --fasta  $ref --out $outDir 
#$rootDir/flatfile-to-json.pl --gff outfile.txt  --tracklabel  peaks --out $outDir
#$rootDir/flatfile-to-json.pl --gff hg38.chr1.gff3 --tracklabel  chr1  --out $outDir
perl -alne '{ print if $F[0] eq "chr18"}' hg38.gff3 >hg38.chr18.gff3
$rootDir/flatfile-to-json.pl --gff hg38.chr18.gff3 --tracklabel  chr18  --out $outDir
$rootDir/flatfile-to-json.pl --bed 2.bed  --tracklabel  test2 --out $outDir


ftp://ftp.ncbi.nih.gov/refseq/H_sapiens/RefSeqGene/GCF_000001405.25_refseqgene_alignments.gff3
ftp://ftp.ncbi.nlm.nih.gov/genomes/H_sapiens/ARCHIVE/ANNOTATION_RELEASE.105/GFF/ref_GRCh37.p13_top_level.gff3.gz


http://101.101.101.101/jbrowse/JBrowse-1.12.1/TF_data/json/human/tracks/peaks/chr18/trackData.json 
http://101.101.101.101/jbrowse/JBrowse-1.12.1/TF_data/raw/peaks/tmp.bed

#https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-16-04


## 最后安装docker

sudo apt-get update
sudo apt-key adv --keyserver hkp://p80.pool.sks-keyservers.net:80 --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
sudo apt-add-repository 'deb https://apt.dockerproject.org/repo ubuntu-xenial main'
sudo apt-get update
apt-cache policy docker-engine
sudo apt-get install -y docker-engine
sudo systemctl status docker
ps -Af | grep docker


sudo usermod -aG docker $(whoami)
id $(whoami)
#  you need to close you session in order to have the change taken into account.
sudo usermod -aG docker jimmy 
docker
docker info
docker version
sudo docker search ubuntu
sudo docker run hello-world
docker images
# http://blog.thoward37.me/articles/where-are-docker-images-stored/

sudo docker pull taunometsalu/clustvis
mkdir ~/customClustvis/
cd ~/customClustvis/
wget https://github.com/taunometsalu/ClustVis/archive/master.zip
unzip master.zip
docker run --help
sudo docker run -d \
--name customClustvis \
-p  3840:3838 \
-v ~/customClustvis/ClustVis-master/:/srv/shiny-server/:ro \
taunometsalu/clustvis

#To clear containers:
docker rm -f $(docker ps -a -q)

#To clear images:
docker rmi -f $(docker images -a -q)

#To clear volumes:
docker volume rm $(docker volume ls -q)

#To clear networks:
docker network rm $(docker network ls | tail -n+2 | awk '{if($2 !~ /bridge|none|host/){ print $1 }}')

## http://dockone.io/article/111        

# Docker 命令大全 http://www.runoob.com/docker/docker-command-manual.html










上一篇:python制作第一个package测试包
下一篇:心血管疾病才是全球的首要死因
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复

使用道具 举报

0

主题

9

帖子

119

积分

注册会员

Rank: 2

积分
119
发表于 2017-5-22 11:35:04 | 显示全部楼层
回复

使用道具 举报

0

主题

1

帖子

35

积分

新手上路

Rank: 1

积分
35
发表于 2017-5-26 16:24:46 | 显示全部楼层
赞赞赞~\(≧▽≦)/~
回复 支持 反对

使用道具 举报

1

主题

8

帖子

158

积分

注册会员

Rank: 2

积分
158
发表于 2017-6-20 16:58:37 | 显示全部楼层
制作 docker 中,以后布置方便了。
回复 支持 反对

使用道具 举报

0

主题

3

帖子

137

积分

注册会员

Rank: 2

积分
137
发表于 2018-5-28 11:05:13 | 显示全部楼层
赞一个
回复

使用道具 举报

0

主题

23

帖子

91

积分

注册会员

Rank: 2

积分
91
发表于 2018-7-23 15:50:35 | 显示全部楼层
leoatchina 发表于 2017-6-20 16:58
制作 docker 中,以后布置方便了。

您好,有安装好各种工具的 docker 发布版吗
专注于 Spark 分布式快速处理基因数据。提问前请先搜索《提问的智慧》
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-7-18 09:28 , Processed in 0.034552 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.