我具有根據得分的顏色序列的AWK腳本分配顏色序列修改awk程序,它 顏色上RGB模式中的殘基,並且這些序列可以使用一些軟件。問題是可視化腳本顏色紅更高的分數範圍,綠色代表中,白色低range.I想改變它的方式,使其分配紅色小範圍,,藍色中間,,,或者換句話說,我希望腳本以另一種方式工作,從低到高從高到低......我如何處理這個問題。我是一名生物學家,我不知道awk是如何工作的。請幫助我解決這個問題。,基於它們的值
着色是基於此。 http://www.pymolwiki.org/index.php/Spectrum
/usr/bin/awk -v aa_shift=$2 '
BEGIN{
r1=1; g1=1; b1=1;
r2=1; g2=1; b2=0;
r3=1; g3=0; b3=0;
maxfrq=-1*10000;
minfrq=1*10000;
aan=0;
}
{
if ($1!="" && $2!="") {
aan++;
aa_ind[aan]=1.0*$2;
aa_frq[aan]=1.0*$3;
}
}
END{
for(i=1;i<=aan;i++) {
if(aa_frq[i]>maxfrq) {
maxfrq=aa_frq[i];
}
if(aa_frq[i]<minfrq) {
minfrq=aa_frq[i];
}
}
half=(maxfrq-minfrq)/2
for(i=1;i<=aan;i++) {
aa_frq[i]=aa_frq[i]-minfrq
if (aa_frq[i]<half) {
fraction=aa_frq[i]/half
aa_r[i]=r1+fraction*(r2-r1)
aa_g[i]=g1+fraction*(g2-g1)
aa_b[i]=b1+fraction*(b2-b1)
} else {
fraction=(aa_frq[i]-half)/half
aa_r[i]=r2+fraction*(r3-r2)
aa_g[i]=g2+fraction*(g3-g2)
aa_b[i]=b2+fraction*(b3-b2)
}
print "set_color c" i ", [" aa_r[i] "," aa_g[i] "," aa_b[i] "]"
print "color c" i ", resi " aa_ind[i]+aa_shift " and prot"
}
}' $1
腳本使用序列及其分值,例如具有比分53.8第一序列A將被着色爲紅色和得分最低的序列L被着色爲白色或任何顏色較淺,但我想它們上色改爲紅色並更改順序。
sequence no. score
A 394 53.8314
E 395 12.7202
L 396 4.5191
L 397 22.1270
Q 398 47.6526
在此先感謝您的寶貴建議。
我看不出這是怎麼回事綠色,至於分數小於它開始於平均[1,1,1](白色)的範圍爲[1,1,0](黃色),和上述從[1,1,0]到範圍的平均[1,0, 0](紅色);紅色組件永遠不會變化。 – cmbuckley 2012-01-02 17:54:48