熟悉Linux系统生物信息学linux

生信人应该这样学linux

2018-12-29  本文已影响49人  dandanwu90

Linux-0-生信入门环境

整理电脑,下载工具
链接linux终端的工具。
xshell, git,Winscp, 幕布,markdown, notepad++ #官网下载,不懂软件默认按章选择,Windows system 32
Xshell, 破解版 IP地址,登录提示 用户 密码,接受保存,马哥linux
R语言配置
R及Rstudio下载,安装,官网或镜像,默认安装,不需要改
getwd() #查看位置
dir.create('tmp')#创建tmp文件
Rstudio介绍
install.packages()#安装包
CRAN安装依赖包
.libPaths()#查看安装位置
library()#加载包

Linux-1-学习资源介绍

学习素材
书籍推荐:工具书:Linux命令行与shell脚本编程大全
touch test.txt#创建新的空文件test.txt

Linux-2-系统认知

linux-通过命令做交互
ls Download#查看Download文件里的内容
cd Download/#进入Download文件夹
cd ../ #返回上层目录
history#显示历史命令
ssh 用户@ip地址 #登录系统
|#管道符
grep#搜索
history | grep addu#在history命令得到的结果中搜索addu,将结果输出
w#显示目前登入系统用户信息
passwd s1#s1修改密码
df -h#显示电脑配置
free -g#内存是多少???
exit#退出登录

Linux-3-去可视化的命令行

w#显示目前登入系统用户信息
top#实时动态的查看系统的整体运行情况
sleep 100 &#停止运行100s 挂后台
&#任务在后台运行
which ls#ls在哪里
/bin/ls #系统的设置
ps -ef | grep sleep#标准格式显示进程,并在结果中搜索sleep的进程
可视化非可视化
去可视化
ls
ifconfig#查看IP
cd#进入文件
ls#查看内容
pwd#显示当前路径
cd ../#返回上层目录
批量处理,高校,多用户
*#通配符
mkdir#创建文件夹
echo#内容打印到屏幕上
{..}#拓展作用

命令行 加参数 加文件
man ls#查看ls命令的说明书,帮助文档
mkdir -p tmp#层级创建文件tmp, -p如果有不创建,没有创建
cd - #回到上次目录,从哪来到哪去
cd ~#回到个人主目录
cd ../ #回到上层目录
cp#复制,要加俩个路径,从哪来复制,复制到哪里去
cat#查看文件
cat > tmp.txt#命令输出到mtmp.txt文件中
control+c#退出,结束进程

Linux-4-文本处理

wget#从url下载数据
man#帮助文档
wc#查看个数
head#查看头10行
tail#尾10行
more
less
less -SN#-S防止溢出而整齐的排列,-N行首加数字
grep -n * filename#搜索,在filename中搜索,会显示在第几行
cat -n# 有行号的查看文件
cat -n filename |grep *#有行号的查看文件,在结果中搜索*,结果与grep -n * filename相同
./#当前文件
../#上一层文件
cut -f 1 test.txt#按列取文本test.txt的第一行
awk '{print $0}'#可扩展
sort -k2,2nr#排序,起始位置2,终止位置2(2,2)的关键字(k)将其以倒序排序(nr)

Linux-5-软件安装

绿色显示的是可执行
tr ':' '\n' #把:替换为\n
xargs ls -lh#
bowtie 为例
cd ~/biosoft
mkdir bowtie2 && cd bowtie2 #创建文件夹并且进入
安装有两种方式

  1. wget 下载链接
    例:
    wget 下载链接 #bowtie2.zip
    unzip#解压
    例:
    wget 下载链接 #(samtools 1.9.gz2)
    tar xvfj samtools 1.9.gz2#解压
    cd 进入,找不到时make
    2.从本地上传

一个软件的多个版本
调用时全路径调用,弹出帮助文档说明调用成功

Linux-7-环境变量

SAM(Sequence Alignment/Map)格式是一种通用的比对格式,用来存储reads到参考序列的比对信息.SAM分为两部分,注释信息(header section)和比对结果部分(alignment section).
BAM是SAM的二进制格式,因此两者格式相同,只是BAM文件占用储存空间更小,运算更快,
Table键补全
./ 相对路径调用,调用前提是可执行
设置变量 使用时需要加使用alias 不用加
环境变量,echo $PATH, export, exit后,添加到./bashrc, source后永久生效,vi中修改, --version
tree -h层级查看文件夹
fq 格式 @开头,二行为序列,三行空,四行质量值 查看fq
bowtie2 --help
比对,参考基因组和fq测序文件,参考基因组需要构建索引
bowtie2 [options] -x <索引> {-1 -2} |-U #单端序列
ls -lh index/ 查看索引
索引包括六个文件,1,2,3,4,正向,反向
ls -lh public/reference/index/bowtie 构建索引后有log文件查看索引

构建索引

Bowtie2-build reference/lamda_virus.fa tmp构建一个名为tmp的索引
bowtie --help构建完索引做比对
bowtie -x tmp -1 reads/reads_1.fq -2 reads/reads_2.fq -S tmp.sam

Sam 文件, 单端和双端比对, flag含义

08linux shell脚本编程

for I in 
do
done

$后的内容或事自己定义的为变量

bash * config传递进去的参数
xargs {}
参数
echo $0 打印出文件名字

#!/bin/sh需要发布脚本
表明发布代码的人,联系方式
while read id;do echo $id;done
for i in id;do echo id;done
for i inls *;do echo id;done捕获
ln -s目标文件的全路径和自己的短路径
标准输出和标准不输出
1弹出的结果,可以弹出到终端或弹出到文件中去,可以用1>tmp.txt让结果谈出到文件tmp.txt中
2弹出标准误输出 2>tmp.txt
%%.* .号后的全部删掉,例如SRR1039520.fastq.ga可以保留.后的所有,保留全面的
脚本里面含有需要引用子脚本时,需要先export
``捕获

09 脚本要学好##

shell脚本处理
查看clean文件夹下的待处理文件
样本名,左端测序,右端测序
less -SN config.mapping
ls -lh alignment/*. bam 48K
ls -lh alignment/*. bam |grp K 从bam文件中找出含有以K为单位的fq序列
两个样本问价的fq双端文件匹配错误,导致bam文件生成失败
取出配置文件第二列和第三列的路径对应的样本名,查看是否匹配

cut -f config.mapping | cut -d"_" -f 2
grep `NT-2` config.mapping |wc
grep `NT-2` config.mapping |less -S
grep `NT-2` config.mapping |cut -f 1>1
mv 1 wrong.sampleID

grep `NT-2` config.mapping |cut -f 1|cut -d"-" -f 1
grep `NT-2` config.mapping |cut -f 1|cut -d"-" -f 1 |sort |uniq -c |grep -w 1 |awk '{print $2}' >once ID
#27个样本里面删除3个出现一次的ID
grep -v -f once.ID wrong.sample ID|wc 

#重新对24个样本做配置文件
ls clean/*gz |grep val_1.fq.gz >fq1
ls clean/*gz |grep val_1.fq.gz >fq2
Paste fq1 fq2 |less -S
cat wrong.sampleID |while read id;do ($id "\t");done


sort -t"_" -k 1,1 fq2>fq2.bak
sort -t"_" -k 1,1 fq1>fq1.bak
paste fq1.bak fq2.bak |less -S
#ls 全路径文件 |sort -t"_" -k3,3 >fq2
#ls 全路径文件 |sort -t"_" -k3,3 >fq1
paste fq1 fq2 >tmp

grep -w -f wrong.sampleID tmp |grep NT-2 >c1
grep -v "NT-" tmp >c2
paste c1 c2 
cat c1 c2 >tmp
cat tmp|while read id;do (echo $(basename $id));done|cut-d"_" -f 1>id
paste id tmp > config.again
上一篇下一篇

猜你喜欢

热点阅读