Je me permet un petit post dans cette section car j'ai un script de bio-info que je souhaiterais optimiser mais je suis a court de ressource.
J'ai un programme capable de lire des fichiers STOCKHOLM et de les convertir en differents autres formats (par exemple fasta... )
Je souhaite implementer une sous routine qui permette au programme de filtrer les donnees STOKHOLM grace aux valeurs PP et PP_cons presentent dans le fichier STOCKHOLM.
De la facon suivante :
- Si une position n'est pas conserve (PP_cons) je supprime la colonne dans tous les alignements.
- Si une position n'est pas conserve dans une sequence je remplace l'amino acide present a cette position par "-" dans la dite sequence.
Pour savoir quelles collones supprimer je cree un petit tableau @$columnToRemove contenant les positions ou PP_cons est inferieur au seuil souhaite.
Je travaille avec des PirObjects AlignedSeq :
ensuite je passe a travers le PirObject MultAlign (qui contient les objet AlignedSeq) et traite chaque sequence.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 0 PirObject::AlignedSeq=HASH(0x17b9978) 'PP' => '.................................................8764............................................................................................689**********************************************************************************************************************************************************************************************************************************99998......677889***********................................................*..*...*****......*******************..*.....****************************.***********************************..****************.****......**.****************...................................**********....*..**.*......................................*.**..............********.*******************........*****.......**...***************99999...887655.....22222.......................................................................................2.68999*************..***98...66.377.8.8999998666555..55...............44444.........222........1..2333333.........................................................................33333333332..2221111......................................1................................111111111111.11..1111.111.................1111........................................1111.................................11.......................................1....111...1110.11111..1...11..1...111111..1..................................1.2..23444444.....444.......44.4433......222...............................................................2333.......3....3332...2211......11111...................................................................................................................................11.1111111...........00.....1122...2.2.222211.......................112222111...11.111.1..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................111..1111....111111.111.111111..11........111111.1111...1234..67899*******.*******.*.....*********.........................*..****.........***********************************...***********.**************************755.....566666666515678................................................................99**************************************************999****************.****....***.................................................................................................*****************..*************************************************99988554444.................................43333330...............................................3445555666666777777777777777777778888888999999***********............................................................................................................................................................................................................................................................' 'seqId' => 'Zygnema_circumcarinatum@AAX45864' 'sequence' => '-------------------------------------------------MAEL--------------------------------------------------------------------------------------------KNRIFYNQVMDKSAIKQLIIRLVACLGRVCTAHILDQLKTLGFQYSTQTGISLGIDDLLASPLKNWILQDAENEANVSQEYCRHGYIHAVERLRQIVETWHTTSEFLKREMTVSFNILDGFNPVHMMSFSGARGNVSQVHQLVGMRGLISDPQGNIIDLPIQSNLREGLSLTEYIISCYGARKGVVDTAIRTADAGYLTRRLVEVAQHVVIRNVDCNTYEGIILRSIRTRQGNA------YLTQENRIIGRVLARPL------------------------------------------------Y--F---GKRCI------AVRNQDIGPDLAAKLSIIS--P-----QAILVRSPITCKTTDWVCQLCYGWGVNQ-GKMVSLGEAIGVVAGQSIGEPGTQLTLRTFHTGGV--FTGDIANHLRAPFNGI-AHFE------TH-NCKPTRNRHGRLVWKC-----------------------------------LQDLTITVIG----Q--GK-K--------------------------------------H-SL--------------NVPSQSLL-LINNNQYVESKQVIAEVRA--------SIAPI-------KE---KVQRNIYSYLQGEVVHTRSA---LRLSNA-----FSGTI---------------------------------------------------------------------------------------L-LIHHNPNTGHLWIWSGKL--YQLSG---QQ-ASS-I-YTSEDFIQTNITV--AN---------------KRYLK---------FDT--------H--KISNKKV-------------------------------------------------------------------------LKSVLIGKFTR--FKQVKSI--------------------------------------Q--------------------------------TGTVRSVLIQKP-DT--LRMV-VLS-----------------SVDQ----------------------------------------LEIT---------------------------------MH---------------------------------------K----TPY---IMEP-LLTQK--I---SN--N---ILNLTS--Y----------------------------------P-K--SSTLISKQ-----KNT-------VS-SFAS------IHI---------------------------------------------------------------KRPT-------I----GFQF---QLPI------VPKIR-----------------------------------------------------------------------------------------------------------------------------------CY-SLGLLGK-----------LQ-----RPLQ---Y-N-LVLSSP-----------------------TQPIFIDRY---YN-TFT-N----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------WCY--LNEH----GNSYNL-YGL-QMIVLD--KK--------LYNNNS-ISGL---FNTY--RNIPKIGQLICK-GTFVQQT-T-----QLSESGKIV-------------------------S--IFKH---------KIVLRLSQPYLLAPGTFIHPDCYDVINRGDIVITM---MYEQLRTTDII-QGLPKAEQLLEARSFNEVVLKLENDFVML-----TERIARQLRSLSRSY----------------------------------------------------------------MLSTKESTKHSQIDLVNRIQTVYLSQGVRIVDKHIEIIVRQMSSKVMLVENGDPHTFLPRELVELTRAQKI-NYVI----QNP-------------------------------------------------------------------------------------------------VAYKPVLLGITKASLNT--NSFISEASFQQTARVLSKSAIKNRVDWIRGLQENVLFGRMIPAGTGCREISSQLQYGNIF---------------------------------QKKWAQHT-----------------------------------------------KWKLFVNSFGLNLSCLQIYLHFQAYCLESTNEQPQSNLHVHNSRIFPFTTICSILKS------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------' 1 PirObject::AlignedSeq=HASH(0x17b99f0) 'PP' => '....................................................6...............................................................................................7**************************************************************************************************************************************************************************************************************************************.......****************................................................*..*...*****......******************...9.....****************************.***********************************..****************.****......*******************...................................*********9....8..66.5......................................5.545............5********.******************9.......788889.......99...********************...999887.........................................................................................3.....678.9*****************..*****...**..**.*.*************..***......***..*******9........66552..........................................................................................23344444433...........................22..22......034.5.6.8................................9999********.**..****.***.................******..*********...***.....**********.**.*****86....................4567.99***.***...*******...*****......***...******.***....***...**********..*...**..**********..****...****************.**.....**.**.*..********.....***.......**.****......***.*.......**........****..........................*...*99..98.7*****.......*....****...****.**.**********...........................................................................................................*.**.****...*****.*..**.*******........*****.....****...*.*.******888......5534..33778888888887776......8**.*****...*....*****.........**99999...999888654......6.7888999999...............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................**************.********.****..****99998864.4433...........................................................................................................................................................................................................................................................................................................................................35..7889999*****.*******.*.....*********.........................*..*99766.....668**********************************...***********.************************996443..322222222222....246699**********************.........**********************************************************************************.****************.****98888**.................................................................................................*****************..**************************************************9999777665554...........................43333222220...............................................222223334555666777777778888889999999999999**************.............................................................................................................................................................................................................................................................' 'seqId' => 'Cyanothece_sp._atcc51142@ACB52835' 'sequence' => '----------------------------------------------------M-----------------------------------------------------------------------------------------------TFYNQIVDKGRLKKLISWAYRNYGAARSSQVADNLKDLGFRYATKAGVSISIDDLTVPPTKRGMLDSAEKEINITEARYARGEITEVERFQKVIDTWNSTSEELKDEVVRNFRQTDPLNSVYMMAFSGARGNMSQVRQLVGMRGLMADPQGQIIDQPIKTNFREGLTVTEYVISSYGARKGLVDTALRTADSGYLTRRLVDVSQDVIVREIDCGTRRGLKVTAMKDGDRVK-------IALGDRLLGRVLAEDV------------------------------------------------M--V---GDEVI------ASRNQSIDAALAAKIGKS---V-----ESVMVRSPLTCEAARSVCRCCYGWSLAT-GRPVDLGEAVGIIAAQSIGEPGTQLTMRTFHTGGV--FTGEVAEQIKAPDHGT-VKWG------KGLSTRKVRTRHGEDAFQV-----------------------------------ELAGDLIWTP----T--GS-G--------------------------------------K-KMT------------YSVTPGSVL-FAADGDTVEKDKMLAEVTA-------AKSTRS-------TE---RATKDVSTDLAGEVFFANLI---AEEKTD-----------------------------------------------------------------------------------------R-----QGN-TTHIAQRGGLVWVLSGEV--YNLPP---GA--EP-V-VSNGDEVAEGTVL--AET------KLI--SVNGGVVR--------YQPQS------------------------------------------------------------------------------------------REIDIITASVL---------------------------LD--QA------EVR-K-E-S--------------------------------TGGHEQYVIYTA-DG--QRFL-LKA-----------------TPETKV--QNHAIIAEL---IDD-----RYQTTTGGML-RY-GGIEVAK--------------------GSRK-TGYEV-VQG---GTLLWVP---EETHE------VNK---DISLLV-VED----GQY---VEAGTEVVKD--I---FC--QCSGAIEVVQ--KNDI---LREIIIKPGEFHLDVD-PD-----EV-SY-K--NEDLIPPG-----TEV-------LP-GVVT------TDL-R-------QV--------EWIE--------------------------S---TEG--LG-LLLRPV-------E----EYPV---SNEP-AA-PSQGSINEEE-----------------------------------------------------------------------------------------------------------V-GR-HIEL---RSVQR-L--FY-KDGERVK--------SVDGI-----HLLS---T-Q-LVLEIETGS------EQAA--ANLAADIELKNDEEEDC------QRL-QLVIL---E----SLILR---------RDLDTDP---HGGTITTSV------L-VTDGDQIAPG-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------AVVAKTEIQCREEG-EVRGIRRG-LEAV--RRVLIVRDEDLE-IITL-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------KE--KPTVAKDDLIVA-GTEFAPG-V-----VAAESGLVV-------------------------A--VNQGEE-----GYEIKLRLARPYRVSPGAILHIADGDLVQRGDNLVLL---VYERAKTGDII-QGLPRIEELLEARKPKEACVLSRKPGVCQV--EYLEDESVDVKV----IEDDGTVSEYPILLNQNVIVSDNQRVDV---------GEHLTDGPANPHELLEVFFDYYVDKKGVYEAALIGLQAAQKFLVDQVQSVYQSQGIDISDKHIEVIVRQMTAKVRVDDGGDT-TMLPGELVELRQIEQV-NEAMAITGGAP-------------------------------------------------------------------------------------------------ARYTPVLLGITKASLNT--DSFISAASFQETTRVLTEAAIEGKSDWLRGLKENVIIGRLIPAGTGFNAHEEMVMGTLDNGED---------------------------SLNNRYGQGER-----------------------------------------------DNNNSDKKPPNRLIGATLDEVDENMILDDNIARAYTEADPPWSVESKQEKDDDDDK-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------' 2 PirObject::AlignedSeq=HASH(0x17b9af8) 'PP' => '..............................................8876655..............................................................556667778888888888888888777.....9***************************************************************************************************************************************************************************************************************************************.......*************************************************************9988..8...*****......******************...9.....****************************.***********************************..****************.****......*******************...................................**********....*..99.98999999999.................988888877766.66..............********.****************9855.....5588888.......88...9*******************...99988765778888887766444899999999.............................................999999976655555555......689.999999999999999999..99999...88..5548.8899999999999..999......999..99888888........788888888.888..88877779999999999999999999..................................9999999986666666666655555555555..555555555.....4...44....443..3...............0333..........................345778888888888.88..8888.888.................777766..55554433......3.....7889999999.99.999999988887...6555....78999999.99999.99*...*******...*****......***...******.***....***...**********..*...**..**********..966........7889********.**.....**.**.*..********.....***.......**.****......***.*.......**........****..........................*...998..88.....88.......8....99.6...7778.89.999999****...........................................................................................................*.**.****...***99.98778.999999877...77778888.....9999...*.*.*********......**......**********86.67...78.***.*****...*....*99887777777766677777...889999999999.999.8888777766**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************..........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************999966777777777777.77655555.5555..677778888888.8887...............44444433.................3443304444444555555556666666666677777777777777778888888888888888888888889999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999*****************99****..**....**...*..........****.......******..****....*99997.5...889999..**........*****9.9999...5777..99**********.***9876.55566699*******.........................*..****.........***********************************...***********.**************************8......67*********.****................................................................******************************************************.****************.***99..88**.................................................................................................*****************..**********************************************75....................................................................................................68...................................................................................................................................................................................................................................................................................................................' 'seqId' => 'Stigeoclonium_helveticum@YP_764414' 'sequence' => '----------------------------------------------MNIFSDF--------------------------------------------------------------SLYSLSPKKKTSLTDNKIVSFATKDFP-----QVFWNLSFNKGSLKNFVFWCFVNYGQRETIKILEKLQIIGFGYATKAGISLSIDDLKIPPTKAILLADADKSIEAGFLSYKKSQLTGLERFQRIIETWHKTSESLKDEMITNFRQTDSLNPVYMMAFSGARGNVSQVRQLVAMRGLMSDPQGKILDFPIRSNFREGLTLTEYVISCYGARKGVVDTALRTANAGYLTRRLVDVAQHVIVLNFDCGTKKGFYLTEMKKFNKTL-------YPLRQRLLGRVLAANLYNVNPFHLKKRIEIGEKEKNLSSLPSSKGKMEFFPSFPQASLAGKASCF--P---EPQIV------AFRNQEISEPLAEKISKI---T-----NKVFIRSPLTCDTPRLVCQLCYGWSLSE-GYLVSIGEAVGIIAAQSIGEPGTQLTMRTFHTGGV--FAGEMFDQLMAPYDGI-VQYS------SSIPGTLVRTTQGKIAFLT-----------------------------------KVEGKLSVFE----K--NN-STFLSNSNNGD-----------------NHSLISHTISHK-SF--------------KLPAYTLL-FIRNNETISKDQLIAELAFL-----SSKGKKK-------GE---IAEFIVKSEIEGQLYSGSVN---ILEKYTDYNDIMTKSIDWGSVWILSGKICQLP---------------------------------------------VNSSFFALPGDLVDENAI------LSQ-IQWVVPMKSLLDTNSLIK--PNLKK---EI--YFDF-SLNQTKWFQKRNL--ENL------NTL--FNLKFGIE--------KKNRTKKRV-LSQ--EKKSDFLNPSFSHSSRNYLYFSLPSK----------------------------------KTFSYYPFAYFSKIKEKNGGRETKSSFAMSG--WGKKSLSFF-----P---SL----ASD--V---------------PKLL--------------------------SDFYPTSKKRNFKSF-EK--KELK-LSS-----------------FSQTIF--FNQDKSLL------L-----KMKIKIQTIS-DF-TKVSSKMITSRE---LKKN----GMEKGKNG-EKENS-SLQ---RTFFSQG---AKAPA------FPE---LFSFFS-SRL----FPI---LPFKSSLVSS--T---FS--HNSQLCTIRR--QNK--------LVLSGNSNQFEN-FA-----YL-KD-K--ITINLPLI-----FLC-------ID-NIYY------KKI-G-------YF--------FSLF--------------------------P---PES--KI-----PR-------E----KF-L---PEEE-GF-SPPSFGRTFK-----------------------------------------------------------------------------------------------------------N-KN-LAKL---KDVFF-VPKLL-EQRNIISTK---KKNSFKKN-----NQIS---N-Q-LLHWFPKSY------LT------MKGGICVYRLTH-DF---FC-QYI-NFHSS---S----FLFEKKRGTLICNVDGEMNKP---VSSNILGRICWV-NQD-YKKTKLYTLKFFSYSKFIQQLTDRTKRLQRQIKREKKIGQADFFQTVLSMSQAKEKSSLQRTFFSQGAKSRKKVPPKTLLSGEMPIFSLSPSLCGLKPAKRSEKEKIWVKGEKAELFSLSNAFHQPQHSKKHKYSSFSLNFYKNLTSYCLKNKDKSVANCFSEKKKRQFLFFSEPKLSLFPDFLFSKSEKNIFYNANKKKYSFFYLKKTNSSKKSLTNNSIMNGFIYKPKDVVSAISLHKKFFLPGQKIIDDLSFDNFLIYVECIPEDNLSSLSETLYKSRFDKKICFNLKKLITNKMPRFIKIPTLLSTIPFAFLKSEFKEQNEKIAQRKADRQKNNKKSEAFFFKSNTLVSDFD--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------SPFLSHLVVLITKVIEYPLYKPNHYKKALYNRQKTSEQSFFHYSCKVKSKMLNKIFKNNYHSNVLNKQTSSLRLLDKFPNTDLVLALKCKGIQKDLMENFLKNPLNLNLYVKLGKQKSFGKEKDKTFSVSQPFFKSSAFKKEKKSNSFSQAKAFDFNLTSKKSRKKANKLVENLANGKKSRAFPASKACGKLGKNYIFPLEERKNGKKERAKASSFPGLLSFSHLAFPIFFRKSFSKFFCMKFFSKSSIQLLELVLVGVQKNSVNNKIIGITVFNFFQKNKLKEEEKKRQEEKEIFRSLSLSPLFLSHLTRKKNSDFFSVSKSEALEKKKLQLLFFSHAAFPLKEISKNYSSKASFLSFFH-FLDKKIKK-QTRR--QANFVVSAFEKS-DFSF---------------DPNINRKK-----------------KYFSNKAFNYENIKIMNNNISQSILQPNFYFNYYQKYPFGYYLINNINVFAPSSFSFSSLFSRNTANFKNYFLFYQLLSMFNRPNFQLHKSMEENLLQVYEQSTSYFSLISCFFQQPCFDAFFTQQVSFGFNEVKNVNHYSKNLTFSKKIGKRREFYLSPFLRSKIYFKKNSFSEQGEIALTQYLSPFMGEILNH--EN----YY---W----------SQNT-------QKNRYL--LLTK----KDQISF-L---STNYNT--QK--------ESINNS-SFFI---LKNK--KNTPNLGEFLTK-GDCCFIS-KSQNSIISSESGLIV-------------------------H--SNKS---------KITLRKAQSFFLSPNCIFHYSHGDLVEKNKSILSL---PYEQLKTGDIV-QGIPKVEQLLEARSTFKGKEEEDNLHK------LLKYAFELYKT-KFSL----------------------------------------------------------------KLSVRKSFSFIQLILVNSVQRIYRSQGVSISDKHLEVIVKQMTSKVQITSRGDS-SFFRGEHVDLYIVETW-NALHP--QLKK-------------------------------------------------------------------------------------------------ICYKPILLGISRSSLEV--NSFLSAASFQHTKKVLSRSAFKTNIDFLNGLKENVIIGNLISAGTGNL----------------------------------------------------------------------------------------------------NN-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------'
Je commence par m'occuper des probabilites par sequence definies par "PP" puis je continue dans la meme boucle par enlever les collones definies par "PP_cons".
J'ai essaye de faire les choses de differentes facons :
en utilisant un splice pour supprimer les collones, avec un remplacement de caractere puis une substitution...
Dans l'absolue mon algo fonctionne je souhaite gagner du temps a l'execution car c'est actuellement trop lent.
Pour un fichier contenant 104 sequences de 4938aa le programme met un peu moins de 2min a rouler.
Sachant que dans la partie la du code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 foreach my $alignedSeq (@$alignedSeqs) { my $PP = $alignedSeq->get_PP(); my $Seq = $alignedSeq->get_sequence(); #Treat LOCALPERCENT my @aPP = split(//,$PP); my @aSeq = split(//,$Seq); for (my $i = @aSeq - 1; $i >= 0 ; $i--) { my $PP_val = $aPP[$i]; $PP_val = 0 if $PP_val eq "."; $PP_val = 10 if $PP_val eq "*"; $aSeq[$i] = "-" if $PP_val < $LocalPercent; $aSeq[$i] = "=" if grep($_ == $i, @$columnToRemove) }
Il met 1 seconde par sequence... je ne sais pas comment reduire le temps
d'execution.
Je met ci-dessous le code de ma sous routine de filtration.
Si vous avez besoin d'autre information n'hesite pas a me demander.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 sub FilteringStockholm { my $ma = shift; my $PP_cons = $ma->get_PP_cons(); die "Can't use option -F no line 'PP_cons' found in $INFILE\n" if $PP_cons eq "" && $FILTERING == 1; my $alignedSeqs = $ma->get_alignedSeqs(); #Make array with pos to remove use GLOBALPERCENT print "\n Make column to Remove :".strftime("\%H:\%M:\%S", gmtime(time)); my $GlobalPercent = $GLOBALPERCENT; $GlobalPercent = 10 if $GLOBALPERCENT eq "*"; $GlobalPercent = 0 if $GLOBALPERCENT eq "."; my @aPP_cons = split(//,$PP_cons); my $columnToRemove = (); for ( my $i = 0 ; $i < @aPP_cons ; $i++) { my $PP_val = $aPP_cons[$i]; $PP_val = 0 if $PP_val eq "."; $PP_val = 10 if $PP_val eq "*"; push(@$columnToRemove,$i) if $PP_val < $GlobalPercent; } #Treat each Seq with LOCALPERCENT and GLOBALPERCENT my $LocalPercent = $LOCALPERCENT; $LocalPercent = 10 if $LOCALPERCENT eq "*"; $LocalPercent = 0 if $LOCALPERCENT eq "."; foreach my $alignedSeq (@$alignedSeqs) { my $PP = $alignedSeq->get_PP(); my $Seq = $alignedSeq->get_sequence(); #Treat LOCALPERCENT my @aPP = split(//,$PP); my @aSeq = split(//,$Seq); for (my $i = @aSeq - 1; $i >= 0 ; $i--) { my $PP_val = $aPP[$i]; $PP_val = 0 if $PP_val eq "."; $PP_val = 10 if $PP_val eq "*"; $aSeq[$i] = "-" if $PP_val < $LocalPercent; $aSeq[$i] = "=" if grep($_ == $i, @$columnToRemove) } $Seq = join('',@aSeq); $Seq =~ s/=//g; $alignedSeq->set_sequence($Seq); } }
Merci de m'avoir lu jusqu'ici
Loula
Partager