Hi,
I'm developing a protein weight matrix from scratch to use with MUSCLE. I started with the 20 amino acids and the stop character, but using just those, I get a warning from MUSCLE that makes no sense^. But if I add a row & column for the amino acid code 'X' (with all 0s - everything else ranges from 1-25), the warning goes away. However, even though the sequences I'm aligning have no occurrences of 'X', the alignments produced using the matrix without 'X' and the matrix with 'X' are different. I don't understand why that is.
How do alignment algorithms treat 'X' in the weight matrix when there are no X's in the sequences being aligned? Why would an alignment produced using a matrix with 'X' versus an alifgnment produced using a matrix without 'X' be different? Are there weights I can insert for 'X' in the matrix that would not affect the alignment?
Side question - I don't have 'B' or 'Z' in my matrix either (nor do they occur in my sequences). Do they need to be in the matrix for the alignment software to yield good results?
^ The warning from muscle is "** WARNING * Matrix is not symmetrical, ?->?=5, ?->?=0". This doesn't make sense for 3 reasons: 1. the matrix is symmetrical. 2. There were no 0s in my matrix when the warning occurred. 3. Simply adding a row/column for 'X' silenced the warning. I looked briefly at the code in muscle where the warning is generated and it's simply checking that matrix[i][j] == matrix[j][i]. The fact that there's an item that doesn't match is unsettling. Perhaps this is a hidden requirement that 'X' must* be present in the matrix - but still, why would the alignment change with/without it?
By the way, despite the warning, my alignments are achieving the desired affect I was shooting for, so I'm unsure as to what degree the cause of the warning is affecting my output.