[JAVA] récupérer efficacement des sequences dans un fichier texte

récupérer efficacement des sequences dans un fichier texte [JAVA] - Java - Programmation

Marsh Posté le 28-01-2004 à 23:43:55    

Dites moi si j'abuse de faire mes classes sur ce forum...  
 
Ma question est la suivante j'ai, pour ceux qui suivent, une liste de lignes dans un fichier texte de ce type :  
 
L2B0200_B02_DLS132_015.ab1  
L2B0203_F12_DLS133_044.ab1  
L2B0202_M02_DLS134_003.ab1  
L2B0204_M15_DLS146_052.ab1  
L2B0204_P24_DLS146_082.ab1  
L2B0200_J17_DLS132_071.ab1  
L2B0200_N11_DLS132_036.ab1
.
.
.
WEF031_B03_July102_034.ab1    
 
ces lignes correspondent a des titre de séquences  
 
je dois récupérer ces séquence dasn une base de données représentée par un fichier texte  :
 
>WEF031_B03_July1602_034.ab1-MLU=106-2err-162net3-16net3-4net3
TCAAGCCAGCGGCACTCACACTACACTCATCCACTCACAAGCTAATCTAG
CGGCGTAGCTCACTTCAGTCCAGTCGGCATGGCGGCTCCGAGGGGCGCGG
CACTGGTGCTGGCGATGGTGCTCGCGGCGATGCTGGTGGCGCCGCCGGCG
ACGGTGCACGCCATATCCTGCTCCACGGTGTACAGCACGCTGATGCCGTG
CCTGCAGTACGTGCAGCAGGGCGGGTCGCCGGCCCGGGGCTGCTGCACCG
GCATCCAGAACCTGCTGGCCGAGGCCAACAACAGCCCCGACCGCCGCACC
ATCTGCGGCTGCCTGAAgaACGTCGCCAACGGCGCCTCCGGCGGGCCCTA
CATCACCCGCGCCGCCGCGCTCCCCTCCAAGTGCAACGTCGCCCTCCCCT
ACaaGATCAGCCCCAGCGTCGACTGCAACTCGATCCACTGAACGAACTGA
aGCGcCcTGGCCCGtgTGTCTGTCGACGTACGTCTGCCgtgtgaggagTc
cCATGTCTgGagaataaattGCTGCTACTA
>WEF031_B01_July1602_002.ab1-MLU=106-2err-polyA=27-0err-646net5-49net5
 
>WEF031_B02_July1602_018.ab1-polyA=475-0err-polyT=392-0err-18net5-49net5
.
.
.
 
pour obtenir un fichier texte du même type mais ne contenant que les séquences de la liste dont je parle au debut
 
Je possede un iterateur de ma base de donnee mais l'algorithme simple consistant a passer a travers de la base de donnee a chaque ligne de ma liste me parait peu efficace...
 
merci

Reply

Marsh Posté le 28-01-2004 à 23:43:55   

Reply

Marsh Posté le 28-01-2004 à 23:48:15    

c de la génétique non ?


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 28-01-2004 à 23:50:08    

Jubijub a écrit :

c de la génétique non ?


ca y ressemble ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-01-2004 à 23:51:21    

pkoi tu fais pas le contraire : A chaque itération tu vérifies si c'est une des lignes de ton fichier texte. Si oui tu gardes la séquence sinon tu passes au suivant ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 28-01-2004 à 23:51:59    

c surement hyper con ce que je v demander, mais t'aurais pas intéret à mettre des résultats dans des champs d'un vrai SGBDR, et d'utiliser ses fonctions pour faire tes tris ?
 
Parce que ca fait 2 topics que tu demandes comment faire en java des choses qu'on peut faire hyper facilement en base de données...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 28-01-2004 à 23:54:31    

Je suis 'bioinformaticien' j'ai fait une maitrise de bio en france et un dess de bioinformatique au quebec et la je trvaille dans un labo de génétique de l'UQAM a montreal donc j'ai juste un an de cours de progs...
 
pas con le benou, c pour ca que je vous paie pour les idées
merci

Reply

Marsh Posté le 28-01-2004 à 23:57:55    

non Jubijub c pas con mais comme je l'ai un peu dit en haut je ne suis pas pro alors les bases de données, les vraies c pas mon fort. Et puis on travaille pour l'instant sur des fichiers textes : les bases de données de séquences ne sont pas encore au point parce que c en partie moi qui m'en occuppe ;-)

Reply

