I'm noobie in bioinformatics. I use
Bio.codonalign.codonseq with method 'NG86'. Sometimes I get dS=-1. What does it mean? How can number of substitutions be negative? Does it mean that something is wrong with my data?
1) Chris_Rands pointed to sources, I read them already, but the question remain. What is that
ps variable, and why if it's greater than 3/4, dS = -1?
2) Some more details.
cal_dn_ds requires sequences from
CodonAlignment object, which is created by function
Bio.codonalign.build that requires (quote from docs)
protein alignment and corresponding nucleotides. I have nucleotide sequences from NCBI at the beginning. So I trim non-coding regions from nucleotide sequences, translate all trimmed sequences, write them to a file, perform multiple alignment of the protein sequences, and then pass the list of aligned protein sequences and the list of nucleotide sequences to the
I analize protein DKK1, and example sequences that get negatives are Empidonax traillii XM_027898752.1 and Physeter catodon XM_007110600.1. But I just want to understand general idea behind dS = -1, what can it mean it different cases.
3) Michael G. gave an interesting suggestion that it means zero, but it's strange because the function returns dN and dS separately, so Biopython might as well return zero, so the user would handle those cases himself. And for some sequences Biopython actually returns normal positive dS and dN = 0 at the same time. If it's an error, what are the possible causes? And why in those error cases Biopython can calculate dN, but dS is -1?