久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

python - 去除重復行并保留得分最高的行

瀏覽:133日期:2022-07-30 08:05:03

問題描述

第一列(scaffold這一列)相同,則根據第AS列(AS:i:xx)數字 xx的大小,保留數字最大的行。如果數字大小相同則都保留。

舉例,輸入文件

scaffold_010679_1AL.2 16 chr1A 429400034 119 3272M * GACACAAGAGACTCTTTG * AS:i:3268 XS:i:2147 XF:i:0 XE:i:29 NM:i:1scaffold_010679_1AL.2 16 chr1A 429400034 119 3272M * GACACAAGAGACTCTTTG * AS:i:3268 XS:i:2147 XF:i:0 XE:i:29 NM:i:1 scaffold_010679_1AL.2 16 chr1A 429400034 119 3272M * GACACAAGAGACTCTTTG * AS:i:1268 XS:i:2147 XF:i:0 XE:i:29 NM:i:1scaffold_010679_1AL.3 16 chr1A 429397743 19 599S1730M1I279M * 0 0 TGCCGAGGTTTTTGA * AS:i:1998 XS:i:1877 XF:i:3 XE:i:20 NM:i:2 XN:i:1scaffold_010679_1AL.3 16 chr1A 429397743 19 599S1730M1I279M * 0 0 TGCCGAGGTTTTTGA * AS:i:1098 XS:i:1877 XF:i:3 XE:i:20 NM:i:2 XN:i:1

結果文件

scaffold_010679_1AL.2 16 chr1A 429400034 119 3272M * GACACAAGAGACTCTTTG * AS:i:3268 XS:i:2147 XF:i:0 XE:i:29 NM:i:1scaffold_010679_1AL.2 16 chr1A 429400034 119 3272M * GACACAAGAGACTCTTTG * AS:i:3268 XS:i:2147 XF:i:0 XE:i:29 NM:i:1 scaffold_010679_1AL.3 16 chr1A 429397743 19 599S1730M1I279M * 0 0 TGCCGAGGTTTTTGA * AS:i:1998 XS:i:1877 XF:i:3 XE:i:20 NM:i:2 XN:i:1

問題解答

回答1:

# coding: utf-8from itertools import groupbywith open(’a.txt’) as f: data = [line for line in f] #因為數據的列數不相同, 只能以AS:i:為開頭來識別 #取第一列為key, AS:i:列為value lst = [(l.split()[0], _) for l in data for _ in l.split() if _.startswith(’AS:i:’)]#找出同key下的max(value) max_lst = [max(list(g)) for k, g in groupby(lst, lambda x: x[0])]#從原數據里找到同時包含key和value的行 print [line for line in data for _ in max_lst if _[0] in line and _[1] in line]回答2:

awk ’{n=gensub('.*AS:i:([0-9]+).*','1','g')}n>=k[$1]{c[$1]=n==k[$1]?c[$1]'n'$0:$0;k[$1]=n}END{for(i in c)print c[i]}’ file回答3:

grep '`sort -r -t '*' -k 3 b.txt | head -1 |awk -F '*' ’{split($3,a,' ');print a[1]}’`' b.txt

python - 去除重復行并保留得分最高的行

思路文件按星號*分列分3列,按照第三列降序排序,取出第一行,取出AS:i:最大數,grep搜索之,得到結果。

是我沒仔細看提問,失誤了~~結果不對

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 淮滨县| 海安县| 安龙县| 宁都县| 宁城县| 建水县| 广丰县| 柞水县| 鄯善县| 眉山市| 新津县| 南宁市| 晋城| 礼泉县| 类乌齐县| 将乐县| 荔波县| 白玉县| 丰镇市| 双江| 榆中县| 泌阳县| 伊通| 福鼎市| 张家界市| 大余县| 永春县| 五寨县| 五河县| 敦煌市| 天津市| 洪洞县| 嘉兴市| 无锡市| 闻喜县| 石柱| 万山特区| 台北县| 黄骅市| 福建省| 双桥区|