Bonjour a tous
J' ai un probleme qui regarde la bioinformatique, mais c'est un probleme de code de traitement de file txt.
Brevement
J'ai un file txt de dbsnp pour sortir tous les SNPs d'un gene. Apres j'ai un file txt avec le genotypage de 1050 individus avec des pouces (je peux avoir le file globale avec tous le chromosomes ou chromosome par chromosome). Je veux sortir tous les SNPs qui sont dans mon file 1 sur le file 2 enfin d'avoir tous le ligne de genotypage pour les SNPs que j'ai choisi dans le file 1.
Le file 1 est un file txt voila des lignes:
Le file 2 est un autre file text avec premiere ligne les individus et les lignes suivantes les SNPs.169: rs60465173 has merged into rs8057341 Homo sapiensCAGCTGACTGAGGCAGCGGGAGTTGAA/GAAGAAACGATATTAGTTCATGGTGA ABI, AFFY, ILLUMINA-UK, ILLUMINA, ILLUMINA, ILLUMINA, ILLUMINA, ILLUMINA, ILLUMINA170: rs17312781 has merged into rs8057341 Homo sapiensCAGCTGACTGAGGCAGCGGGAGTTGAA/GAAGAAACGATATTAGTTCATGGTGA ABI, AFFY, ILLUMINA-UK, ILLUMINA, ILLUMINA, ILLUMINA, ILLUMINA, ILLUMINA, ILLUMINA171
Je voudrais avoir comme resultat final le file 2 mais seulment avec les SNPs qui j'ai dans le file 1First row XXX XXX XXX XXX XXX XXX XXX XXX (1050 cells)
rsnumber AA AG AG AG AA AG AG AG (1050 times)
rsnumber TT AT AA AT AT .....
Avec ce code la j'ai un file 1 avec tous les rs extrait du file 1. Je voudrais outiliser l' array output pour chercher pour chacun element de cet array le lignes dans le file 2 et la printer dans un nouveau fichier. Est ce que ca peut marcher? Je sais que peut etre mieux de utiliser des hachages, mais je ne vois pas bien ou les utiliser....Le file 2 est un file de gb ainsi que je ne puex pas utiliser excel pour l'ouvrir....
Quelqun m'a dit d'utiliser DBM::Deep mais je dois trouver un key commun et je ne sais pas ou je peux la trouver....je ne suis pas tres familier avec le hachages....
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 #!/usr/bin/perl -w use strict; my$line; my@fields; my@output; open (FILE, 'XXXX.txt') or die "can't open the file: $!"; open (FD, '>XXXX.txt') or die "can't open the file: $!"; while (defined ($line= <FILE>)) { my@fields= split (/\s/ ,$line); my@output = grep /rs\d{5,}\b/ ,@fields; my$rs = join (':' , @output); $rs=~ s/:/\n/g; print FD "$rs"; } close FILE; close FD;
Merci pour votre aide
Bonne journee
Micky
Partager