fail version

master
gnieark 9 years ago
parent 135df44fa5
commit f64b17ed24

@ -0,0 +1,8 @@
malheureusement je trouve 3 séquences que je n'arrive pas à diminuer plus:
Array
(
[0] => AAGTGAAGTTAATACAATAGAAT
[1] => AAGCAAAGGAAAGTAAACACGACACTACAGCACAGGACAGTACATTCAATTGAATTTACACCACACGCGACGCTACGGCACGGGACGGTACAACAGAACATAACCCAACCGATTAGCATAGCCCAGCCGAGCCTAGCGCAGCGGAGCGTAGCTCAGCTGAGCTTAAACCAAACGAAACTAAAGCAGGCTAGGGCAGGGGAGGGTAGGTCAGGTCTAATGCAATGGAATGTAATTCAAGTAGATCAGATGAGATTAGCATAGCCCATACCCCACCCGACCCTACCGCACCGGACCGTACCTCACCTCCCGGCCCGTCCCTGCCCTTCCGCGCCGCTCCGAACCTAACGCAACGGAACTTAAGACAAGAGAAGATAAGCCATGCGATGCTATGGCATGGGATGGTATGTACATCACATGACATTACCAGACCATACCTTTGCTTTTGGGGGTGGGTTGGTGTGGTAAATCAAATGAAATTAACACAACAGAACGTAACTCAACTGAACTTAAGGCAAGGGAAGGTAAGTCAAGTGATATTATCCCATCCGATCCTATCGCATCGGATAAGCCAAGCGAAGCTAAGGCTCCGGGCCGGTCCGTGCCGTTCCTCGCCTAGTTCAGTTGAGTTTATATCATATGATATTAGAATATAATCCAATCGAATCTAATGCTGAGCTTAGGATAGGCCAGGCGAGGCTCAGGTGAGGTTAGTATAGTCCAGGTACGTCACGTGACGTTACTAGACTCGTCTCGTGGCGTGTCGTTGCGTATGTCATGTGATGTTATTCCATTGACTTTAGAGCAGAGGAGAGTAGTGTGGTTTGTGTTGTTTTCGCCTCTCCTGGCCTGTCCTTGCCTTTCGCGGCGCGTCGCTGCGCTTCGGCTCGGGGCGGGTCGGTGCGGTTCGTCTCGGATCGTATCTCATCTGATCTTATGCCATCTACTGCACTGGACTGTACTTCACTTGTCGTTGCGTTTCTCTGCTCTTCTGGGCTGGTCTGTGCTGTTCTTGGCTTGTCTTTGCTTCCATTCGATTCTATTGCATTGGATTGTATTTCATTTGATTTTCCCCCGCCCCTCCCAGTCGAGTCTAGTGCAGTGGAGTGTAGTTCAGACTATACTCCACTCGACTCT
[2] => AAAAACAAAAGAAAATAAACCTGACCTTACGAGACGATACGCCACGCG
)

