分享一点setup和linux的东西,包括使用git,使用支持markdown的笔记软件Bear,Anaconda的一些使用技巧以及jupyter在服务器上的设置。
如果有一个软件,不但能自动帮我记录每次文件的改动,还可以让同事协作编辑,这样就不用自己管理一堆类似的文件了,也不需要把文件传来传去。如果想查看某次改动,只需要在软件里看一眼就可以看到改动的日期和内容,岂不是很方便?
Git是Linus (Linux之父)花了两周时间用C写的,在2002年以前,世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后由Linus本人通过手工方式合并代码,Linux反对集中式的,需要联网的版本控制系统,也反对商业版的版本控制系统,于是创造了Git,一个月之内,Linux系统的源码已经由Git管理了。
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,这就是程序员最爱的Git和Github的诞生史。
只介绍Mac OS系统安装方法
brew install git
xcode-select --install
在本地建立项目文件夹,或者使用已存在的项目文件夹,如helloworld
cd helloworld
git init #通过git init命令把这个目录变成Git可以管理的仓库
vi README.md #创建一个新文件README.md,添加内容并保存
git add README.md
#用命令git add告诉Git,把文件README.md添加到仓库
#如果一次性添加了多个文件,可以使用git add . git会自己判别哪些是新文件。
所有的版本控制系统只能跟踪文本文件的改动,比如TXT文件,网页,所有的程序代码等等,Git可以告诉你每次的改动,比如在第5行加了一个单词“Linux”,在第8行删了一个单词“Windows”。而图片、视频这些二进制文件,只知道大小的改动,但更改的内容版本控制系统无法知道。
下面可以告诉git你本次更改的内容,如果一次add了多个文件,则所有的文件都会被标注同样的更改信息。比如:
git commit -m "first commit"
git commit -m "add README.md"
首先在github上新建一个repository,如helloworld,你将会看到跳转页面上提示你需要推送到的HTTPS地址https://github.com/accountname/repositoryname.git
接下来使用
git remote add origin https://github.com/accountname/repositoryname.git
git push -u origin master
即可把自己的本地仓库推送到github上,速度很快。
注意如果第一次把远程地址输入错误,可以用以下命令更正地址
git remote set-url origin https://github.com/accountname/repositoryname.git
git config --global user.name "yourgithubname"
git config --global user.email "yourgithubaccountmail"
ssh-keygen
生成的密钥在~/.ssh/id_rsa.pub位置。
参考链接:
Git教程
SSH连接GitHub、GitHub配置ssh key
version control
推荐一款Mac下的非常好用额轻量级笔记软件Bear
Conda是一个包管理软件,可以帮助方便地下载各种软件而不需要编译。尤其是Bioconda可以用来管理linux系统上的生信相关的软件,是解决安装权限不够的问题的好工具。
conda是一个包,依赖和环境管理工具,适用于多种语言,如: Python, R, Scala, Java, Javascript, C/ C++, FORTRAN
Anaconda安装可以去官方下载,但是强烈推荐使用tuna镜像,免流量,而且速度极快。
下载地址,下载.sh文件后运行,按照提示一步一步往下运行即可。
下载Anaconda后,很多python的常用库都会被自动安装好,另外建议运行以下命令
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --set show_channel_urls yes
这样以后使用conda install packages命令下载需要的包的时候,会自动从tuna镜像下载,速度会非常快。
Bioconda是conda上一个分发生物信息软件的频道,使用它的最大好处是,你不用自己编译软件了。
Conda tuna 安装 conda设置 从tuna下载免流量,快
目前Bioconda有超过130个添加、更新和维护生物信息软件的贡献者,他们为这个频道发布了1500多个软件包。总结起来,bioconda有以下几个特点:
先添加Bioconda频道
conda config --add channels defaults
conda config --add channels conda-forge
conda config --add channels bioconda
然后即可用conda安装各种需要的软件,可以先去bioconda channel看看自己需要的软件在不在列表内。
conda install bowtie
conda create -n myenv bwa bowtie hisat star #a new environment can be created
source activate myenv #activate the environment
参考资料:
Using Bioconda — Bioconda documentation
packages list
Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写(markdown)、运行代码和展示结果。
jupyter适合课题的早期尝试、绘图等非常便利,代码重复运行和复制粘贴方便,方便反复调试,尤其适合尚未工程化,需要大量尝试的阶段。
jupyter非常适合教学,交互效果非常好,github上有大量的教学项目是用jupyter notebook展示的,方便查看结果,查看相关说明、公式,方便学习者进行反复实验。
vi .ssh/config
Host ibme
HostName 166.111.152.116 #ibme的ip
ControlPersist yes
ControlMaster auto
User chenxupeng
DynamicForward 127.0.0.1:32987 #最后的port(如32987)要自己设置,不能与他人冲突
代理协议SOCKS5,代理服务器127.0.0.1,代理端口填写自己设置的port。
172.235.0.*,192.235.0.*,node50*等,情景模式选择ibme
点击应用选项
vi ~/bin/start-jupyter
填写:
#! /bin/bash
bsub <
(也可以使用#BSUB -q Z-BNODE)
首先start-jupyter启动,会自动提交一个任务到某个节点
接下来可以用bjobs看到jupyter被提交到了哪个节点。接下来打开本地浏览器,输入
node50*:port #如node504/10087
若使用Z-BNODE,可在浏览器填写
zbnode01.cluster.com:port
用nslookup获得节点的ip,在本地浏览器输入:
ip:port #如192.235.5.48:10087
#获得ip方法
nslookup node504.cluster.com
nslookup zbnode01.cluster.com
第一次登陆需要密码,用bpeek查看任务输出,即可看到token,复制至浏览器即可使用jupyter notebook进行编程了。