我一直試圖拉ACGT基因組中的序列的中值字符串搜索。我有的問題是要說AAAAAAAA AAAAAAAC等等,直到我嘗試了所有可能的組合。Python通過字符迭代
我已經基本上通過創建兩個列表,一個包含A,C,G,T和另一個8字符序列,並且在每次搜索迭代和交換字符之後,對它進行蠻力測試。問題是我沒有測試所有的組合,因爲當兩個迭代同時跳轉一個字母。
難道AAAAAAAA - AAAAAAAC - AAAAAAAG - AAAAAAAT - AAAAAACA等有什麼辦法嗎?
我一直試圖拉ACGT基因組中的序列的中值字符串搜索。我有的問題是要說AAAAAAAA AAAAAAAC等等,直到我嘗試了所有可能的組合。Python通過字符迭代
我已經基本上通過創建兩個列表,一個包含A,C,G,T和另一個8字符序列,並且在每次搜索迭代和交換字符之後,對它進行蠻力測試。問題是我沒有測試所有的組合,因爲當兩個迭代同時跳轉一個字母。
難道AAAAAAAA - AAAAAAAC - AAAAAAAG - AAAAAAAT - AAAAAACA等有什麼辦法嗎?
看看itertools及其combinanatoric發電機,product(),permutations(),combinations()等儘管在這種情況下,你會在product()最感興趣 - 看到@ jamylak的使用例子。
如上建議使用itertools,
itertools.product("ACGT", repeat=8) # will work in your case.
從pyparsing維基範例頁面使用regex inverter,反轉這個表達式:[ACGT]{8}
。您也可以嘗試online inverter at the UtilityMill,但生成8個字符的字符串時該服務器會超時,但在允許的時間內,我已成功獲取最多6個字符。
請參閱itertools.combinations http://docs.python.org/library/itertools.html#itertools.combinations – 2012-07-13 02:20:08