小型数据工做站 | 管理和维护

基本原则:

选择一个能够用十年的系统,不要随意更换系统。系统的软件都不要用最新的,用次新的,就是稳定版!html

让系统尽量简单,不要随意添加无心义的内容。内核和编译器层面的的东西,本身不懂就不要乱动。java

 

系统选择:

能够用mac,也能够用Linux,可是绝对不能用windows(在没有server的状况下)python

 

工具环境管理:

conda + pythonios

R R-3.6.1.pkg + xquartzgit

jupyter notebook + jupyter_contrib_nbextensions 设置远程访问github

IRkernel 必须先把上面两个先装好chrome

Rstudiodocker

xcode + macOS_SDK_headers_for_macOS_10.14 ( cd /Library/Developer/CommandLineTools/Packages/ ) + Xcode Command Line Tools ( xcode-select --install  )macos

开启远程ssh链接,系统设置里开启vim

无格式复制,系统设置里开启

clang/gcc/java (有须要时再装)

 

数据和代码管理:

系统、数据、代码最好要作到彼此独立。

就数据分析而言,jupyter秒杀其余一切工具。

 

必备工具:

chrome + sync bookmarks

sougou输入法

office套装 - HKU

iterm2 + dracula主题

filezilla

sublime

有道词典

WeChat

 

选配工具:

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. 如何防止文件愈来愈多,最终没法管理?

作科研,数据是不断积累的,结果也在不断积累,若是只是有数据就往里添,有结果就不断积累,那最终确定会乱到没法管理。

并且多个项目之间的数据多是交互的,这样就让代码更加难以管理。

策略:多思考,多整理,不经常使用的文档尽快打包整理,备份到历史库,不要再放在工做目录里

 

实战技巧:

  1. 数据、代码和结果按项目,分目录管理;(没有项目,数据就没有意义)
  2. jupyter则负责整合三者,最好不用绝对路径,保证代码能在项目目录下顺利执行;(高效迁移)
  3. 按期整理数据、代码和结果,保留最核心的,最为备份档案;(不按期整理,就会愈来愈乱)
  4. 天天随手写项目的核心进展和总结,方便后期的回顾和溯源;(项目的log文件相当重要)
  5. 结束的项目(文章已发表)须要作一个系统的存档(数据、代码和结果,三位一体);

这样,即便一年作十几个项目都不会以为混乱。

 

基本的bash配置

经常使用Linux的必定要设置好bash,能够显著提升效率

复制粘贴的设置,选中复制,双击复制,邮件粘贴。

# 如今默认要用zsh,不想换能够忽略
export BASH_SILENCE_DEPRECATION_WARNING=1
# 在iterm标签显示信息
export PROMPT_COMMAND='echo -ne "\033];${PWD##*/} : macMini\007"'
# PSII
export PS1="\[\033[01;31m\]\u \[\033[00m\]\[\033[01;32m\]\h\[\033[00m\] \[\033[
01;33m\]\t\[\033[00m\] \[\033[01;34m\]\w/ \n\[\033[00m\]$ "
# 
export home="/Users/surgery/Project/HOME/1-projects/1.scRNA-seq/2-smart-seq"
export githome="/Users/surgery/project/HOME"
#export user="/ifs4/BC_RD/USER"
#export app="/share/app"
export script="$githome/myScript/RAW"
export prj="/Users/surgery/Project"

# use bash very frequently
wd="/Users/surgery/project/work_dir"

alias swd='pwd | cat - > $wd'
alias wd='cat $wd'
alias lt='ll -rth'
alias qs='qstat'
alias qsb="echo 'qsub -cwd -l vf=5g -P HUMDnab -q bc.q'"
alias app="ssh software-install"
alias cmd="vi $githome/CommonCMD"
alias qj="qstat -j"
#alias cgs="ssh lizhixin@hpcf.cgs.hku.hk -p 22"
alias cgs="ssh lizhixin@hpcf2.cgs.hku.hk -p 22"
alias gitpush="git add . && git commit -m 'change' && git push"
alias nb="jupyter notebook"

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 vi='vim'

  

其余问题:

发现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基本设置,标签合并

 

R设置超大内存,防止Error: vector memory exhausted (limit reached?)

vi ~/.Renviron
R_MAX_VSIZE=100Gb 
相关文章
相关标签/搜索