Bonjour,
voila toujours des problemes avec le perl,
mon souci c'est que je dois construire un hash de taille d'intron a partir de fichier cds:
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
 
# 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
Je dois recuperer les coordonnees et construire lhash pour chaque id (CV-****),
pour cela si j'ai une coordonne que voici: a..b,c..d,e..f , les "," correspondent aux introns pour cela donc je dois prendre le couple(b,c) et (d,e) et faire la soustraction du start et end de lintron et calculer par la suite la taille de l'intron.

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
18
19
20
21
22
23
24
 
#!/usr/local/bin/perl
#use strict;
#use warnings;
 
open (DESC1, "coco_cds");
while(<DESC2>){
	next if /^\#/;
	chomp;
	my @exon=(split/,/,$coord);
	(my @intron)=($coord=~s/(/d+,/d+)/g);
	if ($strand eq '-'){
		reverse(@exon,@intron);
	}
	for(0<$i<întron){
		$exon=$exon[i];
		$intron=$intron[i];
		($s,$e)=(split/,/,$intron);
		$taille=abs($e-$s+1);
		push @cds,($exon);
		$aa=int(@cds/3);
		hash{$id}{$aa}=#taille je ne sais pas comment lui dire
	}
}
Voici mon code du debut mais j'arrive pas a regler le probleme du regex, mais aussi a lui dire que hash{$id}{$aa}=taille de l'intron et pour ca je dois faire pour chaque couple d'intron donc je devrais avoir pour cette exemple deux tailles dintron du couple (b,c) et (d,e).

Est ce que vous pouvez m'aider pour mon code .

Merci