亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3045 | 回復(fù): 5
打印 上一主題 下一主題

求大神出手相助,解決文件匹配問題。 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-11-28 17:40 |只看該作者 |倒序?yàn)g覽
輸入文件1:
1.1        PS.lightreaction                       
1.1.1        PS.lightreaction.photosystem II                       
1.1.1.1        PS.lightreaction.photosystem II.LHC-II        ppa009686m.g         LHCB4.3 (light harvesting complex PSII); chlorophyll binding        
1.1.1.1        PS.lightreaction.photosystem II.LHC-II        ppa010511m.g         LHCA1; chlorophyll binding        
1.1.1.1        PS.lightreaction.photosystem II.LHC-II        ppa010195m.g         LHCB6 (LIGHT HARVESTING COMPLEX PSII SUBUNIT 6); chlorophyll binding        
1.1.1.2        PS.lightreaction.photosystem II.PSII polypeptide subunits        ppa022268m.g         PPL2 (PsbP-like protein 2); calcium ion binding        
1.1.1.2        PS.lightreaction.photosystem II.PSII polypeptide subunits        ppa013107m.g         PSBR (photosystem II subunit R)        
1.1.1.2        PS.lightreaction.photosystem II.PSII polypeptide subunits        ppa010370m.g               
1.1.1.3        PS.lightreaction.photosystem II.biogenesis                       
1.1.1.4        PS.lightreaction.photosystem II.LHC biogenesis                       
1.1.2        PS.lightreaction.photosystem I                       
1.1.2.1        PS.lightreaction.photosystem I.LHC-I        ppa011981m.g         OHP2 (ONE-HELIX PROTEIN 2)        
1.1.2.1        PS.lightreaction.photosystem I.LHC-I        ppb013740m.g         LHCA6; chlorophyll binding        
1.1.2.2        PS.lightreaction.photosystem I.PSI polypeptide subunits        ppa012567m.g         PSAG (PHOTOSYSTEM I SUBUNIT G)        
1.1.2.2        PS.lightreaction.photosystem I.PSI polypeptide subunits        ppa011229m.g         PSAL (photosystem I subunit L)        
1.1.2.2        PS.lightreaction.photosystem I.PSI polypeptide subunits        ppa010953m.g         PSAF (photosystem I subunit F)        
。。。
此處略去萬行。
輸入文件2:
geneID
ppa010511m.g        LHC
ppa013107m.g        PS
ppa011229m.g        PSA
。。。
此處略去萬行。
輸入文件3:
geneID        0d_1        0d_2        0d_3        CC5d_1        CC5d_2        CC5d_3        CC7d_1        CC7d_2
ppa009686m.g        2.004282278        1.42647568        1.530308868        1.827674515        1.313072189        1.471673537        1.830757203        1.706259134
ppa010195m.g        18.3712211        13.83512677        17.12123692        25.92180373        24.1488201        25.28041643        31.60035577        29.2534205
ppa010511m.g        7.071188751        4.70447866        5.424637408        2.548750222        2.165637066        2.129566259        2.981546835        3.027793736
ppa022268m.g        52.53410985        37.93052821        46.28323418        25.29563517        22.38356599        23.60107647        25.54592884        26.64492136
ppa013107m.g        18.98126579        11.74118123        14.06679527        25.8771082        23.75373785        21.65753427        37.14455883        32.12428506
ppa010370m.g        23.62378358        15.72410298        18.56895804        7.460963559        6.59120778        6.663066851        9.578208164        9.564691673
ppa011981m.g        4.205179214        2.702044723        3.257905641        2.928045721        1.979196723        2.53870006        2.692839371        2.891387921
ppb013740m.g        42.29592939        29.16129248        31.67579759        37.82431097        33.3812292        35.87154046        46.08085155        44.200645
ppa012567m.g        49.00744956        33.12091871        39.19947173        41.20533567        36.40348659        36.98597847        49.23566751        44.52914897
ppa011229m.g        19.97384668        13.88835717        16.88478369        10.52000849        10.15691059        9.43541958        13.38839046        12.48115898
ppa010953m.g        42.7478877        38.23237308        52.30138312        79.03127445        75.42824506        77.57145976        61.51771359        54.14064048

.......................................此處略幾萬行。


想做到以下的效果:如果文件2的某個(gè)第1列g(shù)eneID匹配到文件1的第三列的geneID,輸出文件one:文件2的第2列注釋和文件1第一列具有相同編號的所有行;輸出文件two:輸出文件one第3列的id在輸入文件3中匹配的所有行

例如:如文件2第1行是ppa010511m.g        LHC,匹配到文件1的1.1.1.1        PS.lightreaction.photosystem II.LHC-II        ppa010511m.g         LHCA1; chlorophyll binding,于是輸出所有是1.1.1.1的行,即文件one:

1.1.1.1        PS.lightreaction.photosystem II.LHC-II        ppa009686m.g         LHCB4.3 (light harvesting complex PSII); chlorophyll binding        
1.1.1.1        PS.lightreaction.photosystem II.LHC-II        ppa010511m.g         LHCA1; chlorophyll binding        

