最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

【ROSALIND】【練Python,學(xué)生信】70 用質(zhì)譜結(jié)果匹配蛋白

2023-05-10 15:15 作者:未琢  | 我要投稿

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

題目:

用譜圖匹配蛋白(Matching a Spectrum to a Protein)


Given: A positive integer n followed by a collection of n protein strings s1, s2, ..., sn and a multiset R of positive numbers (corresponding to the complete spectrum of some unknown protein string).

所給:一個正整數(shù)n、一組蛋白序列(編號為s1、s2……sn),以及一個多重集R(集合中的元素均為正數(shù),對應(yīng)于某未知蛋白的全譜)。

Return: The maximum multiplicity of R?S[sk] taken over all strings sk, followed by the string sk for which this maximum multiplicity occurs (you may output any such value if multiple solutions exist).

需得:在所有蛋白序列sk?R能得到的最大重數(shù),以及得到最大重數(shù)的序列sk(如果有多個結(jié)果,返回一個即可)。

?

測試數(shù)據(jù)

4

GSDMQS

VWICN

IASWMQS

PVSMGAD

445.17838

115.02694

186.07931

314.13789

317.1198

215.09061

測試輸出

3

IASWMQS

?

生物學(xué)背景

? ? ? ? 在分析蛋白質(zhì)組學(xué)數(shù)據(jù)時,我們有很多蛋白質(zhì)數(shù)據(jù)庫作為參考。在拿到譜圖數(shù)據(jù)后,在這些數(shù)據(jù)庫中搜索具有高度相似譜的已知蛋白質(zhì),利用這種方式,可以在不同物種中鑒定出相似的蛋白,幫助我們研究蛋白質(zhì)的功能。

? ? ? ??在54?譜卷積與質(zhì)譜結(jié)果比較中,我們了解了譜卷積及其在衡量不同質(zhì)譜結(jié)果相似性中的作用。本題中我們想用這種思路從數(shù)據(jù)庫中比對出相似的蛋白,通過譜卷積,找到數(shù)據(jù)庫中各蛋白在偏移后與待測蛋白最多重合的數(shù)量,從而選擇出最相似的蛋白。

?

數(shù)學(xué)背景

? ? ? ??多重集的背景知識參考54?譜卷積與質(zhì)譜結(jié)果比較

? ? ? ??序列的完全譜(complete spectrum)是包含序列所有前綴和后綴的多重集。

?

思路

? ? ? ??本題的代碼來自https://github.com/fedeoliv/Rosalind-Problems/blob/master/prsm.py。代碼寫得非常簡練,包含多個函數(shù),我們來以函數(shù)調(diào)用順序梳理一下思路。

? ? ? ??首先,在main函數(shù)部分,大佬將蛋白序列和多重集R作為參數(shù)傳入get_max_multiplicity函數(shù)中,可以看到,該函數(shù)返回的結(jié)果就是我們想要的最大重數(shù)和序列。

? ? ? ??在get_max_multiplicity函數(shù)中,蛋白序列被挨個取出來輸入get_substrings函數(shù)中,這個函數(shù)的作用是把序列所有的子串,其中含有yield,每次運行到y(tǒng)ield,該函數(shù)就會返回一個子串到get_max_multiplicity函數(shù)的p上,p又被傳入protein_weight函數(shù)。protein_weight函數(shù)的作用是計算每個子串的相對分子量,計算完成后,把結(jié)果又返回去,保存在列表pset中。然后繼續(xù)向下運行,從get_substrings上次返回的yield下面繼續(xù)運行,至又返回一個子串,如此實現(xiàn)循環(huán)。直到序列所有子串的相對分子質(zhì)量都被算出來。

? ? ? ??接下來,多重集R和子串的相對分子質(zhì)量都作為參數(shù)傳入get_largest_multiplicity函數(shù)中,這個函數(shù)的目的是將這兩個集合中所有可能的值取出來相減,保存在diff中,為了實現(xiàn)這個功能,還需要調(diào)用一個函數(shù)get_values,此函數(shù)調(diào)用了operator模塊中的方法,用兩個循環(huán)將兩個集合中所有的元素都做了相減運算。返回到get_largest_multiplicity函數(shù)中后,利用Counter函數(shù)統(tǒng)計每個元素出現(xiàn)的頻率,以字典的形式儲存。在返回結(jié)果時,只返回最大重數(shù)的結(jié)果和序列。

? ? ? ??運行完這些,我們又回到了get_max_multiplicity函數(shù)中,將返回的結(jié)果與此時output中保存的結(jié)果相比較,若重數(shù)大于或等于已有結(jié)果,就用新的結(jié)果覆蓋掉output中的內(nèi)容。等所有序列都過一遍后,輸出output中的結(jié)果,即為所求。

?

代碼


【ROSALIND】【練Python,學(xué)生信】70 用質(zhì)譜結(jié)果匹配蛋白的評論 (共 條)

分享到微博請遵守國家法律
陆川县| 镇雄县| 阳信县| 于田县| 花莲市| 新巴尔虎左旗| 自治县| 平山县| 阳信县| 汽车| 江达县| 英超| 乌海市| 遵义县| 罗甸县| 开封市| 吴川市| 甘孜| 竹北市| 韩城市| 诏安县| 天等县| 即墨市| 叙永县| 凭祥市| 龙江县| 兴城市| 汉中市| 东乌珠穆沁旗| 兴安县| 加查县| 治多县| 恩平市| 彭水| 成武县| 西畴县| 中牟县| 铜鼓县| 含山县| 南川市| 吉木乃县|