linux 换行符 替换_Linux生信常用快速操作

b76d4d0995b4644a524034708fb4ebfd.png

基因测序的结果非常大,介绍一些直接在Linux服务器上操作的快速方法。

大家应该掌握基本的管道操作,for循环,以及zcat、cat、less、grep、cut、sed、paste、vi等命令。

  1. 根据数值、字符或者字符长度筛选行

Filter rows by column value

# 保留第7列小于0.05的行
awk '{ if ($7 < 0.05) { print } }' file

# 保留第7列为"0/1"的行
awk '{ if ($7 == "0/1") { print } }' file

# 保留第7列不为"0/1"的行
awk '{ if ($7 != "0/1") { print } }' file

# 保留第7列字符长度为1的行
awk '{ if (length($7) == 1) { print } }' file


###########
# 多个条件 #
###########

# 保留第7列小于0.05并且大于0.01的行
awk '{ if (($7 < 0.05) && ($7 > 0.01)) { print } }' file

# 保留第7列为"0/1"或者"1/1"的行
awk '{ if (($7 == "0/1") || ($7 == "1/1")) { print } }' file

2. 选取行

select rows by row number

# 选取第2行
sed -n '2,2p' file 

# 选取第3行至第5行
sed -n '3,5p' file 

3. 计算列和

calculate column sum

# 计算第11列的和
awk '{s+=$11}END{print s}' file

4. 修改某一列的值

replace strings in a column

# 将第11列中的'.'替换成'0/0'
awk  'BEGIN{FS=OFS="t"} {if ($11==".") $11="0/0"}1' file

5. 染色体排序

sort vcf or bed file

sort -k1,1 -k2,2n file

6. 将连续不知道几个空格替换成tab

replace blank with tab

sed 's/s+/t/g' file

7. 将换行符替换成;

sed ":a;N;s/n/;/g;ta" file

8. 每行重复

printf 'HelloWorldn%.0s' {1..5}

# 将HelloWorld重复5行
# HelloWorld
# HelloWorld
# HelloWorld
# HelloWorld
# HelloWorld

9. 从VCF中提取GT的信息

cat vcf_file | grep -v '##' | awk '
    BEGIN { OFS = "t" }
    NF > 2 && FNR > 1 { 
        for ( i=9; i<=NF; i++ ) { 
            split($i,a,":") ;$i = a[1];
        } 
    } 
    { print }
' > gt_file

10. 统计数目 count

# 统计文件中第10列不同item的数目
cat file | cut -f10 | sort | uniq -c

11. vcf中选出点前后增加1000bp用于截取bam之后的IGV查看

cat vcf | grep -v '#' | awk '{print $1 "t" ($2 - 1000) "t" ($2 + 1000)}'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值