我要計算所有列的每個字母出現的頻率: 比如我有這樣的三個序列:頻率的信
seq1=AATC
seq2=GCCT
seq3=ATCA
在這裏,我們有:在第一列頻率'A'是2,'G'是1。 將第二列:的「A」的頻率爲1,「C」是1,「T」爲1(在列的其餘部分是相同的) 第一個,我嘗試做計算頻率我的代碼試試這個:
例如:
s='AATC'
dic={}
for x in s:
dic[x]=s.count(x)
這給:{'A':2,'T':1,'C':1}
現在,我想申請這對columns.for,我使用這個指令:
f=list(zip(seq1,seq2,seq3))
給出:
[('A', 'G', 'A'), ('A', 'C', 'T'), ('T', 'C', 'C'), ('C', 'T', 'A')]
所以,我在這裏計算()中字母的頻率: 我該怎麼做?
,如果我對序列的文件工作,我該如何使用此代碼它適用於文件的順序?例如 例如我的文件包含100個序列,每次我採取三個序列並應用此代碼。
OK,比k you.Now,我想要計算這個序列的熵。熵= p_0 * log p_0 + p_1 * log p_1 + ... + p_n * log p_n。 p是給定列中字母x的頻率。 (這是一列的熵)。例如第一列的熵({'A':2,'G':1})是2/3 log(2/3)+1/3 log(1/3) – user3184809
您可以自己解決這個問題。創建一個函數'def entropy(count):'並讀取['math'文檔](http://docs.python.org/2/library/math。HTML#電源和對數函數)。另外,請注意,兩個人花時間寫了有用的答案,你甚至沒有投票給他們:http://stackoverflow.com/help/someone-answers – jonrsharpe