去除基因id后的小数点信息
【去除基因id后的小数点信息】有的文件geneid带有版本信息需要去掉,以匹配其他文件:
文章图片
要去掉的是第四列 要匹配的文件如:
文章图片
基因名对应关系文件 命令:
awk 'BEGIN{OFS="\t"} {gsub(/.[0-9]$/,"",$4); print $0}' mm10.ensembl.ref.bed | head原理:
此bed文件的第四列,使用gsub进行替换,将符合/.[0-9]$/的替换成""空格。如果有多列,怎用gsub多次,加;即可。
文章图片
去除后效果 好像有bug,有的去掉后还剩余小数点,咋回事?
文章图片
原来是有的后面是是两个!坑爹呀!
看了原始教程: http://www.endmemo.com/program/R/gsub.php 发现自己理解有误: 改为:
awk 'BEGIN{OFS="\t"} {gsub(/[:.:][0-9]/,"",$4); print $0}' mm10.gencode-vm18.compre.bed > 1.txt使用awk-length查看:
awk '{print length($4)}' 1.txt | sort | uniq -c
文章图片
还有问题
文章图片
竟然去掉的是.和后面的一个数字 重要!
awk 'BEGIN{OFS="\t"} {gsub(/[:.:].{1,2}/,"",$4); print $0}' mm10.gencode-vm18.compre.bed > 1.txt{1,2}意思是.号要匹配一到两次
或者:
awk 'BEGIN{OFS="\t"} {gsub(/[:.:].+/,"",$4); print $0}' mm10.gencode-vm18.compre.bed > 1.txt+意思是至少匹配一次
查看,果然行:
文章图片
!!!我常用的命令:
awk 'BEGIN{OFS="\t"} {gsub(/[:.:].+/,"",$1); print $0}' 1.txt > 2.txt结论:正则匹配用的真不熟!
文章图片
1
文章图片
2
推荐阅读
- 以后的日子,我要守护你们
- 『匠人之城』北村静香,日本“一块造”最后的巨匠
- 投稿|美的“弃车保帅”之举背后的深意
- 网贷行业上演淘汰大战|网贷行业上演淘汰大战 谁能成为最后的赢家
- 你失恋后的要死要活,那不过是贱人的惺惺作态
- 深度|利润大涨掩盖不住电解液龙头背后的隐忧?
- 投稿|集体唱好混动技术,传统车企最后的倔强?
- 投稿|重估HR SaaS:一体化后的新三年
- 大健康|净利润缩水,红利不再,华大基因增长前景不明朗 | 看财报
- 投稿|尹烨落入凡间,华大基因突变 | 钛客说