搜索
查看: 2139|回复: 2

[Perl] perl第9、11题,代码全注释(抛砖引玉)--(指定坐标得参考...

[复制链接]

16

主题

61

帖子

515

积分

高级会员

Rank: 4

积分
515
发表于 2017-7-5 23:36:56 | 显示全部楼层 |阅读模式
本帖最后由 泥土 于 2017-7-5 23:41 编辑

这两个题目放到一起了,不多说了,全在注释里,首先是9题,指定序列位置得到碱基序列

[Perl] 纯文本查看 复制代码
open INPUT1,"chr1.fa";
open INPUT2,"location.txt";
open OUTPUT,">location.fa";  #以上三行读入和写入文件
my ($hg_chr,%seq,$chr,$postion_start,$postion_end,$query_sub_seq,$postion_len); #声明变量
while(<INPUT1>){
        chomp($_);   #去掉\n
        if(/>(.*)/){
                $hg_chr=(split /\s/,$1)[0]; #  $1为捕获变量
        }else{
        $seq{$hg_chr} .= $_; #构建标题行与序列行的hash
        }
}
#print $hg_chr; #自己用来测试的
while(<INPUT2>){ #此部分的输入为自己指定的染色体和起始位置
        chomp($_);  
        ($chr,$postion_start,$postion_end)=(split /\s+/,$_)[0,1,2];#split后$_会变成一个数组,分别取值并赋给三个变量赋值
        if (exists($seq{$chr}))        {  #判断hash是否存在
                $postion_len=$postion_end-$postion_start+1; #为substr函数应用做准备
                $query_sub_seq=substr($seq{$chr},$postion_start-1,$postion_len);#应用substr函数截取序列,substr(要截取的变量,起始位置,长度)
                print OUTPUT ">$chr:$postion_start:$postion_end\n$query_sub_seq\n"; #输出
                }
}

11题:把文件内容按照染色体分开
[Perl] 纯文本查看 复制代码
use FileHandle; #使用文件句柄
foreach( 1..22 ){       #创建文件
    $normal_chr{$_}=1 ;
    open $fh{$_},">chr$_.txt" or die;
}
open other,">chr_other.txt" or die;
open FH,"CCDS.current.txt";#此处用的测试文件为人类CCDS
while(<FH>){
    chomp;
    @F=split;        #split默认用法
    if(exists $normal_chr{$F[0]}){    #判断$normal_chr{$F[0]}是否存在
								    		
        $fh{$F[0]}->print ( "$_\n" ); #这个用法非常值得学习
        #print $fh{$F[0]} "$_\n";  #这样的写法无法达到print 文件句柄,输出;的效果
    }else{ 
        print other $_;
    }
}
foreach( 1..22 ){ #关闭文件句柄
    close $fh{$_};
}
close other;




上一篇:annovar 注释sv
下一篇:转录组入门(1)Mac上软件准备作业
回复

使用道具 举报

634

主题

1182

帖子

4030

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4030
发表于 2017-7-6 07:13:39 | 显示全部楼层
看起来你入门啦
你这个问题很复杂,需要打赏,请点击 http://www.bio-info-trainee.com/donate 进行打赏,谢谢
回复 支持 反对

使用道具 举报

16

主题

61

帖子

515

积分

高级会员

Rank: 4

积分
515
 楼主| 发表于 2017-7-6 08:39:07 | 显示全部楼层
Jimmy 发表于 2017-7-6 07:13
看起来你入门啦

马马虎虎,准备探索和注释R部分
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|手机版|小黑屋|生信技能树 ( 粤ICP备15016384号  

GMT+8, 2019-9-16 09:15 , Processed in 0.029857 second(s), 25 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.