Marsh Posté le 28-01-2004 à 23:58:29    

c quoi SGBDR?

Reply

Marsh Posté le 29-01-2004 à 00:00:24    

faut faire du Perl :o

Reply

Marsh Posté le 29-01-2004 à 00:00:54    

roievil a écrit :

c quoi SGBDR?


Système de gestion de base de données relationnelles


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 00:00:54   

Reply

Marsh Posté le 29-01-2004 à 00:02:38    

roievil a écrit :

non Jubijub c pas con mais comme je l'ai un peu dit en haut je ne suis pas pro alors les bases de données, les vraies c pas mon fort. Et puis on travaille pour l'instant sur des fichiers textes : les bases de données de séquences ne sont pas encore au point parce que c en partie moi qui m'en occuppe ;-)


C'est sur que metterais tout en base de données ce serait quand même plus simple à traiter que des bêtes fichiers texte.
 
C'est quoi que ce dess qui t'apprend pas à faire de la base de données ??? c'est un truc carément essantiel pour la bioinfo ! [:w3c compliant]


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 00:04:04    

excusez moi pour cette derniere quesiton tres paresseuse j'ai checké sur internet
 
et aussi pour ne aps avoir pensé a l'idée de benou j'Ai un peu honte, j'y retourne

Reply

Marsh Posté le 29-01-2004 à 00:06:25    

j'ai eu un seul cours de BD et le prof etait extremement mauvais mais je suis pas si clueless que ca.
 
Il ya aussi le fait que c'est un petit programme que je dois faire et je ne voulais pas me lancer dans le trouble de la base de données...

Reply

Marsh Posté le 29-01-2004 à 00:08:30    

Système de gestion de base de données relationnel
 
-->Oracle, PostGRESQL, MySQL, SQL server, Firebird, autre....
 
Relationnelles parce que c basée sur l'algèbre relationnelles
 
L'idée en très simplifié
T'a un tableau :  
les colonnes c les attributs (dans ton cas ca pourrait etre nom de la séquence, séquence en elle même, date de génération, date d'indexation , et d'autres...
 
Les lignes, ben c chaque enregistrement en fait...
 
Idée : le système de la base de données sait faire un tas de chose avec les données...y compris les comparer, retenir que celles qui correspondent à certains critères (spécifiés par toi), t'envoyer chier si tu essayes de rentrer des données non conformes à ce qui doit etre fait (pour éviter que tu pourrisses ta base, etc...)
 
===> Avec super peu de code tu pourras traiter hyper efficacement ta base
* un algo minuscule qui te permet d'ajouter un enregistrement :
  - si l'enregistrement existe, le nouveau n'est pas ajouté (tu peux aussi le rentrer si tu veux, c toi qui voit)
  - si il existe pas, il est ajouté
* tu pourras faire des requetes géniales, du style :  
 
- je veux tt les enregistrement qui contiennent "bienvenu à gattaca" (humour de merde, dsl ;) ) (ca te les sort tous, même ceux qui sont identiques si t'a choisi de tt mettre)
- je veux savoir si y'a des enregistrement qui contiennent "bienvenu à gattaca" (avec un UNIQUE, ca t'élimine les doublons
 
- je veux connaitre tt les enregistrement générés le mois de mars 2002 contenant "gataca"
 
 
etc...c sans limites...et t'a rien à programmer pour les algos de tri, le SGBDR fait ca pour toi, et de manière hyper optimisée...
 


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 29-01-2004 à 00:09:14    

roievil a écrit :

j'ai eu un seul cours de BD


 [:mlc2]  
 
Ben tu ferait bien de te documenter par toi même parce que faire de l'info sans connaitre les BDD c'est ... en fait ca me parait même pas envisageable !!!
 

roievil a écrit :

Il ya aussi le fait que c'est un petit programme que je dois faire et je ne voulais pas me lancer dans le trouble de la base de données


ouais c'est sûr que si c'est juste un besoin unitaire, faut pas t'embêter avec une bdd ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 00:10:45    

grillaid ;)
 
-->tu devrais y penser...je connais pas tes volumes, mais peut devenir rentable...surtout que c pas difficile à mettre un base comme tu veux...si tu regardes un tuto mySQL, en même pas une heure elle est montée ta base...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 29-01-2004 à 00:11:16    

re grillaid...mais qu'ils sont rapides ;)


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 29-01-2004 à 00:11:53    

Jubijub a écrit :

grillaid ;)
 
-->tu devrais y penser...je connais pas tes volumes, mais peut devenir rentable...surtout que c pas difficile à mettre un base comme tu veux...si tu regardes un tuto mySQL, en même pas une heure elle est montée ta base...


nan mais si il connait pas le SQL, il va passer un peu plus d'une heure à le faire son bignou :o


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 00:14:41    

moi je suis pas sur qu'un SGBD soit adapté. J'ai lu en entier 'Introduction à Perl et à la bioinformatique' et le genre de traitement, semblage à celui qui est présent ne me parait pas nécéssité un SGBD, et je ne suis même pas sur que ça y gagne en performance.
 
Par contre, il faut bien le dire, Java est ici excessivement lourd à manipuler

Reply

Marsh Posté le 29-01-2004 à 00:15:28    

bah, la base du select from where, t'a regardé 3 exemples t'a compris...
 
je dis pas, si y veut vérifier que sa table soit bien normalisée ou si y veut faire des autojointures ou des trucs un peu zarb à comprendre, je veux bien...mais là...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 29-01-2004 à 00:15:57    

taz a écrit :

et je ne suis même pas sur que ça y gagne en performance.


 :heink:


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 29-01-2004 à 00:16:18    

taz a écrit :

moi je suis pas sur qu'un SGBD soit adapté. J'ai lu en entier 'Introduction à Perl et à la bioinformatique' et le genre de traitement, semblage à celui qui est présent ne me parait pas nécéssité un SGBD, et je ne suis même pas sur que ça y gagne en performance.
 
Par contre, il faut bien le dire, Java est ici excessivement lourd à manipuler


 
si y doit apprendre le perl, je persiste à dire qu'il aura plus vite fait de monter une base :D


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 29-01-2004 à 00:20:09    

en tous les cas merci je connais SQL mais c'est deja presque reglé avec le lourd JAVA
 
ah si une questin c quoi grillaid?

Reply

Marsh Posté le 29-01-2004 à 00:26:28    

grillaid = grilled prononcé à la française = néologisme bati sur grillé qui veut dire que qqn a posté ce que tu voulais dire avant toi, et que donc tu t'ai fait grillé...
 
maintenant pourquoi ca a dégénéré, j'en sais rien... :lol:


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 29-01-2004 à 00:36:27    

ça c pas sur que je l'eut trouve en faisant une recherche :  il y a des désagréments multiples à s'exiler. Bon moi je vais rentrer, il est 18h35 il fait -30 dehors et je vais faire du ping
 
a+ merci a tous

Reply

Marsh Posté le 29-01-2004 à 00:42:00    

tu l'aurais jamais trouvé en france non plus...c très propre aux forums ca...


---------------
Jubi Photos : Flickr - 500px
Reply

Marsh Posté le 30-09-2008 à 10:19:51    

bonjour;
je cherche un prog java qui me permet de decouper un fichier texte par exemple en plusieurs fichiers mais en respectant les parametres suivants:
- j'aimerai recuperer des blocs de lignes de textes dont la premiere ligne commence par un caractere donné et la derniere ligne commence par un autre caractere.
 
exemple de ce fichier texte:
000SI00000000                                  
1111900619                        
2111900619          
2111900619                
4111900619  
4111900619    
5111900619                                        
61119006190                                                      
1261017693                                      
2261017693 232                                                                          
4261017693 23209    
5261017693 23209263                      
626101769300100
 
donc je voudrai recuperer dans le premier fichier les lignes a partir de la ligne qui commence par 1 jusqu'a la prochaine ligne qui commence par 6; ainsi de suite pour les autres fichiers.
 
si quelqu'un a une idée, ça me fera vraiment plaisir
c'est tres urgent ...!!!??????
 
merci d'avance

Reply

Marsh Posté le 02-10-2008 à 21:37:16    

En regardant un peu la javadoc j'ai écrit ça:
 

Code :
  1. private String getBlocText(Scanner sc, String startWith, String endWith)
  2. {
  3. String s="";
  4. boolean copy = false;
  5. while(sc.hasNextLine()) {
  6.  String line = sc.nextLine();
  7.  if(copy) s += line+"\n";
  8.  if(hasNext("^"+startWith) && !copy) copy = true;
  9.  if(Pattern.matches("^"+endWith,line)) break;
  10. }
  11. return s;
  12. }


 
Attention j'ai tapé ca dans le bloc note, même pas compilé, encore moins testé, donc ça devrait pas marcher.
Mais c'est pour te donner une idée.


Message édité par utoz le 02-10-2008 à 21:40:03
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed