标题:[求助]如何用perl计算密码子不同位点的GC含量?
只看楼主
h17785687955
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-11-14
 问题点数:0 回复次数:3 
[求助]如何用perl计算密码子不同位点的GC含量?
如何用perl计算密码子不同位点的GC含量???急用!!!!!
我是想计算每一条CDS密码子三个位点的GC含量,用下面这个脚本但没有数据输出,我的文本是fasta格式的,文件名是M.fasta,fasta结构的文本是以下形式:
>a
ATG GAA GAA GAG AAC GCG CAA CTC CGT ACC GAA TTG
>b
ATG GTT TTG TCA CAA GAA AAT GTT GAT CAC AAT GAT
“  $li=~s/^\w+://;        # 去除每条序列前的序列编号和冒号”怎么修改?
脚本:
#!/usr/bin/perl

sub gc {
  my $x;
  if($_[0] eq "G" or $_[0] eq "C" {
    $x=1;
  }
  $x;
}

my $input=$ARGV[0];
my ($li,$i,$len,$s,$tm,@t,@g);

open TMP, $M.fasta|| die;

while($li=<TMP> {
  my @t;
          my @g;
  chomp $li;
    #print "$li\n";
  $li=~s/^\w+://;        # 去除每条序列前的序列编号和冒号
  $li=~s/\s//g;
  #print "$li\n";
  $len=length $li;
  $i=0;
  while($i<$len) {
    $s=substr($li,$i,1);
        $y=$i%3;        # 判断是三个位点中的哪个
        $t[$y]++;        # 该位点的总碱基数目
        $g[$y]+=gc($s);        # 该位点的GC碱基数目
        $i++;
  }
  $tm=$g[0]/$t[0]*100;
printf "The GC content in site1 is %.3f\%\n",$tm;
$tm=$g[1]/$t[1]*100;
printf "The GC content in site2 is %.3f\%\n",$tm;
$tm=$g[2]/$t[2]*100;
printf "The GC content in site3 is %.3f\%\n",$tm;
}
close TMP;
搜索更多相关主题的帖子: GC 计算 序列 不同 密码 
2019-11-14 18:25
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:240
专家分:2086
注 册:2019-8-16
得分:0 
回复 楼主 h17785687955
程序代码:
#!/usr/bin/perl

sub gc {
  my $x;
  if($_[0] eq "G" or $_[0] eq "C") {
    $x=1;
  }
  $x;
}

my $input=$ARGV[0];
my ($li,$i,$len,$s,$tm,@t,@g);



while($li=<DATA>) {
  my @t;
    my @g;
  chomp $li;
    print "$li\n";
  $li=~s/^\w+://;        # 去除每条序列前的序列编号和冒号
  $li=~s/\s//g;
  #print "$li\n";
  $len=length $li;
  $i=0;
  while($i<$len) {
    $s=substr($li,$i,1);
        $y=$i%3;        # 判断是三个位点中的哪个
        $t[$y]++;        # 该位点的总碱基数目
        $g[$y]+=gc($s);        # 该位点的GC碱基数目
        $i++;
  }
  $tm=$g[0]/$t[0]*100;
    printf "The GC content in site1 is %.3f\%\n",$tm;
    $tm=$g[1]/$t[1]*100;
    printf "The GC content in site2 is %.3f\%\n",$tm;
    $tm=$g[2]/$t[2]*100;
    printf "The GC content in site3 is %.3f\%\n",$tm;
}


__DATA__
ATG GAA GAA GAG AAC GCG CAA CTC CGT ACC GAA TTG
ATG GTT TTG TCA CAA GAA AAT GTT GAT CAC AAT GAT
2019-11-29 17:50
TOLSWRF
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2021-9-23
得分:0 
回复 2楼 fall_bernana
大神这个编码,只能两行两行的进行运算,有没有多行运算的
2021-09-23 11:34
fall_bernana
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:17
帖 子:240
专家分:2086
注 册:2019-8-16
得分:0 
回复 3楼 TOLSWRF
没懂。什么叫2行运算,什么叫多行运算
2021-11-02 11:22



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497810-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.194186 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved