前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >生信(七)生信中常用命令

生信(七)生信中常用命令

作者头像
一只羊
发布2019-07-27 18:58:03
8250
发布2019-07-27 18:58:03
举报
文章被收录于专栏:生信了生信了

今天将生信工作中的一些常用命令记录(分享)如下:

(以后会不定期更新)

转换dos/windows格式的bed文件为unix格式

(说明:我们拿到的bed文件时常是客户在Windows系统下编辑好的,其行尾是\r\n,在进行NGS分析前最好将其转换为Unix风格的行尾\n。)

dos2unix –n dos.bed.txtunix.bed.txt

可以看出上面的dos.bed.txt是一个dos风格(^M$,即\r\n结尾)的文件。要想转换成unix格式($,即\n结尾)的文件,当然可以用dos2unix命令来完成:

可以看到转换成功。问题在于dos2unix命令往往不是系统默认安装的,你要自行安装后才可以使用。一个替代的方法是用sed命令。

sed ‘s/\r//’dos.bed.txt > unix.bed.txt

可以看到,转换效果是一样的。

批量删除一个目录及其子目录下的bam文件

find your_path –name *.bam –execrm {} \;

合并两个fastq文件

cat fastq1 fastq2 >merged_fastq

获取fastq文件名前缀

(假设fastq文件名是test.r1.fq.gz,我们想得到其前缀test)

your_string| cut –d. –f1

或者:

your_string |sed ‘s/\..*//’

或者:

your_string |awk –F. ‘{print $1}’

或者(如果是在脚本中实现这一功能的话):

利用shell中的字符串变量删除功能${var%%}来实现。

打包并压缩项目文件

tar zcvf tar_file origin_files

打印行号

sed ‘=’ your_file | sed‘N;s/\n/\t/’

或者:

awk ‘{printf(“%d\t%s\n”, NR, $0)}’ your_file

输出指定的行数

(比如第666行)

sed –n ‘666p;666d’ your_file

或者:

awk‘NR==666{print $0; exit}’ your_file

统计不重复的基因个数

(假设基因名在第一列)

awk ‘{print $1}’ your_file | sort-u | wc –l

或者

awk ‘{a[$1]++}END {print length(a)}’ your_file

找出表达量最高的基因

(假设基因名在第一列,表达量数据在第四列)

sort –k4,4nryour_file | head -1 | cut –f1

或者(如果仅仅是找出最高表达量的基因,下面的方法更快!因为它不对所有记录排序):

awk‘{if(max<$4){max=$4;gene=$1}} END {print gene}’ your_file

打印最后一列

awk ‘{print $NF}’ your_file

反向互补序列

(如”agctn”的反向互补序列应该是”nagct”)

your_string | tr‘agctnAGCTN’ ‘tcganTCGAN’ | rev

your_string | sed‘y/agctnAGCTN/tcganTCGAN/’ | rev

求取某一列平均值

(假设求第四列的平均值)

awk ‘{x+=$4} END {print x/NR}’your_file

如果是压缩文件,则需利用zcat来生成“流”:

zcatyour_zipped_file | awk ‘{x+=$4} END {print x/NR}’

获取脚本文件所在目录的绝对路径

(假设你有一个脚本test.sh,你想在该脚本里写几行代码获取test.sh所在目录的绝对路径)

abs_path=$(cd“$(dirname “$0”)”; pwd)

echo$abs_path

对bed文件排序

(假设依次按照前三列进行排序)

sort –k1,1V–k2,2n –k3,3n unsort.bed > sort.bed

最后提一句:从上面的诸多例子中,我们可以看出,sed与awk的威力。它们与grep并称Linux下的“三剑客”,牛叉哄哄!

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

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

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

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

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