免费注册 查看新帖 |

Chinaunix

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

求助小脚本编写 [复制链接]

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2017-02-26 09:40 |显示全部楼层 |倒序浏览
脚本读入两个文件 lst1和lst2
lst1:
RRA45973,RRA45973,CACTTCGA,,
RRA45974,RRA45974,CAGCGTTA,,
RRA45975,RRA45975,CATACCAA,,
RRA45976,RRA45976,CCAGTTCA,,
RRL06701,RRL06701,ATCCTGTA,,
需求把后面的8个碱基加两个逗号删除,碱基有的时候是6个。
lst2:
ATTACTCG        TATAGCCT
ATTACTCG        ATAGAGGC
ATTACTCG        CCTATCCT
ATTACTCG        GGCTCTGA
ATTACTCG        AGGCGAAG
要求把中间的空格换成逗号隔开。
写一个脚本把做完修改的两个文件对应行粘到一起,结果就像
RRA45973,RRA45973,ATTACTCG,TATAGCCT
.
.
.
请教各位大神应该怎么写,小弟初学,自己写的运行起来有问题。

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
2 [报告]
发表于 2017-02-26 14:02 |显示全部楼层
回复 2# sunzhiguolu
就是说lst1那个文件每行的最后两个逗号加上【ATGC】组成的8个(有的时候是六个)字符我要把它删了,替换成list2中的相应行,但是list2中的每行要把中间的空格换成逗号,最终的结果就是我贴子上已经粘的那个结果,只不过我只是贴了一行,已知lst1和lst2这两个文件行数是一样的,有多少行就输出多少个合并后的行。

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
3 [报告]
发表于 2017-02-26 14:10 |显示全部楼层
回复 2# sunzhiguolu
lst1每行改完后的结果就像这样:RRA45973,RRA45973,
lst2每行改完后的结果就像这样:ATTACTCG,TATAGCCT
最终希望的结果是把这两行粘成一行
RRA45973,RRA45973,ATTACTCG,TATAGCCT
lst1中有多少行就打印出多少行。

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
4 [报告]
发表于 2017-02-26 14:35 |显示全部楼层
回复 5# moperyblue
因为这是这两个文件的一部分,如果只是用paste命令用正则的话会把一些不需要修改的地方也改了,我粘出来的只是这两个文件需要修改的部分。所以我还是希望能有一个只是针对上面我给出的两个文件的小脚本。

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
5 [报告]
发表于 2017-02-26 18:09 |显示全部楼层
回复 8# 华小飞_Perl
其实就是index,拆分双端index的时候有些东西需要改,显得麻烦所以就想搞一搞。楼上的方法其实就能实现,不过我正在学perl,我想看一下别人怎么写的  为什么我自己写的不能达到效果。

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
6 [报告]
发表于 2017-02-27 13:50 |显示全部楼层
谢谢,不过我自己写的也搞定了,
#! usr/bin/perl
@ARGV ||die "can not open the file!\n";
open (my $fh_1, "< $ARGV[0]");
open (my $fh_2, "< $ARGV[1]");
my %hash;
my @arr;
while (<$fh_1>){
         chomp;
        s/[ATGC]{6,8},,//;
        @arr = split /,/;       
chomp(my $lst2 = <$fh_2>);
        my ($idx) = grep s/\s+/,/, ($lst2);
push @arr, $idx;
$hash{$arr[0]} = [@arr];
print join(",",@{$hash{$arr[0]}}),"\n";
}
close $fh_1;
close $fh_2;
写得烂但是运行没发现问题。

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
7 [报告]
发表于 2017-02-27 14:07 |显示全部楼层
回复 10# 华小飞_Perl
是illunina hiseq4000的数据

论坛徽章:
1
15-16赛季CBA联赛之天津
日期:2017-03-21 18:26:14
8 [报告]
发表于 2017-02-27 14:09 |显示全部楼层
回复 7# moperyblue
是的,我第一次就是这么干的,因为在学perl,所以想找个东西练练手。

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP