Linux笔记及习题

Linux课程整理

1、学习资料

马哥linux视频,Linux 命令行与Shell脚本编程大全

2、系统认知

看学习资料

3、Shell基本命令

Shell的基本操作(shell就是一个翻译官)

Shell为一命令解释器(command interpreter),将使用者的命令翻译给核心处理;同时将核心处理结果翻译给使用者。

通常由三部分组成:1.命令字,2.参数,3.操作对象;cmd [options][operation]

Shell prompt提示符:$:给一般使用者账号使用;#:给root(管理员)账号使用;

cursor光标,是指示键盘在命令行所输入的位置;

carriage return回车,命令行读进,是使用者告诉shell可以执行命令行了;

Internal field separator(IFS),域内字段分隔符,包括space, tabnewline.

Shell工作原理,会依据IFS将command line所输入的文字给拆解为“字段”(word),然后再针对特殊字符(meta)先作处理,最后再重组整行command line。

(1) 查看文件ls

ls -l #查看当前目录下的文件
ls -al #查看当前目录下的所有文件(包括隐藏文件)
ls -lh #查看当前目录下的文件,并显示其大小(K,M,G等)

(2) 访问文件cd

cd #change directory
cd .. #返回上一级
cd ~ #返回用户主目录
cd - #返回到来这之前的目录
cd / #返回根目录

(3)新建文件夹mkdir

mkdir dgc #在当前文件夹下创建名为dgc的文件夹
mkdir file1 file2 file3 #创建3个平级目录
mkdir file{1:3}  #同样可以创建3个平级目录
mkdir -p 1/2/3/4/5/6 #创建多层子目录

(4) 删除文件rmdir rm

rmdir dgc  #dgc为空目录,不可删除非空文件夹#
rmdir -p a/b/c/d #多级删除文件夹
rm a  #删除文件a,不可以删除目录a
rm file1 file2 file3  #删除多个文件
rm -rf a1 #无论a1下是否有文件都将a1删除(谨慎使用,linux删除文件后不可逆)

(5) 创建文件touch

touch a.txt
touch file1 file2 file3 #同时创建多个文件

(6) 复制cp

cp src.c src.c.bak #复制src.c并重新命名为src.bak;
cp src.c a/src.c.bak #复制src.c到a目录下并重新命名为src.bak;
cp -r a/ b/ #拷贝文件夹a及其里面的子文件夹到b;

(7) 重命名或者移动mv

mv src.c.bak src.bak #将src.c.bak改名为src.bak;
mv jeapdu.s a/ #将jeapdu.s文件移动到目录a中;
mv a/jeapdu.s src #将目录a文件夹下的jeapdu文件移动到当前目录并改名为src;
mv a src #修改目录名;
#一般情况下:不同级目录为移动,同级目录为改名字

(8) tar命令

tar在Linux上是常用的打包、压缩、加压缩工具

参数:
-c :create 建立压缩档案的参数;
-x : 解压缩压缩档案的参数;
-z : 是否需要用gzip压缩;
-v: 压缩的过程中显示档案;
-f: 置顶文档名,在f后面立即接文件名,不能再加参数

①将tgz文件解压到指定目录

tar -zxvf test.tgz -C #指定目录

比如将/source/kernel.tgz解压到 /source/linux-2.6.29 目录

tar -zxvf /source/kernel.tgz -C /source/linux-2.6.29

②将整个/home/www/images 目录下的文件全部打包为 /home/www/images.tar

tar -cvf /home/www/images.tar /home/www/images #仅打包,不压缩
tar -zcvf /home/www/images.tar.gz /home/www/images #打包后,以gzip压缩
tar -cvf ab.tar a b #将a和b文件压缩到ab.tar
tar -xvf ab.tar #解压缩
tar -tvf ab.tar #查看压缩文件
tar -xvf ab.tar a #将ab.tar仅解压a文件
tar -xvf ab.tar -C ss/ #将ab.tar文件解压缩到ss目录下
tar -zcvf ac.tar.gz ac.tar #将ac.tar压缩并创建为ac.tar.gz
tar -jcvf ac.tar.bz2 ac.tar #将ac.tar压缩并创建为ac.tar.bz2
tar -zxvf ac.tar.gz #解压缩ac.tar.gz文件
tar -jxvf ac.tar.bz2 #解压缩ac.tar.bz2文件

(9) 压缩文件gzip bzip2 (源文件都会消失)

gzip aa.tar #压缩aa.tar文件;
gunzip aa.tar.gz #解压缩aa.tar.gz文件;
bzip2 ab.tar #压缩ab.tar文件;
bunzip2 ab.tar.bz2 #解压缩ab.tar.bz2文件;

(10) 查找文件

which #可定位可执行文件所在目录;
whereis #命令定位文件所在目录:二进制的、源文件、帮助文档;
whereis -m pwd #只查找帮助文档;
whereis pwd #输出3条:命令本身所在目录,源文件所在目录,其帮助文件所在目录;
locate #基于本地数据库(每天需要更新一次,update)进行查找 locate aa.tar.gz,不能查找新创建的文件;手动更新数据库sudo updated后,可以用locate进行查找新创建的文件;
find #基于文件名在磁盘中查找,格式:“find 查找目录 查找内容” 
find ./ -name 'af*'

(11) 查看文件

head #查看文件最开始的几行,默认为10行,可使用-n 6指定查看前6行
head -n 6 filename
tail #查看文件最后几行
less和more也可以用来查看文件,尤其是文件内容特别多的时候
more分屏打印文件,继续往下看按空格键,往前看shift+pageup
less也可以分屏打印文件
less -SN abc.txt #查看abc.txt文件,并进行对齐输出行号

(12) cat命令

cat filename #显示整个文件 
cat > filename  #创建一个文件 
cat file1 file2 > file  #将几个文件合并为一个文件
Cat <<END #可以输入内容,再回车,继续输入内容,直到我们输入END,输入过程结束
Cat <<END >data/test.fa #将cat输入的内容存入data目录下的test文档中,并保存为fa格式

(13)sort命令

sort为排序命令,比较原则是从首字符开始,依次按ASCII码值进行比较,最后将比较结果按升序输出。

用法:sort [选项]... [文件]...
 或:sort [选项]... --files0-from=F

常用参数

 -k, --key=位置1[,位置2] #在位置1 开始一个key,在位置2 终止(默认为行尾)
 -r, --reverse #逆序输出排序结果
 -t, --field-separator=分隔符 #使用指定的分隔符代替非空格到空格的转换
 -n, --numeric-sort #根据字符串数值比较
 -f, --ignore-case #忽略字母大小写
 
 # Example
  sort -k 1,1 -k 2,2n test.bed #对第一列按照字符排序,第二列按照数值排序
  sort -k 1,1 -k 2,2nr test.bed #对第一列按照字符排序,第二列按照数值反向排序

(14) 其他命令

echo a #屏幕显示a
ln -s a.txt b.txt #将a.txt软链接到b.txt
pwd #输出当前路径

4、文本编辑常用命令

(1) 取字符串

file=/dir1/dir2/dir3/my.file.txt
${file#*/}  #删掉第一个/及其左边的字符串:
dir1/dir2/dir3/my.file.txt
${file##*/} #删掉最后一个/及其左边的字符串
my.file.txt
${file#*.} #删掉第一个.及其左边的字符串
file.txt
${file##*.} #删掉最后一个.及其左边的字符串
txt
${file%/*} #删掉最后一个/及其右边的字符串
/dir1/dir2/dir3
${file%%/*} #删掉第一个/及其右边的字符串
(空值)
${file%.*} #删掉最后一个.及其右边的字符串
/dir1/dir2/dir3/my.file
${file%%.*} #删掉第一个.及其右边的字符串
/dir1/dir2/dir3/my

(2) vim编辑

vim一共有三种模式,包括命令模式(Command mode)、输入模式(Insert mode)和底线命令模式(Last line modle)

vim abc.txt #进入abc.txt的编辑模式

i进入输入模式,Esc退出输入模式,进入命令模式,:进入底线命令模式

常用命令

i #进入输入模式,修改位置为光标所在位置
a #进入输入模式,修改位置为光标下一位
I #进入输入模式,调到某一行行首
A #进入输入模式,调到某一行行尾
/find #向下查找
?find #向上查找
x #删除光标所在字符
10x #连续向后删除10个字符
yy #复制当前行,结合光标、行数和p可以进行多行的指定位置复制(eg 2yy然后p)
dd #删除当前行,dd搭配p,重复删除光标所在行
u #撤销
ctrl+r #退回
:%s/before/after/ #替换,也可用sed进行操作(eg:sed -i 's/before/after/' file)
:wq && wq! #保存和强制保存/覆盖
:q && :q! #退出和强制退出
:w new_file_name #简言之另存为,可保留源文件。

(3) grep命令

grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来

常用参数

-i #匹配时忽略大小写
-v #取没有匹配的行
-w #精确匹配
-e #匹配多个内容
-A #后面可加数字,为after的意思
-B #后面可加数字,为before的意思
-C #指定输出包括匹配到的前后多少行
-f #file,从file种获得匹配的数据
-n #显示行号
-c #统计匹配后的行数
--color #标记匹配的内容
-o #输出匹配的内容

(4)sed命令

sed工作流程:读取-执行命令-显示;

使用方式:

Sed [-n][-e] ‘command’ files

sed [-n] –f script files

参数:

-n #禁止显示所有输入内容,只显示经过sed处理的行(常用);
-e #直接在命令列模式上进行 sed 的动作编辑,接要执行的一个或者多个命令;
-f #执行含有sed 动作的文件 ;
-r #sed 的动作支持的扩展正则(默认基础正则) 
-i #直接修改读取的文件内容,不输出

作用区域:默认情况下,sed命令会作用于文本数据的所有行,如果只想作用于某些行时,则需要使用在命令通过行号或者文本过滤的方式前指明作用区域。

行号:m, +n表示从m行开始向下n行,m~n表示从m行开始的每n行。

文本过滤:’ /pattern/ command’ 可以只在包含pattern的行中执行命令,

命令:p复制,d删除,i插入,a追加,c行替换,y字符转换,w写入新文件,r读取文件,i反向执行,s替换,

(5)cut命令

cut命令可以处理列数据,是一个选取命令,可将文件种的每一行按照“字节”“字符”“字段”进行剪切,并将这些选取好的数据输出至标准输出。cut的格式:cut –[n]b file;cut –c file;cut –d[分隔符] –f[域] file。

常用参数

-d #指定分隔符
-f #指定列
-b #以字节为单位进行切割
-c #以字符为单位进行切割
-n #取消分割多字节字符,仅和-b标志一起使用。
#Example
cut -b 1 text1.txt
cut -b 1.3.5 text1.txt
cut -b 1-5 text1.txt 等同于cut -b -5 test1.txt
cut -b 3- test1.txt
cut -nb 3 test2.txt
cut -c 1 test2.txt
cut -d : -f 1

(6)awk命令

在shell知识里,如果把一个文档看做一张表,那么一行就是一个记录,一列就是一个域。awk是一门语言,按行处理数据,也就是按记录处理文本的,是一个强大的文本分析工具。

其命令的基本方式:

awk [option] '{pattern + action}' {filenames} # sometims muti file is ok
awk [option] 'BEGIN{初始代码} {循环代码} END{最后代码}' filename

常见变量

FS #字段分隔符(默认是任何空格)
NR #行号,从1开始
NF #一条记录的字段数目
$n #当前记录的第n个字段,字段间由FS分隔
$0 #完整的输入记录

常见的基本用法(参考awk相关书籍)

5、软件安装

在生物信息学领域,现在用的最多的是conda进行软件安装

(1) 下载miniconda

wget –c <https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh>

(2) 安装miniconda

bash [Miniconda3-4.5.4-Linux-x86_64.sh](https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-4.5.4-Linux-x86_64.sh)  #(不要将conda加入到环境变量里面,以免污染配置好的环境)

(3) 启动miniconda

source ~/miniconda3/bin/activate

(4) 配置conda的环境

conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/bioconda/ #(非常重要)
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge/

(5) 查看conda的配置文件

vim ~/.condarc

(6) 安装软件(可以在bioconda.github.io搜索)

conda install -y bwa(samtools=1.8)

(7) 创建新的环境

conda create -n chipseq python=2

(8) 启动和退出chipseq的环境

conda activate chipseq
conda deactivate

(9) 删除环境

conda remove –n chipseq –all #或者
$rm –rf ~/miniconda3/envs/chipseq/

6、环境变量和局部变量

(1) 查看环境变量

Env或者export

(2) 显示变量值:echo 变量名,变量名之前一定要有,echo才能将变量名替换成实际变量值

echo $PATH

(3) 配置环境变量

#第一种方法
export PATH=/usr/local/webserver/mysql/bin:$PATH ## 先添加
echo $PATH        ### 再查看
#第二种方法
vim ~/.bashrc
export PATH="/home/vip5/soft/gatk/bin:$PATH" #在最后添加
source ~/.bashrc

习题

fasta和fastq文件

  1. 统计reads_1.fq 文件中共有多少条序列信息
reads_1.fq |paste - - - - |wc
  1. 输出所有的reads_1.fq文件中的标识符(即以@开头的那一行)
less -S reads_1.fq |grep ^@|wc
less -S reads_1.fq |paste - - - - |cut -f 1|wc
  1. 输出reads_1.fq文件中的 所有序列信息(即每个序列的第二行)
less -S reads_1.fq |paste - - - - |cut -f 2
  1. 输出以‘+’及其后面的描述信息(即每个序列的第三行)
less -S reads_1.fq |paste - - - - |cut -f 3
  1. 输出质量值信息(即每个序列的第四行)
less -S reads_1.fq |paste - - - - |cut -f 4
  1. 计算reads_1.fq 文件含有N碱基的reads个数
less -S reads_1.fq |paste - - - - |cut -f 2|grep N|wc
  1. 统计文件中reads_1.fq文件里面的序列的碱基总数
reads_1.fq |paste - - - - |cut -f 2|grep -o [ATCGN]|wc
  1. 计算reads_13.fq 所有的reads中N碱基的总数
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o N|wc
  1. 统计reads_1.fq 中测序碱基质量值恰好为Q20的个数
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o B|wc
  1. 统计reads_1.fq 中测序碱基质量值恰好为Q30的个数
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o F|wc
  1. 统计reads_1.fq 中所有序列的第一位碱基的ATCGN分布情况
less -S reads_1.fq |paste - - - - |cut -f 2|grep -o ^[ATCGN]|sort|uniq -c
  1. 将reads_1.fq 转为reads_1.fa文件(即将fastq转化为fasta)
less -S reads_1.fq|paste - - - -|cut -f1,2|tr "\t" "\n"|tr "@" ">" >read_1.fa
  1. 统计上述reads_1.fa文件中共有多少条序列
awk 'NR%2==0{print $0}' read_1.fa |wc
  1. 计算reads_1.fa文件中总的碱基序列的GC数量
less -S read_1.fa |paste - - |cut -f 2|grep -o [GC]|wc
  1. 删除 reads_1.fa文件中的每条序列的N碱基
less -S read_1.fa |paste - - |cut -f 2|sed 's/N//'
tr -d N read_1.fa
  1. 删除 reads_1.fa文件中的含有N碱基的序列
awk 'NR%2==0{print $0}' read_1.fa|grep -v N|tr “\t” “\n”
cat read_1.fa|paste - -|grep -v N|tr “\t” “\n”
  1. 删除 reads_1.fa文件中的短于65bp的序列
awk 'NR%2==0{print $0}' read_1.fa|awk 'length($0)>64{print $0}'
cat read_1.fa|paste - -| awk 'length($0)>64{print $0}'|tr '\t' '\n'
  1. 删除 reads_1.fa文件每条序列的前后五个碱基
awk 'NR%2==0{print $0}' read_1.fa|sed 's/^.....//'|sed 's/.....$//'

cat read_1.fa|paste - -|cut -f 1 >reads_1_1.fa
awk 'NR%2==0{print $0}' read_1.fa|sed 's/^.....//'|sed 's/.....$//' >reads_1_2.fa
paste reads_1_1.fa reads_1_2.fa|tr '\t' '\n' >reads_1_3.fa

sed -n '1~4 p' reads_1.fq | tr "@" ">" >read_1_1.fa
sed -n '2~4 p' reads_1.fq | sed 's/^.\{5\}//g' | sed 's/.\{5\}$//g' > read_1_2.fa
paste read_1_1.fa read_1_2.fa | tr '\t' '\n' > reads_1.fa

less -S read_1.fa |awk '{if($0~/^>/)print $0;else print substr($0,6,length($0)-10)}'|less -S

19)删除 reads_1.fa文件中的长于125bp的序列

awk 'NR%2==0{print $0}' read_1.fa|awk 'length($0)<125{print $0}'
cat read_1.fa|paste - -| awk 'length($0)<125{print $0}'|tr '\t' '\n
  1. 查看reads_1.fq 中每条序列的第一位碱基的质量值的平均值
perl -lane '{ord()}' tmp.fa

sam文件和bam文件

  1. 统计共多少条reads(pair-end reads这里算一条)参与了比对参考基因组
cat tmp.sam |grep -v ^@|wc
  1. 统计共有多少种比对的类型(即第二列数值有多少种)及其分布。
cat tmp.sam |grep -v ^@|cut -f 2|sort |uniq –c 
  1. 筛选出比对失败的reads,看看序列特征。
less tmp.sam |awk '$6=="*"{print $0}' >tmp_unmap.sam
  1. 比对失败的reads区分成单端失败和双端失败情况,并且拿到序列ID
less -S tmp.sam |awk '$6=="*"{print $1}'|sort|uniq -c|grep -W 1 #单端
less -S tmp.sam |awk '$6=="*"{print $1}'|sort|uniq -c|grep -W 2 #双端
  1. 筛选出比对质量值大于30的情况(看第5列)
less -S tmp.sam |awk '$5>30{print $0}'
  1. 筛选出比对成功,但是并不是完全匹配的序列
less -S tmp.sam |awk '$6~"[IDNSHPX]"{print $0}' 
less -S tmp.sam |awk '$6!="*"{print $6}'|grep [IDNSHPX]
  1. 筛选出inset size长度大于1250bp的 pair-end reads
less -S tmp.sam|awk '$9>1250{print $0}'
  1. 统计参考基因组上面各条染色体的成功比对reads数量
less -S tmp.sam |grep  '^@'|grep 'LN'
  1. 筛选出原始fq序列里面有N的比对情况
less -S tmp.sam |grep -v '^@'|awk '{print $10}'|grep N
less -S tmp.sam |grep -v '^@'|awk '$10~"N"{print$10}'
  1. 筛选出原始fq序列里面有N,但是比对的时候却是完全匹配的情况
less -S tmp.sam |grep -v '^@'|awk '$6!~"[IDNSHPX]" && $$6!="*" && $10~"N"{print $0}'|less -S
  1. sam文件里面的头文件行数
less -S tmp.sam|grep -c '^@'
  1. sam文件里每一行的tags个数一样吗
less -S tmp.sam|cut -f 12-20|less -S
  1. sam文件里每一行的tags个数分别是多少个
less -S tmp.sam |grep -v '^@'|awk '{print NF}'|sort |uniq -c #结果减去11
  1. sam文件里记录的参考基因组染色体长度分别是?
less -S tmp.sam |grep  '^@'|grep 'LN'
  1. 找到比对情况有insertion情况的
less -S tmp.sam |grep -v '^@'|awk '$6~"I"{print$0}'
  1. 找到比对情况有deletion情况的
less -S tmp.sam |grep -v '^@'|awk '$6~"D"{print$0}'

17)取出位于参考基因组某区域的比对记录,比如 5013到50130 区域

less -S tmp.sam |grep -v '^@'|awk '$8>5013 && $8<50130{print $0}'|less -S
  1. 把sam文件按照染色体以及起始坐标排序
sort -k 3,3 -k 4,4n tmp.sam|less -S #对第3列进行字母排序后对第4列进行数值排序(升序)
  1. 找到 102M3D11M 的比对情况,计算其reads片段长度。
less -S tmp.sam |grep -v '^@'|grep 102M3D11M|cut -f 10|wc
  1. 安装samtools软件后使用samtools软件的各个功能尝试把上述题目重新做一遍。

生信人的linux考试

一、在任意文件夹下面创建形如 1/2/3/4/5/6/7/8/9 格式的文件夹系列。

mkdir -p 1/2/3/4/5/6/7/8/9

二、在创建好的文件夹下面,比如我的是 /Users/jimmy/tmp/1/2/3/4/5/6/7/8/9 ,里面创建文本文件 me.txt

touch /Users/jimmy/tmp/1/2/3/4/5/6/7/8/9/me.txt

三、在文本文件 me.txt 里面输入内容:

Go to: http://www.biotrainee.com/
I love bioinfomatics.
And you ?

vim me.txt
Go to: http://www.biotrainee.com/
I love bioinfomatics.
And you ?
:wq

四、删除上面创建的文件夹 1/2/3/4/5/6/7/8/9 及文本文件 me.txt

rm -r 1/

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

mkdir -p folder{1..5}/folder{1..5}

六、在第五题创建的每一个文件夹下面都 创建第二题文本文件 me.txt ,内容也要一样。

echo folder{1..5}/folder{1..5}|xargs -n 1|while read id;do cp me.txt $id; done

七,再次删除掉前面几个步骤建立的文件夹及文件

rm -r *

八、下载 http://www.biotrainee.com/jmzeng/igv/test.bed 文件,后在里面选择含有 H3K4me3 的那一行是第几行,该文件总共有几行。

wget http://www.biotrainee.com/jmzeng/igv/test.bed
less -S test.bed|grep -n 'H3K4me3'
wc test.bed

九、下载 http://www.biotrainee.com/jmzeng/rmDuplicate.zip 文件,并且解压,查看里面的文件夹结构

wget http://www.biotrainee.com/jmzeng/rmDuplicate.zip
unzip rmDuplicate.zip 
tree rmDuplicate

十、打开第九题解压的文件,进入 rmDuplicate/samtools/single 文件夹里面,查看后缀为 .sam 的文件,搞清楚 生物信息学里面的SAM/BAM 定义是什么。

cd rmDuplicate/samtools/single
ls *.sam

sam文件为fastq比对后得到的文件

bam文件为sam文件的二进制格式,文件较小,易于储存

十一、安装 samtools 软件

conda install -y samtools

十二、打开 后缀为BAM 的文件,找到产生该文件的命令。

samtools view tmp.rmdup.bam
samtools view -bS abc.sam -o abc.bam

十三题、根据上面的命令,找到我使用的参考基因组 /home/jianmingzeng/reference/index/bowtie/hg38具体有多少条染色体。

less -S /home/jianmingzeng/reference/index/bowtie/hg38|cut -f 1|sort|uniq

十四题、上面的后缀为BAM 的文件的第二列,只有 0 和 16 两个数字,用 cut/sort/uniq等命令统计它们的个数。

less -S .bam|cut -f 2|grep -w ['0'16']|sort|uniq -c

十五题、重新打开 rmDuplicate/samtools/paired 文件夹下面的后缀为BAM 的文件,再次查看第二列,并且统计。

cd rmDuplicate/samtools/paired` 
samtools view tmp.rmdup.bam |wc
samtools view tmp.sorted.bam |wc

十六题、下载 http://www.biotrainee.com/jmzeng/sickle/sickle-results.zip 文件,并且解压,查看里面的文件夹结构, 这个文件有2.3M,注意留心下载时间及下载速度。

wget http://www.biotrainee.com/jmzeng/sickle/sickle-results.zip
unzip sickle-results.zip
tree sickle-results

十七题、解压 sickle-results/single_tmp_fastqc.zip 文件,并且进入解压后的文件夹,找到 fastqc_data.txt 文件,并且搜索该文本文件以 >>开头的有多少行?

cd sickle-results/
unzip single_tmp_fastqc.zip
cd single_tmp_fastqc
less -S fastqc_data.txt|grep -c ^'>>'

十八题、下载 http://www.biotrainee.com/jmzeng/tmp/hg38.tss 文件,去NCBI找到TP53/BRCA1等自己感兴趣的基因对应的 refseq数据库 ID,然后找到它们的hg38.tss 文件的哪一行。

wget http://www.biotrainee.com/jmzeng/tmp/hg38.tss
TP53的基因ID:NM_000546,NM_001126112,NM_001126113,NM_001126114,NM_001126115,NM_001126116,NM_001126117,NM_001126118,NM_001276695
less -S hg38.tss|grep -n -e NM_000546 -e NM_001126112

十九题、解析hg38.tss 文件,统计每条染色体的基因个数。

less -S hg38.tss|cut -f 2|grep -v '_'|sort|uniq -c

二十题、解析hg38.tss 文件,统计NMNR开头的熟练,了解NMNR开头的含义。

less -S hg38.tss|grep -c ^'NM'
less -S hg38.tss|grep -c ^'NR'

NM为转录本并可以翻译成蛋白

NR为转录本但不能翻译成蛋白

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 158,117评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,963评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,897评论 0 240
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,805评论 0 203
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,208评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,535评论 1 216
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,797评论 2 311
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,493评论 0 197
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,215评论 1 241
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,477评论 2 244
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,988评论 1 258
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,325评论 2 252
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,971评论 3 235
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,055评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,807评论 0 194
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,544评论 2 271
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,455评论 2 266