kmer的python程序,km演算法 python

本文目錄一覽:

python如何運行程序

安裝並配置完成之後,我們就可以編寫第一個python程序。學過其他語言的兄弟姐妹們,都知道語言的入門程序就是hello world。那麼,我們這裡也以hello world來拋磚引玉,打開python學習的大門。

python運行有兩種方式,一種是在python互動式命令行下運行;另一種是使用文本編輯器,在命令行中直接運行。

注意:以上兩種運行方式,都是以CPython解釋器來編譯運行的。當然也可以將python代碼寫入到eclipse中,使用JPython解釋器運行,需要自己配置環境。(推薦學習:Python視頻教程)

一、命令行與互動式命令行

首先要搞清楚這個命令行的概念。

1.命令行

定義:出現類似「C:\」,則是在Windows提供的命令行模式

進入模式的方式:Windows中,直接win+r鍵進入

2.互動式命令行

定義:出現「」,則是python的互動式命令行

進入模式的方式:Windows命令行中輸入python即可

二、互動式命令行中運行python代碼

cmd窗口中,輸入python後,進入python互動式命令行。直接輸入代碼:

print 『hello world!』

python-23.png

可以看到界面上運行結果,表示運行成功!

在Python的互動式命令行寫程序,好處是一下就能得到結果,壞處是沒法保存,下次還想運行的時候,還得再敲一遍。

所以,實際開發的時候,我們總是使用一個文本編輯器來寫代碼,寫完了,保存為一個文件,這樣,程序就可以反覆運行了。

三、命令行運行python代碼

1.python代碼編寫及保存

我們將「hello world!」程序用文本編輯器寫出來,保存下來,並命名,這裡我們命名為hello.py,保存到F:\workspace。

命名時,要注意:

1)文件要以.py結尾,其他都不可以

2)文件名只能是英文字母、數字和下劃線的組合。

文本編輯器推薦:Notepad++、Sublime Text

2.python代碼運行

在命令行模式中,輸入python F:\workspace\hello.py,即可運行成功。

運行時,要注意:

1)python文件存儲路徑是相對路徑,運行時,一定要說明python文件的存儲路徑,

當然,用Python開發程序,完全可以一邊在文本編輯器里寫代碼,一邊開一個互動式命令窗口,在寫代碼的過程中,把部分代碼粘到命令行去驗證,事半功倍!

Python|運行程序的4種方式

第一種:第一種就是最直觀的方式了。將python或pycharm應用程序打開編程即可。

第二種:用windows徽標+R再輸入cmd打開命令行,然後鍵入python進入python環境,即可在命令行下編程。

第三種:點擊windows徽標,再輸入IDLE即可打開python進行編程。

第四種:選擇任意編輯器比如記事本用編程語法寫程序,再將文件保存並將文件格式改為後綴為.py,然後在文件所在位置處用shift+滑鼠右鍵打開此位置的命令行,最後輸入python再空格一下而後輸入處理好的文件名即可運行裡面的程序。

關於Python|運行程序的4種方式,青藤小編就和您分享到這裡了。如果您對python編程有濃厚的興趣,希望這篇文章可以為您提供幫助。如果您還想了解更多關於python編程的技巧及素材等內容,可以點擊本站的其他文章進行學習。

以上是小編為大家分享的關於Python|運行程序的4種方式的相關內容,更多信息可以關注環球青藤分享更多乾貨

python-第二課-用IDLE編寫程序

1.使用IDLE運行python程序

IDLE全稱「Integrated Development and Learning Environment」,是python的集成開發和學習環境。它被打包為python包裝的可選部分,當安裝好python以後,IDLE就自動安裝好了,不需要另外去安裝。使用IDLE運行python程序方法如下:

2.實例:用IDLE編寫第一個python程序

(1)運行IDLE開發環境。

python如何將給的鹼基序列切成長度為4的kmer

# 定義方法

def get_list(seq,n):

    “””

    Parameters:

    ———

        seq: string

        n : integer

    “””

    result = []

    for i in range(len(seq)-n+1):

        result.append(seq[i:i+n])

    return result

# 示例

seq = “ATCGCGTAAAGC”

get_list(seq,4)

