新手求教將 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