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

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

【ROSALIND】【練Python,學生信】36 k-mer組成列表

2020-01-26 15:12 作者:未琢  | 我要投稿

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

題目:

k-Mer組成(k-Mer Composition)

Given: A DNA string s in FASTA format (having length at most 100 kbp).

所給:長度不超過100kb的一條DNA序列s,以FASTA給出。

Return: The 4-mer composition of s.

需得:s的4-mer組成列表。

?

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

>Rosalind_6431

CTTCGAAAGTTTGGGCCGAGTCTTACAGTCGGTCTTGAAGCAAAGTAACGAACTCCACGG

CCCTGACTACCGAACCAGTTGTGAGTACTCAACTGGGTGAGAGTGCAGTCCCTATTGAGT

TTCCGAGACTCACCGGGATTTTCGATCCAGCCTCAGTCCAGTCTTGTGGCCAACTCACCA

AATGACGTTGGAATATCCCTGTCTAGCTCACGCAGTACTTAGTAAGAGGTCGCTGCAGCG

GGGCAAGGAGATCGGAAAATGTGCTCTATATGCGACTAAAGCTCCTAACTTACACGTAGA

CTTGCCCGTGTTAAAAACTCGGCTCACATGCTGTCTGCGGCTGGCTGTATACAGTATCTA

CCTAATACCCTTCAGTTCGCCGCACAAAAGCTGGGAGTTACCGCGGAAATCACAG

測試輸出

4 1 4 3 0 1 1 5 1 3 1 2 2 1 2 0 1 1 3 1 2 1 3 1 1 1 1 2 2 5 1 3 0 2 2 1 1 1 1 3 1 0 0 1 5 5 1 5 0 2 0 2 1 2 1 1 1 2 0 1 0 0 1 1 3 2 1 0 3 2 3 0 0 2 0 8 0 0 1 0 2 1 3 0 0 0 1 4 3 2 1 1 3 1 2 1 3 1 2 1 2 1 1 1 2 3 2 1 1 0 1 1 3 2 1 2 6 2 1 1 1 2 3 3 3 2 3 0 3 2 1 1 0 0 1 4 3 0 1 5 0 2 0 1 2 1 3 0 1 2 2 1 1 0 3 0 0 4 5 0 3 0 2 1 1 3 0 3 2 2 1 1 0 2 1 0 2 2 1 2 0 2 2 5 2 2 1 1 2 1 2 2 2 2 1 1 3 4 0 2 1 1 0 1 2 2 1 1 1 5 2 0 3 2 1 1 2 2 3 0 3 0 1 3 1 2 3 0 2 1 2 2 1 2 3 0 1 2 3 1 1 3 1 0 1 1 3 0 2 1 2 2 0 2 1 1

?

生物學背景

????????有關k-mer的介紹請參考23 按字母順序排列的K-mer。k-mer組成(k-Mer Composition)是指每個k-mer在某序列中出現(xiàn)頻率組成的列表,1-mer組成列表就相當于這條序列的GC含量,2-mer,3-mer和4-mer分別又被叫作二核苷酸,三核苷酸和四核苷酸組成(di-nucleotide, tri-nucleotide, and tetra-nucleotide compositions)。K-mer在物種鑒定、編碼區(qū)鑒定以及序列拼接等多種序列分析過程中扮演重要的角色。

????????將一條序列所有的k-mer按照字母順序排列,其對應的出現(xiàn)頻率也可以寫成一個數(shù)組,這個數(shù)組就是這條序列的k-mer組成。

?

思路

????????我將這個問題劃分為兩部分依次解決。

????????第一部分:得到所有的4-mer,這里寫一個排列函數(shù),用循環(huán)的方法得到4-mer;

????????第二部分:統(tǒng)計4-mer出現(xiàn)的頻率,只需掃描序列,依次與每個4-mer比較即可。

?

代碼

def perm(l1, l2):
???
"""用來進行排列的函數(shù)"""
???
i = 0
???
p = []
???
while i < len(l1):
??????? j =
0
???????
while j < len(l2):
??????????? temp = l1[i] + l2[j]
??????????? p.append(temp)
??????????? j +=
1
???????
i += 1
???
return p


f =
open('input.txt', 'r')
input = f.readlines()
f.close()
index = input[
0].replace('\n', '')
input = input[
1:]
i =
0
seq = ''
while i < len(input):
??? seq = seq + input[i].replace(
'\n', '')
??? i +=
1

symbol = ["A", "C", "G", "T"]
fourmers = symbol
i =
1
while len(fourmers) < 4 ** 4: # 用循環(huán)的方法得到4-mer,用4-mer自身的數(shù)量控制循環(huán)
???
fourmers = perm(symbol,fourmers)


count = [
0] * len(fourmers) # count存儲4-mer組成
i = 0
while i < len(seq):
??? temp = seq[i:i+
4] # 逐個掃描序列
???
j = 0
???
while j < len(fourmers):
???????
if temp == fourmers[j]: # 與4-mer比較
???????????
count[j] += 1
???????????
break
???????
j += 1
???
i += 1

i = 0
f = open('output.txt', 'a')
while i < len(count):
???
# print(str(count[i]), end=' ')
???
f.write(str(count[i]) + ' ')
??? i +=
1

f.close()


【ROSALIND】【練Python,學生信】36 k-mer組成列表的評論 (共 條)

分享到微博請遵守國家法律
密云县| 湘乡市| 永丰县| 邯郸市| 富裕县| 荥阳市| 姜堰市| 台北县| 九龙坡区| 焦作市| 成武县| 宝应县| 南漳县| 青冈县| 慈溪市| 漳平市| 南乐县| 旅游| 通海县| 剑河县| 玉山县| 新郑市| 石棉县| 南平市| 黄浦区| 磐石市| 卓尼县| 会昌县| 乐陵市| 拉孜县| 凌源市| 宜章县| 共和县| 福安市| 萝北县| 宁武县| 龙口市| 柏乡县| 明光市| 伊通| 辽源市|