【ROSALIND】【練Python,學(xué)生信】63 Wobble配對(duì)與RNA二級(jí)結(jié)構(gòu)

如果第一次閱讀本系列文檔請(qǐng)先移步閱讀【ROSALIND】【練Python,學(xué)生信】00 寫在前面 ?謝謝配合~

題目:
Wobble配對(duì)與RNA二級(jí)結(jié)構(gòu)(Wobble Bonding and RNA Secondary Structures)
?
Given: An RNA string s (of length at most 200 bp).
所給:一條不超過200bp的RNA序列s。
Return: The total number of distinct valid matchings of basepair edges in the bonding graph of s. Assume that wobble base pairing is allowed.
需得:在允許wobble配對(duì)的前提下,s所有符合要求匹配的數(shù)目。
?
測(cè)試數(shù)據(jù)
AUGCUAGUACGGAGCGAGUCUAGCGAGCGAUGUCGUGAGUACUAUAUAUGCGCAUAAGCCACGU
測(cè)試輸出
284850219977421
?
生物學(xué)背景
? ? ? ? 在之前的多道題目中,我們已經(jīng)討論了如何計(jì)算RNA的二級(jí)結(jié)構(gòu)。本題中,我們將在47 默慈金數(shù)和RNA二級(jí)結(jié)構(gòu)的基礎(chǔ)上添加兩個(gè)條件,使計(jì)算結(jié)果更加可靠。
? ? ? ??在經(jīng)典的堿基配對(duì)方式之外,還有一種配對(duì)被稱為wobble配對(duì),即尿嘧啶除了與腺嘌呤配對(duì),還可以在一些情況下與鳥嘌呤發(fā)生結(jié)合。因此,本題我們首先在之前的基礎(chǔ)上允許尿嘧啶與鳥嘌呤配對(duì)。
? ? ? ??第二點(diǎn)是相鄰的核苷酸由于位阻效應(yīng)無法進(jìn)行配對(duì),因此除非除非k≥j+4,否則RNA鏈上第k個(gè)和第j個(gè)核苷酸不能進(jìn)行配對(duì)。
?
思路
? ? ? ??由于有47 默慈金數(shù)和RNA二級(jí)結(jié)構(gòu)的基礎(chǔ),本題較為簡單,只需要對(duì)之前的代碼稍作修改即可。具體請(qǐng)參考下面的代碼,或查閱之前的專欄47 默慈金數(shù)和RNA二級(jí)結(jié)構(gòu)。
?
代碼