2012-07-13 247 views
5

我一直試圖拉ACGT基因組中的序列的中值字符串搜索。我有的問題是要說AAAAAAAA AAAAAAAC等等,直到我嘗試了所有可能的組合。Python通過字符迭代

我已經基本上通過創建兩個列表,一個包含A,C,G,T和另一個8字符序列,並且在每次搜索迭代和交換字符之後,對它進行蠻力測試。問題是我沒有測試所有的組合,因爲當兩個迭代同時跳轉一個字母。

難道AAAAAAAA - AAAAAAAC - AAAAAAAG - AAAAAAAT - AAAAAACA等有什麼辦法嗎?

+0

請參閱itertools.combinations http://docs.python.org/library/itertools.html#itertools.combinations – 2012-07-13 02:20:08

回答

10

使用itertools

itertools.product("ACGT", repeat=8) 
+2

+1我遲到了。 :) – Tauquir 2012-07-13 02:28:03

+1

@Tauquir你不是唯一遲到的.. :)我也是+1 – Levon 2012-07-13 02:30:08

2

如上建議使用itertools,

itertools.product("ACGT", repeat=8) # will work in your case. 
1

從pyparsing維基範例頁面使用regex inverter,反轉這個表達式:[ACGT]{8}。您也可以嘗試online inverter at the UtilityMill,但生成8個字符的字符串時該服務器會超時,但在允許的時間內,我已成功獲取最多6個字符。