# [‘ATCG’, ‘TCGC’, ‘CGCG’, ‘GCGT’, ‘CGTA’, ‘GTAA’, ‘TAAA’, ‘AAAG’, ‘AAGC’]

get_list(seq,3)

# [‘ATC’, ‘TCG’, ‘CGC’, ‘GCG’, ‘CGT’, ‘GTA’, ‘TAA’, ‘AAA’, ‘AAG’, ‘AGC’]

如何用Python構造hash表解決DNA k-mer問題

思路:

1、首先採用命A=0,C=1,G=2,T=3. 就相當於4進位數字,然後採用karp-Rabin演算法轉換成唯一十進位數字。由於用此演算法的哈希函數為:hash(value)=value*(4^(k-q-1));

value是該字元對應的值,k是kmer長度,q是此字元在字元串的位置範圍在[0-(q-1)]。然後把一個kmer裡面所有字元的hash值求和就行了。

2、那麼很容易看出來,對於連續的下害常憤端蒞得縫全俯戶一個Kmer,就有推理公式了 hashNew=addValue+(hashOld-deleteValue*(4^(k-1)))*4; hashNew就是往右平移一個字元的kmer hash值,hashOld就是平移之前的值,addValue就是平移後右邊多的一個字元,deleteValue就是平移後左邊少的一個字元。這樣整個hash表建立的時間複雜度約為O(m+k),m是整個文本長度。

3、由於kmer長度如果過長,其hash值過大,會造成內存不夠溢出的現象,所以kmer內部定死為10 。那麼問題就來了,如何應對不同的kmer值。分三種情況。

第一種:q10

這種可以將kmer以10為單位,將hash表中對應值取出,然後對結果進行分析,這邊分析方法為建立兩個數組一個二維數組unionName儲存位置關係,一個一維數組unionScore,計數用。 思路就是首先第一輪初始化unionName[Name][Pos]全部賦值Pos 並初始化unionScore,然後再第二輪匹配如果unionName[Name][Pos-cycle]=Pos-1則將其賦值為當前Pos,cycle為當前循環次數。並將當前循環數存入unionScore[NAME]中。最後當unionScore[NAME]值也就是循環數為k-1,即我們需要的交集了。

第二種:q=10

直接求出hash值,取出相應的值即可。

第三種:q10

可以用前綴種子+後綴種子交集產生。

前綴種子:在字元串後面補字元直到長度等於K,這個很容易看出來 最小是全補A,最大是全補T,然後將最小值到最大值之間的hash值即為所求。

後綴種子:後綴種子和前綴種子不同就是在字元串左邊補齊字元。所以此時需要進行變換。只要對前置種子產生的值變化下就行了。(preValue-minValue)*(4^(K-q))+hash(p) 。其中preValue就是對應的前置種子的hash值,minValue就是前置種子中最小值也就是全補A的情況,hash(p)就是字元串長度為p時候的hash值。

交集就是先求後綴種子所有的值,再加上 前綴種子中起始位置在[0-(k-1)]中的值。

原創文章,作者:FQDG,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/144869.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
FQDG的頭像FQDG
上一篇 2024-10-26 11:53
下一篇 2024-10-26 11:53

相關推薦

  • Python計算陽曆日期對應周幾

    本文介紹如何通過Python計算任意陽曆日期對應周幾。 一、獲取日期 獲取日期可以通過Python內置的模塊datetime實現,示例代碼如下: from datetime imp…

    編程 2025-04-29
  • 如何查看Anaconda中Python路徑

    對Anaconda中Python路徑即conda環境的查看進行詳細的闡述。 一、使用命令行查看 1、在Windows系統中,可以使用命令提示符(cmd)或者Anaconda Pro…

    編程 2025-04-29
  • Python列表中負數的個數

    Python列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • Python周杰倫代碼用法介紹

    本文將從多個方面對Python周杰倫代碼進行詳細的闡述。 一、代碼介紹 from urllib.request import urlopen from bs4 import Bea…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智慧、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化演算法Python版

    蝴蝶優化演算法是一種基於仿生學的優化演算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化演算法Python版…

    編程 2025-04-29

發表回復

登錄後才能評論