前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >3个学生的linux视频学习笔记

3个学生的linux视频学习笔记

作者头像
生信技能树
发布2018-12-29 16:04:02
1.5K0
发布2018-12-29 16:04:02
举报
文章被收录于专栏:生信技能树生信技能树

———— / PART 1 / ————

Linux-0-生信入门环境

工欲善其事必先利其器,这一节课主要以Windows系统为例,介绍了用Linux编程之前需要下载并安装的软件:Xshell,git,markdown,Winscp,幕布以及notepad++。介绍了如何下载并安装R及R的操作软件Rstudio,在Rstudio里进行了简单的命令演示以及如何安装并调用包,需要注意的是,所有软件推荐从官网进行下载,并且在安装的时候默认进行,基本不需要改动任何选项。对于Windows用户要把所有软件装在C盘,对于Mac用户则默认安装,安装软件时勿出现中文路径。

Linux 1 学习资源介绍

视频介绍了学习linux需要用到的学习资料,包括一本书:Linux命令行与shell脚本编程大全,以及以前的学员写的很详细的学习经验。学习linux这种系统的知识很有效的是记笔记,如果要很系统的学下来可以读书辅助视频,而对于常用到的命令,最好的方法就是背下来。

Linux 2 系统知识

Linux属于交互式,与Windows以及Mac的可视化程度、可操作性都不同,最大的特点是可以进行批处理。视频介绍了初初接触Linux时如何登陆、如何切换用户以及如何查看电脑内存及硬盘等命令。

Linux 3 去可视化的命令行

Linux的特点是批量、高效、多用户,而其缺点则是不同于通常使用习惯的Windows或者Mac系统的鼠标可视化操作。因此需要熟知一些常用的命令,视频从history、ls、以及sleep等常见命令引入,与鼠标可视化操作做对比以及举例,介绍了Linux去可视化的常用命令,例如ls:查看当前文件夹、pwd:查看当前位置、mkdir:新建文件夹、cd ~:回到home、df-dh:磁盘整体使用情况、cat > :写入文本,等等这些命令是需要背下来的,熟能生巧。

Linux 4 文本处理

Linux中的指令格式为命令+参数+文件/目录,但在实际使用过程中并非严格如此。视频以实际应用为基础,介绍了从下载文件到查看文件再到对文件内容进行索引、排序等一系列命令。例如用wget从指定URL下载文件,用wc查看文件列数,用head/tail查看文件前/后十行内容,以及用grep、awk、sort命令来检索文件内容。

Linux 5 软件安装

熟悉了Linux中常用命令之后就需要安装一些软件来实际应用了,Linux中软件安装是怎样的呢?视频以bowtie2这一比对软件为例,首先搜索到软件的下载地址,选择对应自己系统的软件版本,最好是选择二进制下载方式,这样下载好之后解压就相当于安装好了,可以直接使用了,若非二进制格式,则需要先解压(unzip或者tar命令)然后安装(make),最后,若看到帮助文档则表示安装成功。

Linux 6 环境变量

软件安装好之后就要使用了,而有时候直接输入软件名称却找不到,这时就有三种方法来调用刚刚安装好的软件:一是以命名的方式赋值变量,此时使用软件时名称前面需加$符号;二是使用alias方法后可直接使用软件;三是设置环境变量echo $PATH添加export PATH后可使用软件,调用成功后可以用version命令来查看软件版本。视频仍以bowtie2为例,讲解了如何调用这一软件,之后如何用这一软件进行查看索引、建立索引以及进行比对。

Linux 8 shell脚本编程

视频通过几个方面讲解了Linux中脚本编程,一是变量,变量是指代码中的可变部分,可以赋值可以索引;二是参数,在程序运行时变换参数会得到不同的结果;三是通配符, 像ls、rm就是一种通配符,最常用通配符是“*”,表示可替换部分;接着是标准头文件,里面包含的信息有作者、联系方式等等,不是脚本所必须;四是循环,由于Linux中经常批量处理,对于类似命令就可以写成循环代码,常用for、while等等;五是输入输出,运行的脚本可以输出到终端,也可以输出到文件夹,看自己需要了

Linux 9 shell脚本要学好(纠正配置文件)

测序结果通常不止一个样本,因此在处理时要写好脚本进行批处理,但是有时由于样本命名的问题,导致fq文件匹配错误,bam文件生成失败。因此本节课介绍如何检查配置文件、如何将有问题的样本挑出以及如何重做配置文件。需要注意的是为了避免数据处理出现问题,样本不要以数字开头命名以及出现不同类型的杠号。

Linux 10 文本处理(常见命令细讲)

Linux命令在实际应用过程中会有各种各样的组合去得到需要的结果,这是一个融会贯通的过程。本视频详细讲解了grep、cut、awk以及sed等待命令的各种用法,这些命令加上不同参数会有不同的结果。视频还展示了在实际处理GNS数据时常用数据排序,直观的看到命令的使用频率,学习起来做到有的放矢。

———— / PART 2 / ————

Linux-0 生信入门环境

讲解安装生信入门的必要软件(Git、x-manager、typora\notepad++、R-studio)及一些R-studio的基本使用。

Linux-1 学习资源介绍

讲解入门Linux的一些开始步骤和经验。

linux-2 系统认知

讲解Linux系统的一些特点(交互式、多用户)和基本命令(grep、管道、history、su切换用户、登录 : ssh 用户名@ip地址 )

Linux-3 去可视化的命令行

top: 实时动态地查看系统的整体运行情况。

sleep 10 :睡眠10秒、

&:任务在后台运行

ps -ef : 标准格式显示进程

ifconfig : 显示或配置网络设备

ls 、cd - :回到上一个目录

tab : 补全

pwd、*通配符、mkdir、touch

echo:内容打印到屏幕

rm、mv、cp、cat、head

> :重定向

Ctrl +c :终止命令

批量、高效、多用户 (Linux特点)

相对路径和绝对路径

df -dh : 磁盘整体使用量

Linux-4 文本处理

wget:从指定的URL下载文件

wc : word count, 文件的Byte数、字数或是列数

head、tail、more(q退出)、cat、less(-s:单行过长超出部分不显示 - N :显示每行行号)

grep :查找符合模式的行 -n :列出行号

cut :选择每行指定位置输出

sort : 排序

tr:将一组字符变成另一组字符。

安装软件步骤?

mkdir 软件名

cd 软件名

wget 安装包下载地址

解压安装包(unzip/tar....)

cd 解压后的目录

make

Linux-7 环境变量

1、方便调用命令(bowtie2)的使用方法:

第一种方法:

A. 首先赋值: bowtie2=bowtie2命令所在路径

B. 使用时: $bowtie2

第二种方法:

A. 使用 alias bowtie2=bowtie2命令所在路径

B. 使用时:bowtie2

第三种方法:

A. 修改环境变量 echo $PATH

export PATH="bowtie2命令所在路径/bin:$PATH" >>~/.bashrc

source ~/.bashrc

2、bowtie2的使用:

A. 建立索引:bowtie2-build .fa文件 索引的前缀

B. 比对:

bowtie2 -x 索引文件前缀 -1 短序列文件(.fq文件) -2 短序列文件(.fq文件) -S 输出的.sam文件

bowtie2 -x 索引文件前缀 -U 长序列文件(.fq文件) -S 输出的.sam文件

Linux-8 shell脚本编程

看了Linux-8 shell脚本编程,看到使用for和while创建软链接,并自己实践了一些

把以前和今天的收获记录简书上,https://www.jianshu.com/p/327e20b49b92

下面是今日收获:

1、变量:讲解环境变量

2、参数

$0 :Shell本身的文件名

$1-$n : 添加到Shell的各参数值

拓展:https://www.cnblogs.com/fhefh/archive/2011/04/15/2017613.html

创建一个小脚本,内容为echo $0,并运行。

vi tmp.sh

cat tmp.sh

echo $0

bash tmp.sh

往脚本添加$1 $2 $3,并运行脚本(后面再添加三个任意参数如12 23 34)

vi tmp.sh

cat tmp.sh

echo $0 $1 $2 $3

bash tmp.sh 12 23 34

tmp.sh 12 23 34

注:12 23 34 参数传入$1 $2 $3,并被echo出来。

3、通配符 : "*":匹配任意长度任意字符 "[ ]":匹配一个单字符范围,如[a-z],[0-9]

拓展:https://abcfy2.gitbooks.io/linux_basic/content/first_sense_for_linux/command_learning/wildcard.html

ls

2.3 a.1 a.txt b.txt s.1 tmp.sh

echo *.txt

a.txt b.txt

echo *.1

a.1 s.1

echo [a-z].1

a.1 s.1

4、标准头文件(有待进一步理解):

\#!/bin/bash

set -e

\# Function for script description and usage

usage()

{

cat <<EOF>&2

usage:

。。。。

}

5循环:for、while

A. for循环

ls

2.3 a.txt s.1 tmp.sh z1.txt z3.txt z5.txt z7.txt z9.txt

a.1 b.txt s{i}.txt z10.txt z2.txt z4.txt z6.txt z8.txt

for i in {3..9};do echo z${i}.txt;done

B. 捕获

for i in "ls *.txt";do echo $i;done

linux-9 脚本要学好

配置文件出现问题(左端测序文件和右端测序文件不匹配)-->

查看已比对好的.bam文件(正常大小以G为单位),发现出现几k的文件-->

由于两个样本的FQ双端文件匹配错误,导致.bam文件生成失败(几k的.bam文件)-->

将错误的fq正常排序,重新配置文件(24个),再重新进行比对。

ls /home......../*_2.gz | sort -t "_" -k3,3 >fq2

先使用_符号对内容切割,再指定第三列进行排序,生成fq2文件,再对1.gz进行同样处理,

将两个paste一起,生成一个新的配置文件。再对其重新比对。

Linux-10 文本处理

>grep

-f : 指定范本文件file,每一行是一个查找模式。空的file文件未指定查找模式。

-w : 只有完全符合该字的行才会被输出

-c : 统计与wc命令一样

-v : 匹配但是不打印出来

>tr : 装换文件中的字符

例:tr '\t' '\n' 把制表符换成换行符

>cut -f : 输出指定位置处的字节

如: cut -f 1, 31-32 , 40 info :

默认以制表符为分隔,分割并打印出info文件的 第一列 第31列到32列 第40列

-d ‘;’ :指定分隔符(;)

>sed 's///g' : 替换分隔符

如:sed 's/;/\t/g' : 将分隔符的分号换成\t

>paste -s -d + | bc

-s 将每个文件合并成行而不是按行粘贴

-d 指定不同于空格或tab键的域分隔符。

| bc : 在前面指定表达式就会帮助你算出来

>awk'{print $1}" tmp : 打印出第一列

———— / PART3 / ————

P1linux-0-生信入门环境

工具下载:

  • xshell/Xmanager /putty:终端模拟管理软件,连接Linux终端
  • Winscp/FileZilla:连接服务器上传下载文件
  • Everything:全盘搜索文件的工具
  • 幕布:思维导图
  • Typora/Rmarkdown:markdown的编辑器
  • Notepad++:超级文本编辑器
  • git:快速高效的处理project,类似于DOS界面
  • R/Rstudio:统计分析+可视化

installed.packages()

.libpath()

R语言可以批量安装R包,如Jimmy老师自己写的R包:https://github.com/jmzeng1314/biotrainee

考虑到磁盘空间或者运行速度等问题,可以根据自身需求来安装各类软件和R包

注意:

1> 有一定基础的人,可以1.5倍速或者2倍速播放,虽然这个时候Jimmy老师的声音有点魔性。可以看两遍,一边看一边实际操作。

2> 到官网下载以免安装很多附带的东西;

3> 对于不熟悉的软件,按默认选项(直接下一步)安装即可;

4> R package安装速度慢,尝试换下载镜像(可用清华的镜像);

P2 linux-1-学习资源介绍

* 不要太沮丧,学习是需要时间的。

* Linux基础学习:马哥Linux教学视频、《Linux命令行与shell脚本编程大全》

P3 linux-2-系统认知

多用户

Linux系统登陆服务器/切换用户:ssh hucy@172.31.110.34

开通用户:sudo adduser s1 #一般都没有sudo权限

修改密码:passwd s1

开发网页

shiny基础的交互式网页

ls -lh /var/www/html

查看服务器信息

df -h #查看电脑配置

free -g #查看内存

w #查看用户登录情况

top #实时动态查看系统的整体运行情况

ps -ef | grep sleep #查看当前运行的进程,类似于wins的系统管理器

标准格式显示进程

su s1 #切换登录用户

exit #退出用户登录

P4 linux-3-去可视化的命令行

命令行

批量、高效、多用户;

生物信息软件的运行环境;

常用命令

ls / #根目录

ls 即 ls ./

mkdir #创建目录

touch #创建空白文件

echo #内容打印到屏幕

echo $PATH

echo {1..10} #{}起扩展作用

mkdir folder{1..10}

cat > jmzeng.txt #创建并写入文件,Ctrl+C退出

touch jmzeng.txt #创建文件

练习

练习网址:http://www.bio-info-trainee.com/2900.html

基础知识:cd-, cd .. , cd -, history, !5 , /home/ , /tmp/ , >,&,jobs,nohup 1,2,0

文件目录操作:ls,cd,pwd,mkdir,rm,mv,cp,touch,head,tail,less,more

系统管理:df,du,top,free,ps,ifconfig,netstat,ssh,scp,

用户权限:chown,chgrp,groups,ls

文本操作:awk,grep,sed,paste,cat,diff,wc,vi

* 使用腾讯云实验室的linux服务器:https://cloud.tencent.com/developer/labs/lab/10000进行练习,挺好用的。

注意:

1> 重要的命令多背多用,必须要记下来;

2> 实践往往才能理解的更深刻。

P5 linux-4-文本处理

下载练习数据:http://www.biotrainee.com/jmzeng/igv/test.bed

cat > test.bed#复制、保存、Ctrl+C退出,或

wget http://www.biotrainee.com/jmzeng/igv/test.bed

查看文件:

cat -n test.bed # -n显示行号

cat test.bed |wc #wc统计行

head -1 test.bed #显示第一行

tail -1 test.bed #显示最后一行

less -S test.bed #-S不换行显示 #q退出,space翻页

less -SN test.bed #-N标记行号

grep -n H3K4me1 test.bed #grep加文件名,-n显示行号

cut -f 1-3 test.bed #取test.bed文件的所有行的1-3列

若想要获得每行起止位置间的序列:

cut -f 1-3 test.bed | awk '{print $0}' # $0把所有东西都输出来

cut -f 1-3 test.bed | awk '{print $1":"$2","$3}'

cut -f 1-3 test.bed | awk '{print "http://genome.ucsc.edu/cgi-bin/das/hg38/dna?segment="$1":"$2","$3}'

如:http://genome.ucsc.edu/cgi-bin/das/hg38/dna?segment=chr1:9769,10673

其实,可以通过bedtools等其他工具直接获取序列信息。

排序

sort -k 2,2nr test.bed |cut -f 1-3 #k:key; n:numeric; r:reverse即按照第二列排序

linux命令行文本操作参考:

https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247485539&idx=1&sn=cbb02d48ea5bb90ee5bdf35d501ee428&chksm=9b4848d8ac3fc1ce58b14128a138c100d305cb70c61180b523c21ad4859fdcc2cd7e96a75c99&scene=21#wechat_redirect

AWK实操:

wget https://www.mothur.org/w/images/d/d6/MiSeqSOPData.zip

unzip MiSeqSOPData.zip

cat MiSeq_SOP/stability.files

ls ~/Metagenomics/TestData/Miseq_SOP/MiSeq_SOP/*.fastq|awk 'NR%2==1{T=$0;next}{print T,"\t"$0}' |awk 'BEGIN{FS="_S";OFS="\t";}{print $1,$0}'

# NR:行号;FS:输入分隔符;OFS:输出分隔符

P6 linux-5-软件安装

没有root权限可以自己新建一个文件夹进行安装。

http://www.biotrainee.com/thread-856-1-1.html

没啥可说的,实操。

ls --color=auto

cat ~/.bashrc | grep ls

alias ls= 'ls --color=auto'

修改用户名字符串:

PS1="\[\e[32;1m\]\u\[\e[33;1m\]\t \[\e[35;1m\]\w \n\[\e[0;40m\]$"

解压:

tar xvfj *.tar.bz2

tar xvfz *.tar.bz

P7 linux-7-环境变量

查看环境变量:

echo $PATH|tr ':' '\n'

echo $PATH|tr ':' '\n'| xargs ls -lh

which bwa

history|grep "qiime"

设置环境变量:

1) 设置变量或使用alias

bowtie2=~/biosoft/bowtie2/bowtie2-2.3.4.3-linux-x86_64/bowtie2

#每次打开终端都需要重新设置

$bowtie2

2) 修改配置文件中的环境变量

vim ~/.barhrc

export PATH=":$PATH"#打开文本编辑工具vim进行编辑

source ~/.barhrc#永久生效

3) 利用cat 和重定向符>>

cat >>~/.barhrc

PS1="\[\e[32;1m\]\u\[\e[33;1m\]\t \[\e[35;1m\]\w \n\[\e[0;40m\]$"#命令行输入

Ctrl+C #结束输入

source ~/.barhrc

cat~/.barhrc |tail

注意

这种情况下不知道软件的版本。

可以使用 --help和--version查看,利用which查看所有安装过的版本位置。

一般软件都会带上示例数据。

cd ~/biosoft/bowtie2/bowtie2-2.3.4.3-linux-x86_64/example

# 下载tree

wget http://mama.indstate.edu/users/ice/tree/src/tree-1.7.0.tgz

tar zxvf tree-1.7.0.tgz

cd tree-1.7.0

make

cat >>~/.bashrc

export PATH="/home/hucy/biosoft/tree-1.7.0:$PATH"

# 查看示例数据

tree -h

less -S reads/longreads.fq #fastq格式有四行

比对需要参考基因组,参考基因组使用前需要先建立索引。

ls -lh index/

bowtie2-build reference/lambda_virus.fa temp #构建一个名为temp的索引

ls -lh

md5sum temp.1.bt2 #文档校验,看是否出错或者修改

md5sum index/lambda_virus.1.bt2

建立索引后便可进行比对:

bowtie2 -x temp -1 reads/reads_1.fq -2 reads/reads_2.fq -S temp.sam

less -S temp.sam

我其实比较不解的是为什么大家都没有完,可能是知识点实在是太多吧!

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信技能树 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档