From 031e18a8bd13ed2dedd0038be25e1c803bec111e Mon Sep 17 00:00:00 2001 From: Eric Coissac Date: Sat, 29 Apr 2023 07:07:03 +0200 Subject: [PATCH] Change translate function to deal with start codons Former-commit-id: 8d15cb5175de1774a1cb366f7a92ef99f8517af5 Former-commit-id: 58421d7b8dd6855efe9770499e48a4cca6d9e1fd --- detectors/cds/lib/libutil.awk | 29 ++++++++++++++++++++++++++--- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/detectors/cds/lib/libutil.awk b/detectors/cds/lib/libutil.awk index bbce5f8..0a29901 100644 --- a/detectors/cds/lib/libutil.awk +++ b/detectors/cds/lib/libutil.awk @@ -98,6 +98,14 @@ function _AssertCode(name, _local_, n, i1, i2, i3, b1, b2, b3) { for (i3 = 1 ; i3 <= 4 ; i3++) { b3 = substr(_NucOrder, i3, 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 } -function Translate(seq, codname, _local_, n, i, c, p) { +function Translate(seq, modif, codname, _local_, n, i, c, p) { if (codname == 0) codname = "universal" + print "u codname " codname " " _Cod2Aa[name] + p= "" _AssertCode(codname) seq = toupper(seq) + n = length(seq) - p = "" for (i = 1 ; i <= n ; 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 } @@ -168,6 +184,7 @@ BEGIN { #2 AAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTT #3 ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT _Cod2Aa["universal"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF" + _Cod2Aa["chloroplast"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF" _Cod2Aa["mito-yeast"] = "KNKNTTTTRSRSMIMIQHQHPPPPRRRRTTTTEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF" _Cod2Aa["mito-vertebrates"] = "KNKNTTTT*S*SMIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF" _Cod2Aa["mito-insects"] = "KNKNTTTTSSSSMIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSWCWCLFLF" @@ -176,4 +193,10 @@ BEGIN { _Cod2Aa["ciliata"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVVQYQYSSSS*CWCLFLF" _Cod2Aa["euplotes"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRLLLLEDEDAAAAGGGGVVVV*Y*YSSSSCCWCLFLF" _Cod2Aa["candida"] = "KNKNTTTTRSRSIIMIQHQHPPPPRRRRXLSLEDEDAAAAGGGGVVVV*Y*YSSSS*CWCLFLF" + + #1 AAAAAAAAAAAAAAAACCCCCCCCCCCCCCCCGGGGGGGGGGGGGGGGTTTTTTTTTTTTTTTT + #2 AAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTTAAAACCCCGGGGTTTT + #3 ACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGTACGT + _Cod2Start["universal"] = "------------M-----------------M-------------------------------M-" + _Cod2Start["chloroplast"] = "------------MMMM--------------M---------------M---------------M-" }