新手求教將 perl 做成 .pl 檔執行

看板Perl作者 (平行線上的交集....)時間10年前 (2014/04/25 12:18), 10年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串1/1
我有一份 .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? 問題很多, 謝謝大家的幫忙。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 75.72.204.238 ※ 文章網址: http://www.ptt.cc/bbs/Perl/M.1398399511.A.C0B.html

04/25 14:11, , 1F
感謝 cutekid 和版友們。解決了~
04/25 14:11, 1F
※ 編輯: silverberry (134.84.54.178), 04/25/2014 22:42:36
文章代碼(AID): #1JMU8NmB (Perl)