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 47 48 49 50 51 52 53 54 55 56 57 58
|
data = {'1QMF': [['guanidinium', '', 'ARG', '426', 'A'], ['hyd_ali', 'cd', 'ARG', '426', 'A'], ['bb', 'backbone', 'GLY', '647', 'A'], ['hyd_ali', '', 'ALA', '650', 'A'], ['hyd_ali', 'cbcg2', 'VAL', '662', 'A']], '2NT7': [['guanidinium', '', 'ARG', '254', 'A'], ['bb', 'backbone', 'GLY', '259', 'A'], ['hyd_ali', 'cb', 'MET', '258', 'A']], '2F6Z': [['guanidinium', '', 'ARG', '254', 'A'], ['bb', 'backbone', 'GLY', '259', 'A'], ['hyd_ali', 'cb', 'MET', '258', 'A']], '3U2V': [['guanidinium', '', 'ARG', '77', 'B'], ['bb', 'backbone', 'GLY', '215', 'B'], ['hyd_ali', 'cbcg', 'LEU', '214', 'B']], '3A9E': [['guanidinium', '', 'ARG', '321', 'A'], ['bb', 'backbone', 'ALA', '332', 'A'], ['hyd_ali', '', 'ALA', '276', 'A']], '2ZI6': [['guanidinium', '', 'ARG', '2192', 'B'], ['bb', 'backbone', 'ALA', '2031', 'B'], ['hyd_ali', 'cb', 'ARG', '2188', 'B']], '1X7Z': [['guanidinium', '', 'ARG', '220', 'A'], ['bb', 'backbone', 'GLY', '192', 'A'], ['hyd_ali', '', 'ALA', '195', 'A']]}
f=open("sumo.csv","wt")
f.write(">data\t" + "\n")
for limite in data:
#les en-tete des colonnes
print "Col1\tCol2\tCol3\tCol4\tCol5\tCol6\n" ;
#la premiere ligne lis a partir de 1QMF jusqu'aux ]] et ecris les elements dans un fichier de sortie en separant chaque colonne (bloc) par une tabulation
data=~ /^\{\'(\w+)\' : \[\[\'(\w+)\', \'(\w*)\', \'(\w+)\', \'(\d+)\', \'(\w+)\'\],\'(\w+)\', \'(\w*)\', \'(\w+)\' ,\'(\d+)\' , \'(\w+)\'\] , \[\' (\w+) \', \'(\w*)\', \' (\w+) \', \' (\d+) \' , \'(\w+)\'\], \[\'(\w+)\', \'(\w*)\' , \'(\w+)\' , \'(\d+)\', \'(\w+)\'\] , \[\'(\w+)\', \'(\w*)\', \'(\w+)\' , \'(\d+)\', \'(\w+)\'\]/;
print "$1\t$2 $3 $4 $5\ t$7 $9 $10\t$12 $14 $15\t$17 $19 $20\t$22 $24 $25\n"
#on supprime de la chaine data tous les caracteres ayant servis pour la premiere ligne
#......
for limite in data:
limie=limite.replace("\]\]" , '') ##je veux supprimer de la chaine data tous les caracteres ayant servis pour la premiere ligne !!mais probleme avec la syntawe comment l'ecrire correctement
print ("limite\n" ) ;
index = data ( 0 , limite+4, "")
print("index\n");
##tant que la variable data est pleine , on sauvegarde dans un fichier les infos utiles dans un fichier .csv , (qu'on peut ouvrir avec un tableur grace a la separationsur sur la tabulation , on separe les colonnes par des tabulations
##et je met une double tabulation quand il y'a une colonne vide :
while (data)
{
data =~ /^'(\w+)\' : \[\[\'(\w+)\', \'(\w*)\', \'(\w+)\', \'(\d+)\', \'(\w+)\'\]\'(\w+)\', \'(\w*)\', \'(\w+)\' ,\'(\d+)\' , \'(\w+)\'\] , \[\' (\w+) \', \'(\w*)\', \' (\w+) \', \' (\d+) \' , \'(\w+)\'\]/;
print "$1\t$2 $3 $4 $5\t\$7 $9 $10\t$12 $14 $15\t\n";
limie=limite.replace("\]\]" , '')
print ("limite\n") ;
index= data (0 , limite+4 , "" )
print ("index\n");
} |
Partager