[Biococoa-dev] Digest tool

Koen van der Drift kvddrift at earthlink.net
Sun Feb 27 09:49:00 EST 2005


On Feb 27, 2005, at 8:40 AM, Alexander Griekspoor wrote:

> By the way, the problems listed above are from my own list of things 
> to solve before release of the new enzymex ;-)
>

Are you volunteering?




This is how I use the NSScanner to find the cleavage sites:

     NSScanner	*scanner = [NSScanner scannerWithString: sequenceString];

     cleaveSet =  [NSCharacterSet 
characterSetWithCharactersInString:[enzyme objectForKey:@"CleaveAt"]];

     if ( nil == cleaveSet )
         return nil;

     s = [enzyme objectForKey:@"DontCleaveAdjacentTo"];

     if ([s length])
         dontCleaveAdjacentTo =  [NSCharacterSet 
characterSetWithCharactersInString:[enzyme 
objectForKey:@"DontCleaveAdjacentTo"]];
     else
         dontCleaveAdjacentTo = nil;

     cleaveDirection =  [NSCharacterSet 
characterSetWithCharactersInString:[enzyme 
objectForKey:@"CleaveDirection"]];

     len = [sequenceString length];
     current = 0;

     cleavageSites = [[NSMutableArray alloc] init];

     while (![scanner isAtEnd])
     {
         [scanner scanUpToCharactersFromSet: cleaveSet intoString:nil];

         current = [scanner scanLocation];

         if ( current + 1 <= len )
         {
             if ( !dontCleaveAdjacentTo || ( dontCleaveAdjacentTo &&
                     ![scanner scanCharactersFromSet: 
dontCleaveAdjacentTo intoString:nil] ))
             {
                 current = [scanner scanLocation];

                 cut = [NSNumber numberWithInt:current + 1];
                 [cleavageSites addObject:cut];

                 [scanner setScanLocation: current + 1];
             }
         }
     }


I have to run now, but will have a more closer look at your snippet 
later today.

- Koen.




More information about the Biococoa-dev mailing list