前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux学习笔记-Day13

Linux学习笔记-Day13

原创
作者头像
用户11190095
发布2024-07-28 15:24:59
1100
发布2024-07-28 15:24:59
举报
文章被收录于专栏:生信学习笔记

生物信息学常见格式

fasta

一种基于文本用于表示核酸序列或多肽序列的格式

fna, faa, fas, fa, fasta

分为两部分:id行序列行

id行:以>开头,有时包含注释信息

序列行:一个字母代表一个碱基/氨基酸,为ATCGN或20种氨基酸。#N代表在测序中无法确定具体是什么碱基

fastq

保存生物序列(通常为核酸序列)及其测序质量得分信息的文本格式,通常由四行组成

第一行:以@开头,之后为序列的标识符以及描述信息

第二行:序列信息,ATCG

第三行:+开头,保留行,可能再次出现序列的标识及描述信息

第四行:为碱基质量值,与第二行的序列相对应,长度必须与第二行相同,#H、I、G

gff

基因组注释文件,共9列

seqname:序列的名称。通常格式为染色体id或contig id

source:注释来源。通常是预测软件名或公共数据库

feature:基因结构:transcript, gene, exon, CDS, start_codon, stop_codon, UTR...

start:起始位置。从1开始计数

end:终止位置。#始终为从5'到3'记录

score:这一列的值对该类型存在性和坐标的可信度,可用·代替

strand:正向和负向,+、-

frame:密码子偏移,0、1、2

attributes:属性,一个包含众多属性的列表,格式为“标签=值”(tag=value),不同属性间用“;”分割。#必须有gene_id和transcript_id

对齐文本命令

column -t

文本处理

grep:文本搜索

利用正则表达式匹配模式搜索文本,并打印匹配的行

格式:grep options pattern file

常见参数

-w:word,精确查找某个关键词pattern。#前后是符号也有可能被识别为单独的单词。#前后为字母/数字会导致符号不被识别

-c:统计匹配成功的行的数量。#仅显示行数而非匹配个数

-v:反向选择,即输出没有匹配的行。

-n:显示匹配成功的行的行号

-r:从目录中查找pattern

-e:指定多个匹配模式。#查找多个关键词,需要多次输入-e。#可利用-f或'gene|UTR'

-f:从指定文件中读取要匹配的pattern。#可将需要查找的关键词保存在文件中,然后利用该文件查找

-i:忽略大小写

-E:开启扩展正则表达式模式

正则表达式

对字符串进行操作的一种逻辑公式,用事先定义好一些特定字符及这些特定字符

^:行首

$:行尾

.:换行符之外的任意单个字符

?:匹配之前项的0次或一次。#使用时应为"f\?ee",否则会被认为是搜索“?”这个字符。#或grep -E。

+:匹配之前项1次或多次。#同上。

*:匹配之前项0次或多次。#无需扩展正则。

[]:匹配任意一个字符

^:排除字符。#例:^Tt

|:或。#使用时需要扩展正则!

sed:流编辑器

用来对文件进行增删改查

用法:

sed -options 'script' file(s)

'script' = address command

#常见address:#address指原始位置

2:第二行

2,4:第二行到第四行

2,$:第二行到最后一行

2~3:第二行开始,每隔三行取一行,2、5、8

2,+4:第二行到2+4行

/pattern/匹配上pattern的行

!:反选,'2!'表示除了第二行

#常见command:

a∶append,在指定行的后面加一行,内容为a后面的字符串#不会实际改变文档内容

i∶insert,在指定行的前面加一行,内容为i后面的字符串#同上

d∶delete,删除某一行或某几行,也可删除匹配上的行#可用于去掉标题行

c∶change,改变指定行的内容

s∶更改或替换字符串 's/pattern/new/flags' ,将pattern 替换成new,可以指定flags#flag默认为1,可以为2、3或g

转换为大写:'s/a-z/\U&/g'

y∶转换,实现字符一对一转换。‘y/abc/ABC/',前后字符数应当一致。#特殊字符也会被当作字符进行替换

p∶print,把匹配或修改过的行打印出来,常与–n共同使用。#具体用法示例见-n。

#常见参数:

-e:直接在命令模式上进行sed的动作编辑,接要执行的一个或多个命令

-f:执行含有sed动作的文件

-r:sed的动作支持的扩展正则(默认基础正则)

-i:直接修改读取的文件内容,不输出(可以真正修改文件内容)

-n:禁止显示所有的输入内容,只显示经过sed处理的行

查找:cat readme.txt | sed -n '/ee/p'

使用示例(作业):

md5sum -c $(cat file3 | sed '1d') sed -i '1d' file3

awk:也称gawk,编程语言,可对文本和数据进行处理

外面用'',里面用""

常见参数:

-F:fields,设置字段分隔符#默认分隔符为任意空白字符,即空格或制表符

用法:

awk options '{script}' file

基础结构:'{script}'

匹配结构:'/pattern/{script}'

扩展结构:'BEGIN{script}{script}END{script}'

例如:'{print $9:$10@$11}'#可自定义输出分隔符,若行选择间输入“,”则默认为空格

awk在读取一行文本时,会用预定义的字段分隔符划分每个数据字段,并分配给一个变量。

#$0代表整个文本行

#$1代表文本行中的第一个数据字段

#$NF代表文本行中的最后一个数据字段

awk默认的字段分隔符是任意空白字符

awk内置变量

FS:定义输入字段分隔符,Field Separator,同-F

RS:定义输入记录分隔符,Record Separator

OFS:定义输出字段分隔符,Out Field Separator

ORS:定义输出记录分隔符,Out Field Separator

NF:数据文件中的字段总数,可以简单理解为列数

NR:已处理的输入记录数,可以简单理解为行数

示例

1* 设置OFS以定义输出字段分隔符:

cat Data/example.gtf | awk'BEGIN{OFS=":"}{print $3,$4,$5}' | head -5

2* 使用NR来打印行号:

cat Data/example.gtf | awk'BEGIN{FS="\t";OFS=":"}{print NR,$9}' | head -5

循环语句

awk '{if()操作}' awk '{if(){yes} else{no}}' awk '{for(){循环语句}}'

引用自生信技能树

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 生物信息学常见格式
    • fasta
      • fastq
        • gff
          • 对齐文本命令
      • 文本处理
        • grep:文本搜索
          • 正则表达式
        • sed:流编辑器
          • awk:也称gawk,编程语言,可对文本和数据进行处理
            • awk内置变量
            • 循环语句
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档