Advertisement
Guest User

Untitled

a guest
Dec 5th, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.36 KB | None | 0 0
  1. package project_Task1;
  2.  
  3. import java.io.BufferedReader;
  4. import java.io.DataOutputStream;
  5. import java.io.IOException;
  6. import java.io.InputStreamReader;
  7. import java.net.HttpURLConnection;
  8. import java.net.MalformedURLException;
  9. import java.net.ProtocolException;
  10.  
  11. import java.net.URL;
  12. import java.io.InputStream;
  13. import javax.xml.parsers.DocumentBuilder;
  14. import javax.xml.parsers.DocumentBuilderFactory;
  15. import javax.xml.parsers.ParserConfigurationException;
  16.  
  17. import org.w3c.dom.Document;
  18. import org.w3c.dom.Element;
  19. import org.w3c.dom.Node;
  20. import org.w3c.dom.NodeList;
  21. import org.xml.sax.SAXException;
  22.  
  23. import java.util.HashMap;
  24. import java.util.Map;
  25. import java.util.Scanner;  // Import the Scanner class
  26.  
  27. public class API_Call {
  28.  
  29.     public static void main (String args[]) throws IOException, ParserConfigurationException, SAXException{
  30.        
  31.         URL url = null;
  32.         URL url_citing_article = null;
  33.         String url_string = "";
  34.         String url_string_articles_citations = "";
  35.         String url_string_citing_article = "";
  36.        
  37.         Scanner myObj = new Scanner(System.in);  // Create a Scanner object
  38.         System.out.println("Please enter DOI:");
  39.  
  40.         String doi = myObj.nextLine();  // Read user input
  41.         if (doi.contentEquals("")) {
  42.             doi = "10.7554/eLife.15550";
  43.             System.out.println("No DOI entered. Using example DOI: " + doi);
  44.         }else {
  45.             System.out.println("DOI is:" + doi);
  46.         }
  47.                
  48.         // DOI to PMID ID Converter (API DOCS: https://www.ncbi.nlm.nih.gov/pmc/tools/id-converter-api/)
  49.         String url_convert_string = "https://www.ncbi.nlm.nih.gov/pmc/utils/idconv/v1.0/?"
  50.                 + "tool=citation_network&email=brad.w.english@gmail.com&ids="
  51.                 + doi;
  52.        
  53.         url = new URL(url_convert_string);
  54.        
  55.        
  56.         DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  57.         DocumentBuilder docBuilder = dbf.newDocumentBuilder();
  58.  
  59.         URL url1 = new URL(url_convert_string);
  60.         InputStream stream = url1.openStream();
  61.         Document doc = docBuilder.parse(stream);
  62.        
  63.         NodeList record_list = doc.getElementsByTagName("record");
  64.         String pmid_string = "";
  65.         for(int i=0;i<record_list.getLength();i++) {
  66.             Node record_node = record_list.item(i);
  67.             Element record = (Element) record_node;
  68.             pmid_string = record.getAttribute("pmid");
  69.             System.out.println("The PMID is " + pmid_string);
  70.         }
  71.        
  72.          
  73.         // (API DOCS: https://www.ncbi.nlm.nih.gov/pmc/tools/cites-citedby/)
  74.        
  75.         System.out.print("\nPMIDs of cited articles:\n");
  76.         url_string_articles_citations = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?"
  77.                 + "dbfrom=pubmed&linkname=pubmed_pubmed_refs&id="
  78.                 + pmid_string;
  79.      
  80.         url = new URL(url_string_articles_citations);
  81.        
  82.         DocumentBuilderFactory dbf_citations = DocumentBuilderFactory.newInstance();
  83.         DocumentBuilder docBuilder_citations = dbf_citations.newDocumentBuilder();
  84.        
  85.         InputStream stream_citations = url.openStream();
  86.         Document doc_citations = docBuilder_citations.parse(stream_citations);
  87.  
  88.         NodeList link_list = doc_citations.getElementsByTagName("Id");
  89.         for(int i=0;i<link_list.getLength();i++) {
  90.             Node citation_node = link_list.item(i);
  91.             Element citation = (Element) citation_node;
  92.             System.out.print(citation.getTextContent() +',');
  93.         }
  94.        
  95.         System.out.print("\nPMIDs which cite this article:\n");
  96.         url_string_citing_article = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/elink.fcgi?"
  97.                 + "dbfrom=pubmed&linkname=pubmed_pubmed_citedin&id="
  98.                 + pmid_string;
  99.      
  100.         url_citing_article = new URL(url_string_citing_article);
  101.        
  102.         DocumentBuilderFactory dbf_citing_article = DocumentBuilderFactory.newInstance();
  103.         DocumentBuilder docBuilder_citing_article = dbf_citing_article.newDocumentBuilder();
  104.        
  105.         InputStream stream_citing_article = url_citing_article.openStream();
  106.         Document doc_citing_article = docBuilder_citing_article.parse(stream_citing_article);
  107.  
  108.         NodeList citing_article_link_list = doc_citing_article.getElementsByTagName("Id");
  109.         for(int i=0;i<citing_article_link_list.getLength();i++) {
  110.             Node citing_article_node = citing_article_link_list.item(i);
  111.             Element citing_article = (Element) citing_article_node;
  112.             System.out.print(citing_article.getTextContent() + ',');
  113.         }
  114.        
  115.        
  116.        
  117.  
  118.        
  119.     }
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement