跳转至

linux 练习

Linux

# Q0:准备,假设此时的练习用户姓名为 张三,则建立练习目录 ~/zhangsan/
# 时刻谨记自己当前所在的目录,不了解时使用pwd命令查看,后面每步练习开始时都是回到自己的练习主目录中,如张三的为 ~/zhangsan/
$ mkdir ~/zhangsan/
$ cd ~/zhangsan/
$ pwd

# Q1: 在任意文件夹下面创建形如 1/2/3/4/5/6/7/8/9 格式的文件夹系列
$ cd ~/zhangsan/
$ mkdir -p 1/2/3/4/5/6/7/8/9

# Q2:在创建好的文件夹下面(1/2/3/4/5/6/7/8/9) ,里面创建文本文件 me.txt
$ cd ~/zhangsan/
$ cd 1/2/3/4/5/6/7/8/9
$ touch me.txt

# Q3:使用vim编辑器,在文本文件 me.txt 里面输入以下内容
Go to: http://hpc.ncpgr.cn/
I love bioinfomatics.
And you ?

$ cd ~/zhangsan/
$ vi me.txt
$ cat me.txt
Go to: http://hpc.ncpgr.cn/
I love bioinfomatics.
And you ?

# Q4:删除上面创建的文件夹 1/2/3/4/5/6/7/8/9 及文本文件 me.txt
$ cd ~/zhangsan/
$ ls
1
$ rm -r ./1
$ ls

# Q5:在任意文件夹下面创建 folder1~5这5个文件夹,然后每个文件夹下面继续创建 folder1~5这5个文件夹

# 方法1
$ cd ~/zhangsan/
$ for i in {1..5}; do  for j in {1..5}; do mkdir -p folder_${i}/folder_${j};done;done
$ tree 
# 方法2
$ mkdir -p folder_{1..5}/folder_{1..5}

# Q6:在第五题创建的每一个文件夹下面都 创建第二题文本文件 me.txt ,内容也要一样
$ cd ~/zhangsan/
$ vim me.txt
$ for i in {1..5}; do  for j in {1..5}; do cp ./me.txt folder_${i}/folder_${j};done;done

# Q7: 再次删除掉前面几个步骤建立的文件夹及文件
$ cd ~/zhangsan/
$ rm -r ./fold*

# Q8: 下载 http://hpc.ncpgr.cn/data/test.bed 文件,后在里面选择含有 H3K4me3 的那一行是第几行,该文件总共有几行。
$ cd ~/zhangsan/
$ wget http://hpc.ncpgr.cn/data/test.bed
$ cat -n test.bed | grep H3K4me3
$ wc test.bed

# Q9: 下载 http://hpc.ncpgr.cn/data/rmDuplicate.zip 文件,并且解压,查看里面的文件夹结构
$ cd ~/zhangsan/
$ wget http://hpc.ncpgr.cn/data/rmDuplicate.zip
$ unzip rmDuplicate.zip 
$ tree rmDuplicate 

# Q10: 打开第九题解压的文件,进入 rmDuplicate/samtools/single 文件夹里面,查看后缀为 .sam 的文件,搞清楚 生物信息学里面的SAM/BAM 定义是什么。
# SAM(The Sequence Alignment / Map format)为序列比对文件的格式;
# BAM为SAM的二进制文件,主要是为了节约空间;可以用samtools工具实现sam和bam文件之间的转化。
$ cd ~/zhangsan/
$ cd rmDuplicate/samtools/single
$ ls -lh *.sam
$ head tmp.sam
$ less -SN tmp.sam
$ wc tmp.sam

# Q11: 安装 samtools 软件到成自己的练习目录内
$ cd ~/zhangsan/
$ mkdir -p ~/zhangsan/opt/samtools/
$ wget https://github.com/samtools/samtools/releases/download/1.3.1/samtools-1.3.1.tar.bz2
# 如因网络问题不能下载,使用 ctrl+c 组合键中断下载,然后从~/data/中拷贝一份
$ cp  ~/data/samtools-1.3.1.tar.bz2 .
$ tar xf samtools-1.3.1.tar.bz2 
$ cd samtools-1.3.1 
# --prefix 参数指定安装目录
$ ./configure --prefix=${HOME}/zhangsan/opt/samtools/
$ make
$ make install
# 设置环境变量
$ export PATH=${HOME}/zhangsan/opt/samtools/bin:$PATH
# 测试是否安装成功
$ samtools --help
# 查看samtools的安装位置
$ which samtools

# Q12: 打开 后缀为BAM 的文件,找到产生该文件的命令。提示一下命令是bowtie2-align-s
# 这里的bam文件在上面下载的rmDuplicate.zip 中
$ cd ~/zhangsan/
$ cd rmDuplicate/samtools/single/
$ samtools view -h tmp.sorted.bam | grep CL

# Q13: 根据上面的命令,找到使用的参考基因组 hg38 具体有多少条染色体。
$ cd ~/zhangsan/
$ cd rmDuplicate/samtools/single/
$ samtools view -h tmp.rmdup.bam | grep SN | wc
$ samtools view -h tmp.rmdup.bam | grep SN | cut -f 2 | sort | uniq -c

# Q14: 上面的后缀为BAM 的文件的第二列,只有 0 和 16 两个数字,用 cut/sort/uniq等命令统计它们的个数。
$ cd ~/zhangsan/
$ cd rmDuplicate/samtools/single/
$ samtools view -h tmp.rmdup.bam | grep -v "^@" > tmp.txt
$ cut -f 2 tmp.txt | sort | uniq -c

# Q15: 重新打开 rmDuplicate/samtools/paired 文件夹下面的后缀为BAM 的文件,再次查看第二列,并且统计
$ cd ~/zhangsan/
$ cd rmDuplicate/samtools/single/
$ cd ../paired/ 
$ samtools view -h tmp.rmdup.bam | grep -v "^@" > tmp.txt
$ cut -f 2 tmp.txt | sort | uniq -c

# Q16: 下载 http://hpc.ncpgr.cn/data/sickle-results.zip 文件,并且解压,查看里面的文件夹结构, 这个文件有2.3M。
$ cd ~/zhangsan/
$ wget  http://hpc.ncpgr.cn/data/sickle-results.zip 
$ unzip sickle-results.zip
$ tree sickle-results

# Q17: 解压 sickle-results/single_tmp_fastqc.zip 文件,并且进入解压后的文件夹,找到 fastqc_data.txt 文件,并且搜索该文本文件以 >>开头的有多少行?
$ cd ~/zhangsan/
$ cd sickle-results/
$ unzip single_tmp_fastqc.zip
$ cd single_tmp_fastqc/ 
$ grep -c "^>>" fastqc_data.txt 

# Q18: 下载 http://hpc.ncpgr.cn/data/hg38.tss 文件,去NCBI找到TP53/BRCA1等自己感兴趣的基因对应的 refseq数据库 ID,然后找到它们的hg38.tss 文件的哪一行。
# https://www.ncbi.nlm.nih.gov/gene/7157
# https://www.ncbi.nlm.nih.gov/gene/7157#reference-sequences
$ cd ~/zhangsan/
$ wget http://hpc.ncpgr.cn/data/hg38.tss
$ grep -n NM_000546 hg38.tss  #TP53第一个refseq的ID

# Q19: 解析hg38.tss 文件,统计每条染色体的基因个数。
$ cd ~/zhangsan/
$ cut -f 2 hg38.tss | sort | uniq -c | sort -r | head -20

# Q20: 解析hg38.tss 文件,统计NM和NR开头的熟练,了解NM和NR开头的含义。
# NM 为转录产物序列,即成熟mNA转录本序列;
# NP指蛋白产物,主要是全长转录组氨基酸序列,但也有一些自由部分蛋白质的部分氨基酸的序列。
$ cd ~/zhangsan/
$ cut -f 1 hg38.tss | cut -c 1-2 | sort | uniq -c

LSF

提取序列

将下面的代码写入lsf脚本extract_seq.lsf,然后提交作业 bsub < extract_seq.lsf

extract_seq.lsf
#BSUB -J extract
#BSUB -n 1
#BSUB -R span[hosts=1]
#BSUB -o %J.out
#BSUB -e %J.err
#BSUB -q test

# 生成随机数
rd=$(echo $RANDOM)

# 加载环境变量
export PATH="$HOME/data/bin/:$PATH"

# 从原始数据随机提取5%的数据
seqkit sample -s ${rd} -p 0.05 ~/data/RICasmRSYHSD3_1.fq.gz > sample_1.fq
seqkit sample -s ${rd} -p 0.05 ~/data/RICasmRSYHSD3_2.fq.gz > sample_2.fq

# 压缩fq文件,压缩后这两个文件变为了sample_1.fq.gz sample_2.fq.gz
gzip sample_1.fq sample_2.fq

比对

将下面的代码写入lsf脚本bwa.lsf,然后提交作业 bsub < bwa.lsf

bwa.lsf
#BSUB -J bwa
#BSUB -n 5
#BSUB -R span[hosts=1]
#BSUB -o %J.out
#BSUB -e %J.err
#BSUB -q test

# 加载环境变量
export PATH="$HOME/data/bin/:$PATH"

bwa mem -t ${LSB_DJOB_NUMPROC} ~/data/MH63RS3.fasta sample_1.fq.gz sample_2.fq.gz > sample.sam

sam转bam

将下面的代码写入lsf脚本sam2bam.lsf,然后提交作业 bsub < sam2bam.lsf

sam2bam.lsf
#BSUB -J sam2bam
#BSUB -n 2
#BSUB -R span[hosts=1]
#BSUB -o %J.out
#BSUB -e %J.err
#BSUB -q test

# 加载环境变量
export PATH="$HOME/data/bin/:$PATH"

samtools view -@${LSB_DJOB_NUMPROC} -b sample.sam > sample.bam

排序

将下面的代码写入lsf脚本sort.lsf,然后提交作业 bsub < sort.lsf

sort.lsf
#BSUB -J sort
#BSUB -n 2
#BSUB -R span[hosts=1]
#BSUB -o %J.out
#BSUB -e %J.err
#BSUB -q test

# 加载环境变量
export PATH="$HOME/data/bin/:$PATH"

samtools sort -@${LSB_DJOB_NUMPROC} sample.bam -O sample_sorted.bam
# 删除中间文件
rm sample.sam sample.bam
本文阅读量  次
本站总访问量  次