Professional Documents
Culture Documents
Chuyên đề 8
Chuyên đề 8
Ni dung chuyn
Tm hiu v Ngn ng lp trnh Perl : I. Cc kiu d liu II. Vo/ra tp III. Chng trnh con IV. Ci t v s dng th vin BioPerl, s dng BioPerl cho bi ton sp cp trnh t v sp a trnh t.
I.
Cc kiu d liu
1. Kiu d liu danh sch (list) 2. Kiu d liu mng (array) 3. Kiu d liu mng bm (hash)
1.
1.1 1.2
to ra mt mng @ngay cha cc phn t l ngy trong thng : 01, 02, ... 31
2.
2.1 2.2 2.3 2.4 2.5 2.6 2.7
Khi nim mng Khai bo Truy nhp Sp xp mng S cc phn t ca mng In ra cc phn t ca mng Mt s hm cho mng
2.2 Khai bo
C php:
nhm ln.
Lnh gn trn c ngha l gn danh sch (a, 1, 2, 3 , c) cho mng @mang2( mng @mang1 theo trn gm c cc phn t 1, 2, 3)
Perl cn cho php gn mt mng cho mt danh sch cc bin ($x, $y, $z) = @mang1; tng ng vi : $x = $mang1[0]; $y = $mang1[1]; $z = $mang1[2]; Nu s cc bin nhiu hn s cc phn t ca mng th cc bin cui cng c gn bng xu rng . V d: ($x, $y, $z, $t) = @mang1; $t s dc gn bng xu rng.
Perl cho php truy nhp ti nhiu phn t ca mng cng mt lc <tn_mng>[<ch_s_1>, <ch_s_2>, ... <ch_s_n>] V d: @mang_con1 = @mang1[0, 1]; @mang_con1 gm hai phn t u tin ca mng @mang1. @mang_con2 = @mang1[1, 2, 3]; @mang_con2 gm ba phn t 2, 3, 4 ca mng @mang1. @mang_con3 = @mang1[0..9]; @mang_con3 gm 10 phn t u tin ca mng @mang1. @mang2[0, 1, 2] = (9, 8, 7); ba phn t u tin ca mng @mang2 c gn bng 9, 8, 7. @mang2[3..6] = (9, 8, 7); tng ng vi: $mang2[3] = 9; $mang2[4] = 8; $mang2[5] = 7; $mang2[6] = ;
Perl cung cp mt cch n gin hon i hai phn t ca mng. V d mun hon i hai phn t u tin ca mng @mang1 ch cn dng cu lnh sau: @mang1[0, 1] = @mang1[1, 0]; V Perl lu @mang1[1, 0] vo mt v tr tm thi trc khi gn, do s hon i din ra thnh cng.
2.4 Sp xp mng
$n = @mang;
for ($i=0; $i<$n-1; $i++) for ($j=$i+1; $j<$n; $j++) if ($mang[$i] > $mang[j]) @mang[$i, $j] = @mang[$j, $i];
a.
Hm SORT
Hm ny sp xp cc phn t ca mng theo th t alphabetical v tr li gi tr l mt danh sch c sp xp. Do ta c th dng php gn : @mang1 = (de, bc, fg, a); @mang_sx = sort (@mang1); Kt qu tr li l @mang_sx Gm c cc phn t ca mng @mang1, nhng c sp xp. Do @mang_sx l danh sch (a, bc, de, fg). Mun mng @mang1 c sp xp, ta dng lnh: @mang1 = sort (@mang1);
Tc l gi tr tr li sau khi sp xp @mang1 c gn chnh vo @mang1 Ch : hm sort ch sp xp c xu, khng sp xp c s theo th t tng dn. Do on m sau s khng thc hin c iu ta mong mun sp xp cc s theo th t : @mang1 = (111, 33, 222); @mang1 = sort (@mang1); Bi v khi thc hin hm sort 111, 33, 222 c hiu nh l nhng xu. Cho nn kt qu: @mang1 l danh sch (111, 222, 33)
b.
Hm REVERSE
Hm ny o ngc cc phn t ca danh sch hay mng, v gi tr tr li l danh sch c o ngc. @mang1 = (de, bc, fg, a); @mang2 = reverse (@mang1); Gi tr c gn cho mng @mang2 l danh sch (a, fg, bc, de) Cng nh trn gi tr ca mng @mang1 khng thay i, mun c mng @mang1 sp xp ta dng: @mang1 = reverse (@mang1);
c.
Hm CHOP
Hm ny ct b k t cui cng ca mi phn t trong mng : @mang1 = (abc, def, ghi); chop(@mang1); Danh sch c lu tr trong mng @mang1 sau khi thc hin hm chop l: (ab, de, gh);
d.
Hm JOIN
Hm ny ghp tt c cc xu trong danh sch hay mng tr thnh mt xu: $string = join( , Day, la, xau); Phn t u tin ca danh sch c coi l phn t ngn cch gia cc phn t cn li ca danh sch trong xu c ghp. Do vy: $string = Day la xau;
e.
Hm SPLIT
f.
Hm SPLICE
Hm splice cho php bn chnh sa danh sch lu tr trong mng nh thm phn t vo gia mng, xo phn t hay thay th mt phn t. Thay i gi tr ca phn t Thay i gi tr ca phn t th hai v ba ca mng @mang1 : @mang1 = (de, bc, fg, a); splice (@mang1, 1, 2, (ij, kl); Nu s phn t thay th nhiu hn s phn t ch nh thay th, cc phn t cn li c chn vo danh sch @mang1 = (de, bc, fg, a); splice (@mang1, 1, (ij, kl); # Li to ra mng
@mang1 ging nh trn.
Tng t nu s phn t thay th t hn th cc phn t ch nh thay th cn li trong danh sch s b loi b @mang1 = (de, bc, fg, a); splice (@mang1, 1, 2, 3, (ij, kl); @mang1 by gi ch cn 3 phn t (de, ij, kl). Thm mt phn t vo mng splice (@mang1, 3, 0, "mn", "pq"); thm hai phn t mn v pq vo mng @mang1, phn t th 4 l mn, phn t th 4 l mn, cc phn t th 4 v 5 ca @mang1 s c y ln thnh phn t th 6 ,7 v tip tc. Xo phn t khi mng splice(@mang1, m, n); Xo n phn t ca mng n bt du t phn t th m. Gi tr tr li l mt danh sch b xo cc phn t ch nh.
g.
Hm shift loi b phn t u tin ca mng : $ptdt = shift(@mang1); V d: @bases = ('A', 'C', 'G', 'T'); $base2 = shift @bases; print "Here's an element removed from the beginning: "; print $base2,\n"; print "Here's the remaining array of bases: "; print "@bases"; Kt qu hin th: Here's an element removed from the beginning: A Here's the remaining array of bases: C G T
Ngc li, hm unshift chn thm vo u mng mt phn t: unshift(@mang1, $ptdt); V d: @bases = ('A', 'C', 'G', 'T'); $base1 = pop @bases; unshift (@bases, $base1); print "Here's the element from the end put on the beginning: "; print "@bases\n\n"; Kt qu hin th: Here's the element from the end put on the beginning: T A C G
h.
Hm push y mt phn t vo cui mng push(@mang1, $pt); V d: @bases = ('A', 'C', 'G', 'T'); $base2 = shift @bases; push (@bases, $base2); print "Here's the element from the beginning put on the end: "; print "@bases\n"; Kt qu hin th: Here's the element from the beginning put on the end: C G T A
Ngc li hm pop loi b phn t cui cng ca mng pop(mang1); hay: $ptc = pop(mang1); v d: @bases = ('A', 'C', 'G', 'T'); $base1 = pop @bases; print "Here's the element removed from the end: "; print $base1,\n"; print "Here's the remaining array of bases: "; print "@bases"; Kt qu hin th: Here's the element removed from the end: T Here's the remaining array of bases: A C G
hoc
%<tn_mng> = (<ch _s > => <gi_tr >, <ch _s > =><gi_tr >, ...);
V d : %mt = (Pen4, 3, Pen3, 2, Celeron, 5); %ss = (Tin4 => 50, Tin5 => 48, Tin6 => 49); C th to mng lin kt t mng bnh thng v ngc li. V d : @mt = (Pen4, 3, Pen3, 2, Celeron, 5); %mt = @mt; # Vn to ra mng nh trn. @mt2 = %mt; # To ra @mt2 ging @mt To mi mng lin kt bng cch truy cp ti mng bng ch s mi v gn cho n gi tr : $mt{Pen2} = 10;
Xo mt phn t ca mng dng hm delete:Perl loi b cp kho-gi tr khi mng bm V d: %jerry = ("aaa", "bbb", 234.5, 34.56); # cho %jerry 2 phn t delete $jerry{"aaa"}; # %jerry by gi ch cn mt cp kho-gi tr
a. Hm key
key(%manglk) tr v danh sch cc tt c cc kho (ch s) hin
b. Hm value
Hm ny tr li danh sch cc gi tr ca mng bm
@giatri = value(%manglk)
V d: %lastname = (); # gn %lastname l rng $lastname(jerry} = flintstore; $lastname{tom} = rubble;
@lastname = values(%lastname); # ly cc gi tr
#Ti im ny @lastname cha ("flintstore", "rubble") hoc o ngc ca n
c. Hm each
each(%manglk) ton t ny s tr v cp kho-gi tr nh mt danh sch hai phn t. Vi mi ln thc hin ton t ny cho cng mng, cp kho-gi tr k tip s c tr v, cho ti khi tt c cc phn t u c truy cp. Khi khng cn cp no na th each() tr v mt danh sch rng. Hm ny thng c dng cho vng lp while (($first, $last) = each(% manglk)) { print "First name of $first is $last\n"; } Vic gn mt gi tr mi cho ton b mng s t li tng ton t each() tr v v tr bt u (phn t u tin).
d.
Hm exits
3.4 Lt ct mng bm
Tng t nh mng danh sch, mng bm c th c 'ct'
thnh tng phn nh-tp hp mt s phn t no ca mng. V d, ta c th to mt mng theo cch sau:
$score{"fred"} = 205;
$score{"barney"} = 195; $score{"dino"} = 30; ta c th vit ngn hn nh sau: ($score{"fred"}, $score{"barney"}, $score{"dino"}) =
(205,195,30);
Thm ch c th vit ngn hn na dng lt ct: @score{"fred", "barney", "dino"} = (205, 195, 30); Ta c th dng lt ct trong xu nhy kp:
V d sau, mng bm con c u tin hn: nu c cng mt kho tn ti trong c mng bm con v mng bm ln th gi tr trong mng bm con s c s dng:
II.
Vo/ra tp
3. Kim tra tp
1. Khi nim v tp
Tp tin hay tp d liu l mt tp hp cc d liu c lin quan
vi nhau v c cng mt kiu c nhm li vi nhau thnh mt dy. Chng thng c cha trong mt thit b nh
2. Cc thao tc
a. M tp: C php open (filevar, filename); filevar : l bin tp dng thay th cho tp trong chng trnh Perl. filename : l tn c ng dn y ca tp. Bin filevar c t tn theo khi nim v tn gii thiu trong chng 1. Bin ny khng c k t c bit u nn c th ln ln vi tn bin hay mt s t dnh ring khc. V th ta nn dng ch hoa t tn bin tp . open (DULIEU, c:\perl\eg\readme.txt); filename c Perl hiu l mt xu nhy kp ch r v tr ca tp. V th ta c th lm nh sau : $ten_tep = c:\bootlog.txt;
open (DULIEU, $ten_tep); Ch m tp : c 3 ch m M c : y l ch ngm nh ca Perl. M ghi : ch ny s m tp, xo ni dung ca tp v bt u ghi mi. Cch m : thm k t > vo trc filename open (DULIEU, >c:\perl\eg\readme.txt); M ghi thm vo : c th thm d liu vo tp m m khng xo ni dung ca tp. Cch m : thm >> vo trc filename open (DULIEU, >>c:\perl\eg\readme.txt); M va c, va ghi : khc vi ch ghi thm vo, ch ny cho php ghi ln d liu c, li cn cho php c tp. open (DULIEU, +>c:\perl\eg\readme.txt); Cch m : thm +> vo trc filename
b. c tp
c mt dng: c mt dng t tp c m ta dng lnh c c php nh sau : $line = <filevar>; V d : Chng trnh in ra ni dung ca tp dulieu.inp #!/usr/local/bin/perl if (open(TEP, "dulieu.inp")) { $line = <TEP>; while ($line ne "") { print ($line); $line = <TEP>; } }
Perl cn cho php c ton b tp vo mt mng, mi dng ca tp l mt phn t ca mng : @mang = <TEP>; c 1 k t: $char = getc(filename); c theo s byte: read (filevar, result, length, skipval); sysread (filevar, result, length, skipval); filevar : bin tp. result : bin v hng hay mt phn t ca mng lu kt qu. lentght : di byte cn c. skipval : ch s byte cch qung trc khi c(i s ny khng cn thit). Hm read v sysread cng thc hin vic c nhng sysread thc hin nhanh hn.
V d: c 4 byte t tp c lu trong bin TEP v cho vo bin $x read (TEP, $x, 4); Cch c ny thng c s dng cho tp nh phn, do phi khai bo cch c nh phn. V d : c tp lu tr s nguyn 2 byte #!/usr/local/bin/perl open (TEP, "songuyen.dat"); binmode(TEP); while (read(TEP, $so, 2), !eof(TEP)) { print ("$so\n"); } Hm eof(TEP) trn dng kim tra xem c ht tp cha. Hm ny ging nh trong C tr li gi tr 0 nu cha c ht tp, khc 0 nu c ht tp.
2.3 Ghi tp
C php print filevar (<d liu>); printf filevar (<format>, <argument>);
V d open(INFILE, "dulieu.inp")) || die ("Khong mo duoc file dulieu.inp\n"); open(OUTFILE, ">dulieu.out")) || die ("Khong mo duoc file dulieu.out\n"); } $line = <INFILE>; while ($line ne "") { print OUTFILE ($line); $line = <INFILE>; } Hoc dng hm select thay i tp ra mc nh ri dng print (<d liu>); hay dng write cng vi nh dng d liu ra ghi nh cp ti trong phn Vo/ra ghi theo byte i vi tp nh phn phi dng hm syswrite syswrite (filevar, data, length, skipval); Cc i s nh hm read.
V d : Di chuyn n u file : seek(TEP, 0, 0); Di chuyn tip 10 v tr t v tr hin ti : seek(TEP, 10, 1); Di chuyn li li 10 v tr t v tr hin ti : seek(TEP, -10, 1); Di chuyn n cui file : seek(TEP, 0, 2); Tuy nhin, mt vn t ra l phi kim sot xem v tr truy nhp vo c vt ra ngoi kch thc tp hay khng. trnh gy li, Perl cung cp hm tell xc nh v tr hin ti ca con tr tp. Hm ny tr li khong cch (bng s byte) tnh t u tp n v tr hin ti. C php: tell(filevar) V d : tnh s byte ca tp seek(TEP, 0, 2); # Di chuyn n cui tp $kichthuoc = tell (TEP);
2.5 ng tp
C php close (filevar);
Tuy nhin nu qun khng ng tp li khi x l xong th Perl s lm gip iu . V d open (MYFILE, ">dulieu"); print MYFILE ("Xin chao.\n"); open (MYFILE, ">file2"); print MYFILE ("Xin chaot.\n"); Khi file2 c m ra Perl s t ng ng dulieu li v bin
3. Kim tra tp
Perl c rt nhiu ton t cho ta s dng kim tra cc thuc tnh ca tp. V d nh s dng ton t -e m bo rng tp c tn ti trc khi thao tc. Hay kim tra tp xem c th ghi c khng trc khi vit thm vo. Bng vic kim tra tnh kh thi ca cc thao tc i vi tp, ta c th gim bt s li s gp. C php -x $filevar x : l k t ch biu th ton t kim tra tp. $filevar : l bin v hng cha tn tp. Ton t thng dng nht l ton t kim tra tp c tn ti hay khng e $var = "dulieu "; if (-e $var) { print STDERR ("File dulieu co ton tai.\n"); }
1.
Khi nim
Chng trnh con l mt on chng trnh nhm thc hin mt cng vic no v c thc thi bng cch gi chng trnh con ra. Mc ch s dng chng trnh con: Chia nh chng trnh thnh nhng phn nh hn, lm cho n d c v d hiu hn. Gip ta trnh phi vit li nhiu ln nhng on chng trnh thc hin mt cng vic ging nhau.
tng ng nh l mt th tc, tc l c th gi n ra m
khng cn gn.
2.
Cch gi hm
Bn gi mt CT con t bn trong bt k biu thc no bng vic ghi ra tn ca CT con v theo sau l danh sch cc tham s c t trong hai du (), nu khng c tham s th ta dng (); <tn> ( <danh sch cc tham s> ) i khi gi hm bng cch ny gy ra li, chng trnh khng hiu , ta cn c cch gi khc nh sau lun ng : &<tn> ( <danh sch cc tham s> hay do <tn> ( < danh sch cc tham s> ) V d:
3.
Tr li gi tr cho hm
L hm th phi c gi tr. Trong Perl gi tr ca hm c tnh bng gi tr ca biu thc cui cng trong hm. VD:
Hm cho_gia_tri s c gi tr bng gi tr ca $x l 123. Nh vy ch cn vit ra bin hay gi tr cui cng trong hm ta nhn c gi tr tr li cho hm chnh l bin hay gi tr . Tuy nhin lm nh vy s lm cho chng trnh rt kh c.
Nn s dng bin mng retval gn gi tr tr li cho hm $retval = $x; @retval = @mang; Tuy nhin biu thc cui cng y l biu thc c tnh trong hm ch khng phi l biu thc cui cng xc inh trong thn hm. VD:
Cng c th tr li gi tr cho hm bng cch dng cu lnh return <gi tr tr v>; Cu lnh return ny hot ng ging ht nh trong C : tr li gi tr cho hm v kt thc hm chuyn v ch gi n. VD:
4.
Bin cc b trong hm
Bin cc b c khai bo trong hm v ch tn ti trong thi gian hm hot ng. Khi ra khi hm bin mt i, khi gi hm mt ln na bin cc b l c nh ngha li. Bin cc b c khai bo nh sau : my <bin>; local <bin> ; Khai bo bng t kho my lm cho bin ch tn ti trong hm . Ra khi ngoi hm th bin khng cn tn ti. Khai bo bng t kho local s lm cho bin tn ti trong hm v c trong nhng hm c n gi. Nhng s khng tn ti trong chng trnh chnh. Cng nh cch khai bo bin ton cc, bin cc b c th c gn gi tr trong khi khai bo
Ch : Ta cng c th truyn nhiu bin, mng hay danh sch theo cch ny V d:
6.
Hm quy
7. Ch nh th t sp xp
Ta c hm sort trong Perl s sp xp cc phn t theo th t abc. @list1 = ("Trang", "An", "Nam"); @list2 = sort (@list1); cho ta @list2 = ("An", "Nam", "Trang") sp xp cn phi so snh tng i cp phn t mt. Perl lm iu ny bng cch gi mt hm c bit c xy dng sn tng t nh hm sau :
a.
Hm BEGIN
Hm ny s c gi khi chng trnh bt u chy. BEGIN { print Chuong trinh ...\n; } Tt nhin cng nh mi hm khc, hm ny c th c bin cc b hoc c th gi hm khc trong chng trnh.
b.
Hm END
c. Hm AUTOLOAD
Hm ny s c gi khi c mt li gi hm, m hm ny khng c tm thy trong chng trnh, tn ca hm c lu trong bin AUTOLOAD, danh sch tham s c lu trong @_:
Hm AUTOLOAD rt c ch khi ta lp trnh chia theo nhiu modul, n s kim tra s tn ti ca mt hm no c vit trong file khc khi hm c gi.
d.
Sin Cos Atan2 Sqrt Exp Log abs
Cc hm ton hc
IV. Ci t v s dng th vin BioPerl, s dng BioPerl cho bi ton sp cp trnh t v sp a trnh t.
1. 2. 3. 4.
Gii thiu BioPerl Ci t BioPerl S dng BioPerl S dng BioPerl cho bi ton sp cp trnh t a trnh t
1.
a ch web: http://www.bioperl.org
BioPerl l th vin lp trnh c pht trin trn nn Perl vi mc ch chuyn dng cho vic pht trin cc ng dng Tin sinh hc. y l b th vin m ngun m, v ang c xy dng bi rt nhiu chuyn gia trn th gii. BioPerl cho php gii quyt cc bi ton Tin sinh hc. Bioperl l mt b su tp gm hn 500 modul Perl cho tin sinh hc c vit v duy tr bi mt nhm cc tnh nguyn vin quc t Bioperl l mt phn mm min ph
2.
Ci t BioPerl
Sau lm nh hnh v:
Bc 5: nh du Bioperl ci t
3.
y l mt danh sch ngn ca mt s hu ch ca Bioperl Tng quan v cc i tng Bioperl i tng Seq Tp tin Gbrowse v GFF Phn tch c php BLAST T ng tm kim c s d liu
Bioperl l tp hp nhiu modul. Mt s cc modul c lp, nhng modul khc tng tc vi nhau theo nhiu cch khc nhau. Cc m-un trong Bioperl c vit theo phong cch hng i tng. Cc m-un Bioperl bao gm cc lnh vc khc nhau ca tin sinh hc. Mc d Bioperl bao gm mt s chng trnh v d. N c thc hin nh mt b cng c bn c th nhng vo c tr gip khi vit cc chng trnh ca ring bn.
Mt s cc nhm i tng trong bioperl Sequences <Trnh t> Bio:: Seq l cc dy i tng chnh Bioperl . Bio:: PrimarySeq l mt i tng chui m khng c cc tnh nng. Bio:: SeqIO cung cp trnh t tp tin u vo v u ra. Bio::Tools::SeqStats cung cp cc s liu thng k trong mt trnh t. Bio: LiveSeq:: * x l vic thay i trnh t .
Bio::Seq::LargeSeq cung cp h tr cho chui ln Databases <C s d liu> Bio:: DB:: GenBank cng c truy cp GenBank. Ging Cc m-un c sn trong cc c s d liu sinh hc. Bio:: Index:: * lp ch s v truy cp c s d liu c th Bio::Tools::Run::StandAloneBlast chy BLAST trn my tnh c th. Bio::Tools::Run::RemoteBlast chy BLAST t xa.
Bio::Tools::BPlite phn tch bo co BLAST.Bio::Tools::BPpsilite phn tch bo co psiblast. Bio::Tools::HMMER::Results phn tch kt qu m hnh HMMER n Markov. Alignments <S sp xp > Bio:: SimpleAlign thao tc v hin th s sp xp nhiu trnh t n gin. Bio:: UnivAln thao tc v hin th s sp xp nhiu th t. Bio:: LocatableSeq trnh t cc i tng vi cc im bt u v kt thc c v tr i xng so vi cc trnh t hoc s sp xp khc.
Bio::Tools::pSW ging hai chui vi nhau bng thut ton Smith-Waterman. Bio::Tools::BPbl2seq cng c phn tch c php BLAST cho cp trnh t bng cch s dng cc thut ton BLAST. Bio::AlignIO ging hai chui vi BLAST. Bio:: Clustalw l mt giao din gi Clustalw sp xp a trnh t. Bio:: TCoffee l mt giao din gi TCoffee sp xp a trnh t. Bio::Variation::Allele b x l alen . Bio::Variation::SeqDiff x l b t bin v cc bin th.
Features and genes on sequences Bio:: SeqFeature l thuc tnh th t ca i tng trong Bioperl. Bio::Tools::RestrictionEnzyme nh v cc trang web hn ch theo th t. Bio::Tools::Sigcleave tm thy cc trang web chuyn i axit amin . Bio::Tools::OddCodes vit li cc chui axit amin t m vit tt phn tch thng k c th Bio:: LocationI cung cp mt giao din thng tin v tr cho mt chui
Bio::Tools::Genscan l mt giao din chng trnh tm kim cc gen. Bio::Tools::Sim4::Results l mt giao din chng trnh tm kim cc exon gen. Bio:: Tools :: ESTScan l mt giao din chng trnh tm kim cc gen Bio:: Tools :: MZEF l mt giao din chng trnh tm kim cc gen. Bio:: Tools :: Grail l mt giao din chng trnh tm kim cc gen. Bio:: Tools:: Genemark l mt giao din cc gen tm kim chng trnh.
$factory = Bio::Tools::Run::StandAloneBlast-> new('outfile' => 'bl2seq.out'); $bl2seq_report = $factory->bl2seq($seq1, $seq2); # Use AlignIO.pm to create a SimpleAlign object from the bl2seq report $str = Bio::AlignIO->new(-file => 'bl2seq.out', -format => 'bl2seq'); $aln = $str->next_aln();
Bioperl h tr cc cng c cho vic so snh nhiu trnh t: Clustalw.pm, TCoffee.pm Bioperl cung cp mt giao din chun perl Clustalw TCoffee l mt chng trnh mi c a ra gn y bt ngun t Clustalw
Sp a trnh t
s dng 2 cng c ny cn phi ci t trn h thng my ch. Ngoi ra cc bin mi trng CLUSTALDIR v TCOFFEDIR cn phi c thit lp cc th mc c cha cc thc thi cn phi g cc cu lnh ti v ci t chng trnh C php CLUSTALDIR : the Bio::Tools::Run::Alignment::Clustalw manpage C php TCOFFEDIR: the Bio::Tools::Run::Alignment::TCoffee manpage
V c php 2 cu lnh trn l ging ht nhau ch khc nhau duy nht tn cc modul xut hin ban u Cn lu i vi mt s thng s ca ClustalW v TCoffee khng c thc hin trong giao din Perl Sau khi cc thng s c thit lp ngi ta c th gi cc phng php sp xp sp xp mt cp cc trnh t unaligned hoc profile_align thm mt hoc nhiu trnh t
sp mt cp trnh t ta thc hin c php sau vi Clustalw use Bio::Tools::Run::Alignment::Clustalw; @params = ('ktuple' => 2, 'matrix'=>'BLOSUM'); $factory = Bio::Tools::Run::Alignment::Clustalw ->new(@params); $ktuple = 3; $factory->ktuple($ktuple); # change the parameter before executing $seq_array_ref = \@seq_array; # where @seq_array is an array of Bio::Seq objects $aln = $factory->align($seq_array_ref);
http://docstore.mik.ua/orelly/perl/
http://perldoc.perl.org/perlintro.html http://www.perl.com/language/faq/ http://etutorials.org/Programming/perl+bioinformatics