Pyschools Topic 3 Q 11 - DNA parity check

来源:互联网 发布:淘宝运费补差价怎么弄 编辑:程序博客网 时间:2024/06/10 08:59
<pre style="box-sizing: border-box; color: rgb(51, 51, 51); margin-top: 0px; margin-bottom: 10px; overflow: auto; font-family: monospace, serif; font-size: 14px; padding: 9.5px; line-height: 20px; word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 204, 204); border-radius: 4px; white-space: pre-wrap; background-color: rgb(245, 245, 245);"><span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">>>></span> <span class="k" style="box-sizing: border-box; color: rgb(0, 128, 0); font-weight: bold;">print</span> <span class="n" style="box-sizing: border-box;">pairwiseScore</span><span class="p" style="box-sizing: border-box;">(</span><span class="s" style="box-sizing: border-box; color: rgb(186, 33, 33);">"ATTCGT"</span><span class="p" style="box-sizing: border-box;">,</span> <span class="s" style="box-sizing: border-box; color: rgb(186, 33, 33);">"ATCTAT"</span><span class="p" style="box-sizing: border-box;">)</span>    <span class="n" style="box-sizing: border-box;">ATTCGT</span>    <span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">||</span>   <span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">|</span>    <span class="n" style="box-sizing: border-box;">ATCTAT</span>    <span class="n" style="box-sizing: border-box;">Score</span><span class="p" style="box-sizing: border-box;">:</span> <span class="mi" style="box-sizing: border-box; color: rgb(102, 102, 102);">2</span>     <span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">>>></span> <span class="k" style="box-sizing: border-box; color: rgb(0, 128, 0); font-weight: bold;">print</span> <span class="n" style="box-sizing: border-box;">pairwiseScore</span><span class="p" style="box-sizing: border-box;">(</span><span class="s" style="box-sizing: border-box; color: rgb(186, 33, 33);">"GATAAATCTGGTCT"</span><span class="p" style="box-sizing: border-box;">,</span> <span class="s" style="box-sizing: border-box; color: rgb(186, 33, 33);">"CATTCATCATGCAA"</span><span class="p" style="box-sizing: border-box;">)</span>    <span class="n" style="box-sizing: border-box;">GATAAATCTGGTCT</span>     <span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">||</span>  <span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">|||</span>  <span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">|</span>       <span class="n" style="box-sizing: border-box;">CATTCATCATGCAA</span>    <span class="n" style="box-sizing: border-box;">Score</span><span class="p" style="box-sizing: border-box;">:</span> <span class="mi" style="box-sizing: border-box; color: rgb(102, 102, 102);">4</span>     <span class="o" style="box-sizing: border-box; color: rgb(102, 102, 102);">>>></span>
#这个是经典的方法
def pairwiseScore(seqA, seqB):    score = 0    prevMatch = ""    for (A, B) in zip(seqA, seqB):        if A == B: #决定加多少分            score += 3 if len(prevMatch) > 0 and prevMatch[-1] == '|' else 1        else:            score -= 1        prevMatch += '|' if (A == B) else ' '#决定是否给|    return "{}\n{}\n{}\nScore: {}".format(seqA, prevMatch, seqB, score)print (pairwiseScore("ATTCGT", "ATCTAT"))
#下面这个是方便阅读的和上面的相同
def pairwiseScore(seqA, seqB):    score = 0    prevMatch = ""    for (A,B) in zip (seqA,seqB):        if A == B:            if len(prevMatch) > 0 and prevMatch[-1] == '|':                score += 3            else:                score += 1        else:            score -= 1         if A == B:             prevMatch += '|'        else:            prevMatch += ' '    return "{}\n{}\n{}\nScore: {}".format(seqA, prevMatch, seqB, score)print (pairwiseScore("ATTCGT", "ATCTAT"))

0 0
原创粉丝点击