Bonjour, j' ai un petit souci comme je suis nouveau en perl:
Voila, tout d'abord j'ai un fichier suivant:
Je voudrais mettre dana sun hash le debut de chaque id, exemple:
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 # Colonne 1: scaffold # 2: gene id # 3: start # 4: dir # 5: origine gene model # 6: proteinId # 7: ex-nom # 8: coordonnees genomiques # 9: structure intron/exon # 10: segments du CDS couvert par EST C169-scaffold_1 C169v2-00001 3777 - ORIGINAL JGI 55057 Genemark1.1_g 3777..3857,4046..4192,4443..4561,4940..5234,5406..5540,5734..5847,6009..6098,6421..6492 C169-scaffold_1 C169v2-00002 12682 - ORIGINAL JGI 55058 Genemark1.2_g 12682..12691,13195..13445,13694..13711 C169-scaffold_1 C169v2-00003 18095 + ORIGINAL JGI 31905 fgenesh1_kg.1_#_1_#_4092_1_CBOZ_CBPA 18095..18097,18280..18410,18690..18972 C169-scaffold_1 C169v2-00004 20452 + ORIGINAL JGI 6968 gw1.1.615.1 20452..20496,20636..20726,20881..21046,21194..21382,21567..21735 C169-scaffold_1 C169v2-00005 21893 - ORIGINAL JGI 34662 fgenesh1_pm.1_#_3 21893..22051,22201..22293,22590..22747,22864..23102,23192..23364 C169-scaffold_1 C169v2-00006 24500 + ORIGINAL JGI 38811 fgenesh1_pg.1_#_4 24500..24674,25216..25503,25746..25907,26012..26196,26516..26752,26951..27159,27373..27550,27728..27961,28207..28371,28619..28890,29131..29389
pour C169v2-00006 je voudrait dire que le debut cest 24500 et la fin 29389, cest ca mon souci je ne sais pas comment "splite pour avoir ces infos merci
J'ai pense pour que j'ai les deux infos a chaque fois separement de creer deux hashs :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #!/usr/local/bin/perl my %genocoord1 = (); my %genocoord2 = (); open (DESC2, "coco_cds"); while(<DESC2>){ next if /^\#/; chomp; %genocoord1{$id}=$coordonne 1; %genocoord2$id}=$coordonne 2;
ensuite, mon second souci j'ai un fichier
je voudrais recuperer les chiffres entre les Aster-
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 C169v2-03065 Aster-04711 C169v2-03066 Aster-04710 C169v2-02882 Aster-02471 C169v2-02883 Aster-02472 C169v2-02880 Aster-02469 C169v2-02881 Aster-02470 C169v2-01286 Aster-00794 C169v2-01287 Aster-00793 C169v2-05054 Aster-06211 C169v2-05055 Aster-06212
mon code ne marche pas, est ce que vous pourriez m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 open my $fh, '<', 'mamoud.txt' or die; while (<$fh>){ chomp; my ($A,$C,$B,$D)=split(/\t/); print my ($astC,$astD)=~ m/C169v2-\d+\tAster-(\d+)C169v2-\d+\tAster-(\d+)/;
Merci d'avance
Partager