python txt文件的數(shù)據(jù)篩選

之前已經(jīng)分享完python的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)了,我認(rèn)為掌握了這兩方面內(nèi)容其實已經(jīng)具備使用python進(jìn)行數(shù)據(jù)分析的能力了,但實際情況是你經(jīng)常會發(fā)現(xiàn)你看了很多python的基礎(chǔ)內(nèi)容,而當(dāng)你要使用時還是發(fā)現(xiàn)無從下手(哈哈,因為我一開始是這樣),那是因為你缺少實戰(zhàn)經(jīng)驗,實戰(zhàn)才是學(xué)習(xí)掌握python的最快辦法。所以要從零開始學(xué)習(xí)python,有目的的邊查邊寫能夠讓你迅速掌握python。在整理寫作過程中也發(fā)現(xiàn)了一個非常好的python學(xué)習(xí)資源,介紹的非常詳細(xì),鏈接如下:

Python - 100天從新手到大師
https://github.com/jackfrued/Python-100-Days

這個鏈接的內(nèi)容較多,但沒有太大的目的性,我今天的主要目的就是利用python進(jìn)行數(shù)據(jù)篩選。情況是這樣的,我目前有20個.txt文件(假設(shè)名為1.txt - 20.txt),各個文件內(nèi)容如下:

1.txt

我想篩選每個文件中p小于0.05,foldchange絕對值大于2的所有行,并分別輸出(要是熟悉RNA-seq其實就是差異基因的篩選)

代碼如下:

#!/usr/bin/env python3

excel_name = []
for i in range(1,4):
    excel_name.append(str(i) + '.' + 'txt')
print(excel_name)

for j in excel_name:
    fl = str(j[:-3]) + 'DEG.txt'
    DEG = open(fl, 'w')
    DEG.write('gene' + '\t' + 'sample_1' + '\t' + 'sample_2' + '\t' + 'value1' + '\t' + 'value2' + '\t' + 'foldchange' + '\t' + 'p' + '\t' + 'q' + '\n')
    with open (j) as a:
        next(a)
        for i in a:
            ii = i.strip().split('\t')
            if float(ii[6]) < float(0.05) and abs(float(ii[5])) >= int(1):
                DEG.write(str(ii[0]) + '\t' + str(ii[1]) + '\t' + str(ii[2]) + '\t' + str(ii[3]) + '\t' + str(ii[4]) + '\t' + str(ii[5]) + '\t' + str(ii[6]) + '\t' + str(ii[7]) + '\n')
print('done')

該腳本能幫你掌握的內(nèi)容:

  • for-in 循環(huán)的使用 for j in excel_name:

  • range(),append(),write(),next(),strip(),split() 的使用

  • 索引的使用 ii[6]

  • 切片的使用 j[:-3]

  • 文件的讀取 with open (j) as a:與輸出 DEG = open(fl, 'w')

  • if語句進(jìn)行判斷

  • 運(yùn)算符的使用

  • 正則表達(dá)式 \t ,\n

若無經(jīng)驗,使用方法可參考 Python - 100天從新手到大師

此外注意:在python中有兩個模塊(pandas,numpy)可用于處理excel文件,處理文件更高效,該腳本主要是為了處理txt文件,無需調(diào)用模塊

原文詳細(xì)說明鏈接:https://mp.weixin.qq.com/s?__biz=MzUzNjA5MzA1Nw==&mid=2247483693&idx=1&sn=8b0759e2b86182aa64bf7e103950eac0&chksm=fafac9c3cd8d40d5fe7b131210485bdf2e33103f6eed73f85db680bab75e5ff499fd466aab25&token=665225232&lang=zh_CN#rd

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容