@ -0,0 +1,48 @@
AAAAACAAAAGAAAATAAAC
AAGCAAAGGAAAGTAAA
AAGTGAAGTTAATACAATAGAAT
ACACGACACTACAGCACAGGACAGTACAT
ACCTGACCTTACGAGACGATACGCCACGCG
ACGCGACGCTACGGCACGGGACGGTAC
AGACTATACTCCACTCGACTCT
AGGCTAGGGCAGGGGAGGGTAGGTCAGGT
AGTAGATCAGATGAGATTAGCATAGCCC
ATTAGCATAGCCCAGCCGAGCCTAGCG
ATTCAATTGAATTTACACCACACG
CAACAGAACATAACCCAACCGA
CAGTCGAGTCTAGTGCAGTGGAGTGTAGTTCAG
CCATACCCCACCCGACCCTACC
CCATGCGATGCTATGGCATGGGATGGTATGT
CCTACCGCACCGGACCGTACCTCACCT
CCTAGCGCAGCGGAGCGTAGCTCAGCTGAGCTTA
CCTCCCGGCCCGTCCCTGCCCTTCCGCGCCGCTCC
CGAACCTAACGCAACGGAAC
CTTAAGACAAGAGAAGATAAGCC
CTTTGCTTTTGGGGGTGGGTTGGTGTGGT
GAACGTAACTCAACTGAACTTA
GATATTATCCCATCCGATCCTATCGCATCGGAT
GCTCCGGGCCGGTCCGTGCCGTTCCTCGCCT
GCTGAGCTTAGGATAGGCCAGGCGAGGCT
GGTACGTCACGTGACGTTACTAGACT
GTAAATCAAATGAAATTAACACAACAG
GTACATCACATGACATTACCAGACCATACC
GTATGTCATGTGATGTTATTCCATT
GTGTGGTTTGTGTTGTTTT
TAAACCAAACGAAACTAAAGCA
TAAGCCAAGCGAAGCTAAGG
TAAGGCAAGGGAAGGTAAGTCAAGTGA
TAGAATATAATCCAATCGAATCTAATGC
TAGTTCAGTTGAGTTTATATCATATGATATTA
TCAGGTGAGGTTAGTATAGTCCAG
TCGCCTCTCCTGGCCTGTCCTTGCCTTTCGCG
TCGGATCGTATCTCATCTGATCTTATGCCAT
TCGTCTCGTGGCGTGTCGTTGCG
TCTAATGCAATGGAATGTAATTCAA
TCTACTGCACTGGACTGTACTTCACTTG
TCTGGGCTGGTCTGTGCTGTTCTTGGCTTGTCTTTGCT
TGTCGTTGCGTTTCTCTGCTCTTCTGGGC
TTCCATTCGATTCTATTGCATTGGATTGTAT
TTCGCGGCGCGTCGCTGCGCTTCGG
TTCGGCTCGGGGCGGGTCGGTGCGGTTCGTCTCG
TTGACTTTAGAGCAGAGGAGAGTAG
TTGTATTTCATTTGATTTTCCCCCGCCCCTCCC

@ -0,0 +1,65 @@
<?php
$reads=explode("\n",file_get_contents("input.txt"));
while(count($reads)>0){
$couples=array();
for($countGauche=0;$countGauche<count($reads);$countGauche++){
//tester à gauche
for($countDroite=0;$countDroite<count($reads);$countDroite++){
for($i=strlen($reads[$countGauche]) ;$i>0;$i--){
$chaineATest=substr($reads[$countGauche],0,$i);
if (($countGauche!==$countDroite) && (preg_match("/".$chaineATest."$/",$reads[$countDroite]))){
//tester si cette chaine se retrouve à droite dans d'autres reads
$couples[$countGauche."-".$countDroite]=$i;
break;
}
}
}
}
//chercher le couple ayant la plus grosse chaine en commun
$coupleKey=getKeyOfValueMax($couples);
if(!$coupleKey){
echo "malheureusement je trouve ".count($reads)." séquences que je n'arrive pas à diminuer plus:\n";
print_r($reads);
die;
}
list($gauche,$droite)=explode("-",$coupleKey);
//cancaténer les deux chaines en supprimant la partie commune
$reads=arrayDelTwoValuesAndAddOne($reads,$reads[$droite],$reads[$gauche],substr($reads[$droite],0,-$couples[$coupleKey]).$reads[$gauche]);
}
echo $reads[0];
function arrayDelTwoValuesAndAddOne($array,$delValue1,$delValue2,$addValue){
foreach($array as $key=>$value){
if($value==$delValue1){
unset($array[$key]);
break;
}
}
$array=array_values($array);
foreach($array as $key=>$value){
if($value==$delValue2){
unset($array[$key]);
break;
}
}
$array=array_values($array);
$array[]=$addValue;
return $array;
}
function getKeyOfValueMax($array){
$max=0;
foreach($array as $key => $value){
if($value > $max){
$value=$max;
$maxKey=$key;
}
}
if(isset($key)){
return $key;
}else{
return false;
}
}
Loading…
Cancel
Save