biostar handbook(一)分析环境和数据可重复

2023-11-10 20:10

本文主要是介绍biostar handbook(一)分析环境和数据可重复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

biostarhandbook(一)分析环境和数据可重复

2017/10/18/11:00第一版本笔记,主要更新了生物信息要用那些基本技能和电脑配置简单说明,以及如何在虚拟机器上安装bioconda
2017/10/18/12:30第二版笔记,增加虚拟机配置
2017/10/18/13:05 第三版笔记,增加文件结构
2017/10/19/10:30 第四版笔记, 增加如何用xshell连接虚拟机内部系统
2017/10/20/08:09 第五版笔记,增加线下辅导部分。

生物信息的基本技能

  1. 数据管理: 也就是你如何获取所需数据,以及如何存放管理这些数据。尤其是后期数据越来越多的时候,混乱的管理会导致极大的效率降低和不可重复的结果产生。
  2. 初步数据分析: 就是利用不同软件把格式A转换称格式B,其中如果缺少必要的工具,你还得自己写工具。这就是为什么你要学Linux和脚本语言
  3. 数据解释: 软件只会给你一堆数据,如何赋予数据意义,这就是涉及到统计,生物等多学科的交叉。

如何解决所有问题

这个问题对于初学者而言,非常重要,当然我觉得更加重要的问题是:

如何发现自己真正的问题。

是的,大部分人是意识不到自己到底有什么问题,我遇到的最多的提问就是给我发了一张截图,期望我能像福尔摩斯一样根据一些小小的线索推测背后的原因。

我当然有这个能力,毕竟我是自学过来的,但是我不会去推测。我不能动你要动的脑子,既浪费我的时间,也浪费我的时间。

因此,搞不清楚如何提问才是初学者的最大的问题。因此先去买一本《如何提问》读几遍。

搞生信要什么样的电脑

Biostar handbook的前几周课程可以现在虚拟机上面运行,主要是熟悉Linux操作和部署工作环境。

由于之前安装Docker需要安装Hyper-V,所以演示基于微软的Hyper-V, VirtualBox和VM也可用。

先去清华大学开源软件镜像站下载Ubuntu的安装ISO文件

2013053-11e996504d6e0bda.png

然后查看百度经验Hyper-v 上安装ubuntu 15.04

重点是:选择合适内存大小(>4G)和虚拟机文件存放位置。第一代还是第二代虚拟机影响不大,后续要么在硬盘上装Linux要么就用Windows。
关于网络设置原理推荐看这篇文章:http://wangchunhai.blog.51cto.com/225186/561836/

后续实际分析的时候则是需要一台小型服务器,或者是一台高性能的PC,这部分根据组里的经费,配置越高越好。内存至少16G起步,64G比较合适,128G大部分的处理再也不是你的问题了。

如何配置你的电脑

以下操作都在虚拟机中完成,避免因为不熟练祸害到真实世界。

后续的数据分析主要熟悉多种多样的软件,因此第一个问题就是如何运行软件。

  • 二进制包可以直接运行,(需要设置环境变量)
  • 源代码需要编译(有难度)
  • java, python, perl用来解释下载的对应代码

当然初学者我推荐用conda(Linux),或homebrew(Mac OS).因此只要如下三步

  1. 打开虚拟机
  2. 安装conda,并且加载bioconda
  3. 安装软件

打开虚拟机

打开虚拟机之后,请尽量用 ctrl+alt+F1~F6切换到这如下这种黑乎乎的界面,后续我们的操作尽量去便面用到图形界面。

2013053-8bc025c7a2aeff91.png
image.png

第一: 图形界面操作在虚拟机下感觉会卡
第二: 图形界面不是Linux所必须
第三: 服务器也是黑乎乎

确保ping -c 3 baidu.com的结果如下:

2013053-197210f5bbb47ee0.png
image.png

这一步是保证网络畅通。之后我们需要配置Ubuntu的包管理镜像,采用国内快速的镜像源, 偷懒的做法是在设置中的软件和更新里面点点鼠标自动选择最快的服务器。

2013053-d5b504b4fa8743ff.png

之后你软件会进行自动地一些更新。但是最优雅的方法就是,用如下的命令。

# 不要复制,请确保自己选择合适的镜像
sudo sed -i 's/archive.ubuntu.com/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo apt-get update
sudo apt-get upgrade

后续的操作我们都不会继续用到虚拟机的图形界面了,图形太耗资源了

如何优雅的使用虚拟机

微软的Hyper-V的联网方式有:外部,内部和专用三种。。

2013053-d93095a4775d43fe.png
Hyper-V的联网方式

其中外部就是说安装的虚拟机和宿主机处在同一个网络下,你需要为他配置好IP地址,你可以通过ifconfig获取目前的IP.

2013053-13135d358dcabb10.png
IP地址

随后,我们就可用利用xshell,进行连接。

Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。Xshell 是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。Xshell 通过互联网到远程主机的安全连接以及它创新性的设计和特色帮助用户在复杂的网络环境中享受他们的工作。

首先看看宿主机能否ping通虚拟机中Linux。

2013053-d35c490a5ab98cb9.png
连接检查

其次ping通之后,还要在Ubuntu中安装openssh-server这样才能保证用户能够访问主机

sudo apt-get install openssh-server
# check
ps -e | grep ssh
2013053-821fca4b1337bd9d.png
ssh服务

用xshell访问虚拟机,

2013053-bcc9ff92fcd86c49.png
连接虚拟机

在xshell下使用biostar handbook提供的终端配置

wget http://data.biostarhandbook.com/install/bash_profile.txt
cat bash_profile.txt >> ~/.bash_profile
wget http://data.biostarhandbook.com/install/bashrc.txt
cat bashrc.txt >> ~/.bashrc
source ~/.bash_profile

以上便是系统配置部分。

下载conda

conda,我使用的清华镜像源的miniconda, 这个时候就只能用ctrl+shift+F7切换会图形界面,然后以之前获取Ubuntu下载链接的相同方式获取miniconda. 如果清华镜像源搞不定,还有中科大,阿里,163等多个镜像源等着你,不要在一棵树上吊死

2013053-271492c13dc2aacd.png
mkdir src
cd src
# 下载镜像
wget https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.3.27-Linux-x86_64.sh
# 安装
bash Miniconda3-4.3.27-Linux-x86_64.sh
# 后续就不断的yes就行了。
# 配置
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --set show_channel_urls yes
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/

注意: 经常有人提问,访问清华镜像源出现404或503等错误,不知道如何解决。我目前的建议就是,自己去https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ 手动下载安装包,然后在miniconda3进行解压缩。
conda install指令做的事情无非也就是先去下载,然后解压缩,只不过核心在于自动解决依赖关系,手动解压缩需要自己解决依赖关系。(我感觉这样说也很难懂)

后续我们的工作都会在conda提供的工作环境中进行

conda create -y --name bioinfo python=2
source activate bioinfo

source适用于启动工具环境的,请查阅source的工作原理。

安装课程所需要的所有软件

curl http://data.biostarhandbook.com/install/conda.txt | xargs conda install -y
2013053-4d1358e0b5532c1e.png

文件结构:强迫症的解药,所有人的良方

实不相瞒,如何设计一个优秀的文件结构是一个很乏味,但是对非常重要的工作,所以我建议你先去读读一篇发在plot上的论文A Quick Guide to Organizing Computational Biology Projects.

然后再看看别人的经验之谈My research workflow, based on Github

这个内容在后续数据模块才会强调,但是目前比较重要的是

  • 请把源代码放到 ~/src
  • 请把二进制文件放到 ~/bin
  • 请把参考基因组如下方式存放
genome
├── 物种名
│   ├── 版本号
│   │   ├── readme.txt
│   │   ├── Annotation # 存放注释
│   │   │   ├── Ahalleri_264_v1.1.annotation_info.txt
│   │   │── BLAST #存放BLAST
│   │   │── HISTA2 # 存放HISAT2的索引
│   │   │── BWA # 存放BWA的索引
│   │   │── Sequence # 存放基因组FASTA文件

这部分的重点:

  • 如何使用虚拟机,将来是如何在电脑上安装Linux
  • 如何运行命令
  • 环境变量
  • conda的使用,以及conda的工作环境
  • 规划文件结构

给自己打个广告, 上海地区提供线下biostar handbook课程辅导,收费是100元/小时,有需求可以简信我。
有些问题只能线下才能更好地解决。总觉得这样卖时间还是便宜了。

这篇关于biostar handbook(一)分析环境和数据可重复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384953

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Go标准库常见错误分析和解决办法

《Go标准库常见错误分析和解决办法》Go语言的标准库为开发者提供了丰富且高效的工具,涵盖了从网络编程到文件操作等各个方面,然而,标准库虽好,使用不当却可能适得其反,正所谓工欲善其事,必先利其器,本文将... 目录1. 使用了错误的time.Duration2. time.After导致的内存泄漏3. jsO

Java利用JSONPath操作JSON数据的技术指南

《Java利用JSONPath操作JSON数据的技术指南》JSONPath是一种强大的工具,用于查询和操作JSON数据,类似于SQL的语法,它为处理复杂的JSON数据结构提供了简单且高效... 目录1、简述2、什么是 jsONPath?3、Java 示例3.1 基本查询3.2 过滤查询3.3 递归搜索3.4

Spring事务中@Transactional注解不生效的原因分析与解决

《Spring事务中@Transactional注解不生效的原因分析与解决》在Spring框架中,@Transactional注解是管理数据库事务的核心方式,本文将深入分析事务自调用的底层原理,解释为... 目录1. 引言2. 事务自调用问题重现2.1 示例代码2.2 问题现象3. 为什么事务自调用会失效3

MySQL大表数据的分区与分库分表的实现

《MySQL大表数据的分区与分库分表的实现》数据库的分区和分库分表是两种常用的技术方案,本文主要介绍了MySQL大表数据的分区与分库分表的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有... 目录1. mysql大表数据的分区1.1 什么是分区?1.2 分区的类型1.3 分区的优点1.4 分

Mysql删除几亿条数据表中的部分数据的方法实现

《Mysql删除几亿条数据表中的部分数据的方法实现》在MySQL中删除一个大表中的数据时,需要特别注意操作的性能和对系统的影响,本文主要介绍了Mysql删除几亿条数据表中的部分数据的方法实现,具有一定... 目录1、需求2、方案1. 使用 DELETE 语句分批删除2. 使用 INPLACE ALTER T

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

找不到Anaconda prompt终端的原因分析及解决方案

《找不到Anacondaprompt终端的原因分析及解决方案》因为anaconda还没有初始化,在安装anaconda的过程中,有一行是否要添加anaconda到菜单目录中,由于没有勾选,导致没有菜... 目录问题原因问http://www.chinasem.cn题解决安装了 Anaconda 却找不到 An

Spring定时任务只执行一次的原因分析与解决方案

《Spring定时任务只执行一次的原因分析与解决方案》在使用Spring的@Scheduled定时任务时,你是否遇到过任务只执行一次,后续不再触发的情况?这种情况可能由多种原因导致,如未启用调度、线程... 目录1. 问题背景2. Spring定时任务的基本用法3. 为什么定时任务只执行一次?3.1 未启用

Redis 中的热点键和数据倾斜示例详解

《Redis中的热点键和数据倾斜示例详解》热点键是指在Redis中被频繁访问的特定键,这些键由于其高访问频率,可能导致Redis服务器的性能问题,尤其是在高并发场景下,本文给大家介绍Redis中的热... 目录Redis 中的热点键和数据倾斜热点键(Hot Key)定义特点应对策略示例数据倾斜(Data S