命令行表格处理工具(转基因学苑)

转载基因学苑https://mp.weixin.qq.com/s/PgKR-7mwChn53nMh_BjciQ

数据处理工具概述

1. cut工具

cut 命令用于从文件的每一行剪切字节、字符和字段,并将这些输出至标准输出。若不指定文件参数,cut 会读取标准输入。必须指定 -b、-c 或 -f 标志之一。

主要参数:

  • -b:以字节为单位进行分割,忽略多字节字符边界,除非指定了 -n
  • -c:以字符为单位进行分割。
  • -d:自定义分隔符,默认为制表符。
  • -f:与 -d 一起使用,指定显示哪个区域。
  • -n:取消分割多字节字符,仅与 -b 一起使用。

使用案例:

# 分割文件并输出
cut -d : -f 1,3 /etc/passwd
cut -d: -f 2- /etc/passwd

# 选取每个文件前两个字符
ls -1 /ifs1/VipData/ | cut -c 1-2

2. sort工具

sort 命令用于对文本文件内容进行排序。排序后的数据更加规律,便于处理。在生物信息分析中,排序根据基因组坐标位置非常重要。

使用案例:

# 排序
awk '{print $2,$3}' ../data/scores.txt | sort

# 按第二列数字大小排序
awk '{print $2,$3}' ../data/scores.txt | sort -n -k 2

# 逆序排序
awk '{print $2,$3}' ../data/scores.txt | sort -n -r -k 2

# 计算特异项,类似uniq
awk '{print $2,$3}' ../data/scores.txt | sort -u

# 按多值排序
cat ../data/scores.txt | sort -t $'\t' -k 2 -k 3

# 按照第二列中第三个字母排序
cat ../data/scores.txt | sort -t $'\t' -k 2.3 | head

# 复杂排序
cat ../data/scores.txt | sort -t $'\t' -k 2,2 -k 3nr,3

3. uniq工具

uniq 用于删除文件中的重复行,保留唯一值。一般与 sort 命令结合使用。

选项参数:

  • -c--count:在每列旁边显示该行重复出现的次数。
  • -d--repeated:仅显示重复的行。
  • -u--unique:仅显示一次的行。

使用案例:

# 计算特异
cat ../data/scores.txt | cut -f 2 | uniq

# 计算频数
cat ../data/scores.txt | cut -f 2 | uniq -c

# 找出重复项
cat ../data/scores.txt | cut -f 2,3 | uniq -D

# 忽略固定列
cat ../data/scores.txt | uniq -f 1 -D

4. awk工具

awk 是一个强大的文本处理工具,适用于数据分析和报告生成。它通过将文件逐行读入,以空格为默认分隔符进行处理。

使用案例:

# 输出一个列表任意行
awk '{print $2}' ../data/blast6.out | head

# 修改分隔符以及输出分隔符
awk -F ":" '{print $1,$NF}' /etc/passwd
awk -F ":" 'OFS="," {print $1,$NF}' /etc/passwd

# 过滤blast结果
awk '{if ($3>=80 && $4>=100) print $0}' ../data/blast6.out

# 统计数目
awk '{if ($3>=80 && $4>=100) print $2}' ../data/blast6.out | sort | uniq | wc

# 输出固定行内容
awk 'NR>=20 && NR<=80' ../data/blast6.out

# fastq转换fasta
zcat demo.fq.gz | awk '{getline l2; getline l3; getline l4; sub("@", ">", $0); print $0 "\n" l2}' | head

5. bioawk

bioawk 是在 awk 基础上增加生物文件处理功能的工具,支持处理 fasta/q、bam、gff、vcf 等格式文件。

使用案例:

# 输出fasta/q名字部分
bioawk -c fastx '{ print $name }' ../data/demo.fastq.gz

# 计算gc含量
bioawk -c fastx '{ print $name, gc($seq) }' ../data/demo.fastq.gz

# 输出CIGAR为deletions的列
samtools view -f 2 demo.bam | bioawk -c sam '$cigar ~ /D/ { print $cigar }' | head

6. csvtk

csvtk 是一个多功能的工具箱,专门用来处理表格数据,支持多种操作,包括统计、转换、编辑等。

使用案例:

# 显示csv文件
cat ../data/testdata/names.csv | csvtk pretty

# 转为markdown
cat ../data/testdata/names.csv | csvtk csv2md

# 用列或列名选择特定列
cat ../data/testdata/names.csv | csvtk cut -f 3,1

7. datamash

datamash 是一个命令行工具,能对数据进行各种处理,如四则运算、统计检验、分组计算等。

使用案例:

# 计算1-10的和与平均值
seq 10 | datamash sum 1 mean 1

# 按列计算频数
cat ../data/scores.txt | datamash groupby 2 count 2

这些工具在数据处理和生物信息分析中非常实用,各具特色,能够满足不同的数据处理需求。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值