zoukankan      html  css  js  c++  java
  • 小型数据工作站 | 管理和维护 | Jupyter | Rstudio server | Mac & Win10

    基本原则:

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

    让系统尽可能简单,不要随意添加无意义的内容。内核和编译器层面的的东西,自己不懂就不要乱动。

    能少装软件就少装,太多无关软件会损害系统稳定性,更不要装类似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 extensionjupyter_contrib_nbextensions 设置远程访问

    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

    有道词典

    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,可以显著提高效率

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

      

    其他问题:

    发现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 发行版,搭载了很多我们终将必用的软件包。

  • 相关阅读:
    网络知识
    DXP 技巧和龙芯3A装机
    312-金胜维 P系列2.5寸 480G SATA3 SSD固态硬盘
    NVIDIA Jetson TK1 开发板
    NVIDIA Jetson™ TX1
    XILINX FPGA 开发板 XC3S250E 核心板 学习板+12模块
    AES-OZ745 OZ745 Zynq-7000 开发板与套件
    北京太速科技——海外代购
    AR/VR增强现实 虚拟现实,嵌入式解决方案探讨
    270-VC709E 增强版 基于FMC接口的Xilinx Vertex-7 FPGA V7 XC7VX690T PCIeX8 接口卡
  • 原文地址:https://www.cnblogs.com/leezx/p/11739079.html
Copyright © 2011-2022 走看看