Skip to content

Commit d9d58b0

Browse files
committed
Refactor compute & Add main /cesymm route
1 parent 28c0ae7 commit d9d58b0

14 files changed

Lines changed: 290 additions & 30 deletions

File tree

src/main/java/org/biojava/http/BioJavaRoutes.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,5 +28,7 @@ public class BioJavaRoutes {
2828
public static String PDB = "/pdb/:id";
2929
public static String MMCIF = "/mmcif/:id";
3030
public static String NGL = "/ngl/:id";
31+
public static String CESYMM = "/cesymm/:id";
3132
public static String CESYMM_JSON = "/cesymm/:id/json";
33+
public static String CESYMM_PDB = "/cesymm/:id/pdb";
3234
}

src/main/java/org/biojava/http/ServerMain.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,10 @@
2626

2727
import static spark.Spark.get;
2828

29-
import org.biojava.http.routes.CESymmRoute;
30-
import org.biojava.http.routes.JsonTransformer;
29+
import org.biojava.http.compute.CeSymmPDBTransformer;
30+
import org.biojava.http.compute.JsonTransformer;
31+
import org.biojava.http.routes.CeSymmResultRoute;
32+
import org.biojava.http.routes.CeSymmRoute;
3133
import org.biojava.http.routes.MMCIFRoute;
3234
import org.biojava.http.routes.NGLRoute;
3335
import org.biojava.http.routes.PDBRoute;
@@ -50,6 +52,8 @@ public static void main(String[] args) {
5052

5153
get(BioJavaRoutes.NGL, new NGLRoute(), new HandlebarsTemplateEngine());
5254

53-
get(BioJavaRoutes.CESYMM_JSON, new CESymmRoute(),new JsonTransformer());
55+
get(BioJavaRoutes.CESYMM, new CeSymmRoute(), new HandlebarsTemplateEngine());
56+
get(BioJavaRoutes.CESYMM_JSON, new CeSymmResultRoute(),new JsonTransformer());
57+
get(BioJavaRoutes.CESYMM_PDB, new CeSymmResultRoute(),new CeSymmPDBTransformer());
5458
}
5559
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
/*
2+
* BioJava development code
3+
*
4+
* This code may be freely distributed and modified under the
5+
* terms of the GNU Lesser General Public Licence. This should
6+
* be distributed with the code. If you do not have a copy,
7+
* see:
8+
*
9+
* http://www.gnu.org/copyleft/lesser.html
10+
*
11+
* Copyright for this code is held jointly by the individual
12+
* authors. These should be listed in @author doc comments.
13+
*
14+
* For more information on the BioJava project and its aims,
15+
* or to join the biojava-l mailing list, visit the home page
16+
* at:
17+
*
18+
* http://www.biojava.org/
19+
*
20+
* Created on Jul 6, 2016
21+
* Author: blivens
22+
*
23+
*/
24+
25+
package org.biojava.http.compute;
26+
27+
import java.util.List;
28+
29+
import org.biojava.nbio.structure.Atom;
30+
import org.biojava.nbio.structure.Structure;
31+
import org.biojava.nbio.structure.StructureException;
32+
import org.biojava.nbio.structure.align.multiple.MultipleAlignment;
33+
import org.biojava.nbio.structure.align.multiple.util.MultipleAlignmentDisplay;
34+
import org.biojava.nbio.structure.align.multiple.util.MultipleAlignmentTools;
35+
import org.biojava.nbio.structure.symmetry.internal.CeSymmResult;
36+
import org.slf4j.Logger;
37+
import org.slf4j.LoggerFactory;
38+
39+
import spark.ResponseTransformer;
40+
41+
public class CeSymmPDBTransformer implements ResponseTransformer {
42+
public static Logger logger = LoggerFactory.getLogger(CeSymmPDBTransformer.class);
43+
44+
public CeSymmPDBTransformer() {
45+
super();
46+
}
47+
48+
@Override
49+
public String render(Object model) {
50+
CeSymmResult result = (CeSymmResult) model;
51+
52+
try {
53+
MultipleAlignment multAln = result.getMultipleAlignment();
54+
List<Atom[]> rotatedAtoms = MultipleAlignmentDisplay.getRotatedAtoms(multAln );
55+
Structure artificial = MultipleAlignmentTools.toMultimodelStructure(multAln, rotatedAtoms);
56+
return artificial.toPDB();
57+
} catch (StructureException e) {
58+
logger.error("error rendering CeSymm PDB",e);
59+
return null;
60+
}
61+
62+
}
63+
64+
}

src/main/java/org/biojava/http/routes/CeSymmResultCache.java renamed to src/main/java/org/biojava/http/compute/CeSymmResultCache.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*
2323
*/
2424

