Change translate function to deal with start codons

Former-commit-id: 8d15cb5175de1774a1cb366f7a92ef99f8517af5
Former-commit-id: 58421d7b8dd6855efe9770499e48a4cca6d9e1fd
This commit is contained in:
2023-04-29 07:07:03 +02:00
parent 7866457712
commit 031e18a8bd

View File

@ -98,6 +98,14 @@ function _AssertCode(name, _local_, n, i1, i2, i3, b1, b2, b3) {
for (i3 = 1 ; i3 <= 4 ; i3++) { for (i3 = 1 ; i3 <= 4 ; i3++) {
b3 = substr(_NucOrder, i3, 1) b3 = substr(_NucOrder, i3, 1)
_GenCod[name][b1 "" b2 "" b3] = substr(_Cod2Aa[name], ++n, 1) _GenCod[name][b1 "" b2 "" b3] = substr(_Cod2Aa[name], ++n, 1)
if (name in _Cod2Start) {
_GenStart[name][b1 "" b2 "" b3] = substr(_Cod2Start[name], n, 1)
if (_GenStart[name][b1 "" b2 "" b3] == "-") {
_GenStart[name][b1 "" b2 "" b3] = _GenCod[name][b1 "" b2 "" b3]
}
} else {
_GenStart[name][b1 "" b2 "" b3] = _GenCod[name][b1 "" b2 "" b3]
}
} }
} }
} }
@ -105,16 +113,24 @@ function _AssertCode(name, _local_, n, i1, i2, i3, b1, b2, b3) {
return 1 return 1
} }
function Translate(seq, codname, _local_, n, i, c, p) { function Translate(seq, modif, codname, _local_, n, i, c, p) {
if (codname == 0) codname = "universal" if (codname == 0) codname = "universal"
print "u codname " codname " " _Cod2Aa[name]
p= ""
_AssertCode(codname) _AssertCode(codname)
seq = toupper(seq) seq = toupper(seq)
n = length(seq) n = length(seq)
p = ""
for (i = 1 ; i <= n ; i += 3) { for (i = 1 ; i <= n ; i += 3) {
c = substr(seq, i, 3) c = substr(seq, i, 3)
p = p "" ((c in _GenCod[codname]) ? _GenCod[codname][c] : "X") if (i == 1 && modif == "=" )
aa = ((c in _GenStart[codname]) ? _GenStart[codname][c] : "X")
else
aa = ((c in _GenCod[codname]) ? _GenCod[codname][c] : "X")
p = p "" aa
} }
return p return p
} }
@ -168,6 +184,7 @@ BEGIN {
#2 AAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTT #2 AAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTT
#3 ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT #3 ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
_Cod2Aa["universal"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF" _Cod2Aa["universal"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF"
_Cod2Aa["chloroplast"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF"
_Cod2Aa["mito-yeast"] = "KNKNTTTTRSRSMIMIQHQHPPPPRRRRTTTTEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF" _Cod2Aa["mito-yeast"] = "KNKNTTTTRSRSMIMIQHQHPPPPRRRRTTTTEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF"
_Cod2Aa["mito-vertebrates"] = "KNKNTTTT*S*SMIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF" _Cod2Aa["mito-vertebrates"] = "KNKNTTTT*S*SMIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF"
_Cod2Aa["mito-insects"] = "KNKNTTTTSSSSMIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF" _Cod2Aa["mito-insects"] = "KNKNTTTTSSSSMIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF"
@ -176,4 +193,10 @@ BEGIN {
_Cod2Aa["ciliata"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVQYQYSSSS*CWCLFLF" _Cod2Aa["ciliata"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVQYQYSSSS*CWCLFLF"
_Cod2Aa["euplotes"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSCCWCLFLF" _Cod2Aa["euplotes"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSCCWCLFLF"
_Cod2Aa["candida"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRXLSLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF" _Cod2Aa["candida"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRXLSLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF"
#1 AAAAAAAAAAAAAAAACCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGTTTTTTTTTTTTTTTT
#2 AAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTT
#3 ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT
_Cod2Start["universal"] = "------------M-----------------M-------------------------------M-"
_Cod2Start["chloroplast"] = "------------MMMM--------------M---------------M---------------M-"
} }