免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5666 | 回复: 1

[文本处理] 我需要这样一个结果,第一个字符段,加上后面 GO数字,得到这杨的结果: [复制链接]

论坛徽章:
0
发表于 2021-03-08 20:06 |显示全部楼层
高手帮忙处理一些, 谢谢。 前面的数字比如2197,2235,2608, 没有用,只是告诉 这是一整行,因为太长就分行显示了。  

有的行可能有 一个或多个GO:00001234,类似这样子的。 有个规律,最后一个 GO 后面,一定是没有符号的。如果只有一个GO ,后面也是没有符号的。


我需要这样一个结果,第一个 字符段,加上后面 GO:和数字,得到这杨的结果:

Perl 程序,python 或者, Linux 下sed awk 语句都可以,再次感谢。


比如
        Q29003   GO:GO:0004930; GO:0004993; GO:0030594; GO:0051378; GO:0007193; GO:0007198; GO:0007268; GO:000718   2197 7; GO:0030425; GO:0005887; GO:0045202
        Q70Z44    GO:0030594; GO:0022850; GO:0004888; GO:0007268; GO:0034220; GO:0050877; GO:0042391; GO:0007165; GO:0005887; GO:0043005; GO:0005886

        Q5RAC9   GO:0006914; GO:0015031; GO:0005930; GO:0034045

        Q9RYL9   GO:0004866

2197

Q29003 5HT1E_PIG       102160737               3121720; 984237                 GO:0004930; GO:0004993; GO:0030594; GO:0051378; GO:0007193; GO:0007198; GO:0007268; GO:000718   2197 7; GO:0030425; GO:0005887; GO:0045202      SF005474; SF800006              UniRef100_Q29003        UniRef90_P28566 UniRef50_P28566 UPI0000124F29   S66490  9823            


2235

Q70Z44 5HT3D_HUMAN     200909  XP_016861343.1; NP_001157118.1; NP_872343.2; NP_001138615.1     223468705; 338817899; 47519877; 72533328; 44804327; 72533512; 110431740; 2546   2235 92968; 1034631704                  GO:0030594; GO:0022850; GO:0004888; GO:0007268; GO:0034220; GO:0050877; GO:0042391; GO:0007165; GO:0005887; GO:0043005; GO:0005886          IPI00429176; IPI00376256; IPI00877166   UniRef100_Q70Z44        UniRef90_Q70Z44 UniRef50_Q70Z44 UPI000024209D           9606    610122;         Hs.448004
   2235        ENST00000382489; ENST00000428798; ENST00000453435       12801637; 28813580; 27197753; 14597179; 22472876; 15489334; 12477932; 20628086; 20021265; 19913121; 29987050;    2235 19794330; 28514442; 16641997; 21873635; 24603532; 20356718; 20602613; 17392525; 20538960; 21192076        AJ437318; AY159812; AC068644; AC131235; BC101090; BC101091      CAD   2235 24817.1; AAO38166.2; -; -; AAI01091.1; AAI01092.1

2608
Q5RAC9  A16L1_PONAB     100172682       NP_001125757.1  62510476; 197100589; 55729089                   GO:0006914; GO:0015031; GO:0005930; GO:0034045                  UniRe   2608 f100_Q5RAC9        UniRef90_Q676U5 UniRef50_Q676U5 UPI0000469D25           9601            Pab.555                 CR859089        CAH91281.1

2884
Q9RYL9 A2MGH_DEIRA             NP_285616.1; WP_010889552.1     499192012; 6460815; 15807953; 20178261                  GO:0004866                      UniRef100_Q9RYL9
         UniRef90_Q9RYL9 UniRef50_Q9RYL9 UPI000013C12A   B75583  243230  


论坛徽章:
0
发表于 2021-03-09 13:51 |显示全部楼层
谢谢,解决了,摸索了半天。

先把 分割符变成,, 然后查找 ,GO开始到,,,结尾的 中间部分。方法虽然比笨,目的达到了。

将制表符修改为逗号分隔符:
1
       
cat sampleID.txt|tr  "\t" "," > sampleID_form.txt  
1
       
sed -n l sampleID.txt ###判断文件时制表符还是空格分割的;
awk '{if(match($0,".*,,GO([^,,,]*)",a))print "GO"a[1]}' idmapping.tb.zhf.douhao > okok &
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP