基本原则:
选择一个可以用十年的系统,不要随意更换系统。系统的软件都不要用最新的,用次新的,就是稳定版!
让系统尽可能简单,不要随意添加无意义的内容。内核和编译器层面的的东西,自己不懂就不要乱动。
能少装软件就少装,太多无关软件会损害系统稳定性,更不要装类似360的系统清理工具。
工作的电脑只用来工作,笔记本可以拿来娱乐。
系统选择:
可以用mac,也可以用Linux,但是绝对不能用windows(在没有server的情况下)
工具环境管理:
chrome + 同步书签 + 远程访问 + 自启动
Dropbox + 自启动(云平台分为双向同步和单向上传,dropbox最简单)
google drive + 自启动(Google的好处是可以在网页上处理文档,真正的云平台)
自启动要保证电脑一开就能远程访问,sudo shutdown -r now
filezilla
conda + python
R R-3.6.1.pkg + devtools + xquartz
jupyter notebook + open extension + jupyter_contrib_nbextensions 设置远程访问
- Jupyter Notebook的三大短板,被这个工具补齐了
- mwouts/jupytext - 通过保存同步的jupyter格式和文本格式,实现了快速访问、修改、版本控制等必备功能!
IRkernel 必须先把上面两个先装好
Rstudio
xcode + macOS_SDK_headers_for_macOS_10.14 ( cd /Library/Developer/CommandLineTools/Packages/ ) + Xcode Command Line Tools ( xcode-select --install )
学校提供的免费office 365下载
开启远程ssh连接,系统设置里开启
关闭自动休眠,节能设置
无格式复制,系统设置里开启
clang/gcc/java (有需要时再装)
inkscape 最新版 + 画布适应设置,点菜单“文件--->文档属性”(shift-ctrl-d),然后在“页”中设置页面的大小或进行调整与绘图内容的匹配。
R设置超大内存,防止Error: vector memory exhausted (limit reached?)
因为需要跑大数据,R会显示内存不够,可以设大一点,Mac会自动调用虚拟内存,最高可达30~50G
vi ~/.Renviron R_MAX_VSIZE=40Gb
更改默认的python,R python交互时会用到
sudo mv /usr/bin/python /usr/bin/python2 sudo ln -s /Users/-/miniconda3/bin/python /usr/bin/python
有的R包安装需要gfortran
https://gcc.gnu.org/wiki/GFortranBinaries#MacOS
安装brew和gcc
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
小工具:
mac读写NFTS硬盘,NTFS 3G
数据和代码管理:
系统、数据、代码最好要做到彼此独立。
就数据分析而言,jupyter秒杀其他一切工具。
设置好bash可以极大地提高效率
export PS1="[ 33[01;31m]u [ 33[00m][ 33[01;32m]h[ 33[00m] [ 33[01;33m] [ 33[00m] [ 33[01;34m]w/ [ 33[00m]$ " export home="/Users/-/Dropbox/Projects" export githome=$home/github alias cmd="vi $githome/myCMD.sh" alias vi='vim' alias lsa='ls | sed "s:^:`pwd`/: "' alias nb="jupyter notebook" alias cgs="ssh --@----- -p 22" #alias mini="ssh ---@----- -p 22" alias gitpush="git add . && git commit -m 'change' && git push" alias nbon="nohup cd /Users/---/Dropbox/Projects && jupyter notebook 2>&1 &" alias nbon="nohup cd $home && jupyter notebook > nb.log 2>&1 &" alias nboff="ps -ef | grep jupyter | grep -v grep && echo 'kill -9 jobid'" # #export LSCOLORS="exfxcxdxbxexexabagacad" alias cls='tput reset' alias egrep='egrep -G' alias fgrep='fgrep -G' alias grep='grep -G' alias l.='ls -d .* -G' alias ll='ls -l -G' alias ls='ls -G' alias lt='ll -rth'
也可以用zsh,更好用。
输入法:Mac 自带输入法这么好用,不看不知道 | 有用功 - 用原厂的提升稳定性,搜狗稳定性很差
以下是终端(笔记本)上装的工具
必备工具:
sougou输入法
office套装 - HKU
iterm2 + dracula主题
sublime
有道词典
选配工具:
slack
parallel
AI
Acrobat
spotify
印象笔记
grammarly
artpip
typora - markdown for log file
专业工具:
MacTeX for bookdown
cytoscape
IGV
数据备份工具:
Google drive
Dropbox
Time machine
移动硬盘
灵魂拷问
1. 如何防止系统随时间变乱,变得不受控制?
变乱的主要原因就是会手贱,没事就喜欢装新东西上去玩,导致系统变得越来越乱,最终出现问题时无从溯源。
案例:在github上看见一个百度网盘的破解软件,装上后,前期确实能用,后面百度封了bug,最终卸载破解软件时才发现系统里面被修改了,此后系统里就隐藏了一个未知的bug。
教训:不要随便装一些未知软件,真的有可能对系统造成不可逆的伤害。
2. 如何防止文件越来越多,最终无法管理?
做科研,数据是不断积累的,结果也在不断积累,如果只是有数据就往里添,有结果就不断积累,那最终肯定会乱到无法管理。
而且多个项目之间的数据可能是交互的,这样就让代码更加难以管理。
策略:多思考,多整理,不常用的文档尽快打包整理,备份到历史库,不要再放在工作目录里。
实战技巧:
- 数据、代码和结果按项目,分目录管理;(没有项目,数据就没有意义)
- jupyter则负责整合三者,最好不用绝对路径,保证代码能在项目目录下顺利执行;(高效迁移)
- 定期整理数据、代码和结果,保留最核心的,最为备份档案;(不定期整理,就会越来越乱)
- 每天随手写项目的核心进展和总结,方便后期的回顾和溯源;(项目的log文件至关重要)
- 结束的项目(文章已发表)需要做一个系统的存档(数据、代码和结果,三位一体);
这样,即使一年做十几个项目都不会觉得混乱。
基本的bash配置
常用Linux的一定要设置好bash,可以显著提高效率
复制粘贴的设置,选中复制,双击复制,邮件粘贴。
其他问题:
发现Mac下主要再用clang而不是gcc来编译。那么Clang 比 GCC 好在哪里?
手贱更新了最新的macOS,很多编译出现了问题,现在只能往回装。
How to make a bootable Mojave drive to downgrade from macOS Catalina
How to downgrade from macOS Catalina back to macOS Mojave
ctrl+R format disk
alt/option start from external USB
install mojave can be very quick
macOS基本设置:
关闭系统更新
docker基本设置
finder基本设置,标签合并
如何提高工具开发和数据分析的效率?| jupyter | Rstudio server
这部分是超级干货,也能直接体现一个开发分析者的能力。
主要分为两部分:
1. 面对新问题时,如何高效的分析和开发?
2. 面对相似的问题时,如何最快时间的利用之前的开发经验?
因为现在我主要用shell和R来处理测序数据,所以本文仅局限于shell和R代码的开发和管理。
因为最终结果必然以图表呈现,所以本文的另一大部分就是绘图代码的开发和保存。
效率的定义:
现在给你一批GWAS的原始数据(或RNA-seq、scRNA-seq),你多久能给我出结果、出图?给你第二批,你又要多久?
你是否知道如何结果的最佳呈现形式?
核心:
GitHub的利用
R包的开发和管理
jupyter和Rstudio server是神器
高效的归纳总结系统
Rmarkdown和jupyter notebook到底选哪一个?各有利弊
如何让别人的开发为我所用?站在巨人的肩膀上
多看是必须的
总结,这个研究到底解决了什么问题?填补了哪个gap?
归纳,这些分析和绘图代码能不能归到一个R包里,汇总为一个manual,随时调用
数据分析:
数据特性的总结和QC
尝试多种工具
评价、比较不同工具的结果
挑选合适的工具,解读结果
根据实际问题开发创新
单批数据的分析是容易的,但是数据的整合才是最重要的。
两大类整合
不同发育阶段的整合
case和control的整合
Win10工作站环境搭建
https://docs.conda.io/en/latest/miniconda.html
ipynb文件是可以在本地安装 Jupyterlab 打开。 Jupyterlab 可以通过下载并安装 Anaconda来安装, Anaconda集目前最方便的 Python 发行版,搭载了很多我们终将必用的软件包。