rosalind練習(xí)題二十八

# Problem

# An array is a structure containing an ordered collection of objects (numbers, strings, other arrays, etc.). We let A[k] denote the k-th value in array A. You may like to think of an array as simply a matrix having only one row.

# A random string is constructed so that the probability of choosing each subsequent symbol is based on a fixed underlying symbol frequency.

# GC-content offers us natural symbol frequencies for constructing random DNA strings. If the GC-content is x, then we set the symbol frequencies of C and G equal to x2 and the symbol frequencies of A and T equal to 1?x2. For example, if the GC-content is 40%, then as we construct the string, the next symbol is 'G'/'C' with probability 0.2, and the next symbol is 'A'/'T' with probability 0.3.

# In practice, many probabilities wind up being very small. In order to work with small probabilities, we may plug them into a function that "blows them up" for the sake of comparison. Specifically, the common logarithm of x (defined for x>0 and denoted log10(x)) is the exponent to which we must raise 10 to obtain x.

# See Figure 1 for a graph of the common logarithm function y=log10(x). In this graph, we can see that the logarithm of x-values between 0 and 1 always winds up mapping to y-values between ?∞ and 0: x-values near 0 have logarithms close to ?∞, and x-values close to 1 have logarithms close to 0. Thus, we will select the common logarithm as our function to "blow up" small probability values for comparison.

# Given: A DNA string s of length at most 100 bp and an array A containing at most 20 numbers between 0 and 1.

# Return: An array B having the same length as A in which B[k] represents the common logarithm of the probability that a random string constructed with the GC-content found in A[k] will match s exactly.

# Sample Dataset

# ACGATACAA

# 0.129 0.287 0.423 0.476 0.641 0.742 0.783

# Sample Output

# -5.737 -5.217 -5.263 -5.360 -5.958 -6.628 -7.009

# 給定一個最長為100個堿基對的DNA字符串s和一個包含最多20個介于0和1之間的數(shù)字的數(shù)組A。要求返回一個與A具有相同長度的數(shù)組B,其中B[k]表示在使用A[k]中的GC含量構(gòu)建的隨機(jī)字符串與s完全匹配的概率的常用對數(shù)产捞。

import math

def compute_log(s, A):

? ? # 計算堿基的頻率

? ? freq = {'A': 0, 'T': 0, 'G': 0, 'C': 0}

? ? for base in s:

? ? ? ? freq[base] += 1

? ? # 初始化結(jié)果數(shù)組B

? ? B = []

? ? # 計算每個GC含量對應(yīng)的概率

? ? for gc_content in A:

? ? ? ? # 計算AT和GC堿基的期望數(shù)量

? ? ? ? at_count = (1 - gc_content) / 2

? ? ? ? gc_count = gc_content / 2

? ? ? ? # 計算與s完全匹配的概率

? ? ? ? prob = (at_count ** freq['A']) * (at_count ** freq['T']) * (gc_count ** freq['G']) * (gc_count ** freq['C'])

? ? ? ? # 取對數(shù)并將結(jié)果添加到數(shù)組B中

? ? ? ? log_prob = math.log10(prob)

? ? ? ? B.append(log_prob)

? ? return B

# 測試樣例

s = "ACGATACAA"

A = [0.129, 0.287, 0.423, 0.476, 0.641, 0.742, 0.783]

result = compute_log(s, A)

print(result)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末偏序,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子改艇,更是在濱河造成了極大的恐慌收班,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谒兄,死亡現(xiàn)場離奇詭異摔桦,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)承疲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門邻耕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人燕鸽,你說我怎么就攤上這事兄世。” “怎么了啊研?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵御滩,是天一觀的道長鸥拧。 經(jīng)常有香客問我,道長削解,這世上最難降的妖魔是什么富弦? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮氛驮,結(jié)果婚禮上腕柜,老公的妹妹穿的比我還像新娘。我一直安慰自己柳爽,他們只是感情好媳握,可當(dāng)我...
    茶點故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著磷脯,像睡著了一般蛾找。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赵誓,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天打毛,我揣著相機(jī)與錄音,去河邊找鬼俩功。 笑死幻枉,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的诡蜓。 我是一名探鬼主播熬甫,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蔓罚!你這毒婦竟也來了椿肩?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤豺谈,失蹤者是張志新(化名)和其女友劉穎郑象,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體茬末,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡厂榛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丽惭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片击奶。...
    茶點故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖责掏,靈堂內(nèi)的尸體忽然破棺而出正歼,到底是詐尸還是另有隱情,我是刑警寧澤拷橘,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布局义,位于F島的核電站喜爷,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏萄唇。R本人自食惡果不足惜檩帐,卻給世界環(huán)境...
    茶點故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望另萤。 院中可真熱鬧湃密,春花似錦、人聲如沸四敞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽忿危。三九已至达箍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間铺厨,已是汗流浹背缎玫。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留解滓,地道東北人赃磨。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像洼裤,于是被迫代替她去往敵國和親邻辉。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容