由上輸出得到的geneID是ppa009686m.g和ppa010511m.g,在文件3中,匹配得到文件two:

ppa009686m.g        2.004282278        1.42647568        1.530308868        1.827674515        1.313072189        1.471673537        1.830757203        1.706259134
ppa010511m.g        7.071188751        4.70447866        5.424637408        2.548750222        2.165637066        2.129566259        2.981546835        3.027793736


請大神施以援手,老板催著要結(jié)果,我還是編程小白。嘗試著用python和perl解決,但終究在報(bào)錯(cuò)中放棄。在此希望得到高人相助,感激不盡。在此先謝過了。

論壇徽章:
95
程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-05 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-17 06:20:00程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-09-18 06:20:002015亞冠之阿爾艾因
日期:2015-09-18 10:35:08月度論壇發(fā)貼之星
日期:2015-09-30 22:25:002015亞冠之阿爾沙巴布
日期:2015-10-03 08:57:39程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-05 06:20:00每日論壇發(fā)貼之星
日期:2015-10-05 06:20:002015年亞冠紀(jì)念徽章
日期:2015-10-06 10:06:482015亞冠之塔什干棉農(nóng)
日期:2015-10-19 19:43:35程序設(shè)計(jì)版塊每日發(fā)帖之星
日期:2015-10-21 06:20:00每日論壇發(fā)貼之星
日期:2015-09-14 06:20:00
2 [報(bào)告]
發(fā)表于 2015-11-28 20:42 |只看該作者
回復(fù) 1# 321wangke321


    參考這個(gè):

data1.txt 對應(yīng)文件 1; data2.txt 對應(yīng)文件 3;keys.txt 對應(yīng)文件 2.

#!/usr/bin/env python3

import sys
import os
import tempfile

def load_data1(filename):
    number_of, lines_of = {}, {}
    with open(filename) as file:
        for line in file:
            fields = line.split('\t')
            if len(fields) > 2:
                number = fields[0]
                geneid = fields[2]
                number_of[geneid] = number
                if fields[0] in lines_of:
                    lines_of[number].append([geneid, line])
                else:
                    lines_of[number] = [[geneid, line]]
        return number_of, lines_of

def load_data2(filename):
    line_of = {}
    with open(filename) as file:
        for line in file:
            geneid = line.split(maxsplit=1)[0]
            line_of[geneid] = line
        return line_of

def main():
    """"Usage: p data1.txt data2.txt keys.txt"""

    number_of, data1_lines_of = load_data1(sys.argv[1])
    data2_line_of = load_data2(sys.argv[2])

    with open(sys.argv[3]) as file:
        for line in file:
            geneid = line.split(maxsplit=1)[0]
            if geneid not in number_of:
                continue
            number = number_of[geneid]

            print("Part one of " + geneid)
            data1_lines = [item[1] for item in data1_lines_of[number]]
            path1 = os.path.join(tempfile.gettempdir(), geneid) + "-one.txt"
            with open(path1, mode='w') as file1:
                for line1 in data1_lines:
                    file1.write(line1)

            print("Part two of" + geneid)
            data1_geneids = [item[0] for item in data1_lines_of[number]]
            path2 = os.path.join(tempfile.gettempdir(), geneid) + "-two.txt"
            with open(path2, mode='w') as file2:
                for geneid1 in data1_geneids:
                    if geneid1 in data2_line_of:
                        file2.write(data2_line_of[geneid1])

            print("")


if __name__ == '__main__':
    main()

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2015-11-29 00:16 |只看該作者
MMMIX 發(fā)表于 2015-11-28 20:42
回復(fù) 1# 321wangke321

出現(xiàn)以下報(bào)錯(cuò)信息:

$ python 根據(jù)誘餌基因提取mapman基因家族ID和表達(dá)量.py data1.txt data2.txt keys.txt
Traceback (most recent call last):
  File "根據(jù)誘餌基因提取mapman基因家族ID和表達(dá)量.py", line 60, in <module>
    main()
  File "根據(jù)誘餌基因提取mapman基因家族ID和表達(dá)量.py", line 32, in main
    data2_line_of = load_data2(sys.argv[2])
  File "根據(jù)誘餌基因提取mapman基因家族ID和表達(dá)量.py", line 24, in load_data2
    geneid = line.split(maxsplit=1)[0]
TypeError: split() takes no keyword arguments

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2015-11-29 12:01 |只看該作者
回復(fù) 3# 321wangke321


geneid = line.split(maxsplit=1)[0]
TypeError: split() takes no keyword arguments


add a keyword


geneid = line.split(keyword, maxsplit=1)[0]

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2015-11-29 13:00 |只看該作者
MMMIX 發(fā)表于 2015-11-28 20:42
回復(fù) 1# 321wangke321

應(yīng)該是版本問題,我修改成geneid = line.split('\t',1)[0]就正常了。感謝大神的悉心指導(dǎo),您真是好人啊。在此膜拜一下 。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2015-11-29 13:01 |只看該作者
питон 發(fā)表于 2015-11-29 12:01
回復(fù) 3# 321wangke321

謝謝,我修改成geneid = line.split('\t',1)[0]就正常了。
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP