注釋信息合并處理腳本

將所有的注釋信息合并到一塊,先寫python腳本句各,再用shell進行批處理
test.py

import sys
import os
import os.path
filename = sys.argv[1]
#filename="xaa"
def readfile(file):
    f = open(file)
    h = f.readlines()
    return h
def readfile2(dir):
    hh = []
    for parent,dirnames,filenames in os.walk(dir):
        for file in filenames:
            f = open(os.path.join(dir,file),'rb')
            h = f.readlines()
            f.close()
            hh.extend(h)
    return hh
def makejson(pro,h,j):
    find = 0
    str = "{"
    i=j
    while (i<=len(h)-1) and (pro in h[i]):
        if find == 0:
            find = 1
            str+="[" + h[i][:-1].replace("\t", ",") + "]"
        else:
            str += ",[" + h[i][:-1].replace("\t", ",") + "]"
        i = i+1
    if find==1:
        return [str+"}", i]
    else:
        return ["null", i]

dir = "fungi_data"
dir1 = "fungi_mw_ip_res"
dir2 = "fungi-cazyme"
dir3 = "fungi-pdb"
dir4 = "fungi-swiss"
dir5 = "fungi-lipop"
dir6 = "fungi-targetp"

dir_w = "fungi_z"

file = os.path.join(dir,filename)
file1 = os.path.join(dir1,filename)
file2 = os.path.join(dir2,"diamond.out."+filename)
file3 = os.path.join(dir3,"pdb.out."+filename)
file4 = os.path.join(dir4,"swiss.out."+filename)
file5 = os.path.join(dir5,filename)
newdir6 = os.path.join(dir6,filename)
fw = open(os.path.join(dir_w,filename),"w")

h_data = readfile(file)
h_mp = readfile(file1)
h_cazy = readfile(file2)
h_pdb = readfile(file3)
h_swiss = readfile(file4)
h_lipop = readfile(file5)
h_targetp = readfile2(newdir6)
#print (h_targetp)
mi=0
ci=0
pi=0
si=0

pro="xx"
seq="xx"

for i in range(len(h_data)):
    if h_data[i][0] == ">":
        pro = h_data[i][1:-1]
    else:
        seq = h_data[i][:-1]
        pro_name = pro.split("|")[-1]
        pro_id = pro.split("|")[2]
        mw="null"
        ip="null"
        for mi in range(len(h_mp)):
            if pro_name in h_mp[mi]:
                mw = h_mp[mi+2].split()[3]
                ip = h_mp[mi+4].split(" = ")[1][:-1]
                #print (mw+ip)
                break
        [str_cazy, ci]=makejson(pro, h_cazy, ci)
        [str_pdb, pi] = makejson(pro, h_pdb, pi)
        [str_swiss, si] = makejson(pro, h_swiss, si)
        mytype="null"
        score="null"
        margin = "null"
        cleavage="null"
        for li in range(len(h_lipop)):
            if h_lipop[li][0]=="#" and (pro in h_lipop[li]):
                line = h_lipop[li][:-1].split(" ")
                mytype = line[2]
                score  = line[3].split("=")[1]
                if len(line)>=6:
                    margin = line[4].split("=")[1]
                    cleavage = line[5].split("=")[1]
                break
        mylen = "null"
        mTP = "null"
        SP = "null"
        other = "null"
        Loc = "null"
        RC = "null"
        for ti in range(len(h_targetp)):
            if h_targetp[ti].decode()[0]=='j':
                line = h_targetp[ti][:-1].decode().split()
                if len(pro)>20:
                    tmp_pro = pro[0:20]
                else:
                    tmp_pro = pro
                if line[0] == tmp_pro:
                   # print (line)
                    mylen = line[1]
                    mTP = line[2]
                    SP = line[3]
                    other = line[4]
                    Loc = line[5]
                    RC = line[6]
                    break
        wstr = pro + "\t" + seq + "\t" + mw + "\t" + ip + "\t" + str_cazy + "\t" + str_pdb + "\t" + str_swiss + "\t" + mytype + "\t" + score + "\t" + margin + "\t" + cleavage +"\t"+ mylen + "\t" + mTP + "\t" + SP + "\t" + other + "\t" + Loc + "\t" + RC + "\n"
        fw.write(wstr)
        #print(wstr)

2.批處理吸占,約50個進程

#!/bin/bash
start=`date +%s` #定義腳本運行的開始時間

for file in ~/huangle/fungi_annotation/fungi_data/*
do
{
   python test.py ${file##*/}

        echo 'success annotation '$file' !';
 }&
done
wait
end=`date +%s`

echo "TIME:`expr $end - $start`"

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市凿宾,隨后出現(xiàn)的幾起案子矾屯,更是在濱河造成了極大的恐慌,老刑警劉巖菌湃,帶你破解...
    沈念sama閱讀 212,454評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件问拘,死亡現(xiàn)場離奇詭異,居然都是意外死亡惧所,警方通過查閱死者的電腦和手機骤坐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,553評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來下愈,“玉大人纽绍,你說我怎么就攤上這事∈扑疲” “怎么了拌夏?”我有些...
    開封第一講書人閱讀 157,921評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長履因。 經(jīng)常有香客問我障簿,道長,這世上最難降的妖魔是什么栅迄? 我笑而不...
    開封第一講書人閱讀 56,648評論 1 284
  • 正文 為了忘掉前任站故,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘西篓。我一直安慰自己愈腾,他們只是感情好,可當我...
    茶點故事閱讀 65,770評論 6 386
  • 文/花漫 我一把揭開白布岂津。 她就那樣靜靜地躺著虱黄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪吮成。 梳的紋絲不亂的頭發(fā)上橱乱,一...
    開封第一講書人閱讀 49,950評論 1 291
  • 那天,我揣著相機與錄音赁豆,去河邊找鬼仅醇。 笑死,一個胖子當著我的面吹牛魔种,可吹牛的內(nèi)容都是我干的析二。 我是一名探鬼主播,決...
    沈念sama閱讀 39,090評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼节预,長吁一口氣:“原來是場噩夢啊……” “哼叶摄!你這毒婦竟也來了?” 一聲冷哼從身側響起安拟,我...
    開封第一講書人閱讀 37,817評論 0 268
  • 序言:老撾萬榮一對情侶失蹤蛤吓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后糠赦,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體会傲,經(jīng)...
    沈念sama閱讀 44,275評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,592評論 2 327
  • 正文 我和宋清朗相戀三年拙泽,在試婚紗的時候發(fā)現(xiàn)自己被綠了淌山。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,724評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡顾瞻,死狀恐怖泼疑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情荷荤,我是刑警寧澤退渗,帶...
    沈念sama閱讀 34,409評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站蕴纳,受9級特大地震影響会油,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜古毛,卻給世界環(huán)境...
    茶點故事閱讀 40,052評論 3 316
  • 文/蒙蒙 一翻翩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦体斩、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,815評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至忱屑,卻和暖如春蹬敲,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背莺戒。 一陣腳步聲響...
    開封第一講書人閱讀 32,043評論 1 266
  • 我被黑心中介騙來泰國打工伴嗡, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人从铲。 一個月前我還...
    沈念sama閱讀 46,503評論 2 361
  • 正文 我出身青樓瘪校,卻偏偏與公主長得像,于是被迫代替她去往敵國和親名段。 傳聞我的和親對象是個殘疾皇子阱扬,可洞房花燭夜當晚...
    茶點故事閱讀 43,627評論 2 350

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,374評論 0 5
  • [TOC] 簡介: Shell 是一個用C語言編寫的程序,它是用戶使用Linux的橋梁伸辟。Shell既是一種命令語言...
    黃海濱_x閱讀 827評論 0 2
  • 我自己的心路歷程來說麻惶,破除雞湯思維就是從認知“自私的基因”開始的。你不需要也不可能擁有和記憶非常多知識信夫,也沒啥用窃蹋。...
    v孩子爸閱讀 173評論 0 0
  • 窗外 小雨淅淅瀝瀝 嘆一場秋雨寒意襲 猛然想起 那久違的花草 愛憐起心底 修枝澆水施肥 毫不遲疑精心打理 花草報以...
    富華杰閱讀 4,651評論 70 241
  • 如果你也在失眠,不妨想一想過去的歲月静稻。 時光荏苒警没,白駒過隙,感動卻依然熱烈姊扔。 如果你也在失眠惠奸,請想一想曾經(jīng)的夢想。...
    春春春春節(jié)閱讀 157評論 0 0