新手求教将 perl 做成 .pl 档执行

楼主: silverberry (平行线上的交集....)   2014-04-25 12:18:27
我有一份 .csv 档,
资讯大概是这样:
(file.csv)
Probe ID 1,0001-a,ATCGCGAT,xxx,xxx,xxx
Probe ID 2,0001-b,TCGTCAT,xxx,xxx,xxx
Probe ID 3,0002-a,CGATGCTAACCCACAT,xxx,xxxxxx
.
.
.
我想要撷取里的资料变成 (file.fasta)
>Probe ID 1
ATCGCGAT
>Probe ID 2
TCGTCAT
>Probe ID 3
CGATGCTAACCCACAT
.
.
.
目前我处理的方法是这样
1. 用 excel 打开,把 Probe ID 1 和 ATCGCGAT 这两行做成一份新的 file.csv
2. 把 "," 转成 .tab
perl -e '
$sep=",";
while(<>) {
s/\Q$sep\E/\t/g;
print $_;
}
warn "Changed $sep to tab on $. lines\n"
' file.csv > file.tab
3. .tab 转成 .fasta
perl -e '
$len=0;
while(<>) {
s/\r?\n//;
@F=split /\t/, $_;
print ">$F[0]";
if (length($F[1])) {
print " $F[1]"
}
print "\n";
$s=$F[2];
$len+= length($s);
$s=~s/.{60}(?=.)/$&\n/g;
print "$s\n";
}
warn "\nConverted $. tab-delimited lines to FASTA format\nTotal sequence
length: $len\n\n";
' file.tab > file.fasta
我刚转行进生物资讯的实验室。
完全没任何程式语言的基础。
幸好有 google 大神和很多生物资讯相关的资料,
所以查到上面的 script。
可以使用没有问题。
就是需要每次修改档名那一行指令而已 Orz
有几个问题想请教大家,
1. 有没有办法直接让 perl 做第一步?
因为我的档案很大,
用 excel 处理成 .csv 档要花很多时间。
2. 看到有人把 script 做成 .pl 档,
请问有没有办法把第二步和第三步做成
xxxx.pl file.csv > file.fasta 这样的形式?
3. 最后,
因为火烧屁股的接下这个题目,
档案整理只是第一步。
如果要快速的熟悉这类 perl 的 script,
有没有什么推荐的书或网站。
很多人推荐的骆驼书我会看,
不过有没有什么资料,可以让我能先学会修改现成的 script?
问题很多,
谢谢大家的帮忙。
楼主: silverberry (平行线上的交集....)   2014-04-25 14:11:00
感谢 cutekid 和版友们。解决了~

Links booklink

Contact Us: admin [ a t ] ucptt.com