[Bioperl-l] problem to fit genomic coordinates

Chris Fields cjfields at illinois.edu
Wed Mar 25 18:06:41 EDT 2009


Laurent,

All BioPerl modules, including Bio::SimpleAlign, have documentation  
via 'perldoc', you should have a look at that for specific examples.   
Myself, I recommend using Bio::DB::SeqFeature::Store (or another  
Bio::SeqFeature::CollectionI) for this.

chris

On Mar 25, 2009, at 3:09 PM, Laurent Manchon wrote:

> -- yes perhaps,
> but i don't know how to use Bio::SimpleAlign object to resolve my  
> problem, what a pity for me,
> so i'm going on to search using in another way procedural  
> programmation.
>
> thank you --
>
> Kevin Brown a écrit :
>> Please keep all replies on list.
>> Doing it with the SimpleAlign gets rid of the problem of  
>> incrementing and reduces the complexity of the number of loop  
>> iterations you'll have to do.  Based on your sample data you have a  
>> lot of IDs that actually have the same location information that  
>> they are needing, you also have overlapping information from the  
>> first file. So you'll still need to make decisions as to which item  
>> is what you really want (e.g. CDS vs Exon).
>>
>>
>> ________________________________
>>
>> 	From: Laurent MANCHON [mailto:lmanchon at univ-montp2.fr] 	Sent:  
>> Wednesday, March 25, 2009 9:44 AM
>> 	To: Kevin Brown
>> 	Subject: Re: [Bioperl-l] problem to fit genomic coordinates
>> 	
>> 	
>> 	Okay but i think it's not an easy way with this method,
>> 	the files are already sorted on colum numbers, so maybe another  
>> logical method
>> 	without using Bioperl libraries exist, for example using a while  
>> loop,
>> 	
>> 	something like:
>> 	
>> 	$i = $j = 1;
>> 	$idx = number of lines in file1
>> 	$cpt = number of lines in file2
>> 	while ($i <= $idx && $j <= $cpt) {
>> 	 #compare current elements
>> 	 #increment either $i or $j depending which segment comes before  
>> the other
>> 	}
>> 	the difficulty is when to decide to incremente $i or $j inside the  
>> loop
>> 	
>> 	Laurent --
>> 	
>> 	Kevin Brown a écrit :
>> 		Read in first file and create a Bio::SimpleAlign object
>> 		
>> 		Then use the slice method to find the features that are between the
>> 		start/end values of your second file
>> 		
>> 		=head2 slice
>> 		
>> 		 Title     : slice
>> 		 Usage     : $aln2 = $aln->slice(20,30)
>> 		 Function  : Creates a slice from the alignment inclusive of  
>> start and
>> 		             end columns, and the first column in the alignment is
>> 		denoted 1.
>> 		             Sequences with no residues in the slice are excluded  
>> from
>> 		the
>> 		             new alignment and a warning is printed. Slice beyond  
>> the
>> 		length of
>> 		             the sequence does not do padding.
>> 		 Returns   : A Bio::SimpleAlign object
>> 		 Args      : Positive integer for start column, positive integer  
>> for end
>> 		column,
>> 		             optional boolean which if true will keep gap-only  
>> columns
>> 		in the newly
>> 		             created slice. Example:
>> 		
>> 		             $aln2 = $aln->slice(20,30,1)
>> 		
>> 		=cut 		
>> 		
>> 			-----Original Message-----
>> 			From: bioperl-l-bounces at lists.open-bio.org 			[mailto:bioperl-l-bounces at lists.open-bio.org 
>> ] On Behalf Of 			Laurent MANCHON
>> 			Sent: Wednesday, March 25, 2009 7:57 AM
>> 			To: bioperl-l at lists.open-bio.org
>> 			Subject: [Bioperl-l] problem to fit genomic coordinates
>> 			
>> 			this is my problem:
>> 			how is it possible to fit range of genomic coordinates stored in  
>> two 			distinct files ?
>> 			
>> 			first file (file1.txt) is my annotation file with format as:
>> 			
>> 			regulatory_region 3455 3463
>> 			regulatory_region 3535 3544
>> 			regulatory_region 3601 3608
>> 			transcriptional_cis_regulatory_region 3622 3630
>> 			five_prime_UTR 3631 3759
>> 			CDS 3760 3913
>> 			exon 3631 3913
>> 			CDS 3996 4276
>> 			exon 3996 4276
>> 			CDS 4486 4605
>> 			exon 4486 4605
>> 			CDS 4706 5095
>> 			exon 4706 5095
>> 			CDS 5174 5326
>> 			exon 5174 5326
>> 			....
>> 			....
>> 			
>> 			second file (file2.txt) is my experimental file with format as:
>> 			
>> 			acc_2765773 3222 3239 -
>> 			acc_2842543 3222 3239 -
>> 			acc_2842544 3222 3239 -
>> 			acc_442945 3222 3239 -
>> 			acc_442946 3222 3239 -
>> 			acc_4873 3222 3239 -
>> 			acc_53956 3222 3239 -
>> 			acc_562588 3222 3239 -
>> 			acc_807114 3222 3239 -
>> 			acc_84146 3222 3239 -
>> 			acc_2419732 3268 3285 +
>> 			acc_3041065 3565 3583 +
>> 			acc_362358 3640 3656 -
>> 			acc_3279485 3793 3813 +
>> 			acc_3091017 3794 3811 -
>> 			acc_2807380 3832 3848 +
>> 			acc_3105138 3832 3848 +
>> 			acc_3105139 3832 3848 +
>> 			acc_3105140 3832 3848 +
>> 			acc_3116450 3832 3848 +
>> 			acc_86708 3832 3848 +
>> 			acc_1987802 3922 3938 -
>> 			acc_1679660 4113 4129 +
>> 			acc_891489 4113 4129 +
>> 			acc_2829973 4299 4318 +
>> 			....
>> 			....
>> 			
>> 			
>> 			number of lines in file1.txt ~ 150000
>> 			number of lines in file2.txt ~ 800000
>> 			
>> 			so, how to annotate my file2 using the genomic coordinates  
>> stored in 			file1. I need to compare each couple of range of my  
>> file2 with each 			couple of range of my file1: 800000x150000  
>> combinaisons (quadratic 			analysis) ?
>> 			i'm looking for a fast method to do that, something like linear  
>> 			progression in the analysis
>> 			
>> 			thank you so much if you have ideas for help me.
>> 			
>> 			Laurent --
>> 			_______________________________________________
>> 			Bioperl-l mailing list
>> 			Bioperl-l at lists.open-bio.org
>> 			http://lists.open-bio.org/mailman/listinfo/bioperl-l
>> 			
>> 			
>> 		
>> 		_______________________________________________
>> 		Bioperl-l mailing list
>> 		Bioperl-l at lists.open-bio.org
>> 		http://lists.open-bio.org/mailman/listinfo/bioperl-l
>> 		
>>
>>
>>
>> _______________________________________________
>> Bioperl-l mailing list
>> Bioperl-l at lists.open-bio.org
>> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>>
>
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioperl-l




More information about the Bioperl-l mailing list