From 1470c861a3f837c5206837a89d0b932d2207fcc8 Mon Sep 17 00:00:00 2001 From: jprocter Date: Mon, 30 May 2005 14:58:53 +0000 Subject: [PATCH] more robust parsing for DBset/DBname|id1|id2 type ids --- src/jalview/io/FastaFile.java | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/src/jalview/io/FastaFile.java b/src/jalview/io/FastaFile.java index 4c1ba9e..cd287ff 100755 --- a/src/jalview/io/FastaFile.java +++ b/src/jalview/io/FastaFile.java @@ -54,13 +54,21 @@ public class FastaFile extends AlignFile { id = str.nextToken(); id = id.substring(1); - if(id.indexOf("UniProt/Swiss-Prot")>-1) - { - id = id.substring(id.indexOf("UniProt/Swiss-Prot|") + 19); - if(id.indexOf("|")>-1) - id = id.substring(id.indexOf("|") + 1); - } - + com.stevesoft.pat.Regex dbId = new com.stevesoft.pat.Regex("[A-Za-z-]+/[A-Za-z-]+\\|(\\w+)\\|(.+)"); + if (dbId.search(id)) + { + String dbid = dbId.stringMatched(1); + String idname = dbId.stringMatched(2); + if (idname.length()>0 && idname.indexOf("_") > -1) + { + id = idname; // just use friendly name // JBPNote: we may lose uniprot standardised ID here. + } + else + { + id = dbid; // use dbid to ensure sensible queries + } + + } if (id.indexOf("/") > 0 ) { StringTokenizer st = new StringTokenizer(id,"/"); -- 1.7.10.2