That did not work on all three:
> strapply(x, "[A-Z]{3}[0-9]+")
[[1]]
NULL
[[2]]
[1] "CAA15575"
[[3]]
[1] "CAA17111"
But adding a "_" to the initiation pattern and a period to the
termination pattern makes it complete:
> library(gsubfn)
> strapply(x, "[A-Z_]{3}[0-9.]+")
[[1]]
[1] "YP_177963"
[[2]]
[1] "CAA15575"
[[3]]
[1] "CAA17111.1"
Maybe between the two of you and Jim Holtman, I can eventually learn
how to use regular expressions.
--
David.
On Sep 16, 2009, at 10:14 AM, Henrique Dallazuanna wrote:
Try this:
library(gsubfn)
strapply(x, "[A-Z]{3}[0-9]+")
On Wed, Sep 16, 2009 at 10:53 AM, Giulio Di Giovanni
<perimessagg...@hotmail.com> wrote:
Hi all,
I have thousands of strings like these ones:
"1159_1; YP_177963; PPE FAMILY PROTEIN"
"1100_13; SECRETED L-ALANINE DEHYDROGENASE ALD CAA15575"
"1141_24; gi;2894249;emb;CAA17111.1; PROBABLE ISOCITRATE
DEHYDROGENASE"
and various others..
I'm interested to extract the code for the protein (in this
example: YP_177963, CAA15575, CAA17111).
I found only one common criterion to identify the protein codes in
ALL my strings:
I need a sequence of characters selected in this way:
start:
the first alphabetic capital letter followed after three characters
by a digit
end:
the last following digit before a non-digit character, or nothing.
Tricky, isn't it?
Well, I'm not an expert, and I played a lot with regular
expressions and sub() command with no big results. Also with
substring.location in Hmisc package (but here I don't know how to
use regular expressions).
Maybe there are other more useful functions or maybe is just a
matter to use regular expression in a better way...
Can anybody help me?
David Winsemius, MD
Heritage Laboratories
West Hartford, CT
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.