25-
package org.biojava.http.routes;
25+
package org.biojava.http.compute;
2626

2727
import java.util.Collections;
2828
import java.util.HashMap;

src/main/java/org/biojava/http/routes/CeSymmRunner.java renamed to src/main/java/org/biojava/http/compute/CeSymmRunner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*
2323
*/
2424

25-
package org.biojava.http.routes;
25+
package org.biojava.http.compute;
2626

2727
import java.io.IOException;
2828
import java.util.concurrent.Callable;

src/main/java/org/biojava/http/routes/JsonTransformer.java renamed to src/main/java/org/biojava/http/compute/JsonTransformer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@
2222
*
2323
*/
2424

25-
package org.biojava.http.routes;
25+
package org.biojava.http.compute;
2626

27-
import org.biojava.http.json.CESymmResultSerializer;
27+
import org.biojava.http.json.CeSymmResultSerializer;
2828
import org.biojava.nbio.structure.symmetry.internal.CeSymmResult;
2929

3030
import spark.ResponseTransformer;
@@ -39,7 +39,7 @@ public class JsonTransformer implements ResponseTransformer {
3939
public JsonTransformer() {
4040
super();
4141
gson = new GsonBuilder()
42-
.registerTypeAdapter(CeSymmResult.class, new CESymmResultSerializer())
42+
.registerTypeAdapter(CeSymmResult.class, new CeSymmResultSerializer())
4343
.create();
4444
}
4545

src/main/java/org/biojava/http/json/CESymmResultSerializer.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,8 @@
3636
import com.google.gson.JsonSerializationContext;
3737
import com.google.gson.JsonSerializer;
3838

39-
public class CESymmResultSerializer implements JsonSerializer<CeSymmResult> {
40-
private static final Logger logger = LoggerFactory.getLogger(CESymmResultSerializer.class);
39+
public class CeSymmResultSerializer implements JsonSerializer<CeSymmResult> {
40+
private static final Logger logger = LoggerFactory.getLogger(CeSymmResultSerializer.class);
4141

4242
@Override
4343
public JsonElement serialize(CeSymmResult src, Type typeOfSrc, JsonSerializationContext context) {

src/main/java/org/biojava/http/models/CESymmParams.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,12 +26,12 @@
2626

2727
import org.biojava.nbio.structure.symmetry.internal.CeSymmResult;
2828

29-
public class CESymmParams {
29+
public class CeSymmParams {
3030

3131
private NGLParams ngl;
3232
private CeSymmResult result;
33-
34-
public CESymmParams(CeSymmResult result) {
33+
34+
public CeSymmParams(CeSymmResult result) {
3535
this.result = result;
3636
this.ngl = new NGLParams("/cesymm/"+result.getStructureId());
3737
}
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/*
2+
* BioJava development code
3+
*
4+
* This code may be freely distributed and modified under the
5+
* terms of the GNU Lesser General Public Licence. This should
6+
* be distributed with the code. If you do not have a copy,
7+
* see:
8+
*
9+
* http://www.gnu.org/copyleft/lesser.html
10+
*
11+
* Copyright for this code is held jointly by the individual
12+
* authors. These should be listed in @author doc comments.
13+
*
14+
* For more information on the BioJava project and its aims,
15+
* or to join the biojava-l mailing list, visit the home page
16+
* at:
17+
*
18+
* http://www.biojava.org/
19+
*
20+
* Created on Jul 6, 2016
21+
* Author: blivens
22+
*
23+
*/
24+
25+
package org.biojava.http.models;
26+
27+
28+
public class CeSymmRouteParams extends NGLParams{
29+
private String structureId;
30+
private String jsonUrl;
31+
32+
33+
public CeSymmRouteParams(String structureId,String structUrl,String jsonUrl) {
34+
super(structUrl);
35+
this.structureId = structureId;
36+
this.jsonUrl = jsonUrl;
37+
}
38+
39+
public String getStructureId() {
40+
return structureId;
41+
}
42+
43+
public void setStructureId(String structureId) {
44+
this.structureId = structureId;
45+
}
46+
47+
public String getJsonUrl() {
48+
return jsonUrl;
49+
}
50+
51+
public void setJsonUrl(String jsonUrl) {
52+
this.jsonUrl = jsonUrl;
53+
}
54+
55+
}

src/main/java/org/biojava/http/models/NGLParams.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -49,10 +49,6 @@ public String getStructUrl() {
4949
public void setStructUrl(String structUrl) {
5050
this.structUrl = structUrl;
5151
}
52-
53-
public String toString() {
54-
return url;
55-
}
5652

5753
public int getSize() {
5854
return size;

0 commit comments

Comments
 (0)