3
$\begingroup$

I'm currently working aligning sequences, and I need to compute similarity between pairs of DNA 'words' of a particular length.

For amino acids I am able to use the substitution matrices in Biopython (Bio.SubsMat.MatrixInfo).

However, I haven't found anything similar for DNA, so I read up and found that most systems use a match/mismatch scoring system where each nucleotide match and mismatch is scored and then the scores are summed. This works fine as long as I am only dealing with A, G, C, and T, but I run into problems when I get a sequence containing N or M and the like (meaning nucleotide unknown).

Is there a standard way to handle the situation with unknowns? That is, how do I score A versus N or M versus N?

Thanks in advance.

$\endgroup$
2
$\begingroup$

BLASTN does not use a substitution matrix. There are scores for match, mismatch and gaps which you can also define.

There is no feature available as of now to allow scoring of matches against unknowns. They are considered mismatches (as shown below). If these unknown are in the middle of a HSP, then you can probably re-score the HSP according to your scheme using a python script. If the N stretch is disrupting the HSP, then you can try relaxing the mismatch penalties and reduce word size (basically reduce stringency). I can't think of any other solution.

Query  1    CAGCGTCCANNTCCCGAGGTGCCGGGATTGCAGACGGAGTCTGGTTCACTCAGTGCTCAA  60
            |||||||||  |||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct  8    CAGCGTCCACCTCCCGAGGTGCCGGGATTGCAGACGGAGTCTGGTTCACTCAGTGCTCAA  67

Query  61   TGGTGCCCAGGCTGGAGTGCAGTGGCGTGATCTCGGCTCGCTACANNCTCCACCTCCCAG  120
            |||||||||||||||||||||||||||||||||||||||||||||  |||||||||||||
Sbjct  68   TGGTGCCCAGGCTGGAGTGCAGTGGCGTGATCTCGGCTCGCTACAACCTCCACCTCCCAG  127

Query  121  CCGCCTGCCCTGGCCTCCCAAAGTGCCGAGATTGCAGCCTCTGCCCAGCCGCCACCCC  178
            ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Sbjct  128  CCGCCTGCCCTGGCCTCCCAAAGTGCCGAGATTGCAGCCTCTGCCCAGCCGCCACCCC  18
$\endgroup$
  • $\begingroup$ I understand that, I'm using the term matrix because I am handling it with one programatically, but I'm generating it with said match and mismatch values. I'll modify the question to be more specific on what I want. $\endgroup$ – Chris Chambers Sep 18 '15 at 22:57
  • $\begingroup$ @ChrisChambers Edited. But I'm afraid what you are looking for is not possible without additional scripting. $\endgroup$ – WYSIWYG Sep 18 '15 at 23:22
  • $\begingroup$ "They are considered mismatches (as shown below)" This is what I wanted to know. So basically, if I run into any nucleotide that is not specifically specified (i.e. N, M, etc), it's automatically a mismatch. It doesn't matter if I'm comparing N with M, or N with A, etc etc etc, it's a mismatch, correct? That's all I need to know as I'm working on implementing scoring to determine similar words for alignment. $\endgroup$ – Chris Chambers Sep 18 '15 at 23:35

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.