免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2374 | 回复: 5
打印 上一主题 下一主题

[文本处理] 数据去除overlap [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2020-01-06 15:02 |只看该作者 |倒序浏览
本帖最后由 biobaby 于 2020-01-10 13:49 编辑

谢谢大家意见现已更改:各位大神好,我这里有一个文件是基因组的位置信息,现在想要去重,想要求助。文件格式如下:

chr      position1  position2   name   pvalue

chr1    100    120    peak1   0.001
chr1     98      105   peak2   0.0001
chr1     115    139   peak3    0.004
chr1     120    140   peak4    0.01
chr1      34     55     peak5    0.002

去重规则为:首先按照第五列从小到大,然后从第一行开始,只要后边有和他重叠的则把后边丢弃。然后再第二行,同理后边有重叠的删掉。依次类推。

最后需要得到:
chr1     98      105   peak2   0.0001
chr1      34     55     peak5    0.002
chr1     115    139   peak3    0.004



谢谢大家

论坛徽章:
24
申猴
日期:2014-10-10 15:56:39射手座
日期:2014-10-10 15:57:18黑曼巴
日期:2018-05-14 11:05:122016科比退役纪念章
日期:2018-05-14 11:05:0715-16赛季CBA联赛之北控
日期:2018-05-14 11:05:0015-16赛季CBA联赛之江苏
日期:2017-02-27 18:11:0715-16赛季CBA联赛之上海
日期:2018-08-15 09:48:5415-16赛季CBA联赛之佛山
日期:2018-07-20 17:14:2315-16赛季CBA联赛之佛山
日期:2019-09-10 18:08:4615-16赛季CBA联赛之山西
日期:2020-03-26 09:40:5115-16赛季CBA联赛之佛山
日期:2020-05-08 09:03:54
2 [报告]
发表于 2020-01-07 10:24 |只看该作者
这里都是搞计算机的,不懂什么显著和不显著,直接说你需要什么样的输出

论坛徽章:
3
15-16赛季CBA联赛之八一
日期:2017-12-29 13:06:2315-16赛季CBA联赛之天津
日期:2018-08-08 17:39:4619周年集字徽章-年
日期:2019-12-25 22:50:31
3 [报告]
发表于 2020-01-07 15:49 |只看该作者
题主重新组织语言,绕口令说的太复杂了,
直接举例样式需求最好

论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
4 [报告]
发表于 2020-01-27 20:52 |只看该作者
1.10号的不知道你还能看到不,先上代码
root@lp:~/jw/python/data# cat gene_deal.py
import pandas as pd

####   file name gene.txt
filename = 'gene.txt'

a = pd.read_csv(filename,sep='\s+',engine='python')
a.sort_values('pvalue',inplace=True)
a.to_csv('gene.csv',header=None,index=None)

x = []
with open('gene.csv') as f:
    for i in f:
        i = i.strip()
        x.append(i.split(','))

already_exist = []
result = []
for i in x:
    start = int(i[1])
    stop = int(i[2])
    if start not in already_exist and stop not in already_exist:
        already_exist.extend(range(start,stop+1))
        result.append(i)

###print
for i in result:
    print('\t'.join(i))

论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
5 [报告]
发表于 2020-01-27 20:55 |只看该作者

论坛徽章:
10
15-16赛季CBA联赛之同曦
日期:2016-06-11 19:22:4115-16赛季CBA联赛之深圳
日期:2020-05-31 16:13:5615-16赛季CBA联赛之同曦
日期:2020-01-28 12:42:47每日论坛发贴之星
日期:2016-08-09 06:20:00程序设计版块每日发帖之星
日期:2016-08-09 06:20:00每日论坛发贴之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-12 06:20:00程序设计版块每日发帖之星
日期:2016-07-06 06:20:00程序设计版块每日发帖之星
日期:2016-07-04 06:20:0015-16赛季CBA联赛之佛山
日期:2021-02-26 09:33:41
6 [报告]
发表于 2020-01-27 20:57 |只看该作者
需要pandas,其实也就是一个排序,用pandas比较顺手,有任何问题可以加我qq:1045670921,最近正好在看数据分析的东西
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP