筆記 Bioinformatics Algorithms Chapter2

来源:https://www.cnblogs.com/lokwongho/archive/2018/09/21/9682667.html
-Advertisement-
Play Games

Chapter2 WHICH DNA PATTERNS PLAY THE ROLE OF MOLECULAR CLOCKS Chapter2 WHICH DNA PATTERNS PLAY THE ROLE OF MOLECULAR CLOCKS Chapter2 WHICH DNA PATTERN ...


Chapter2 WHICH DNA PATTERNS PLAY THE ROLE OF MOLECULAR CLOCKS 

尋找模序 

一、

轉錄因數會結合基因上游的特定序列,調控基因的轉錄表達,但是在不同個體中,這個序列會有一些差別。本章講述用貪婪、隨機演算法來尋找這個序列:尋找模序。

(NF-κB binding sites from the Drosophila melanogaster genome)

二、一些概念:

1. Score、Profile 的含義如圖

根據profile matrix 可以計算出某個kmer在某一profile下的概率

三、

提出問題:Motif Finding Problem:

Given a collection of strings, find a set of k-mers, one from each string, that minimizes the score of the resulting motif.

Input: A collection of strings Dna and an integer k.

Output: A collection Motifs of k-mers, one from each string in Dna, minimizing Score(Motifs) among all possible choices of k-mers.

一組序列中,尋找一組k-mer,它們的Score是最低的(或者與consensus sequence的海明距離之和最小)

 

1 遍歷

MedianString(Dna, k)
        distance ← ∞
        for each k-mer Pattern from AA…AA to TT…TT
            if distance > d(Pattern, Dna)
                 distance ← d(Pattern, Dna)
                 Median ← Pattern
        return Median

 

2 貪婪法 GreedyMotifSearch

GREEDYMOTIFSEARCH(Dna, k, t)
        BestMotifs ← motif matrix formed by first k-mers in each string
                      from Dna
        for each k-mer Motif in the first string from Dna
            Motif1 ← Motif
            for i = 2 to t
                form Profile from motifs Motif1, …, Motifi - 1
                Motifi ← Profile-most probable k-mer in the i-th string
                          in Dna
            Motifs ← (Motif1, …, Motift)
            if Score(Motifs) < Score(BestMotifs)
                BestMotifs ← Motifs
        output BestMotifs

詳解 http://www.mrgraeme.co.uk/greedy-motif-search/

 

*貪婪法 GreedyMotifSearch with pseudocounts

pseudocounts:在形成profile matrix時,給0項設為一個較小的值

GreedyMotifSearch(Dna, k, t)
        form a set of k-mers BestMotifs by selecting 1st k-mers in each string from Dna
        for each k-mer Motif in the first string from Dna
            Motif1 ← Motif
            for i = 2 to t
                apply Laplace's Rule of Succession to form Profile from motifs   Motif1, …, Motifi-1
                Motifi ← Profile-most probable k-mer in the i-th string in Dna
            Motifs ← (Motif1, …, Motift)
            if Score(Motifs) < Score(BestMotifs)
                BestMotifs ← Motifs
        output BestMotifs

 

3. 隨機法Randomized Motif Search

RandomizedMotifSearch(Dna, k, t)
     #隨機從每個DNA取k-mer,生成一組motifs randomly select k-mers Motifs = (Motif1, …, Motift) in each string from Dna BestMotifs ← Motifs while forever Profile ← Profile(Motifs)#根據motifs形成Profile矩陣 Motifs ← Motifs(Profile, Dna) #根據profile矩陣從一組DNA生成一組幾率最大的motifs if Score(Motifs) < Score(BestMotifs) BestMotifs ← Motifs else return BestMotifs

隨機演算法起到作用的原因是,隨機選取的一組Motifs,有可能選到潛在正確的一個k-mer,那麼就在這中形成傾斜,直至尋找到較優解

改進: 上一個演算法,每次迭代都重新隨機生成一組新的Motifs,這可能把潛在的正確模序拋棄了,改進的方法是每次隨機只更改一行k-mer

GibbsSampler(Dna, k, t, N)
        randomly select k-mers Motifs = (Motif1, …, Motift) in each string from Dna
        BestMotifs ← Motifs
        for j ← 1 to N
            i ← Random(t)
            Profile ← profile matrix constructed from all strings in Motifs except for Motif[i]
            Motif[i] ← Profile-randomly generated k-mer in the i-th sequence
            if Score(Motifs) < Score(BestMotifs)
                BestMotifs ← Motifs
        return BestMotifs

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 支付寶系統架構概況 典型處理預設 資金處理平臺 財務會計 支付清算 核算中心 交易 柔性事務 消息系統 數據分佈 數據緩存 支付寶技術產品線 支付寶的開源分散式消息中間件–Metamorphosis(MetaQ) Metamorphosis (MetaQ) 是一個高性能、高可用、可擴展的分散式消息中 ...
  • 讓你的項目有對象,你的項目如何才會有面向對象特征呢?沒有面向對象特征的項目不是好項目哦。此篇博文會使用到面向對象特征中的封裝繼承,還有就是枚舉類型。這篇博文教你如何讓你的項目體現面向對象特征。 最近公司需要做一個後臺系統,做了幾個月了老系統的維護更新,真心有點受不了,畢竟一個項目經過了幾個人的手,每 ...
  • 前言 還記得當初寫spring-session實現分散式集群session的共用的時候,裡面有說到利用filter和HttpServletRequestWrapper可以定製自己的getSession方法,實現對session的控制,從而將session存放到統一的位置進行存儲,達到session共 ...
  • 網上搜的加密解密函數,保存下 ...
  • Java當中的基本類型包裝類 01 基本數據類型對象的包裝類 什麼是基本數據類型對象包裝類呢? 就是把基本數據類型封裝成對象,這樣就可以提供更多的操作基本數值的功能了。 基本數據類型對象的包裝類 個: | 基本數據類型 | 包裝類 | | | | | byte | Byte | | short | ...
  • 標準庫 插入迭代器 詳解 插入迭代器作用:copy等函數不能改變容器的大小,所以有時copy先容器是個空的容器,如果不使用插入迭代器,是無法使用copy等函數的。 例如下麵的代碼就是錯誤的: lst2是個空的容器,copy函數不能擴容容器lst2,所以會發生運行時錯誤。 用插入迭代器就可以很好的解決 ...
  • [ ] 本文出處:http://b1u3buf4.xyz/ " ] 本文作者:[B1u3Buf4" [ ] 本文授權:禁止轉載 從自己的博客移動過來。 gunicorn是一個python Wsgi的WEB服務框架,只支持在Unix系統上運行,來源於Ruby的unicorn項目。雖然可以獨自運行,但功 ...
  • 【問題描述】 在eclipse中配置Python解釋器PyDev時,按照如下配置,可以配置完成,如圖: 安裝好PyDev後,接下來配置Python解釋器時,點擊Windows -> Preferences -> PyDev -> Interpreters -> Python Interpreter報 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...