查看原文
其他

Perl学习17之生信简单运用

pythonic生物人 pythonic生物人 2022-09-11

"pythonic生物人"的第29篇分享


感觉不错可以点个“赞“或"在看"哦


正文开始啦



1、计算一条DNA序列中的ATGC个数GC含量格式化输出

  • gccount_read.pl

#!/usr/bin/perluse strict;use warnings;my $read = "AACAAACCCCTTTTCTCTATTAAAAAATACAAAATAGCTTAGCTGCGGCATAGTGGAGCACG";my $G = ($read =~ s/G/G/g);#s为匹配表示匹配,($read =~ s/G/G/g)返回匹配次数个数my $C = ($read =~ s/C/C/g);my $A = ($read =~ s/A/A/g);my $T = ($read =~ s/T/T/g);my $total = $G + $C + $A +$T;my $GC_P = ($G + $C)/$total;
#格式化输出printfprintf "\$G:%d\n\$C:%d\n\$A:%d\n\$T:%d\n\$total:%d\n\$GC_P:%.2f\n",($G,$C,$A,$T,$total,$GC_P);
#sprintf格式化不输出my $result = sprintf("\$G:%d\n\$C:%d\n\$A:%d\n\$T:%d\n\$total:%d\n\$GC_P:%.2f\n",($G,$C,$A,$T,$total,$GC_P));
#输出到文件GC.fileopen OUT,">","./GC.file";print OUT $result;close OUT;


  • perl gccount_read.pl

$G:10
$C:14
$A:23
$T:15
$total:62
$GC_P:0.39 
cat GC.file
$G:10
$C:14
$A:23
$T:15
$total:62
$GC_P:0.39
2、每一行数据求和,每个数使用各自行和归一化
输入文件sumfile
a       1       2       3       4       5       6
b       1       2       3       4       5       6

目的:分别求a,b行中所有数之和,每个数在该行所占比例格式化输出
脚本:sum1.pl
#!/usr/bin/perluse strict;use warnings; open IN,"./sumfile";while(<IN>){ chomp; my @t=split; my $sum=0; for my $i (1..5){ $sum+=$t[$i]; } print "$t[0]\t$sum\t";#求和 for my $i (1..5){ my $percent=$t[$i]/$sum; printf "%.2f\t","$percent"; } print "\n";#换行 }

perl sum1.pl

a 15 0.07 0.13 0.20 0.27 0.33

b 15 0.07 0.13 0.20 0.27 0.33



同系列文章

Perl学习16之读文件,存入哈希,输出到文件

Perl学习15之perl读excel表格

Perl学习14之$0,ARGV,use warnings,use stricts使用



持续更新,欢迎您"点赞"、"在看"、"分享"


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存