小型數據工做站 | 管理和維護

基本原則:

選擇一個能夠用十年的系統,不要隨意更換系統。系統的軟件都不要用最新的,用次新的,就是穩定版!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 
相關文章
相關標籤/搜索