diff --git a/README b/README
index 718a216..fc1ddfa 100644
--- a/README
+++ b/README
@@ -27,9 +27,11 @@ Step 1. Init the Database
Step 2. Check the API
1. in pdb-annotation/pdb-alignment-api/: mvn spring-boot:run
-2. open your web browser:
-http://localhost:8080/StructureMappingQuery?ensemblid=ENSP00000483207.2
-http://localhost:8080/ProteinIdentifierRecognitionQuery?ensemblid=ENSP00000483207.2
+2. Swagger-UI:
+http://localhost:8080/swagger-ui.html
+3. Directly using API:
+http://localhost:8080/pdb_annotation/StructureMappingQuery?ensemblId=ENSP00000483207.2
+http://localhost:8080/pdb_annotation/ProteinIdentifierRecognitionQuery?ensemblId=ENSP00000483207.2
Step 3. Weekly update
1. in pdb-annotation/pdb-alignment-pipeline/target/: java -jar -Xmx7000m pdb-0.1.0.jar update
diff --git a/pdb-alignment-api/pom.xml b/pdb-alignment-api/pom.xml
index 62ade2d..48e12f7 100644
--- a/pdb-alignment-api/pom.xml
+++ b/pdb-alignment-api/pom.xml
@@ -24,6 +24,18 @@
mysql
mysql-connector-java
+
+ io.springfox
+ springfox-swagger-ui
+ 2.4.0
+ compile
+
+
+ io.springfox
+ springfox-swagger2
+ 2.4.0
+ compile
+
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/Application.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/Application.java
index efb5621..e623493 100644
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/Application.java
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/Application.java
@@ -1,13 +1,52 @@
package org.cbioportal.pdb_annotation.web;
import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.context.annotation.Bean;
+import springfox.documentation.builders.ApiInfoBuilder;
+import springfox.documentation.builders.PathSelectors;
+import springfox.documentation.service.ApiInfo;
+import springfox.documentation.spi.DocumentationType;
+import springfox.documentation.spring.web.plugins.Docket;
+import springfox.documentation.swagger2.annotations.EnableSwagger2;
+
+/**
+ * Main SpringBoot Application
+ *
+ * @author Juexin Wang
+ *
+ */
@SpringBootApplication
-@EnableAutoConfiguration
+@EnableSwagger2
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
- }
+ }
+
+ @Bean
+ public Docket annotationApi()
+ {
+ // default swagger definition file location: /v2/api-docs?group=pdb_annotation
+ // default swagger UI location: /swagger-ui.html
+ return new Docket(DocumentationType.SWAGGER_2)
+ .groupName("pdb_annotation")
+ .apiInfo(annotationApiInfo())
+ .select()
+ .paths(PathSelectors.regex("/pdb_annotation.*"))
+ .build();
+ }
+
+ private ApiInfo annotationApiInfo()
+ {
+ return new ApiInfoBuilder()
+ .title("PDB Annotation API")
+ .description("PDB Annotation API")
+ //.termsOfServiceUrl("http://terms-of-service-url")
+ .contact("CMO, MSKCC")
+ .license("GNU AFFERO GENERAL PUBLIC LICENSE Version 3")
+ .licenseUrl("https://github.com/cBioPortal/pdb-annotation/blob/master/LICENSE")
+ .version("2.0")
+ .build();
+ }
}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/controllers/AlignmentController.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/controllers/AlignmentController.java
index e717941..f19fad9 100644
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/controllers/AlignmentController.java
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/controllers/AlignmentController.java
@@ -1,73 +1,90 @@
package org.cbioportal.pdb_annotation.web.controllers;
import java.util.ArrayList;
-import java.util.Iterator;
import java.util.List;
+import org.cbioportal.pdb_annotation.web.domain.AlignmentRepository;
+import org.cbioportal.pdb_annotation.web.domain.EnsemblRepository;
+import org.cbioportal.pdb_annotation.web.domain.PdbRepository;
import org.cbioportal.pdb_annotation.web.models.Alignment;
-import org.cbioportal.pdb_annotation.web.persistancy.AlignmentRepository;
-import org.cbioportal.pdb_annotation.web.persistancy.EnsemblRepository;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
+import org.springframework.http.HttpStatus;
+import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.ResponseStatus;
+import org.springframework.web.bind.annotation.RestController;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
-@Controller
+/**
+ *
+ * Controller of the main API: AlignmentController
+ *
+ * @author Juexin Wang
+ *
+ */
+@RestController // shorthand for @Controller, @ResponseBody
+@CrossOrigin(origins = "*") // allow all cross-domain requests
+@RequestMapping(value = "/pdb_annotation/")
public class AlignmentController {
-
- @RequestMapping("/StructureMappingQuery")
- @ResponseBody
- public List findByEnsemblidinAlignment(String ensemblid) {
-
- List list = new ArrayList();
- try {
- Iterator it = alignmentDao.findByEnsemblId(ensemblid).iterator();
- while(it.hasNext()){
- Alignment alignment = (Alignment)it.next();
- list.add(alignment);
- }
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- return list;
-
- }
-
-
- @RequestMapping("/ProteinIdentifierRecognitionQuery")
- @ResponseBody
- public boolean isExistedEnsemblidinAlignment(String ensemblid) {
- try {
- Iterator it = alignmentDao.findByEnsemblId(ensemblid).iterator();
- if(it.hasNext()){
- return true;
- }else{
- return false;
- }
- }
- catch (Exception ex) {
- ex.printStackTrace();
- }
- return false;
- }
-
-
-
-
-
- // ------------------------
- // PRIVATE FIELDS
- // ------------------------
- @Autowired
- private AlignmentRepository alignmentDao;
-
- //@Autowired
- //private EnsemblDAO ensemblDao;
-
-
+ private AlignmentRepository alignmentRepository;
+ private EnsemblRepository ensemblRepository;
+ private PdbRepository pdbRepository;
+ @Autowired
+ public AlignmentController(AlignmentRepository alignmentRepository, EnsemblRepository ensemblRepository,
+ PdbRepository pdbRepository) {
+ this.alignmentRepository = alignmentRepository;
+ this.ensemblRepository = ensemblRepository;
+ this.pdbRepository = pdbRepository;
+ }
+
+ @ApiOperation(value = "get pdb alignments by ensemblId", nickname = "getPdbAlignmentByEnsemblId")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Success", response = Alignment.class, responseContainer = "List"),
+ @ApiResponse(code = 400, message = "Bad Request") })
+ @RequestMapping(value = "/StructureMappingQuery", method = RequestMethod.GET, produces = "application/json")
+ @ResponseBody
+ @ResponseStatus(HttpStatus.OK)
+ public List getPdbAlignmentByEnsemblId(
+ @RequestParam @ApiParam(value = "Input ensembl id. For example ENSP00000483207.2", required = true, allowMultiple = true) String ensemblId) {
+ List list = new ArrayList();
+ try {
+ List it = alignmentRepository.findByEnsemblId(ensemblId);
+ list.addAll(it);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ return list;
+ }
+
+ @ApiOperation(value = "get whether ensemblId exists by ensemblId", nickname = "getExistedEnsemblidinAlignment")
+ @ApiResponses(value = {
+ @ApiResponse(code = 200, message = "Success", response = Alignment.class, responseContainer = "boolean"),
+ @ApiResponse(code = 400, message = "Bad Request") })
+ @RequestMapping(value = "/ProteinIdentifierRecognitionQuery", method = RequestMethod.GET, produces = "application/json")
+ @ResponseBody
+ @ResponseStatus(HttpStatus.OK)
+ public boolean getExistedEnsemblidinAlignment(
+ @RequestParam @ApiParam(value = "Input ensembl id. For example ENSP00000483207.2", required = true, allowMultiple = true) String ensemblId) {
+ try {
+ List it = alignmentRepository.findByEnsemblId(ensemblId);
+ if (it.size() != 0) {
+ return true;
+ } else {
+ return false;
+ }
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ return false;
+ }
}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/controllers/MainController.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/controllers/MainController.java
deleted file mode 100644
index 0b17266..0000000
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/controllers/MainController.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.cbioportal.pdb_annotation.web.controllers;
-
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-
-@Controller
-public class MainController {
- @RequestMapping("/")
- @ResponseBody
- public String index() {
- return "Handcrafted by Juexin Wang";
- }
-}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/AlignmentRepository.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/AlignmentRepository.java
new file mode 100644
index 0000000..56b68da
--- /dev/null
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/AlignmentRepository.java
@@ -0,0 +1,20 @@
+package org.cbioportal.pdb_annotation.web.domain;
+
+import java.util.List;
+
+import javax.transaction.Transactional;
+
+import org.cbioportal.pdb_annotation.web.models.Alignment;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ *
+ * @author Juexin Wang
+ *
+ */
+@Transactional
+public interface AlignmentRepository extends JpaRepository{
+
+ public List findByEnsemblId(String ensemblId);
+
+}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/EnsemblRepository.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/EnsemblRepository.java
new file mode 100644
index 0000000..7a088b1
--- /dev/null
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/EnsemblRepository.java
@@ -0,0 +1,20 @@
+package org.cbioportal.pdb_annotation.web.domain;
+
+import java.util.List;
+
+import javax.transaction.Transactional;
+
+import org.cbioportal.pdb_annotation.web.models.Alignment;
+import org.cbioportal.pdb_annotation.web.models.Ensembl;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ *
+ * @author Juexin Wang
+ *
+ */
+@Transactional
+public interface EnsemblRepository extends JpaRepository{
+
+ public List findByEnsemblId(String ensemblId);
+}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/PdbRepository.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/PdbRepository.java
new file mode 100644
index 0000000..375357a
--- /dev/null
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/domain/PdbRepository.java
@@ -0,0 +1,16 @@
+package org.cbioportal.pdb_annotation.web.domain;
+
+import javax.transaction.Transactional;
+
+import org.cbioportal.pdb_annotation.web.models.Alignment;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+/**
+ *
+ * @author Juexin Wang
+ *
+ */
+@Transactional
+public interface PdbRepository extends JpaRepository{
+
+}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Alignment.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Alignment.java
index 4cb4abb..64b8d08 100644
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Alignment.java
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Alignment.java
@@ -6,7 +6,12 @@
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
-import javax.validation.constraints.NotNull;
+
+/**
+ *
+ * @author Juexin Wang
+ *
+ */
@Entity
@Table(name = "pdb_ensembl_alignment")
@@ -55,16 +60,14 @@ public class Alignment {
@Column(name = "IDENTP")
private float identp;
- /*
@Column(name = "ENSEMBL_ALIGN")
- private String ensemblalign;
+ private String ensemblAlign;
@Column(name = "PDB_ALIGN")
- private String pdbalign;
+ private String pdbAlign;
@Column(name = "MIDLINE_ALIGN")
- private String midlinealign;
- */
+ private String midlineAlign;
// ------------------------
@@ -175,33 +178,32 @@ public float getIdentp() {
public void setIdentp(float identp) {
this.identp = identp;
}
-
- /*
- public String getEnsemblalign() {
- return ensemblalign;
+
+
+ public String getEnsemblAlign() {
+ return ensemblAlign;
}
- public void setEnsemblalign(String ensemblalign) {
- this.ensemblalign = ensemblalign;
+ public void setEnsemblAlign(String ensemblAlign) {
+ this.ensemblAlign = ensemblAlign;
}
- public String getPdbalign() {
- return pdbalign;
+ public String getPdbAlign() {
+ return pdbAlign;
}
- public void setPdbalgin(String pdbalign) {
- this.pdbalign = pdbalign;
+ public void setPdbAlign(String pdbAlign) {
+ this.pdbAlign = pdbAlign;
}
- public String getMidlinealign() {
- return midlinealign;
+ public String getMidlineAlign() {
+ return midlineAlign;
}
- public void setMidlinealign(String midlinealign) {
- this.midlinealign = midlinealign;
+ public void setMidlineAlign(String midlineAlign) {
+ this.midlineAlign = midlineAlign;
}
- */
-
+
/**
* Construction Function
*/
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Ensembl.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Ensembl.java
index fbfbdfd..2a37614 100644
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Ensembl.java
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Ensembl.java
@@ -2,11 +2,14 @@
import javax.persistence.Column;
import javax.persistence.Entity;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
+/**
+ *
+ * @author Juexin Wang
+ *
+ */
@Entity
@Table(name = "ensembl_entry")
public class Ensembl {
@@ -56,10 +59,6 @@ public String getEnsembltranscript() {
public void setEnsembltranscript(String ensembltranscript) {
this.ensemblTranscript = ensembltranscript;
- }
-
-
-
-
+ }
}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Pdb.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Pdb.java
index c3dfc73..6f80182 100644
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Pdb.java
+++ b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/models/Pdb.java
@@ -5,6 +5,11 @@
import javax.persistence.Id;
import javax.persistence.Table;
+/**
+ *
+ * @author Juexin Wang
+ *
+ */
@Entity
@Table(name = "pdb_entry")
public class Pdb {
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/AlignmentRepository.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/AlignmentRepository.java
deleted file mode 100644
index a43232c..0000000
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/AlignmentRepository.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.cbioportal.pdb_annotation.web.persistancy;
-
-import javax.transaction.Transactional;
-
-import org.cbioportal.pdb_annotation.web.models.Alignment;
-import org.springframework.data.repository.CrudRepository;
-
-@Transactional
-public interface AlignmentRepository extends CrudRepository{
-
- public Iterable findByEnsemblId(String ensemblid);
-
-}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/EnsemblRepository.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/EnsemblRepository.java
deleted file mode 100644
index 868ecae..0000000
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/EnsemblRepository.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.cbioportal.pdb_annotation.web.persistancy;
-
-import javax.transaction.Transactional;
-
-import org.cbioportal.pdb_annotation.web.models.Alignment;
-import org.cbioportal.pdb_annotation.web.models.Ensembl;
-import org.springframework.data.repository.CrudRepository;
-
-@Transactional
-public interface EnsemblRepository extends CrudRepository{
-
- public Iterable findByEnsemblId(String ensemblid);
-}
diff --git a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/PdbRepository.java b/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/PdbRepository.java
deleted file mode 100644
index d090c29..0000000
--- a/pdb-alignment-api/src/main/java/org/cbioportal/pdb_annotation/web/persistancy/PdbRepository.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.cbioportal.pdb_annotation.web.persistancy;
-
-import javax.transaction.Transactional;
-
-import org.cbioportal.pdb_annotation.web.models.Alignment;
-import org.springframework.data.repository.CrudRepository;
-
-@Transactional
-public interface PdbRepository extends CrudRepository{
-
-}
diff --git a/pdb-alignment-api/src/main/resources/application.properties b/pdb-alignment-api/src/main/resources/application.properties
index f4fb92c..875bf03 100644
--- a/pdb-alignment-api/src/main/resources/application.properties
+++ b/pdb-alignment-api/src/main/resources/application.properties
@@ -5,7 +5,7 @@
# Set here configurations for the database connection
# Connection url for the database "netgloo_blog"
-spring.datasource.url = jdbc:mysql://localhost:3306/pdbtest?useSSL=false
+spring.datasource.url = jdbc:mysql://localhost:3306/pdb?useSSL=false
# Username and password
spring.datasource.username = cbio
diff --git a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineMakeSQL.java b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineMakeSQL.java
index 0c0fcbe..4e4dcb3 100644
--- a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineMakeSQL.java
+++ b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineMakeSQL.java
@@ -18,7 +18,6 @@
import org.cbioportal.pdb_annotation.util.blast.Hsp;
import org.cbioportal.pdb_annotation.util.blast.Iteration;
import org.cbioportal.pdb_annotation.util.blast.IterationHits;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
diff --git a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelinePreprocessing.java b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelinePreprocessing.java
index 3accaac..b5c9bf7 100644
--- a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelinePreprocessing.java
+++ b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelinePreprocessing.java
@@ -13,8 +13,6 @@
import org.biojava.nbio.core.sequence.io.FastaReaderHelper;
import org.biojava.nbio.core.sequence.io.FastaWriterHelper;
import org.cbioportal.pdb_annotation.util.ReadConfig;
-import org.cbioportal.pdb_annotation.util.blast.BlastResult;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
/**
diff --git a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineRunCommand.java b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineRunCommand.java
index 47ac57a..6b14b90 100644
--- a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineRunCommand.java
+++ b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineRunCommand.java
@@ -12,12 +12,9 @@
import java.util.Calendar;
import java.util.List;
-import javax.annotation.PostConstruct;
-
import org.apache.commons.io.FileUtils;
import org.cbioportal.pdb_annotation.util.ReadConfig;
import org.cbioportal.pdb_annotation.util.blast.BlastDataBase;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.PropertySource;
import org.springframework.stereotype.Component;
@@ -50,8 +47,6 @@ public void setmakeblastdb(String makeblastdb)
this.makeblastdb = makeblastdb;
}
*/
-
-
/**
* Construct function
diff --git a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineStarter.java b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineStarter.java
index 61c1f9f..fc5c964 100644
--- a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineStarter.java
+++ b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/PdbScriptsPipelineStarter.java
@@ -2,54 +2,17 @@
import org.cbioportal.pdb_annotation.util.*;
-import java.io.File;
-import java.io.FileWriter;
import java.text.DecimalFormat;
import java.text.NumberFormat;
-import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Collection;
-import java.util.HashMap;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map.Entry;
import java.util.Timer;
-import javax.xml.bind.JAXBContext;
-import javax.xml.bind.Unmarshaller;
-
-import org.apache.commons.io.FileUtils;
-import org.biojava.nbio.core.search.io.blast.BlastXMLParser;
-import org.biojava.nbio.core.sequence.ProteinSequence;
-import org.biojava.nbio.core.sequence.io.FastaReaderHelper;
-import org.biojava.nbio.core.sequence.io.FastaWriterHelper;
-import org.biojava.nbio.structure.Chain;
-import org.biojava.nbio.structure.DBRef;
-import org.biojava.nbio.structure.Structure;
-import org.biojava.nbio.structure.StructureIO;
-import org.cbioportal.pdb_annotation.util.*;
-import org.cbioportal.pdb_annotation.util.blast.*;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.boot.context.web.SpringBootServletInitializer;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.AnnotationConfigApplicationContext;
-import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
import org.springframework.scheduling.annotation.EnableScheduling;
-import org.springframework.stereotype.Component;
-
-import springfox.documentation.builders.ApiInfoBuilder;
-import springfox.documentation.builders.PathSelectors;
-import springfox.documentation.service.ApiInfo;
-import springfox.documentation.spi.DocumentationType;
-import springfox.documentation.spring.web.plugins.Docket;
-import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Preliminary script, includes several steps
@@ -72,9 +35,11 @@
Step 2. Check the API
1. in pdb-annotation/pdb-alignment-api/: mvn spring-boot:run
-2. open your web browser:
-http://localhost:8080/StructureMappingQuery?ensemblid=ENSP00000483207.2
-http://localhost:8080/ProteinIdentifierRecognitionQuery?ensemblid=ENSP00000483207.2
+2. Swagger-UI:
+http://localhost:8080/swagger-ui.html
+3. Directly using API:
+http://localhost:8080/pdb_annotation/StructureMappingQuery?ensemblId=ENSP00000483207.2
+http://localhost:8080/pdb_annotation/ProteinIdentifierRecognitionQuery?ensemblId=ENSP00000483207.2
Step 3. Weekly update
1. Using CRON to run command in pdb-annotation/pdb-alignment-pipeline/target/: java -jar -Xmx7000m pdb-0.1.0.jar update
diff --git a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/ScheduleUpdateTask.java b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/ScheduleUpdateTask.java
index 180b12b..b8bf39c 100644
--- a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/ScheduleUpdateTask.java
+++ b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/scripts/ScheduleUpdateTask.java
@@ -25,9 +25,7 @@ public void run() {
PdbScriptsPipelineRunCommand app = new PdbScriptsPipelineRunCommand();
app.runUpdatePDB();
logger.info("[UPDATE] CronJob End ...");
-
} catch (Exception ex) {
-
System.out.println("[UPDATE] Error running thread " + ex.getMessage());
}
}
diff --git a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/util/ReadConfig.java b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/util/ReadConfig.java
index 5a73de1..f4f1e26 100644
--- a/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/util/ReadConfig.java
+++ b/pdb-alignment-pipeline/src/main/java/org/cbioportal/pdb_annotation/util/ReadConfig.java
@@ -5,6 +5,13 @@
import org.apache.commons.io.FileUtils;
+/**
+ *
+ * Read application.properties
+ *
+ * @author Juexin Wang
+ *
+ */
public class ReadConfig {
public static String makeblastdb;
@@ -57,9 +64,9 @@ public ReadConfig(){
List list =FileUtils.readLines(file);
for(String str:list){
if(!str.startsWith("#") && str.length()!=0 && !str.isEmpty()){
- //System.out.println(str);
String[] array =str.split("=");
- hm.put(array[0], array[1]);
+ //hm.put(array[0], array[1]);
+ hm.put(array[0], str.substring(str.indexOf("=")+1));
}
}
if(hm.containsKey("makeblastdb")){
@@ -159,16 +166,16 @@ public ReadConfig(){
if(hm.containsKey("sql_ensemblSQL")){
this.sql_ensemblSQL= hm.get("sql_ensemblSQL").toString();
}
- if(hm.containsKey("updateAdded")){
+ if(hm.containsKey("update.added")){
this.updateAdded= hm.get("update.added").toString();
}
- if(hm.containsKey("updateModified")){
+ if(hm.containsKey("update.modified")){
this.updateModified= hm.get("update.modified").toString();
}
- if(hm.containsKey("updateObsolete")){
+ if(hm.containsKey("update.obsolete")){
this.updateObsolete= hm.get("update.obsolete").toString();
}
- if(hm.containsKey("pdbFastaService")){
+ if(hm.containsKey("pdb.fastaService")){
this.pdbFastaService= hm.get("pdb.fastaService").toString();
}
diff --git a/pdb-alignment-pipeline/src/main/resources/application.properties b/pdb-alignment-pipeline/src/main/resources/application.properties
index 211203f..31736c8 100644
--- a/pdb-alignment-pipeline/src/main/resources/application.properties
+++ b/pdb-alignment-pipeline/src/main/resources/application.properties
@@ -9,23 +9,23 @@ update.modified=ftp://ftp.wwpdb.org/pub/pdb/data/status/latest/modified.pdb
update.obsolete=ftp://ftp.wwpdb.org/pub/pdb/data/status/latest/obsolete.pdb
pdb.fastaService=http://www.rcsb.org/pdb/files/fasta.txt?structureIdList=
-#pdb.wholeSource=ftp://ftp.rcsb.org/pub/pdb/derived_data/pdb_seqres.txt.gz
-#ensembl.wholeSource=ftp://ftp.ensembl.org/pub/release-84/fasta/homo_sapiens/pep/Homo_sapiens.GRCh38.pep.all.fa.gz
+pdb.wholeSource=ftp://ftp.rcsb.org/pub/pdb/derived_data/pdb_seqres.txt.gz
+ensembl.wholeSource=ftp://ftp.ensembl.org/pub/release-84/fasta/homo_sapiens/pep/Homo_sapiens.GRCh38.pep.all.fa.gz
#Test
-pdb.wholeSource=http://cbio.mskcc.org/~sheridan/pdb_seqres_50000.txt
-ensembl.wholeSource=http://cbio.mskcc.org/~sheridan/Homo_sapiens.GRCh38.pep.all_10000.fa
+#pdb.wholeSource=http://cbio.mskcc.org/~sheridan/pdb_seqres_50000.txt
+#ensembl.wholeSource=http://cbio.mskcc.org/~sheridan/Homo_sapiens.GRCh38.pep.all_10000.fa
-#pdb_seqres_download_file=pdb_seqres.txt
-#pdb_seqres_fasta_file=pdb_seqres.fasta
-#ensembl_download_file=Homo_sapiens.GRCh38.pep.all.fa
-#ensembl_fasta_file=Homo_sapiens.GRCh38.pep.all.fa
+pdb_seqres_download_file=pdb_seqres.txt
+pdb_seqres_fasta_file=pdb_seqres.fasta
+ensembl_download_file=Homo_sapiens.GRCh38.pep.all.fa
+ensembl_fasta_file=Homo_sapiens.GRCh38.pep.all.fa
#Test
-pdb_seqres_download_file=pdb_seqres_50000.txt
-pdb_seqres_fasta_file=pdb_seqres_50000.fasta
-ensembl_download_file=Homo_sapiens.GRCh38.pep.all_10000.fa
-ensembl_fasta_file=Homo_sapiens.GRCh38.pep.all_10000.fa
+#pdb_seqres_download_file=pdb_seqres_50000.txt
+#pdb_seqres_fasta_file=pdb_seqres_50000.fasta
+#ensembl_download_file=Homo_sapiens.GRCh38.pep.all_10000.fa
+#ensembl_fasta_file=Homo_sapiens.GRCh38.pep.all_10000.fa
update.updateTxt=update.txt
update.updateFasta=update.fasta
@@ -40,16 +40,16 @@ blast_para_threads=6
#Test
#intervals to split the input files test
-ensembl_input_interval=3000
+#ensembl_input_interval=3000
-#ensembl_input_interval=10000
+ensembl_input_interval=10000
sql_insert_output_interval=10000
# mysql
mysql=mysql
username=cbio
password=cbio
-db_schema=pdbtest
+db_schema=pdb
db_schema_script=pdb.sql
#updateSetting