搜索
查看: 3247|回复: 2

【Panda姐-perl练习题4】统计给定序列在基因组上出现的次数

[复制链接]

58

主题

103

帖子

756

积分

版主

Rank: 7Rank: 7Rank: 7

积分
756
QQ
发表于 2016-8-28 15:25:37 | 显示全部楼层 |阅读模式
本帖最后由 Panda姐 于 2016-8-30 19:03 编辑

题目:
编写perl脚本,统计ACA、ATGC、CTGAT、GCTAGCATCGAT四种序列分别在Synechococcus sp. PCC 7002的染色体和质粒pAQ1、pAQ3、pAQ4、pAQ5、pAQ6、pAQ7(7002.fna)上出现的次数。

解题思路:
1.将序列行合并为一行;
2.利用正则进行匹配。

代码记录:
[Perl] 纯文本查看 复制代码
#! usr/bin/perl
use strict;
open INPUT,"change.fna";
open OUTPUT,">result.txt";
my($t,$strs,@strs,@count,$seq,@seq,$times);
@strs=("ACA","ATGC","CTGAT","GCTAGCATCGAT");
@seq=<INPUT>;
foreach $seq(@seq){
chomp($seq);
if($seq=~/>/){
print OUTPUT "$seq\n";
$t=1;
next;
 }
 if(($t==1)and($seq=~/.*/)){
 foreach $strs(@strs){
@count=($seq=~/$strs/g);
 $times=scalar @count;
 print OUTPUT "$strs:$times\n";
 }
 }
 }


小记:
1.以上代码不包括将序列整合成一行的,利用循环输入再次不带换行符输出的方法;
2.序列不进行同行整理,是否也可以操作,继续寻找解决办法。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x



上一篇:【Panda姐-perl练习题3】从gbk文件中提取蛋白序列
下一篇:【Panda姐-perl练习题5】将fasta文件中的序列一行转为多行
回复

使用道具 举报

0

主题

2

帖子

47

积分

新手上路

Rank: 1

积分
47
发表于 2016-12-22 09:55:04 | 显示全部楼层
#! usr/bin/perl
use strict;
use Bio::SeqIO;

my $stream = Bio::SeqIO -> new(-file => $ARGV[0], -format => 'fasta');
open OUTPUT,">result.txt";

my $a="ACA";
my $b="ATGC";
my $c="CTGAT";
my $d="GCTAGCATCGAT";

while(my $seqpro = $stream -> next_seq()){
        my $id = $seqpro -> display_id();
        my $seq =  $seqpro -> seq();
        #$seq=~s/\s+//g; $seq=~s/\r//g;$seq=~s/\n//g;
        my $count_1=($seq=~tr/$a//);  
        my $count_2=($seq=~tr/$b//);  
        my $count_3=($seq=~tr/$c//);  
        my $count_4=($seq=~tr/$d//);
        print "$id -> The $a is $count_1\n";
        print "$id -> The $b is $count_2\n";
        print "$id -> The $c is $count_3\n";
        print "$id -> The $d is $count_4\n";
}
回复 支持 1 反对 0

使用道具 举报

0

主题

1

帖子

21

积分

新手上路

Rank: 1

积分
21
发表于 2017-9-20 15:45:38 | 显示全部楼层
为啥没有序列
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|生信技能树    

GMT+8, 2019-6-16 19:36 , Processed in 0.030929 second(s), 28 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.