搜索
查看: 164|回复: 2

[Perl] 基因组染色体替换

[复制链接]

1

主题

4

帖子

81

积分

注册会员

Rank: 2

积分
81
发表于 2016-10-25 22:16:57 | 显示全部楼层 |阅读模式

一直学python,最近越来越发现perl的好用,体现在单行命令和代码简洁。
从师兄处学来参考基因组替换染色体号的perl 单行命令,基本的不能再基本。
以此立flag,好好学习python,好好学习perl,好好学习linux shell
########
perl-e 'open(IN1, "$ARGV[0]"); open(IN2, "$ARGV[1]");while(<IN1>){chomp; @A=split/\t/; $hash{$A[1]}=$A[0]}while(<IN2>){if (/^>/){chomp;s/>//;@B=split/\s+/; if (exists$hash{$B[0]}){print ">$hash{$B[0]}\n"}else{print">$B[0]\n"}}else{print $_}}' listGCF_000298735.2_Oar_v4.0_genomic.fna >sheep.v4.chr.fa
########
第一个文件为染色体list,第一列为替换后的染色体,第二列为替换前的染色体号;
第二个文件为待替换的参考基因组;
第三个为重定向生成的替换后的参考基因组;

这里面将替换前染色体的号作为哈希的键,在参考基因组中判断是否存在,存在即将对应的值为list中的替换后染色体号进行替换。





上一篇:《SED 单行脚本快速参考》的 perl 实现
下一篇:什么是甲基化-转自知乎
回复

使用道具 举报

10

主题

32

帖子

139

积分

注册会员

Rank: 2

积分
139
发表于 2016-10-26 15:49:42 | 显示全部楼层
这种代码谁看得懂呢,一个月后简直连亲妈都不想看。。。
回复 支持 反对

使用道具 举报

1

主题

4

帖子

81

积分

注册会员

Rank: 2

积分
81
 楼主| 发表于 2016-10-26 21:09:53 | 显示全部楼层
dongye 发表于 2016-10-26 15:49
这种代码谁看得懂呢,一个月后简直连亲妈都不想看。。。

嗯,下次注意,一点点改进。
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|关于我们|手机版|小黑屋|生信技能树    

GMT+8, 2017-1-22 11:49 , Processed in 0.277060 second(s), 33 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.