本文介绍了AWK和规律的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个序列,例如:
> sequence.fasta
GATCCAAAACACATTCTCCCTGGTAGCATGGACAAGCAACATTTTGGGAGAAATGGAGCAAAAAAACATA
AACTTCACAGTAACAAACATAAACACTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTC
TCTCTCTCCACACACACACACACTCGCACTCACAGCCTCACAACACAGGTATACATGTTTACTTAGGTCA
CTCAGAATTGTAAACTGTAAGTGTGCCTTGCAAAGAACCACTGCTCCTTACAGTGAGCAGTGCTTACCTG
和与此code:
的awk'{如果(!NR = 1){printf的$ 0}}'sequence.fasta | AWK'{子(/ ATG /\\ n&安培;)} 1 | awk的'NR == 2|折叠-w 60 | AWK'{GSUB(/.../,\"&安培;)} 1'
我产生这种输出(例子):
ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ACG ATG CAT ACT TAG AAT
GCT TTT TAG GCA ATC TTC AAG AGT ATT TTA CTT CTA TTG AAA ATA AAT AAA TAA ATT CAA
ATT TTA TTC TTA AAA ATC TAT AAT TTT TTG TAT TAA CCA AAC TTA AAT CAA ATC GTA AGG
GCT GTT AGA TAA GAT AGG TGA TAT TTC TCA AGA AGT TTT ACA TTT TAT AAT GCT CTC CAA
ATG ATC TTA ATG GTT AAA TCT AAG TTT TTA TTC TTA CCT GTA TGA AAA TAC AAA GTT TAT
我想找到TAA,TGA或TAG,并有从一个元素(ATG)的输出为TAATGA或TAG...所需的输出:
ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ATG TGA
解决方案
使用这个code。通过自己解决:
的awk'{为(i = 1; I< = NF;我++){printf的$ I;如果($ I〜/ TAA / || $ I〜/标签/ || $ I〜/ TGA /){退出}}}
I have a sequence, for example:
>sequence.fasta
GATCCAAAACACATTCTCCCTGGTAGCATGGACAAGCAACATTTTGGGAGAAATGGAGCAAAAAAACATA
AACTTCACAGTAACAAACATAAACACTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTCTC
TCTCTCTCCACACACACACACACTCGCACTCACAGCCTCACAACACAGGTATACATGTTTACTTAGGTCA
CTCAGAATTGTAAACTGTAAGTGTGCCTTGCAAAGAACCACTGCTCCTTACAGTGAGCAGTGCTTACCTG
and with this code:
awk '{if (NR!=1) {printf $0}}' sequence.fasta | awk '{sub(/ATG/, "\n&")}1' | awk 'NR==2' | fold -w 60 | awk '{gsub(/.../,"& ")}1'
I produce this output (an example):
ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ATG ACG ACT CAT TAG AAT
GCT TTT TAG GCA ATC TTC AAG AGT ATT TTA CTA CTT TTG AAA ATA AAT AAA TAA ATT CAA
ATT TTA TTC TTA AAA ATC TAT AAT TTT TTG TAT TAA CCA AAC TTA AAT ATC CAA GTA AGG
GCT GTT AGA TAA GAT AGG TGA TAT TTC TCA AGT AGA TTT ACA TTT TAT AAT GCT CTC CAA
ATG ATC TTA ATG GTT AAA TCT AAG TTT TTA TTC TTA CCT GTA TGA AAA TAC AAA GTT TAT
I'd like to find "TAA", "TGA" or "TAG", and have an output from first element (ATG) to "TAA, "TGA" or "TAG"... The desired output:
ATG TTA ACT TTT ACA TGT TAC CTT TTG ATG TGT GAT GAG AAG ATG TGA
解决方案
Solved by myself using this code:
awk '{for (i=1; i<=NF; i++) {printf $i" "; if ($i~/TAA/ || $i~/TAG/ || $i~/TGA/) {exit}}}'
这篇关于AWK和规律的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!