diff --git a/.DS_Store b/.DS_Store
index 96b6fde..e8a8d11 100644
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.gitignore b/.gitignore
index ae532aa..72745e9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -6,3 +6,4 @@ packrat/lib*/
PubMed
pathologyarticles
packrat/src/
+data/
\ No newline at end of file
diff --git a/JournalsPublishedArticlesFromTurkey.Rmd b/JournalsPublishedArticlesFromTurkey.Rmd
index b6b5cb7..fed03e4 100644
--- a/JournalsPublishedArticlesFromTurkey.Rmd
+++ b/JournalsPublishedArticlesFromTurkey.Rmd
@@ -39,6 +39,7 @@ library(tidyverse)
If you want to see the code used in the analysis please click the code button on the right upper corner or throughout the page.
Select from the tabs below.
+---
## Aim
@@ -46,27 +47,32 @@ Select from the tabs below.
Here we will look at the Journals in which articles from Turkey are published.
+---
-
-## Data retriveal from PubMed
+## Data retriveal from PubMed using EDirect
Articles are downloaded as `xml`.
-```{r Search PubMed write 2018 data as xml, eval=FALSE, include=FALSE}
-myTerm <- rstudioapi::terminalCreate(show = FALSE)
-rstudioapi::terminalSend(
- myTerm,
- "esearch -db pubmed -query \"Turkey[Affiliation]\" -datetype PDAT -mindate 2018 -maxdate 3000 | efetch -format xml > data/Turkey_2018.xml \n"
-)
-Sys.sleep(1)
-repeat {
- Sys.sleep(0.1)
- if (rstudioapi::terminalBusy(myTerm) == FALSE) {
- print("Code Executed")
- break
- }
-}
-```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
```{r Search PubMed write all data as xml, eval=FALSE, include=FALSE}
myTerm <- rstudioapi::terminalCreate(show = FALSE)
@@ -88,65 +94,68 @@ repeat {
-```{r Search PubMed get 2018 data on the fly, eval=FALSE, include=FALSE}
-myTerm <- rstudioapi::terminalCreate(show = FALSE)
-rstudioapi::terminalSend(
- myTerm,
- "esearch -db pubmed -query \"Turkey[Affiliation]\" -datetype PDAT -mindate 2018 -maxdate 3000 | efetch -format xml | xtract -pattern PubmedArticle -element MedlineCitation/PMID PubDate/Year Journal/ISSN ISOAbbreviation> data/onthefly_Turkey_2018.csv \n"
-)
-Sys.sleep(1)
-repeat {
- Sys.sleep(0.1)
- if (rstudioapi::terminalBusy(myTerm) == FALSE) {
- print("Code Executed")
- break
- }
-}
-```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-```{r Search PubMed get all data on the fly, eval=FALSE, include=FALSE}
-myTerm <- rstudioapi::terminalCreate(show = FALSE)
-rstudioapi::terminalSend(
- myTerm,
- "esearch -db pubmed -query \"Turkey[Affiliation]\" -datetype PDAT -mindate 1800 -maxdate 3000 | efetch -format xml | xtract -pattern PubmedArticle -element MedlineCitation/PMID PubDate/Year Journal/ISSN ISOAbbreviation> data/onthefly_Turkey_all.csv \n"
-)
-Sys.sleep(1)
-repeat {
- Sys.sleep(0.1)
- if (rstudioapi::terminalBusy(myTerm) == FALSE) {
- print("Code Executed")
- break
- }
-}
-```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Journal Names are extracted from xml.
-```{r extract journal names from xml, eval=FALSE, message=FALSE, warning=FALSE, include=FALSE}
-myTerm <- rstudioapi::terminalCreate(show = FALSE)
-rstudioapi::terminalSend(
-myTerm,
-"xtract -input data/Turkey_2018.xml -pattern PubmedArticle -element MedlineCitation/PMID PubDate/Year Journal/ISSN ISOAbbreviation > data/Turkey2018.csv \n"
-)
-Sys.sleep(1)
-repeat {
-Sys.sleep(0.1)
-if (rstudioapi::terminalBusy(myTerm) == FALSE) {
-print("Code Executed")
-break
-}
-}
-```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
```{r extract journal names from all data xml, message=FALSE, warning=FALSE}
myTerm <- rstudioapi::terminalCreate(show = FALSE)
rstudioapi::terminalSend(
myTerm,
-"xtract -input data/Turkey_all.xml -pattern PubmedArticle -element MedlineCitation/PMID PubDate/Year Journal/ISSN ISOAbbreviation > data/TurkeyAll.csv \n"
+"xtract -input data/Turkey_all.xml -pattern PubmedArticle -sep ' ' -def 'na' -element MedlineCitation/PMID Journal/ISSN ISOAbbreviation PubDate/Year > data/TurkeyAll.csv \n"
)
Sys.sleep(1)
repeat {
@@ -160,189 +169,205 @@ break
-
----
+## Retrieval of Data of Properties of Journals
+[nlmcatalog_result_journals_pmc.xml](https://www.ncbi.nlm.nih.gov/portal/utils/file_backend.cgi?Db=nlmcatalog&HistoryId=NCID_1_69755278_130.14.18.97_5555_1534585934_3590606783_0MetA0_S_HStore&QueryKey=2&Sort=PubDate&Filter=all&CompleteResultCount=2559&Mode=file&View=xml&p$l=Email&portalSnapshot=%2Fprojects%2Fentrez%2Fpubmed%2FPubMedGroup@1.136&BaseUrl=&PortName=live&RootTag=NLMCatalogRecordSet&DocType=NLMCatalogRecordSet%20PUBLIC%20%22-%2F%2FNLM%2F%2FDTD%20NLMCatalogRecordSet,%201st%20June%202017%2F%2FEN%22%20%22https://www.nlm.nih.gov/databases/dtd/nlmcatalogrecordset_170601.dtd%22&FileName=&ContentType=xml)
+[nlmcatalog_result_currentlyindexed.xml](https://www.ncbi.nlm.nih.gov/portal/utils/file_backend.cgi?Db=nlmcatalog&HistoryId=NCID_1_69755278_130.14.18.97_5555_1534585934_3590606783_0MetA0_S_HStore&QueryKey=1&Sort=PubDate&Filter=all&CompleteResultCount=5242&Mode=file&View=xml&p$l=Email&portalSnapshot=%2Fprojects%2Fentrez%2Fpubmed%2FPubMedGroup@1.136&BaseUrl=&PortName=live&RootTag=NLMCatalogRecordSet&DocType=NLMCatalogRecordSet%20PUBLIC%20%22-%2F%2FNLM%2F%2FDTD%20NLMCatalogRecordSet,%201st%20June%202017%2F%2FEN%22%20%22https://www.nlm.nih.gov/databases/dtd/nlmcatalogrecordset_170601.dtd%22&FileName=&ContentType=xml)
+[scimagojr2017.csv](https://www.scimagojr.com/journalrank.php?out=xls)
+[scimagojr2017-wos.csv](https://www.scimagojr.com/journalrank.php?wos=true&out=xls)
+
+---
+## Analysis
+```{r Organize Journal Data 1, message=FALSE, warning=FALSE}
+library(tidyverse)
+library(readr)
+TurkeyAll <- read_delim("data/TurkeyAll.csv",
+ "\t", escape_double = FALSE, col_names = FALSE,
+ na = "na", trim_ws = TRUE)
+names(TurkeyAll) <- c("PMID", "ISSN", "JournalName", "Year")
+# dim(TurkeyAll)[1]
+# min(TurkeyAll[,4], na.rm = TRUE)
+# max(TurkeyAll[,4], na.rm = TRUE)
+# glimpse(TurkeyAll)
+```
-The retrieved information was compiled in a table.
-```{r message=FALSE, warning=FALSE}
-library(readr)
+```{r Organize Journal Data 2}
+uniqueJournals <- TurkeyAll %>%
+ select(JournalName, ISSN) %>%
+ unique()
-authorkeywords <- read_table2("data/authorkeywords.csv",
-col_names = c("frequency", "author key word")) %>%
-select('author key word', 'frequency') %>%
-head(n = 20)
+# dim(uniqueJournals)[1]
-PathologyTurkeyMeSH <- read_table2("data/PathologyTurkeyMeSH.csv",
-col_names = c("frequency", "MeSH term")) %>%
-select('MeSH term', 'frequency') %>%
-head(n = 20)
```
+```{r Organize Journal Data 3}
-_**Most common 20 author supplied keywords are given below.**_
+TurkeyAll2 <- TurkeyAll %>%
+ mutate(Journal = paste(JournalName, ISSN, sep = " ISSN "))
-```{r results = 'asis'}
-pander::pander(authorkeywords, justify = "left", caption = "Most common 20 author supplied keywords")
-```
+ArticlesByYear <- TurkeyAll2 %>%
+ group_by(Journal, Year) %>%
+ summarise(n = n())
+ArticlesByYear <- ArticlesByYear %>%
+ spread(key = Year, value = n)
-## Properties of Journals
+TurkeyAll2 <- TurkeyAll2 %>%
+ select(Journal, JournalName, ISSN) %>%
+ unique()
+
+ArticlesByYear <- left_join(ArticlesByYear, TurkeyAll2, by = "Journal")
+ArticlesByYear <- ArticlesByYear %>%
+ select(
+ Journal, JournalName, ISSN, everything()
+ )
+```
-[nlmcatalog_result_journals_pmc.xml](https://www.ncbi.nlm.nih.gov/portal/utils/file_backend.cgi?Db=nlmcatalog&HistoryId=NCID_1_69755278_130.14.18.97_5555_1534585934_3590606783_0MetA0_S_HStore&QueryKey=2&Sort=PubDate&Filter=all&CompleteResultCount=2559&Mode=file&View=xml&p$l=Email&portalSnapshot=%2Fprojects%2Fentrez%2Fpubmed%2FPubMedGroup@1.136&BaseUrl=&PortName=live&RootTag=NLMCatalogRecordSet&DocType=NLMCatalogRecordSet%20PUBLIC%20%22-%2F%2FNLM%2F%2FDTD%20NLMCatalogRecordSet,%201st%20June%202017%2F%2FEN%22%20%22https://www.nlm.nih.gov/databases/dtd/nlmcatalogrecordset_170601.dtd%22&FileName=&ContentType=xml)
+```{r scimagojr2017}
-[nlmcatalog_result_currentlyindexed.xml](https://www.ncbi.nlm.nih.gov/portal/utils/file_backend.cgi?Db=nlmcatalog&HistoryId=NCID_1_69755278_130.14.18.97_5555_1534585934_3590606783_0MetA0_S_HStore&QueryKey=1&Sort=PubDate&Filter=all&CompleteResultCount=5242&Mode=file&View=xml&p$l=Email&portalSnapshot=%2Fprojects%2Fentrez%2Fpubmed%2FPubMedGroup@1.136&BaseUrl=&PortName=live&RootTag=NLMCatalogRecordSet&DocType=NLMCatalogRecordSet%20PUBLIC%20%22-%2F%2FNLM%2F%2FDTD%20NLMCatalogRecordSet,%201st%20June%202017%2F%2FEN%22%20%22https://www.nlm.nih.gov/databases/dtd/nlmcatalogrecordset_170601.dtd%22&FileName=&ContentType=xml)
+```
-[scimagojr2017.csv](https://www.scimagojr.com/journalrank.php?out=xls)
-[scimagojr2017-wos.csv](https://www.scimagojr.com/journalrank.php?wos=true&out=xls)
+-element MedlineTA NLMCatalogRecord/NlmUniqueID -def 'na' -sep '\t' -block TitleAlternate/Title -element TitleAlternate/Title
+"xtract -input data/nlmcatalog_result_currentlyindexed.xml -pattern NCBICatalogRecord -element ISSNLinking -def 'na' -sep ' ' -block TitleAlternate/Title -if TitleAlternate/Title@Sort -equals N -element TitleAlternate/Title > data/nlmcatalog.csv \n"
-
+-sep '\t'
+NLMCatalogRecord/NlmUniqueID ISSNLinking
+```{r nlmcatalog, message=FALSE, warning=FALSE}
+myTerm <- rstudioapi::terminalCreate(show = FALSE)
+rstudioapi::terminalSend(
+myTerm,
+"xtract -input data/nlmcatalog_result_currentlyindexed.xml -pattern NCBICatalogRecord -tab '|' -element NLMCatalogRecord/NlmUniqueID -block ISSNLinking -tab '|' -element ISSNLinking -block Title -if Title@Sort -equals N -def 'na' -tab '|' -element TitleAlternate/Title > data/nlmcatalog.csv \n"
+)
+Sys.sleep(1)
+repeat {
+Sys.sleep(0.1)
+if (rstudioapi::terminalBusy(myTerm) == FALSE) {
+print("Code Executed")
+break
+}
+}
-## Analysis
+```
-## Results
+```{r}
+library(readr)
+nlmcatalog <- read_delim("data/nlmcatalog.csv",
+ delim = "|",
+ escape_double = FALSE,
+ col_names = FALSE,
+ trim_ws = TRUE)
-## Discussion
+```
+```{r}
+library(xml2)
+data <- read_xml("data/nlmcatalog_result_currentlyindexed.xml")
-## Old
+# Point locations
+point <- data %>% xml_find_all("//pointer")
+point %>% xml_attr("latitude") %>% as.numeric()
+point %>% xml_attr("longitude") %>% as.numeric()
+# Start time
+data %>%
+ xml_find_all("//start-valid-time") %>%
+ xml_text()
+# Temperature
+data %>%
+ xml_find_all("//temperature[@type='hourly']/value") %>%
+ xml_text() %>%
+ as.integer()
-Articles per journals per country
+```
-**Methods:**
+---
-```{r load required packages}
-# load required packages
-library(tidyverse)
-library(RISmed)
-```
+## Results
-Pathology Journal ISSN List was retrieved from [In Cites Clarivate](https://jcr.incites.thomsonreuters.com/), and Journal Data Filtered as follows: `JCR Year: 2016 Selected Editions: SCIE,SSCI Selected Categories: 'PATHOLOGY' Selected Category Scheme: WoS`
+- PubMed'de **`r min(TurkeyAll[,4], na.rm = TRUE)`-`r max(TurkeyAll[,4], na.rm = TRUE)`** tarihleri arasında, *Türkiye* adresli **`r dim(TurkeyAll)[1]`** adet yayın mevcuttur.
-```{r Get ISSN List from data downloaded from WoS}
-# Get ISSN List from data downloaded from WoS
-ISSNList <- JournalHomeGrid <- read_csv("data/JournalHomeGrid.csv",
- skip = 1) %>%
- select(ISSN) %>%
- filter(!is.na(ISSN)) %>%
- t() %>%
- paste("OR ", collapse = "") # add OR between ISSN List
+- PubMed'de **`r min(TurkeyAll[,4], na.rm = TRUE)`-`r max(TurkeyAll[,4], na.rm = TRUE)`** tarihleri arasında, *Türkiye* adresli yayınlar **`r dim(uniqueJournals)[1]`** farklı dergide yayımlanmıştır.
-ISSNList <- gsub(" OR $","" ,ISSNList) # to remove last OR
-```
-Data is retrieved from PubMed via RISmed package.
-PubMed collection from National Library of Medicine (https://www.ncbi.nlm.nih.gov/pubmed/), has the most comprehensive information about peer reviewed articles in medicine.
-The API (https://dataguide.nlm.nih.gov/), and R packages are available for getting and fetching data from the server.
-The search formula for PubMed is generated as "ISSN List AND Country[Affiliation]" like done in [advanced search of PubMed](https://www.ncbi.nlm.nih.gov/pubmed/advanced).
-```{r Generate Search Formula For Pathology Journals AND Countries}
-# Generate Search Formula For Pathology Journals AND Countries
-searchformulaTR <- paste("'",ISSNList,"'", " AND ", "Turkey[Affiliation]")
-searchformulaDE <- paste("'",ISSNList,"'", " AND ", "Germany[Affiliation]")
-searchformulaJP <- paste("'",ISSNList,"'", " AND ", "Japan[Affiliation]")
-```
-Articles from Japan, German and Turkey are retrieved limiting the search with pathology journals, affiliation and last 10 years.
+---
-```{r Search PubMed, Get and Fetch}
-# Search PubMed, Get and Fetch
-TurkeyArticles <- EUtilsSummary(searchformulaTR, type = 'esearch', db = 'pubmed', mindate = 2007, maxdate = 2017, retmax = 10000)
-fetchTurkey <- EUtilsGet(TurkeyArticles)
+## Discussion
-GermanyArticles <- EUtilsSummary(searchformulaDE, type = 'esearch', db = 'pubmed', mindate = 2007, maxdate = 2017, retmax = 10000)
-fetchGermany <- EUtilsGet(GermanyArticles)
+türkiye adresli olup da pubmedde yer alan makaleler hangi dergilerde kaçar adet yayınlanmış
-JapanArticles <- EUtilsSummary(searchformulaJP, type = 'esearch', db = 'pubmed', mindate = 2007, maxdate = 2017, retmax = 10000)
-fetchJapan <- EUtilsGet(JapanArticles)
-```
The retrieved information was compiled in a table.
-```{r}
-ISSNTR <- table(ISSN(fetchTurkey)) %>%
- as_tibble() %>%
- rename(Turkey = n, Journal = Var1)
-ISSNDE <- table(ISSN(fetchGermany)) %>%
- as_tibble() %>%
- rename(Germany = n, Journal = Var1)
-ISSNJP <- table(ISSN(fetchJapan)) %>%
- as_tibble() %>%
- rename(Japan = n, Journal = Var1)
-articles_per_journal <- list(
- ISSNTR,
- ISSNDE,
- ISSNJP
-) %>%
- reduce(left_join, by = "Journal", .id = "id") %>%
- gather(Country, n, 2:4)
+**Methods:**
+
+
+
+
-articles_per_journal$Country <- factor(articles_per_journal$Country,
- levels =c("Japan", "Germany", "Turkey"))
-```
**Result:**
-In this graph x-axis is the list of journals with decreasing impact factor, and y-axis is the number of articles published in that journal. The colors and shapes are showing the country of affiliation. We see that in one journal articles from Japan is more than 800.
-```{r}
+```{r plot 1}
ggplot(data = articles_per_journal, aes(x = Journal, y = n, group = Country,
colour = Country, shape = Country,
levels = Country
@@ -358,16 +383,6 @@ ggplot(data = articles_per_journal, aes(x = Journal, y = n, group = Country,
**Comment:**
-It is seen that one of the journals [ISSN: 1440-1827](https://onlinelibrary.wiley.com/page/journal/14401827/homepage/productinformation.html) has more than 800 articles from Japan. This journal is also from Japan. Here we wonder if there is an editorial preference for articles from their home country.
-
-We sometimes observe this situation if there is a conference in that country, and the conference abstracts are indexed.
-
-This may also be a clue that if a country has a journal listed in indexes, than it is more easy for the researchers in that country to publish their results.
-
-
-**Future Work:**
-
-Whether this observation is a unique situation, or there is a tendency in the journals to publish article from their country of origin, merits further investigation.
@@ -384,4 +399,6 @@ This document will be continiously updated and the last update was on `r Sys.Dat
## Back to Main Menu
-[Main Page for Bibliographic Analysis](https://sbalci.github.io/pubmed/BibliographicStudies.html)
\ No newline at end of file
+[Main Page for Bibliographic Analysis](https://sbalci.github.io/pubmed/BibliographicStudies.html)
+
+---
\ No newline at end of file
diff --git a/JournalsPublishedArticlesFromTurkey.nb.html b/JournalsPublishedArticlesFromTurkey.nb.html
index d02e1a0..68d08ea 100644
--- a/JournalsPublishedArticlesFromTurkey.nb.html
+++ b/JournalsPublishedArticlesFromTurkey.nb.html
@@ -11,7 +11,7 @@
-
+
Bibliographic Studies
@@ -1743,7 +1743,7 @@
Bibliographic Studies
Journals Published Articles From Turkey
Serdar Balcı, MD, Pathologist
-2018-08-18
+2018-08-22
@@ -1759,32 +1759,86 @@ 2018-08-18
Journals Published Articles From Turkey
If you want to see the code used in the analysis please click the code button on the right upper corner or throughout the page.
Select from the tabs below.
+
Aim
Aim:
Here we will look at the Journals in which articles from Turkey are published.
+
-
-
Data retriveal from PubMed
+
+
Data retriveal from PubMed using EDirect
Articles are downloaded as xml
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Journal Names are extracted from xml.
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
[1] "Code Executed"
-
-
The retrieved information was compiled in a table.
-
-
-
-
-
-
-
-
Most common 20 author supplied keywords are given below.
-
-
-
-
-
-
-
-
-
Properties of Journals
+
Analysis
-
-
-
Results
-
-
-
Discussion
-
-
-
Old
-
Articles per journals per country
-
Methods:
-
-
+
+
library(tidyverse)
+library(readr)
+
+TurkeyAll <- read_delim("data/TurkeyAll.csv",
+ "\t", escape_double = FALSE, col_names = FALSE,
+ na = "na", trim_ws = TRUE)
+
+names(TurkeyAll) <- c("PMID", "ISSN", "JournalName", "Year")
+
+# dim(TurkeyAll)[1]
+
+# min(TurkeyAll[,4], na.rm = TRUE)
+
+# max(TurkeyAll[,4], na.rm = TRUE)
+
+# glimpse(TurkeyAll)
-
Pathology Journal ISSN List was retrieved from In Cites Clarivate, and Journal Data Filtered as follows: JCR Year: 2016 Selected Editions: SCIE,SSCI Selected Categories: 'PATHOLOGY' Selected Category Scheme: WoS
-
-
+
+
-
Data is retrieved from PubMed via RISmed package. PubMed collection from National Library of Medicine (https://www.ncbi.nlm.nih.gov/pubmed/), has the most comprehensive information about peer reviewed articles in medicine. The API (https://dataguide.nlm.nih.gov/), and R packages are available for getting and fetching data from the server.
-
The search formula for PubMed is generated as “ISSN List AND Country[Affiliation]” like done in advanced search of PubMed.
-
-
# Generate Search Formula For Pathology Journals AND Countries
-searchformulaTR <- paste("'",ISSNList,"'", " AND ", "Turkey[Affiliation]")
-searchformulaDE <- paste("'",ISSNList,"'", " AND ", "Germany[Affiliation]")
-searchformulaJP <- paste("'",ISSNList,"'", " AND ", "Japan[Affiliation]")
+
+
TurkeyAll2 <- TurkeyAll %>%
+ mutate(Journal = paste(JournalName, ISSN, sep = " ISSN "))
+ArticlesByYear <- TurkeyAll2 %>%
+ group_by(Journal, Year) %>%
+ summarise(n = n())
+ArticlesByYear <- ArticlesByYear %>%
+ spread(key = Year, value = n)
+TurkeyAll2 <- TurkeyAll2 %>%
+ select(Journal, JournalName, ISSN) %>%
+ unique()
+
+ArticlesByYear <- left_join(ArticlesByYear, TurkeyAll2, by = "Journal")
+ArticlesByYear <- ArticlesByYear %>%
+ select(
+ Journal, JournalName, ISSN, everything()
+ )
-
Articles from Japan, German and Turkey are retrieved limiting the search with pathology journals, affiliation and last 10 years.
-
-
# Search PubMed, Get and Fetch
-TurkeyArticles <- EUtilsSummary(searchformulaTR, type = 'esearch', db = 'pubmed', mindate = 2007, maxdate = 2017, retmax = 10000)
-fetchTurkey <- EUtilsGet(TurkeyArticles)
-
-GermanyArticles <- EUtilsSummary(searchformulaDE, type = 'esearch', db = 'pubmed', mindate = 2007, maxdate = 2017, retmax = 10000)
-fetchGermany <- EUtilsGet(GermanyArticles)
-
-JapanArticles <- EUtilsSummary(searchformulaJP, type = 'esearch', db = 'pubmed', mindate = 2007, maxdate = 2017, retmax = 10000)
-fetchJapan <- EUtilsGet(JapanArticles)
+
+
+
-element MedlineTA NLMCatalogRecord/NlmUniqueID -def ‘na’ -sep ‘’ -block TitleAlternate/Title -element TitleAlternate/Title
+
“xtract -input data/nlmcatalog_result_currentlyindexed.xml -pattern NCBICatalogRecord -element ISSNLinking -def ‘na’ -sep ’ ’ -block TitleAlternate/Title -if TitleAlternate/Title@Sort -equals N -element TitleAlternate/Title > data/nlmcatalog.csv ”
+
-sep ‘’
+
NLMCatalogRecord/NlmUniqueID ISSNLinking
+
+
+
+
+
+
[1] "Code Executed"
+
+
+
+
+
+
+
+
+
+
Parsed with column specification:
+cols(
+ X1 = col_integer(),
+ X2 = col_character(),
+ X3 = col_character(),
+ X4 = col_character(),
+ X5 = col_character(),
+ X6 = col_character(),
+ X7 = col_character(),
+ X8 = col_character()
+)
+number of columns of result is not a multiple of vector length (arg 1)5116 parsing failures.
+row [38;5;246m# A tibble: 5 x 5[39m col row col expected actual file expected [3m[38;5;246m<int>[39m[23m [3m[38;5;246m<chr>[39m[23m [3m[38;5;246m<chr>[39m[23m [3m[38;5;246m<chr>[39m[23m [3m[38;5;246m<chr>[39m[23m actual [38;5;250m1[39m 2 [31mNA[39m 8 columns 2 columns 'data/nlmcatalog.csv' file [38;5;250m2[39m 3 [31mNA[39m 8 columns 3 columns 'data/nlmcatalog.csv' row [38;5;250m3[39m 4 [31mNA[39m 8 columns 5 columns 'data/nlmcatalog.csv' col [38;5;250m4[39m 6 [31mNA[39m 8 columns 4 columns 'data/nlmcatalog.csv' expected [38;5;250m5[39m 7 [31mNA[39m 8 columns 5 columns 'data/nlmcatalog.csv'
+... ................................. ... ....................................................... ........ .................................................................................................................................................................................... ...... ................................................................................. .... ................................................................................. ... ................................................................................. ... ................................................................................. ........ .................................................................................
+See problems(...) for more details.
+
-
The retrieved information was compiled in a table.
-
-
ISSNTR <- table(ISSN(fetchTurkey)) %>%
- as_tibble() %>%
- rename(Turkey = n, Journal = Var1)
-ISSNDE <- table(ISSN(fetchGermany)) %>%
- as_tibble() %>%
- rename(Germany = n, Journal = Var1)
-ISSNJP <- table(ISSN(fetchJapan)) %>%
- as_tibble() %>%
- rename(Japan = n, Journal = Var1)
-articles_per_journal <- list(
- ISSNTR,
- ISSNDE,
- ISSNJP
-) %>%
- reduce(left_join, by = "Journal", .id = "id") %>%
- gather(Country, n, 2:4)
-articles_per_journal$Country <- factor(articles_per_journal$Country,
- levels =c("Japan", "Germany", "Turkey"))
+
+
+
+
{xml_nodeset (0)}
+
+
+
+
+
Results
+
+PubMed’de 1939-2018 tarihleri arasında, Türkiye adresli 200229 adet yayın mevcuttur.
+PubMed’de 1939-2018 tarihleri arasında, Türkiye adresli yayınlar 8517 farklı dergide yayımlanmıştır.
+
+
+
+
+
Discussion
+
türkiye adresli olup da pubmedde yer alan makaleler hangi dergilerde kaçar adet yayınlanmış
+
The retrieved information was compiled in a table.
+
Methods:
Result:
-
In this graph x-axis is the list of journals with decreasing impact factor, and y-axis is the number of articles published in that journal. The colors and shapes are showing the country of affiliation. We see that in one journal articles from Japan is more than 800.
-
-
+
+
-
-

-
Comment:
-
It is seen that one of the journals ISSN: 1440-1827 has more than 800 articles from Japan. This journal is also from Japan. Here we wonder if there is an editorial preference for articles from their home country.
-
We sometimes observe this situation if there is a conference in that country, and the conference abstracts are indexed.
-
This may also be a clue that if a country has a journal listed in indexes, than it is more easy for the researchers in that country to publish their results.
-
Future Work:
-
Whether this observation is a unique situation, or there is a tendency in the journals to publish article from their country of origin, merits further investigation.
-
LS0tCnRpdGxlOiAiQmlibGlvZ3JhcGhpYyBTdHVkaWVzIgpzdWJ0aXRsZTogIkpvdXJuYWxzIFB1Ymxpc2hlZCBBcnRpY2xlcyBGcm9tIFR1cmtleSIKYXV0aG9yOiAiU2VyZGFyIEJhbGPEsSwgTUQsIFBhdGhvbG9naXN0IgpkYXRlOiAnYHIgZm9ybWF0KFN5cy5EYXRlKCkpYCcKb3V0cHV0OiAKICBodG1sX25vdGVib29rOiAKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgZmlnX2NhcHRpb246IHllcwogICAgaGlnaGxpZ2h0OiBrYXRlCiAgICB0aGVtZTogY2VydWxlYW4KICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDogCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGRmX3ByaW50OiBrYWJsZQogICAgZmlnX2NhcHRpb246IHllcwogICAgaGlnaGxpZ2h0OiBrYXRlCiAgICBrZWVwX21kOiB5ZXMKICAgIHRoZW1lOiBjZXJ1bGVhbgogICAgdG9jX2Zsb2F0OiB5ZXMKLS0tCgpgYGB7ciBnbG9iYWxfb3B0aW9ucywgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGZpZy53aWR0aCA9IDEyLCBmaWcuaGVpZ2h0ID0gOCwgZmlnLnBhdGggPSAnZmlndXJlLycsIGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIGVycm9yID0gRkFMU0UsIGV2YWwgPSBUUlVFLCB0aWR5ID0gVFJVRSwgY29tbWVudCA9IE5BKQpgYGAKCmBgYHtyIGxpYnJhcnksIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCgo8IS0tICMgU3BvbnNvcmVkIGJ5IC0tPgoKPCEtLSBbIVtdKGltYWdlcy9tb2RlbGlzdGF0aXN0aWtfbG9nby0zLTMwMHg3My5wbmcpXShodHRwczovL3d3dy5tb2RlbGlzdGF0aXN0aWsuY29tLykgLS0+CgoKIyBKb3VybmFscyBQdWJsaXNoZWQgQXJ0aWNsZXMgRnJvbSBUdXJrZXkgey50YWJzZXQgLnRhYnNldC1mYWRlIC50YWJzZXQtcGlsbHN9CgpJZiB5b3Ugd2FudCB0byBzZWUgdGhlIGNvZGUgdXNlZCBpbiB0aGUgYW5hbHlzaXMgcGxlYXNlIGNsaWNrIHRoZSBjb2RlIGJ1dHRvbiBvbiB0aGUgcmlnaHQgdXBwZXIgY29ybmVyIG9yIHRocm91Z2hvdXQgdGhlIHBhZ2UuICAKU2VsZWN0IGZyb20gdGhlIHRhYnMgYmVsb3cuCgoKIyMgQWltIAoKKipBaW06KioKCkhlcmUgd2Ugd2lsbCBsb29rIGF0IHRoZSBKb3VybmFscyBpbiB3aGljaCBhcnRpY2xlcyBmcm9tIFR1cmtleSBhcmUgcHVibGlzaGVkLiAKCgoKIyMgRGF0YSByZXRyaXZlYWwgZnJvbSBQdWJNZWQgCgpBcnRpY2xlcyBhcmUgZG93bmxvYWRlZCBhcyBgeG1sYC4KCmBgYHtyIFNlYXJjaCBQdWJNZWQgd3JpdGUgMjAxOCBkYXRhIGFzIHhtbCwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKAogICAgbXlUZXJtLAogICAgImVzZWFyY2ggLWRiIHB1Ym1lZCAtcXVlcnkgXCJUdXJrZXlbQWZmaWxpYXRpb25dXCIgLWRhdGV0eXBlIFBEQVQgLW1pbmRhdGUgMjAxOCAtbWF4ZGF0ZSAzMDAwIHwgZWZldGNoIC1mb3JtYXQgeG1sID4gZGF0YS9UdXJrZXlfMjAxOC54bWwgXG4iCikKU3lzLnNsZWVwKDEpCnJlcGVhdCB7CiAgICBTeXMuc2xlZXAoMC4xKQogICAgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7CiAgICAgICAgcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQogICAgICAgIGJyZWFrCiAgICB9Cn0KYGBgCgpgYGB7ciBTZWFyY2ggUHViTWVkIHdyaXRlIGFsbCBkYXRhIGFzIHhtbCwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKAogICAgbXlUZXJtLAogICAgImVzZWFyY2ggLWRiIHB1Ym1lZCAtcXVlcnkgXCJUdXJrZXlbQWZmaWxpYXRpb25dXCIgLWRhdGV0eXBlIFBEQVQgLW1pbmRhdGUgMTgwMCAtbWF4ZGF0ZSAzMDAwIHwgZWZldGNoIC1mb3JtYXQgeG1sID4gZGF0YS9UdXJrZXlfYWxsLnhtbCBcbiIKKQpTeXMuc2xlZXAoMSkKcmVwZWF0IHsKICAgIFN5cy5zbGVlcCgwLjEpCiAgICBpZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsKICAgICAgICBwcmludCgiQ29kZSBFeGVjdXRlZCIpCiAgICAgICAgYnJlYWsKICAgIH0KfQpgYGAKCgoKCgpgYGB7ciBTZWFyY2ggUHViTWVkIGdldCAyMDE4IGRhdGEgb24gdGhlIGZseSwgZXZhbD1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKAogICAgbXlUZXJtLAogICAgImVzZWFyY2ggLWRiIHB1Ym1lZCAtcXVlcnkgXCJUdXJrZXlbQWZmaWxpYXRpb25dXCIgLWRhdGV0eXBlIFBEQVQgLW1pbmRhdGUgMjAxOCAtbWF4ZGF0ZSAzMDAwIHwgZWZldGNoIC1mb3JtYXQgeG1sIHwgeHRyYWN0ICAtcGF0dGVybiBQdWJtZWRBcnRpY2xlIC1lbGVtZW50IE1lZGxpbmVDaXRhdGlvbi9QTUlEIFB1YkRhdGUvWWVhciBKb3VybmFsL0lTU04gSVNPQWJicmV2aWF0aW9uPiBkYXRhL29udGhlZmx5X1R1cmtleV8yMDE4LmNzdiBcbiIKKQpTeXMuc2xlZXAoMSkKcmVwZWF0IHsKICAgIFN5cy5zbGVlcCgwLjEpCiAgICBpZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsKICAgICAgICBwcmludCgiQ29kZSBFeGVjdXRlZCIpCiAgICAgICAgYnJlYWsKICAgIH0KfQpgYGAKCgpgYGB7ciBTZWFyY2ggUHViTWVkIGdldCBhbGwgZGF0YSBvbiB0aGUgZmx5LCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpteVRlcm0gPC0gcnN0dWRpb2FwaTo6dGVybWluYWxDcmVhdGUoc2hvdyA9IEZBTFNFKQpyc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCiAgICBteVRlcm0sCiAgICAiZXNlYXJjaCAtZGIgcHVibWVkIC1xdWVyeSBcIlR1cmtleVtBZmZpbGlhdGlvbl1cIiAtZGF0ZXR5cGUgUERBVCAtbWluZGF0ZSAxODAwIC1tYXhkYXRlIDMwMDAgfCBlZmV0Y2ggLWZvcm1hdCB4bWwgfCB4dHJhY3QgIC1wYXR0ZXJuIFB1Ym1lZEFydGljbGUgLWVsZW1lbnQgTWVkbGluZUNpdGF0aW9uL1BNSUQgUHViRGF0ZS9ZZWFyIEpvdXJuYWwvSVNTTiBJU09BYmJyZXZpYXRpb24+IGRhdGEvb250aGVmbHlfVHVya2V5X2FsbC5jc3YgXG4iCikKU3lzLnNsZWVwKDEpCnJlcGVhdCB7CiAgICBTeXMuc2xlZXAoMC4xKQogICAgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7CiAgICAgICAgcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQogICAgICAgIGJyZWFrCiAgICB9Cn0KYGBgCgoKCkpvdXJuYWwgTmFtZXMgYXJlIGV4dHJhY3RlZCBmcm9tIHhtbC4KCmBgYHtyIGV4dHJhY3Qgam91cm5hbCBuYW1lcyBmcm9tIHhtbCwgZXZhbD1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKApteVRlcm0sCiJ4dHJhY3QgLWlucHV0IGRhdGEvVHVya2V5XzIwMTgueG1sIC1wYXR0ZXJuIFB1Ym1lZEFydGljbGUgLWVsZW1lbnQgTWVkbGluZUNpdGF0aW9uL1BNSUQgUHViRGF0ZS9ZZWFyIEpvdXJuYWwvSVNTTiBJU09BYmJyZXZpYXRpb24gPiBkYXRhL1R1cmtleTIwMTguY3N2IFxuIgopClN5cy5zbGVlcCgxKQpyZXBlYXQgewpTeXMuc2xlZXAoMC4xKQppZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsKcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQpicmVhawp9Cn0KYGBgCgoKYGBge3IgZXh0cmFjdCBqb3VybmFsIG5hbWVzIGZyb20gYWxsIGRhdGEgeG1sLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpteVRlcm0gPC0gcnN0dWRpb2FwaTo6dGVybWluYWxDcmVhdGUoc2hvdyA9IEZBTFNFKQpyc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCm15VGVybSwKInh0cmFjdCAtaW5wdXQgZGF0YS9UdXJrZXlfYWxsLnhtbCAtcGF0dGVybiBQdWJtZWRBcnRpY2xlIC1lbGVtZW50IE1lZGxpbmVDaXRhdGlvbi9QTUlEIFB1YkRhdGUvWWVhciBKb3VybmFsL0lTU04gSVNPQWJicmV2aWF0aW9uID4gZGF0YS9UdXJrZXlBbGwuY3N2IFxuIgopClN5cy5zbGVlcCgxKQpyZXBlYXQgewpTeXMuc2xlZXAoMC4xKQppZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsKcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQpicmVhawp9Cn0KYGBgCgoKCgotLS0tCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKClRoZSByZXRyaWV2ZWQgaW5mb3JtYXRpb24gd2FzIGNvbXBpbGVkIGluIGEgdGFibGUuCgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQpsaWJyYXJ5KHJlYWRyKQoKYXV0aG9ya2V5d29yZHMgPC0gcmVhZF90YWJsZTIoImRhdGEvYXV0aG9ya2V5d29yZHMuY3N2IiwKY29sX25hbWVzID0gYygiZnJlcXVlbmN5IiwgImF1dGhvciBrZXkgd29yZCIpKSAlPiUKc2VsZWN0KCdhdXRob3Iga2V5IHdvcmQnLCAnZnJlcXVlbmN5JykgJT4lCmhlYWQobiA9IDIwKQoKUGF0aG9sb2d5VHVya2V5TWVTSCA8LSByZWFkX3RhYmxlMigiZGF0YS9QYXRob2xvZ3lUdXJrZXlNZVNILmNzdiIsCmNvbF9uYW1lcyA9IGMoImZyZXF1ZW5jeSIsICJNZVNIIHRlcm0iKSkgJT4lCnNlbGVjdCgnTWVTSCB0ZXJtJywgJ2ZyZXF1ZW5jeScpICU+JQpoZWFkKG4gPSAyMCkKYGBgCgoKCl8qKk1vc3QgY29tbW9uIDIwIGF1dGhvciBzdXBwbGllZCBrZXl3b3JkcyBhcmUgZ2l2ZW4gYmVsb3cuKipfCgpgYGB7ciByZXN1bHRzID0gJ2FzaXMnfQpwYW5kZXI6OnBhbmRlcihhdXRob3JrZXl3b3JkcywganVzdGlmeSA9ICJsZWZ0IiwgY2FwdGlvbiA9ICJNb3N0IGNvbW1vbiAyMCBhdXRob3Igc3VwcGxpZWQga2V5d29yZHMiKQpgYGAKCgojIyBQcm9wZXJ0aWVzIG9mIEpvdXJuYWxzCgoKCltubG1jYXRhbG9nX3Jlc3VsdF9qb3VybmFsc19wbWMueG1sXShodHRwczovL3d3dy5uY2JpLm5sbS5uaWguZ292L3BvcnRhbC91dGlscy9maWxlX2JhY2tlbmQuY2dpP0RiPW5sbWNhdGFsb2cmSGlzdG9yeUlkPU5DSURfMV82OTc1NTI3OF8xMzAuMTQuMTguOTdfNTU1NV8xNTM0NTg1OTM0XzM1OTA2MDY3ODNfME1ldEEwX1NfSFN0b3JlJlF1ZXJ5S2V5PTImU29ydD1QdWJEYXRlJkZpbHRlcj1hbGwmQ29tcGxldGVSZXN1bHRDb3VudD0yNTU5Jk1vZGU9ZmlsZSZWaWV3PXhtbCZwJGw9RW1haWwmcG9ydGFsU25hcHNob3Q9JTJGcHJvamVjdHMlMkZlbnRyZXolMkZwdWJtZWQlMkZQdWJNZWRHcm91cEAxLjEzNiZCYXNlVXJsPSZQb3J0TmFtZT1saXZlJlJvb3RUYWc9TkxNQ2F0YWxvZ1JlY29yZFNldCZEb2NUeXBlPU5MTUNhdGFsb2dSZWNvcmRTZXQlMjBQVUJMSUMlMjAlMjItJTJGJTJGTkxNJTJGJTJGRFREJTIwTkxNQ2F0YWxvZ1JlY29yZFNldCwlMjAxc3QlMjBKdW5lJTIwMjAxNyUyRiUyRkVOJTIyJTIwJTIyaHR0cHM6Ly93d3cubmxtLm5paC5nb3YvZGF0YWJhc2VzL2R0ZC9ubG1jYXRhbG9ncmVjb3Jkc2V0XzE3MDYwMS5kdGQlMjImRmlsZU5hbWU9JkNvbnRlbnRUeXBlPXhtbCkKCgpbbmxtY2F0YWxvZ19yZXN1bHRfY3VycmVudGx5aW5kZXhlZC54bWxdKGh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcG9ydGFsL3V0aWxzL2ZpbGVfYmFja2VuZC5jZ2k/RGI9bmxtY2F0YWxvZyZIaXN0b3J5SWQ9TkNJRF8xXzY5NzU1Mjc4XzEzMC4xNC4xOC45N181NTU1XzE1MzQ1ODU5MzRfMzU5MDYwNjc4M18wTWV0QTBfU19IU3RvcmUmUXVlcnlLZXk9MSZTb3J0PVB1YkRhdGUmRmlsdGVyPWFsbCZDb21wbGV0ZVJlc3VsdENvdW50PTUyNDImTW9kZT1maWxlJlZpZXc9eG1sJnAkbD1FbWFpbCZwb3J0YWxTbmFwc2hvdD0lMkZwcm9qZWN0cyUyRmVudHJleiUyRnB1Ym1lZCUyRlB1Yk1lZEdyb3VwQDEuMTM2JkJhc2VVcmw9JlBvcnROYW1lPWxpdmUmUm9vdFRhZz1OTE1DYXRhbG9nUmVjb3JkU2V0JkRvY1R5cGU9TkxNQ2F0YWxvZ1JlY29yZFNldCUyMFBVQkxJQyUyMCUyMi0lMkYlMkZOTE0lMkYlMkZEVEQlMjBOTE1DYXRhbG9nUmVjb3JkU2V0LCUyMDFzdCUyMEp1bmUlMjAyMDE3JTJGJTJGRU4lMjIlMjAlMjJodHRwczovL3d3dy5ubG0ubmloLmdvdi9kYXRhYmFzZXMvZHRkL25sbWNhdGFsb2dyZWNvcmRzZXRfMTcwNjAxLmR0ZCUyMiZGaWxlTmFtZT0mQ29udGVudFR5cGU9eG1sKQoKCltzY2ltYWdvanIyMDE3LmNzdl0oaHR0cHM6Ly93d3cuc2NpbWFnb2pyLmNvbS9qb3VybmFscmFuay5waHA/b3V0PXhscykKCltzY2ltYWdvanIyMDE3LXdvcy5jc3ZdKGh0dHBzOi8vd3d3LnNjaW1hZ29qci5jb20vam91cm5hbHJhbmsucGhwP3dvcz10cnVlJm91dD14bHMpCgoKIVtdKGltYWdlcy9zY2lkYXRhLnBuZykKCgoKCiMjIEFuYWx5c2lzCgojIyBSZXN1bHRzCgoKIyMgRGlzY3Vzc2lvbgoKCgojIyBPbGQKCgoKQXJ0aWNsZXMgcGVyIGpvdXJuYWxzIHBlciBjb3VudHJ5CgoKCgoqKk1ldGhvZHM6KioKCmBgYHtyIGxvYWQgcmVxdWlyZWQgcGFja2FnZXN9CiMgbG9hZCByZXF1aXJlZCBwYWNrYWdlcwpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShSSVNtZWQpCmBgYAoKUGF0aG9sb2d5IEpvdXJuYWwgSVNTTiBMaXN0IHdhcyByZXRyaWV2ZWQgZnJvbSBbSW4gQ2l0ZXMgQ2xhcml2YXRlXShodHRwczovL2pjci5pbmNpdGVzLnRob21zb25yZXV0ZXJzLmNvbS8pLCBhbmQgSm91cm5hbCBEYXRhIEZpbHRlcmVkIGFzIGZvbGxvd3M6IGBKQ1IgWWVhcjogMjAxNiBTZWxlY3RlZCBFZGl0aW9uczogU0NJRSxTU0NJIFNlbGVjdGVkIENhdGVnb3JpZXM6ICdQQVRIT0xPR1knIFNlbGVjdGVkIENhdGVnb3J5IFNjaGVtZTogV29TYAoKYGBge3IgR2V0IElTU04gTGlzdCBmcm9tIGRhdGEgZG93bmxvYWRlZCBmcm9tIFdvU30KIyBHZXQgSVNTTiBMaXN0IGZyb20gZGF0YSBkb3dubG9hZGVkIGZyb20gV29TCklTU05MaXN0IDwtIEpvdXJuYWxIb21lR3JpZCA8LSByZWFkX2NzdigiZGF0YS9Kb3VybmFsSG9tZUdyaWQuY3N2IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwID0gMSkgJT4lIAogICAgc2VsZWN0KElTU04pICU+JSAKICAgIGZpbHRlcighaXMubmEoSVNTTikpICU+JSAKICAgIHQoKSAlPiUgCiAgICBwYXN0ZSgiT1IgIiwgY29sbGFwc2UgPSAiIikgIyBhZGQgT1IgYmV0d2VlbiBJU1NOIExpc3QKCklTU05MaXN0IDwtIGdzdWIoIiBPUiAkIiwiIiAsSVNTTkxpc3QpICMgdG8gcmVtb3ZlIGxhc3QgT1IKYGBgCgpEYXRhIGlzIHJldHJpZXZlZCBmcm9tIFB1Yk1lZCB2aWEgUklTbWVkIHBhY2thZ2UuClB1Yk1lZCBjb2xsZWN0aW9uIGZyb20gTmF0aW9uYWwgTGlicmFyeSBvZiBNZWRpY2luZSAoaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvKSwgaGFzIHRoZSBtb3N0IGNvbXByZWhlbnNpdmUgaW5mb3JtYXRpb24gYWJvdXQgcGVlciByZXZpZXdlZCBhcnRpY2xlcyBpbiBtZWRpY2luZS4KVGhlIEFQSSAoaHR0cHM6Ly9kYXRhZ3VpZGUubmxtLm5paC5nb3YvKSwgYW5kIFIgcGFja2FnZXMgYXJlIGF2YWlsYWJsZSBmb3IgZ2V0dGluZyBhbmQgZmV0Y2hpbmcgZGF0YSBmcm9tIHRoZSBzZXJ2ZXIuCgpUaGUgc2VhcmNoIGZvcm11bGEgZm9yIFB1Yk1lZCBpcyBnZW5lcmF0ZWQgYXMgIklTU04gTGlzdCBBTkQgQ291bnRyeVtBZmZpbGlhdGlvbl0iIGxpa2UgZG9uZSBpbiBbYWR2YW5jZWQgc2VhcmNoIG9mIFB1Yk1lZF0oaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wdWJtZWQvYWR2YW5jZWQpLgoKYGBge3IgR2VuZXJhdGUgU2VhcmNoIEZvcm11bGEgRm9yIFBhdGhvbG9neSBKb3VybmFscyBBTkQgQ291bnRyaWVzfQojIEdlbmVyYXRlIFNlYXJjaCBGb3JtdWxhIEZvciBQYXRob2xvZ3kgSm91cm5hbHMgQU5EIENvdW50cmllcwpzZWFyY2hmb3JtdWxhVFIgPC0gcGFzdGUoIiciLElTU05MaXN0LCInIiwgIiBBTkQgIiwgIlR1cmtleVtBZmZpbGlhdGlvbl0iKQpzZWFyY2hmb3JtdWxhREUgPC0gcGFzdGUoIiciLElTU05MaXN0LCInIiwgIiBBTkQgIiwgIkdlcm1hbnlbQWZmaWxpYXRpb25dIikKc2VhcmNoZm9ybXVsYUpQIDwtIHBhc3RlKCInIixJU1NOTGlzdCwiJyIsICIgQU5EICIsICJKYXBhbltBZmZpbGlhdGlvbl0iKQpgYGAKCkFydGljbGVzIGZyb20gSmFwYW4sIEdlcm1hbiBhbmQgVHVya2V5IGFyZSByZXRyaWV2ZWQgbGltaXRpbmcgdGhlIHNlYXJjaCB3aXRoIHBhdGhvbG9neSBqb3VybmFscywgYWZmaWxpYXRpb24gYW5kIGxhc3QgMTAgeWVhcnMuCgpgYGB7ciBTZWFyY2ggUHViTWVkLCBHZXQgYW5kIEZldGNofQojIFNlYXJjaCBQdWJNZWQsIEdldCBhbmQgRmV0Y2gKVHVya2V5QXJ0aWNsZXMgPC0gRVV0aWxzU3VtbWFyeShzZWFyY2hmb3JtdWxhVFIsIHR5cGUgPSAnZXNlYXJjaCcsIGRiID0gJ3B1Ym1lZCcsIG1pbmRhdGUgPSAyMDA3LCBtYXhkYXRlID0gMjAxNywgcmV0bWF4ID0gMTAwMDApCmZldGNoVHVya2V5IDwtIEVVdGlsc0dldChUdXJrZXlBcnRpY2xlcykKCkdlcm1hbnlBcnRpY2xlcyA8LSBFVXRpbHNTdW1tYXJ5KHNlYXJjaGZvcm11bGFERSwgdHlwZSA9ICdlc2VhcmNoJywgZGIgPSAncHVibWVkJywgbWluZGF0ZSA9IDIwMDcsIG1heGRhdGUgPSAyMDE3LCByZXRtYXggPSAxMDAwMCkKZmV0Y2hHZXJtYW55IDwtIEVVdGlsc0dldChHZXJtYW55QXJ0aWNsZXMpCgpKYXBhbkFydGljbGVzIDwtIEVVdGlsc1N1bW1hcnkoc2VhcmNoZm9ybXVsYUpQLCB0eXBlID0gJ2VzZWFyY2gnLCBkYiA9ICdwdWJtZWQnLCBtaW5kYXRlID0gMjAwNywgbWF4ZGF0ZSA9IDIwMTcsIHJldG1heCA9IDEwMDAwKQpmZXRjaEphcGFuIDwtIEVVdGlsc0dldChKYXBhbkFydGljbGVzKQpgYGAKClRoZSByZXRyaWV2ZWQgaW5mb3JtYXRpb24gd2FzIGNvbXBpbGVkIGluIGEgdGFibGUuCgpgYGB7cn0KCklTU05UUiA8LSB0YWJsZShJU1NOKGZldGNoVHVya2V5KSkgJT4lIAogICAgYXNfdGliYmxlKCkgJT4lIAogICAgcmVuYW1lKFR1cmtleSA9IG4sIEpvdXJuYWwgPSBWYXIxKQoKSVNTTkRFIDwtIHRhYmxlKElTU04oZmV0Y2hHZXJtYW55KSkgJT4lIAogICAgYXNfdGliYmxlKCkgJT4lIAogICAgcmVuYW1lKEdlcm1hbnkgPSBuLCBKb3VybmFsID0gVmFyMSkKCklTU05KUCA8LSB0YWJsZShJU1NOKGZldGNoSmFwYW4pKSAlPiUgCiAgICBhc190aWJibGUoKSAlPiUgCiAgICByZW5hbWUoSmFwYW4gPSBuLCBKb3VybmFsID0gVmFyMSkKCmFydGljbGVzX3Blcl9qb3VybmFsIDwtIGxpc3QoCiAgICBJU1NOVFIsCiAgICBJU1NOREUsCiAgICBJU1NOSlAKKSAlPiUKICAgIHJlZHVjZShsZWZ0X2pvaW4sIGJ5ID0gIkpvdXJuYWwiLCAuaWQgPSAiaWQiKSAlPiUgCiAgICBnYXRoZXIoQ291bnRyeSwgbiwgMjo0KQoKYXJ0aWNsZXNfcGVyX2pvdXJuYWwkQ291bnRyeSA8LSBmYWN0b3IoYXJ0aWNsZXNfcGVyX2pvdXJuYWwkQ291bnRyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID1jKCJKYXBhbiIsICJHZXJtYW55IiwgIlR1cmtleSIpKQoKYGBgCgoKCioqUmVzdWx0OioqCgpJbiB0aGlzIGdyYXBoIHgtYXhpcyBpcyB0aGUgbGlzdCBvZiBqb3VybmFscyB3aXRoIGRlY3JlYXNpbmcgaW1wYWN0IGZhY3RvciwgYW5kIHktYXhpcyBpcyB0aGUgbnVtYmVyIG9mIGFydGljbGVzIHB1Ymxpc2hlZCBpbiB0aGF0IGpvdXJuYWwuIFRoZSBjb2xvcnMgYW5kIHNoYXBlcyBhcmUgc2hvd2luZyB0aGUgY291bnRyeSBvZiBhZmZpbGlhdGlvbi4gV2Ugc2VlIHRoYXQgaW4gb25lIGpvdXJuYWwgYXJ0aWNsZXMgZnJvbSBKYXBhbiBpcyBtb3JlIHRoYW4gODAwLiAgCgpgYGB7cn0KZ2dwbG90KGRhdGEgPSBhcnRpY2xlc19wZXJfam91cm5hbCwgYWVzKHggPSBKb3VybmFsLCB5ID0gbiwgZ3JvdXAgPSBDb3VudHJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3VyID0gQ291bnRyeSwgc2hhcGUgPSBDb3VudHJ5LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWxzID0gQ291bnRyeQopKSArCiAgICBnZW9tX3BvaW50KCkgKwogICAgbGFicyh4ID0gIkpvdXJuYWxzIHdpdGggZGVjcmVhc2luZyBpbXBhY3QgZmFjdG9yIiwgeSA9ICJOdW1iZXIgb2YgQXJ0aWNsZXMiKSArCiAgICBnZ3RpdGxlKCJQYXRob2xvZ3kgQXJ0aWNsZXMgUGVyIEpvdXJuYWwiKSArIAogICAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChoanVzdCA9IDAuNSksCiAgICAgICAgICBheGlzLnRleHQueD1lbGVtZW50X2JsYW5rKCkpCgpgYGAKCgoqKkNvbW1lbnQ6KioKCkl0IGlzIHNlZW4gdGhhdCBvbmUgb2YgdGhlIGpvdXJuYWxzIFtJU1NOOiAxNDQwLTE4MjddKGh0dHBzOi8vb25saW5lbGlicmFyeS53aWxleS5jb20vcGFnZS9qb3VybmFsLzE0NDAxODI3L2hvbWVwYWdlL3Byb2R1Y3RpbmZvcm1hdGlvbi5odG1sKSBoYXMgbW9yZSB0aGFuIDgwMCBhcnRpY2xlcyBmcm9tIEphcGFuLiBUaGlzIGpvdXJuYWwgaXMgYWxzbyBmcm9tIEphcGFuLiBIZXJlIHdlIHdvbmRlciBpZiB0aGVyZSBpcyBhbiBlZGl0b3JpYWwgcHJlZmVyZW5jZSBmb3IgYXJ0aWNsZXMgZnJvbSB0aGVpciBob21lIGNvdW50cnkuIAoKV2Ugc29tZXRpbWVzIG9ic2VydmUgdGhpcyBzaXR1YXRpb24gaWYgdGhlcmUgaXMgYSBjb25mZXJlbmNlIGluIHRoYXQgY291bnRyeSwgYW5kIHRoZSBjb25mZXJlbmNlIGFic3RyYWN0cyBhcmUgaW5kZXhlZC4gCgpUaGlzIG1heSBhbHNvIGJlIGEgY2x1ZSB0aGF0IGlmIGEgY291bnRyeSBoYXMgYSBqb3VybmFsIGxpc3RlZCBpbiBpbmRleGVzLCB0aGFuIGl0IGlzIG1vcmUgZWFzeSBmb3IgdGhlIHJlc2VhcmNoZXJzIGluIHRoYXQgY291bnRyeSB0byBwdWJsaXNoIHRoZWlyIHJlc3VsdHMuCgoKKipGdXR1cmUgV29yazoqKgoKV2hldGhlciB0aGlzIG9ic2VydmF0aW9uIGlzIGEgdW5pcXVlIHNpdHVhdGlvbiwgb3IgdGhlcmUgaXMgYSB0ZW5kZW5jeSBpbiB0aGUgam91cm5hbHMgdG8gcHVibGlzaCBhcnRpY2xlIGZyb20gdGhlaXIgY291bnRyeSBvZiBvcmlnaW4sIG1lcml0cyBmdXJ0aGVyIGludmVzdGlnYXRpb24uIAoKCgotLS0KCgojIyBGZWVkYmFjawoKW1NlcmRhciBCYWxjxLEsIE1ELCBQYXRob2xvZ2lzdF0oaHR0cHM6Ly9naXRodWIuY29tL3NiYWxjaSkgd291bGQgbGlrZSB0byBoZWFyIHlvdXIgZmVlZGJhY2s6IGh0dHBzOi8vZ29vLmdsL2Zvcm1zL1lqR1o1REhndFBsUjFSbkIzCgpUaGlzIGRvY3VtZW50IHdpbGwgYmUgY29udGluaW91c2x5IHVwZGF0ZWQgYW5kIHRoZSBsYXN0IHVwZGF0ZSB3YXMgb24gYHIgU3lzLkRhdGUoKWAuCgotLS0KCiMjIEJhY2sgdG8gTWFpbiBNZW51CgpbTWFpbiBQYWdlIGZvciBCaWJsaW9ncmFwaGljIEFuYWx5c2lzXShodHRwczovL3NiYWxjaS5naXRodWIuaW8vcHVibWVkL0JpYmxpb2dyYXBoaWNTdHVkaWVzLmh0bWwp
+
LS0tCnRpdGxlOiAiQmlibGlvZ3JhcGhpYyBTdHVkaWVzIgpzdWJ0aXRsZTogIkpvdXJuYWxzIFB1Ymxpc2hlZCBBcnRpY2xlcyBGcm9tIFR1cmtleSIKYXV0aG9yOiAiU2VyZGFyIEJhbGPEsSwgTUQsIFBhdGhvbG9naXN0IgpkYXRlOiAnYHIgZm9ybWF0KFN5cy5EYXRlKCkpYCcKb3V0cHV0OiAKICBodG1sX25vdGVib29rOiAKICAgIGNvZGVfZm9sZGluZzogaGlkZQogICAgZmlnX2NhcHRpb246IHllcwogICAgaGlnaGxpZ2h0OiBrYXRlCiAgICB0aGVtZTogY2VydWxlYW4KICAgIHRvY19mbG9hdDogeWVzCiAgaHRtbF9kb2N1bWVudDogCiAgICBjb2RlX2ZvbGRpbmc6IGhpZGUKICAgIGRmX3ByaW50OiBrYWJsZQogICAgZmlnX2NhcHRpb246IHllcwogICAgaGlnaGxpZ2h0OiBrYXRlCiAgICBrZWVwX21kOiB5ZXMKICAgIHRoZW1lOiBjZXJ1bGVhbgogICAgdG9jX2Zsb2F0OiB5ZXMKLS0tCgpgYGB7ciBnbG9iYWxfb3B0aW9ucywgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGZpZy53aWR0aCA9IDEyLCBmaWcuaGVpZ2h0ID0gOCwgZmlnLnBhdGggPSAnZmlndXJlLycsIGVjaG8gPSBGQUxTRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIGVycm9yID0gRkFMU0UsIGV2YWwgPSBUUlVFLCB0aWR5ID0gVFJVRSwgY29tbWVudCA9IE5BKQpgYGAKCmBgYHtyIGxpYnJhcnksIGluY2x1ZGU9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpgYGAKCgo8IS0tICMgU3BvbnNvcmVkIGJ5IC0tPgoKPCEtLSBbIVtdKGltYWdlcy9tb2RlbGlzdGF0aXN0aWtfbG9nby0zLTMwMHg3My5wbmcpXShodHRwczovL3d3dy5tb2RlbGlzdGF0aXN0aWsuY29tLykgLS0+CgoKIyBKb3VybmFscyBQdWJsaXNoZWQgQXJ0aWNsZXMgRnJvbSBUdXJrZXkgey50YWJzZXQgLnRhYnNldC1mYWRlIC50YWJzZXQtcGlsbHN9CgpJZiB5b3Ugd2FudCB0byBzZWUgdGhlIGNvZGUgdXNlZCBpbiB0aGUgYW5hbHlzaXMgcGxlYXNlIGNsaWNrIHRoZSBjb2RlIGJ1dHRvbiBvbiB0aGUgcmlnaHQgdXBwZXIgY29ybmVyIG9yIHRocm91Z2hvdXQgdGhlIHBhZ2UuICAKU2VsZWN0IGZyb20gdGhlIHRhYnMgYmVsb3cuCgotLS0KCiMjIEFpbSAKCioqQWltOioqCgpIZXJlIHdlIHdpbGwgbG9vayBhdCB0aGUgSm91cm5hbHMgaW4gd2hpY2ggYXJ0aWNsZXMgZnJvbSBUdXJrZXkgYXJlIHB1Ymxpc2hlZC4gCgotLS0KCiMjIERhdGEgcmV0cml2ZWFsIGZyb20gUHViTWVkIHVzaW5nIEVEaXJlY3QgCgpBcnRpY2xlcyBhcmUgZG93bmxvYWRlZCBhcyBgeG1sYC4KCgoKPCEtLSBgYGB7ciBTZWFyY2ggUHViTWVkIHdyaXRlIDIwMTggZGF0YSBhcyB4bWwsIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9IC0tPgo8IS0tIG15VGVybSA8LSByc3R1ZGlvYXBpOjp0ZXJtaW5hbENyZWF0ZShzaG93ID0gRkFMU0UpIC0tPgo8IS0tIHJzdHVkaW9hcGk6OnRlcm1pbmFsU2VuZCggLS0+CjwhLS0gICAgIG15VGVybSwgLS0+CjwhLS0gICAgICJlc2VhcmNoIC1kYiBwdWJtZWQgLXF1ZXJ5IFwiVHVya2V5W0FmZmlsaWF0aW9uXVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDIwMTggLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCA+IGRhdGEvVHVya2V5XzIwMTgueG1sIFxuIiAtLT4KPCEtLSApIC0tPgo8IS0tIFN5cy5zbGVlcCgxKSAtLT4KPCEtLSByZXBlYXQgeyAtLT4KPCEtLSAgICAgU3lzLnNsZWVwKDAuMSkgLS0+CjwhLS0gICAgIGlmIChyc3R1ZGlvYXBpOjp0ZXJtaW5hbEJ1c3kobXlUZXJtKSA9PSBGQUxTRSkgeyAtLT4KPCEtLSAgICAgICAgIHByaW50KCJDb2RlIEV4ZWN1dGVkIikgLS0+CjwhLS0gICAgICAgICBicmVhayAtLT4KPCEtLSAgICAgfSAtLT4KPCEtLSB9IC0tPgo8IS0tIGBgYCAtLT4KCgoKCmBgYHtyIFNlYXJjaCBQdWJNZWQgd3JpdGUgYWxsIGRhdGEgYXMgeG1sLCBldmFsPUZBTFNFLCBpbmNsdWRlPUZBTFNFfQpteVRlcm0gPC0gcnN0dWRpb2FwaTo6dGVybWluYWxDcmVhdGUoc2hvdyA9IEZBTFNFKQpyc3R1ZGlvYXBpOjp0ZXJtaW5hbFNlbmQoCiAgICBteVRlcm0sCiAgICAiZXNlYXJjaCAtZGIgcHVibWVkIC1xdWVyeSBcIlR1cmtleVtBZmZpbGlhdGlvbl1cIiAtZGF0ZXR5cGUgUERBVCAtbWluZGF0ZSAxODAwIC1tYXhkYXRlIDMwMDAgfCBlZmV0Y2ggLWZvcm1hdCB4bWwgPiBkYXRhL1R1cmtleV9hbGwueG1sIFxuIgopClN5cy5zbGVlcCgxKQpyZXBlYXQgewogICAgU3lzLnNsZWVwKDAuMSkKICAgIGlmIChyc3R1ZGlvYXBpOjp0ZXJtaW5hbEJ1c3kobXlUZXJtKSA9PSBGQUxTRSkgewogICAgICAgIHByaW50KCJDb2RlIEV4ZWN1dGVkIikKICAgICAgICBicmVhawogICAgfQp9CmBgYAoKCgoKCjwhLS0gYGBge3IgU2VhcmNoIFB1Yk1lZCBnZXQgMjAxOCBkYXRhIG9uIHRoZSBmbHksIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9IC0tPgo8IS0tIG15VGVybSA8LSByc3R1ZGlvYXBpOjp0ZXJtaW5hbENyZWF0ZShzaG93ID0gRkFMU0UpIC0tPgo8IS0tIHJzdHVkaW9hcGk6OnRlcm1pbmFsU2VuZCggLS0+CjwhLS0gICAgIG15VGVybSwgLS0+CjwhLS0gICAgICJlc2VhcmNoIC1kYiBwdWJtZWQgLXF1ZXJ5IFwiVHVya2V5W0FmZmlsaWF0aW9uXVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDIwMTggLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCB8IHh0cmFjdCAgLXBhdHRlcm4gUHVibWVkQXJ0aWNsZSAtZWxlbWVudCBNZWRsaW5lQ2l0YXRpb24vUE1JRCBQdWJEYXRlL1llYXIgSm91cm5hbC9JU1NOIElTT0FiYnJldmlhdGlvbj4gZGF0YS9vbnRoZWZseV9UdXJrZXlfMjAxOC5jc3YgXG4iIC0tPgo8IS0tICkgLS0+CjwhLS0gU3lzLnNsZWVwKDEpIC0tPgo8IS0tIHJlcGVhdCB7IC0tPgo8IS0tICAgICBTeXMuc2xlZXAoMC4xKSAtLT4KPCEtLSAgICAgaWYgKHJzdHVkaW9hcGk6OnRlcm1pbmFsQnVzeShteVRlcm0pID09IEZBTFNFKSB7IC0tPgo8IS0tICAgICAgICAgcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKSAtLT4KPCEtLSAgICAgICAgIGJyZWFrIC0tPgo8IS0tICAgICB9IC0tPgo8IS0tIH0gLS0+CjwhLS0gYGBgIC0tPgoKCgo8IS0tIGBgYHtyIFNlYXJjaCBQdWJNZWQgZ2V0IGFsbCBkYXRhIG9uIHRoZSBmbHksIGV2YWw9RkFMU0UsIGluY2x1ZGU9RkFMU0V9IC0tPgo8IS0tIG15VGVybSA8LSByc3R1ZGlvYXBpOjp0ZXJtaW5hbENyZWF0ZShzaG93ID0gRkFMU0UpIC0tPgo8IS0tIHJzdHVkaW9hcGk6OnRlcm1pbmFsU2VuZCggLS0+CjwhLS0gICAgIG15VGVybSwgLS0+CjwhLS0gICAgICJlc2VhcmNoIC1kYiBwdWJtZWQgLXF1ZXJ5IFwiVHVya2V5W0FmZmlsaWF0aW9uXVwiIC1kYXRldHlwZSBQREFUIC1taW5kYXRlIDE4MDAgLW1heGRhdGUgMzAwMCB8IGVmZXRjaCAtZm9ybWF0IHhtbCB8IHh0cmFjdCAgLXBhdHRlcm4gUHVibWVkQXJ0aWNsZSAtZWxlbWVudCBNZWRsaW5lQ2l0YXRpb24vUE1JRCBQdWJEYXRlL1llYXIgSm91cm5hbC9JU1NOIElTT0FiYnJldmlhdGlvbj4gZGF0YS9vbnRoZWZseV9UdXJrZXlfYWxsLmNzdiBcbiIgLS0+CjwhLS0gKSAtLT4KPCEtLSBTeXMuc2xlZXAoMSkgLS0+CjwhLS0gcmVwZWF0IHsgLS0+CjwhLS0gICAgIFN5cy5zbGVlcCgwLjEpIC0tPgo8IS0tICAgICBpZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsgLS0+CjwhLS0gICAgICAgICBwcmludCgiQ29kZSBFeGVjdXRlZCIpIC0tPgo8IS0tICAgICAgICAgYnJlYWsgLS0+CjwhLS0gICAgIH0gLS0+CjwhLS0gfSAtLT4KPCEtLSBgYGAgLS0+CgoKCkpvdXJuYWwgTmFtZXMgYXJlIGV4dHJhY3RlZCBmcm9tIHhtbC4KCgoKPCEtLSBgYGB7ciBleHRyYWN0IGpvdXJuYWwgbmFtZXMgZnJvbSAyMDE4IHhtbCwgZXZhbD1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgaW5jbHVkZT1GQUxTRX0gLS0+CjwhLS0gbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkgLS0+CjwhLS0gcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKCAtLT4KPCEtLSBteVRlcm0sIC0tPgo8IS0tICJ4dHJhY3QgLWlucHV0IGRhdGEvVHVya2V5XzIwMTgueG1sIC1wYXR0ZXJuIFB1Ym1lZEFydGljbGUgLWVsZW1lbnQgTWVkbGluZUNpdGF0aW9uL1BNSUQgUHViRGF0ZS9ZZWFyIEpvdXJuYWwvSVNTTiBJU09BYmJyZXZpYXRpb24gPiBkYXRhL1R1cmtleTIwMTguY3N2IFxuIiAtLT4KPCEtLSApIC0tPgo8IS0tIFN5cy5zbGVlcCgxKSAtLT4KPCEtLSByZXBlYXQgeyAtLT4KPCEtLSBTeXMuc2xlZXAoMC4xKSAtLT4KPCEtLSBpZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsgLS0+CjwhLS0gcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKSAtLT4KPCEtLSBicmVhayAtLT4KPCEtLSB9IC0tPgo8IS0tIH0gLS0+CjwhLS0gYGBgIC0tPgoKCmBgYHtyIGV4dHJhY3Qgam91cm5hbCBuYW1lcyBmcm9tIGFsbCBkYXRhIHhtbCwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKApteVRlcm0sCiJ4dHJhY3QgLWlucHV0IGRhdGEvVHVya2V5X2FsbC54bWwgLXBhdHRlcm4gUHVibWVkQXJ0aWNsZSAtc2VwICcgJyAtZGVmICduYScgLWVsZW1lbnQgTWVkbGluZUNpdGF0aW9uL1BNSUQgSm91cm5hbC9JU1NOIElTT0FiYnJldmlhdGlvbiBQdWJEYXRlL1llYXIgPiBkYXRhL1R1cmtleUFsbC5jc3YgXG4iCikKU3lzLnNsZWVwKDEpCnJlcGVhdCB7ClN5cy5zbGVlcCgwLjEpCmlmIChyc3R1ZGlvYXBpOjp0ZXJtaW5hbEJ1c3kobXlUZXJtKSA9PSBGQUxTRSkgewpwcmludCgiQ29kZSBFeGVjdXRlZCIpCmJyZWFrCn0KfQpgYGAKCgoKLS0tLQoKCiMjIFJldHJpZXZhbCBvZiBEYXRhIG9mIFByb3BlcnRpZXMgb2YgSm91cm5hbHMKCgoKW25sbWNhdGFsb2dfcmVzdWx0X2pvdXJuYWxzX3BtYy54bWxdKGh0dHBzOi8vd3d3Lm5jYmkubmxtLm5paC5nb3YvcG9ydGFsL3V0aWxzL2ZpbGVfYmFja2VuZC5jZ2k/RGI9bmxtY2F0YWxvZyZIaXN0b3J5SWQ9TkNJRF8xXzY5NzU1Mjc4XzEzMC4xNC4xOC45N181NTU1XzE1MzQ1ODU5MzRfMzU5MDYwNjc4M18wTWV0QTBfU19IU3RvcmUmUXVlcnlLZXk9MiZTb3J0PVB1YkRhdGUmRmlsdGVyPWFsbCZDb21wbGV0ZVJlc3VsdENvdW50PTI1NTkmTW9kZT1maWxlJlZpZXc9eG1sJnAkbD1FbWFpbCZwb3J0YWxTbmFwc2hvdD0lMkZwcm9qZWN0cyUyRmVudHJleiUyRnB1Ym1lZCUyRlB1Yk1lZEdyb3VwQDEuMTM2JkJhc2VVcmw9JlBvcnROYW1lPWxpdmUmUm9vdFRhZz1OTE1DYXRhbG9nUmVjb3JkU2V0JkRvY1R5cGU9TkxNQ2F0YWxvZ1JlY29yZFNldCUyMFBVQkxJQyUyMCUyMi0lMkYlMkZOTE0lMkYlMkZEVEQlMjBOTE1DYXRhbG9nUmVjb3JkU2V0LCUyMDFzdCUyMEp1bmUlMjAyMDE3JTJGJTJGRU4lMjIlMjAlMjJodHRwczovL3d3dy5ubG0ubmloLmdvdi9kYXRhYmFzZXMvZHRkL25sbWNhdGFsb2dyZWNvcmRzZXRfMTcwNjAxLmR0ZCUyMiZGaWxlTmFtZT0mQ29udGVudFR5cGU9eG1sKQoKCltubG1jYXRhbG9nX3Jlc3VsdF9jdXJyZW50bHlpbmRleGVkLnhtbF0oaHR0cHM6Ly93d3cubmNiaS5ubG0ubmloLmdvdi9wb3J0YWwvdXRpbHMvZmlsZV9iYWNrZW5kLmNnaT9EYj1ubG1jYXRhbG9nJkhpc3RvcnlJZD1OQ0lEXzFfNjk3NTUyNzhfMTMwLjE0LjE4Ljk3XzU1NTVfMTUzNDU4NTkzNF8zNTkwNjA2NzgzXzBNZXRBMF9TX0hTdG9yZSZRdWVyeUtleT0xJlNvcnQ9UHViRGF0ZSZGaWx0ZXI9YWxsJkNvbXBsZXRlUmVzdWx0Q291bnQ9NTI0MiZNb2RlPWZpbGUmVmlldz14bWwmcCRsPUVtYWlsJnBvcnRhbFNuYXBzaG90PSUyRnByb2plY3RzJTJGZW50cmV6JTJGcHVibWVkJTJGUHViTWVkR3JvdXBAMS4xMzYmQmFzZVVybD0mUG9ydE5hbWU9bGl2ZSZSb290VGFnPU5MTUNhdGFsb2dSZWNvcmRTZXQmRG9jVHlwZT1OTE1DYXRhbG9nUmVjb3JkU2V0JTIwUFVCTElDJTIwJTIyLSUyRiUyRk5MTSUyRiUyRkRURCUyME5MTUNhdGFsb2dSZWNvcmRTZXQsJTIwMXN0JTIwSnVuZSUyMDIwMTclMkYlMkZFTiUyMiUyMCUyMmh0dHBzOi8vd3d3Lm5sbS5uaWguZ292L2RhdGFiYXNlcy9kdGQvbmxtY2F0YWxvZ3JlY29yZHNldF8xNzA2MDEuZHRkJTIyJkZpbGVOYW1lPSZDb250ZW50VHlwZT14bWwpCgoKW3NjaW1hZ29qcjIwMTcuY3N2XShodHRwczovL3d3dy5zY2ltYWdvanIuY29tL2pvdXJuYWxyYW5rLnBocD9vdXQ9eGxzKQoKW3NjaW1hZ29qcjIwMTctd29zLmNzdl0oaHR0cHM6Ly93d3cuc2NpbWFnb2pyLmNvbS9qb3VybmFscmFuay5waHA/d29zPXRydWUmb3V0PXhscykKCgohW10oaW1hZ2VzL3NjaWRhdGEucG5nKQoKCgoKCi0tLQoKCgoKCgojIyBBbmFseXNpcwoKYGBge3IgT3JnYW5pemUgSm91cm5hbCBEYXRhIDEsIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0V9CmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHJlYWRyKQoKVHVya2V5QWxsIDwtIHJlYWRfZGVsaW0oImRhdGEvVHVya2V5QWxsLmNzdiIsIAogICAgIlx0IiwgZXNjYXBlX2RvdWJsZSA9IEZBTFNFLCBjb2xfbmFtZXMgPSBGQUxTRSwKICAgIG5hID0gIm5hIiwgdHJpbV93cyA9IFRSVUUpCgpuYW1lcyhUdXJrZXlBbGwpIDwtIGMoIlBNSUQiLCAiSVNTTiIsICJKb3VybmFsTmFtZSIsICJZZWFyIikKCiMgZGltKFR1cmtleUFsbClbMV0KCiMgbWluKFR1cmtleUFsbFssNF0sIG5hLnJtID0gVFJVRSkKCiMgbWF4KFR1cmtleUFsbFssNF0sIG5hLnJtID0gVFJVRSkKCiMgZ2xpbXBzZShUdXJrZXlBbGwpCgpgYGAKCgoKYGBge3IgT3JnYW5pemUgSm91cm5hbCBEYXRhIDJ9CnVuaXF1ZUpvdXJuYWxzIDwtIFR1cmtleUFsbCAlPiUgCiAgICBzZWxlY3QoSm91cm5hbE5hbWUsIElTU04pICU+JSAKICAgIHVuaXF1ZSgpCgojIGRpbSh1bmlxdWVKb3VybmFscylbMV0KCmBgYAoKCmBgYHtyIE9yZ2FuaXplIEpvdXJuYWwgRGF0YSAzfQoKVHVya2V5QWxsMiA8LSBUdXJrZXlBbGwgJT4lIAogICAgbXV0YXRlKEpvdXJuYWwgPSBwYXN0ZShKb3VybmFsTmFtZSwgSVNTTiwgc2VwID0gIiBJU1NOICIpKQoKQXJ0aWNsZXNCeVllYXIgPC0gVHVya2V5QWxsMiAlPiUgCiAgICBncm91cF9ieShKb3VybmFsLCBZZWFyKSAlPiUgCiAgICBzdW1tYXJpc2UobiA9IG4oKSkKCkFydGljbGVzQnlZZWFyIDwtIEFydGljbGVzQnlZZWFyICU+JSAKICAgIHNwcmVhZChrZXkgPSBZZWFyLCB2YWx1ZSA9IG4pCgpUdXJrZXlBbGwyIDwtIFR1cmtleUFsbDIgJT4lIAogICAgc2VsZWN0KEpvdXJuYWwsIEpvdXJuYWxOYW1lLCBJU1NOKSAlPiUgCiAgICB1bmlxdWUoKQogICAgCkFydGljbGVzQnlZZWFyIDwtIGxlZnRfam9pbihBcnRpY2xlc0J5WWVhciwgVHVya2V5QWxsMiwgYnkgPSAiSm91cm5hbCIpIAoKQXJ0aWNsZXNCeVllYXIgPC0gQXJ0aWNsZXNCeVllYXIgJT4lCiAgICBzZWxlY3QoCiAgICBKb3VybmFsLCBKb3VybmFsTmFtZSwgSVNTTiwgZXZlcnl0aGluZygpCiAgICApCgpgYGAKCgpgYGB7ciBzY2ltYWdvanIyMDE3fQoKYGBgCgoKCi1lbGVtZW50IE1lZGxpbmVUQSAgTkxNQ2F0YWxvZ1JlY29yZC9ObG1VbmlxdWVJRCAtZGVmICduYScgLXNlcCAnXHQnIC1ibG9jayBUaXRsZUFsdGVybmF0ZS9UaXRsZSAgIC1lbGVtZW50IFRpdGxlQWx0ZXJuYXRlL1RpdGxlICAgCgoieHRyYWN0IC1pbnB1dCBkYXRhL25sbWNhdGFsb2dfcmVzdWx0X2N1cnJlbnRseWluZGV4ZWQueG1sIC1wYXR0ZXJuIE5DQklDYXRhbG9nUmVjb3JkIC1lbGVtZW50IElTU05MaW5raW5nIC1kZWYgJ25hJyAtc2VwICcgJyAtYmxvY2sgVGl0bGVBbHRlcm5hdGUvVGl0bGUgLWlmIFRpdGxlQWx0ZXJuYXRlL1RpdGxlQFNvcnQgLWVxdWFscyBOIC1lbGVtZW50IFRpdGxlQWx0ZXJuYXRlL1RpdGxlICA+IGRhdGEvbmxtY2F0YWxvZy5jc3YgXG4iCgotc2VwICdcdCcgCgoKTkxNQ2F0YWxvZ1JlY29yZC9ObG1VbmlxdWVJRCBJU1NOTGlua2luZwoKYGBge3IgbmxtY2F0YWxvZywgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0KbXlUZXJtIDwtIHJzdHVkaW9hcGk6OnRlcm1pbmFsQ3JlYXRlKHNob3cgPSBGQUxTRSkKcnN0dWRpb2FwaTo6dGVybWluYWxTZW5kKApteVRlcm0sCiJ4dHJhY3QgLWlucHV0IGRhdGEvbmxtY2F0YWxvZ19yZXN1bHRfY3VycmVudGx5aW5kZXhlZC54bWwgLXBhdHRlcm4gTkNCSUNhdGFsb2dSZWNvcmQgLXRhYiAnfCcgLWVsZW1lbnQgTkxNQ2F0YWxvZ1JlY29yZC9ObG1VbmlxdWVJRCAtYmxvY2sgSVNTTkxpbmtpbmcgLXRhYiAnfCcgLWVsZW1lbnQgSVNTTkxpbmtpbmcgLWJsb2NrIFRpdGxlIC1pZiBUaXRsZUBTb3J0IC1lcXVhbHMgTiAtZGVmICduYScgLXRhYiAnfCcgLWVsZW1lbnQgVGl0bGVBbHRlcm5hdGUvVGl0bGUgPiBkYXRhL25sbWNhdGFsb2cuY3N2IFxuIgopClN5cy5zbGVlcCgxKQpyZXBlYXQgewpTeXMuc2xlZXAoMC4xKQppZiAocnN0dWRpb2FwaTo6dGVybWluYWxCdXN5KG15VGVybSkgPT0gRkFMU0UpIHsKcHJpbnQoIkNvZGUgRXhlY3V0ZWQiKQpicmVhawp9Cn0KCmBgYCAKCgpgYGB7cn0KbGlicmFyeShyZWFkcikKbmxtY2F0YWxvZyA8LSByZWFkX2RlbGltKCJkYXRhL25sbWNhdGFsb2cuY3N2IiwgCiAgICAgICAgICAgICAgICAgICAgICAgICBkZWxpbSA9ICJ8IiwKICAgICAgICAgICAgICAgICAgICAgICAgIGVzY2FwZV9kb3VibGUgPSBGQUxTRSwKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9uYW1lcyA9IEZBTFNFLCAKICAgICAgICAgICAgICAgICAgICAgICAgIHRyaW1fd3MgPSBUUlVFKQoKYGBgCgpgYGB7cn0KCmxpYnJhcnkoeG1sMikKZGF0YSA8LSByZWFkX3htbCgiZGF0YS9ubG1jYXRhbG9nX3Jlc3VsdF9jdXJyZW50bHlpbmRleGVkLnhtbCIpCgojIFBvaW50IGxvY2F0aW9ucwpwb2ludCA8LSBkYXRhICU+JSB4bWxfZmluZF9hbGwoIi8vcG9pbnRlciIpCnBvaW50ICU+JSB4bWxfYXR0cigibGF0aXR1ZGUiKSAlPiUgYXMubnVtZXJpYygpCnBvaW50ICU+JSB4bWxfYXR0cigibG9uZ2l0dWRlIikgJT4lIGFzLm51bWVyaWMoKQoKIyBTdGFydCB0aW1lCmRhdGEgJT4lIAogIHhtbF9maW5kX2FsbCgiLy9zdGFydC12YWxpZC10aW1lIikgJT4lIAogIHhtbF90ZXh0KCkKCiMgVGVtcGVyYXR1cmUKZGF0YSAlPiUgCiAgeG1sX2ZpbmRfYWxsKCIvL3RlbXBlcmF0dXJlW0B0eXBlPSdob3VybHknXS92YWx1ZSIpICU+JSAKICB4bWxfdGV4dCgpICU+JSAKICBhcy5pbnRlZ2VyKCkKCgoKYGBgCgoKLS0tCgojIyBSZXN1bHRzCgotIFB1Yk1lZCdkZSAqKmByIG1pbihUdXJrZXlBbGxbLDRdLCBuYS5ybSA9IFRSVUUpYC1gciBtYXgoVHVya2V5QWxsWyw0XSwgbmEucm0gPSBUUlVFKWAqKiB0YXJpaGxlcmkgYXJhc8SxbmRhLCAqVMO8cmtpeWUqIGFkcmVzbGkgKipgciBkaW0oVHVya2V5QWxsKVsxXWAqKiBhZGV0IHlhecSxbiBtZXZjdXR0dXIuCgotIFB1Yk1lZCdkZSAqKmByIG1pbihUdXJrZXlBbGxbLDRdLCBuYS5ybSA9IFRSVUUpYC1gciBtYXgoVHVya2V5QWxsWyw0XSwgbmEucm0gPSBUUlVFKWAqKiB0YXJpaGxlcmkgYXJhc8SxbmRhLCAqVMO8cmtpeWUqIGFkcmVzbGkgeWF5xLFubGFyICoqYHIgZGltKHVuaXF1ZUpvdXJuYWxzKVsxXWAqKiBmYXJrbMSxIGRlcmdpZGUgeWF5xLFtbGFubcSxxZ90xLFyLgoKCgoKCi0tLQoKIyMgRGlzY3Vzc2lvbgoKdMO8cmtpeWUgYWRyZXNsaSBvbHVwIGRhIHB1Ym1lZGRlIHllciBhbGFuIG1ha2FsZWxlciBoYW5naSBkZXJnaWxlcmRlIGthw6dhciBhZGV0IHlhecSxbmxhbm3EscWfCgoKVGhlIHJldHJpZXZlZCBpbmZvcm1hdGlvbiB3YXMgY29tcGlsZWQgaW4gYSB0YWJsZS4KCgoKCgoqKk1ldGhvZHM6KioKCgoKCgoKCgoKKipSZXN1bHQ6KioKCgpgYGB7ciBwbG90IDF9CmdncGxvdChkYXRhID0gYXJ0aWNsZXNfcGVyX2pvdXJuYWwsIGFlcyh4ID0gSm91cm5hbCwgeSA9IG4sIGdyb3VwID0gQ291bnRyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG91ciA9IENvdW50cnksIHNoYXBlID0gQ291bnRyeSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldmVscyA9IENvdW50cnkKKSkgKwogICAgZ2VvbV9wb2ludCgpICsKICAgIGxhYnMoeCA9ICJKb3VybmFscyB3aXRoIGRlY3JlYXNpbmcgaW1wYWN0IGZhY3RvciIsIHkgPSAiTnVtYmVyIG9mIEFydGljbGVzIikgKwogICAgZ2d0aXRsZSgiUGF0aG9sb2d5IEFydGljbGVzIFBlciBKb3VybmFsIikgKyAKICAgIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoaGp1c3QgPSAwLjUpLAogICAgICAgICAgYXhpcy50ZXh0Lng9ZWxlbWVudF9ibGFuaygpKQoKYGBgCgoKKipDb21tZW50OioqCgoKCgotLS0KCgojIyBGZWVkYmFjawoKW1NlcmRhciBCYWxjxLEsIE1ELCBQYXRob2xvZ2lzdF0oaHR0cHM6Ly9naXRodWIuY29tL3NiYWxjaSkgd291bGQgbGlrZSB0byBoZWFyIHlvdXIgZmVlZGJhY2s6IGh0dHBzOi8vZ29vLmdsL2Zvcm1zL1lqR1o1REhndFBsUjFSbkIzCgpUaGlzIGRvY3VtZW50IHdpbGwgYmUgY29udGluaW91c2x5IHVwZGF0ZWQgYW5kIHRoZSBsYXN0IHVwZGF0ZSB3YXMgb24gYHIgU3lzLkRhdGUoKWAuCgotLS0KCiMjIEJhY2sgdG8gTWFpbiBNZW51CgpbTWFpbiBQYWdlIGZvciBCaWJsaW9ncmFwaGljIEFuYWx5c2lzXShodHRwczovL3NiYWxjaS5naXRodWIuaW8vcHVibWVkL0JpYmxpb2dyYXBoaWNTdHVkaWVzLmh0bWwpCgotLS0=
diff --git a/SEERResearchPerCountries.Rmd b/SEERResearchPerCountries.Rmd
new file mode 100644
index 0000000..1435790
--- /dev/null
+++ b/SEERResearchPerCountries.Rmd
@@ -0,0 +1,682 @@
+---
+title: "Bibliographic Studies"
+subtitle: "SEER Research Per Countries / Who is doing SEER Research?"
+author: "Serdar Balcı, MD, Pathologist"
+date: '`r format(Sys.Date())`'
+output:
+ html_notebook:
+ code_folding: hide
+ fig_caption: yes
+ highlight: kate
+ theme: cerulean
+ toc_float: yes
+ html_document:
+ code_folding: hide
+ df_print: kable
+ fig_caption: yes
+ highlight: kate
+ keep_md: yes
+ theme: cerulean
+ toc_float: yes
+---
+
+
+
+```{r global_options, include=FALSE}
+knitr::opts_chunk$set(fig.width = 12, fig.height = 8, fig.path = 'figure/', echo = FALSE, warning = FALSE, message = FALSE, error = FALSE, eval = TRUE, tidy = TRUE, comment = NA)
+```
+
+```{r library, include=FALSE}
+library(tidyverse)
+```
+
+
+```{r}
+state.name
+```
+
+
+```{r}
+# install.packages("maps")
+# library(maps)
+# x <- map("world", plot=FALSE)
+# glimpse(x)
+# x$names
+
+```
+
+```{r}
+install.packages("rworldmap")
+library(rworldmap)
+vignette('rworldmap')
+data(countryExData)
+countryExData
+```
+
+
+
+
+
+
+
+
+
+
+
+
+SEER China vs others
+
+https://www.rdocumentation.org/packages/bayesTFR/versions/6.1-2/topics/country.names
+
+
+https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/state.html
+
+
+
+
+# Who works on SEER {.tabset .tabset-fade .tabset-pills}
+
+If you want to see the code used in the analysis please click the code button on the right upper corner or throughout the page.
+Select from the tabs below.
+
+---
+
+## Aim
+
+**Aim:**
+
+
+
+---
+
+## Data retriveal from PubMed using EDirect
+
+Articles are downloaded as `xml`.
+
+```{r Search PubMed write all data as xml, eval=FALSE, include=FALSE}
+myTerm <- rstudioapi::terminalCreate(show = FALSE)
+rstudioapi::terminalSend(
+ myTerm,
+ "esearch -db pubmed -query \"'SEER Program'[Mesh]
+\" -datetype PDAT -mindate 1800 -maxdate 3000 | efetch -format xml > data/pubmed_result_SEER_MeSH.xml \n"
+)
+Sys.sleep(1)
+repeat {
+ Sys.sleep(0.1)
+ if (rstudioapi::terminalBusy(myTerm) == FALSE) {
+ print("Code Executed")
+ break
+ }
+}
+```
+
+
+
+```{r extract journal names from all data xml, message=FALSE, warning=FALSE}
+myTerm <- rstudioapi::terminalCreate(show = FALSE)
+rstudioapi::terminalSend(
+myTerm,
+"xtract -input data/pubmed_result_SEER_MeSH.xml -pattern PubmedArticle -sep ' ' -def 'na' -element MedlineCitation/PMID PubDate/Year Affiliation> data/SEER_countries.csv \n"
+)
+Sys.sleep(1)
+repeat {
+Sys.sleep(0.1)
+if (rstudioapi::terminalBusy(myTerm) == FALSE) {
+print("Code Executed")
+break
+}
+}
+```
+
+
+```{r}
+library(readr)
+SEER_countries <- read_delim("data/SEER_countries.csv",
+ "\t", escape_double = FALSE, col_names = c("PMID", "year", "Affiliations"),
+ na = "NA", trim_ws = TRUE)
+# View(SEER_countries)
+```
+
+```{r}
+countries <- read_delim("data/countries.txt", delim = "|", col_names = c("abb", "country"))
+
+country <- countries$country
+
+country <- c(country, state.name)
+
+country[80] <- "Georgia_"
+
+```
+
+
+
+```{r}
+# SEER_countries <- cbind(SEER_countries, setNames(lapply(country, function(x) x=NA), country))
+
+# names(SEER_countries)[254] <- "GeorgiaUSA"
+
+
+```
+
+```{r}
+# grepl(pattern = "China", x = SEER_countries$Affiliations)
+```
+
+
+```{r}
+# deneme1 <- grepl(pattern = country[44], x = SEER_countries$Affiliations)
+
+# deneme2 <- sapply(country, function(x) grepl(x, SEER_countries$Affiliations))
+
+# sum(deneme1 != deneme2[,44])
+
+```
+
+```{r}
+# deneme2 <- as.data.frame(deneme2)
+
+# sum(deneme2$Turkey)
+```
+
+```{r}
+SEER_countries <- cbind(SEER_countries, sapply(country, function(x) grepl(x, SEER_countries$Affiliations)))
+```
+
+
+```{r}
+dim(SEER_countries)[1]
+```
+
+At the time of the research the number of articles with 'SEER Program'[Mesh] formula is `r dim(SEER_countries)[1]`.
+
+```{r}
+# deneme <- colSums(SEER_countries[,-(1:3)])
+
+# deneme <- as.data.frame(deneme)
+
+# deneme <- rownames_to_column(deneme, var = "countries")
+
+# names(deneme) <- c("countries", "number")
+
+# deneme %>% arrange(desc(number))
+
+
+```
+
+```{r}
+SEER_countries[SEER_countries == FALSE] <- 0
+
+SEER_countries[SEER_countries == TRUE] <- 1
+
+```
+
+
+
+```{r}
+countryTotals <- SEER_countries %>%
+ select(-c(1:3)) %>%
+ summarise_all(funs(sum))
+
+countryTotals[which(countryTotals>0)]
+
+publisherCountries <- names(countryTotals[which(countryTotals>0)])
+
+SEER_countries <- SEER_countries %>%
+ select(c(1:3, publisherCountries))
+
+```
+
+
+
+```{r}
+deneme <- SEER_countries %>%
+ gather(key = "Country", value = "Number", -c(1:3)) %>%
+ group_by(Country, year) %>%
+ summarise(total = sum(Number))
+```
+
+
+```{r}
+deneme %>%
+ filter(year != "na") %>%
+ filter(year != "2017") %>%
+ filter(year != "2018") %>%
+ggplot() +
+ aes(y = total, x = year, group = Country, color = Country) +
+ geom_line() +
+ guides(fill=FALSE, color=FALSE) +
+ theme(axis.text.x = element_text(angle = 90, hjust = 1))
+```
+
+
+```{r}
+USAnames <- names(SEER_countries) %in% state.name
+
+Others <- setdiff(names(SEER_countries[-c(1:3)]), c(USAnames,"United States", "China"))
+
+
+deneme2 <- SEER_countries %>%
+ mutate(
+ sumUSA = rowSums(
+ select(., one_of(USAnames), `United States`)
+ )
+ ) %>%
+mutate(
+ sumOthers = rowSums(
+ select(., one_of(Others))
+ )
+ ) %>%
+ select(PMID, year, China, USA = sumUSA, Others = sumOthers)
+
+```
+
+```{r}
+deneme3 <- deneme2 %>%
+ gather(key = "Country", value = "Number", -c(1:2)) %>%
+ group_by(PMID, Country, year) %>%
+ summarise(total = sum(Number)) %>%
+ filter(year != "na") %>%
+ filter(year != "2017") %>%
+ filter(year != "2018") %>%
+ filter(total != "0")
+```
+
+
+```{r}
+# which(duplicated(deneme3$PMID))
+# which(duplicated(deneme3$PMID))-1
+
+# deneme3[which(duplicated(deneme3$PMID)),]
+
+together <- bind_cols(
+First = deneme3$Country[which(duplicated(deneme3$PMID))],
+Second = deneme3$Country[which(duplicated(deneme3$PMID))-1]
+)
+
+table(together$First, together$Second) %>% addmargins()
+bind_cols(
+
+```
+
+
+
+```{r}
+deneme4 <- deneme2 %>%
+ gather(key = "Country", value = "Number", -c(1:2)) %>%
+ group_by(Country, year) %>%
+ summarise(total = sum(Number)) %>%
+ filter(year != "na") %>%
+ filter(year != "2017") %>%
+ filter(year != "2018") %>%
+ filter(total != "0")
+```
+
+
+
+```{r}
+deneme4 %>%
+
+ggplot() +
+ aes(y = total, x = year, group = Country, color = Country) +
+ geom_line() +
+ # guides(fill=FALSE, color=FALSE) +
+ theme(axis.text.x = element_text(angle = 90, hjust = 1))
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SEERResearchPerCountries.nb.html b/SEERResearchPerCountries.nb.html
new file mode 100644
index 0000000..9f470ff
--- /dev/null
+++ b/SEERResearchPerCountries.nb.html
@@ -0,0 +1,2370 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Bibliographic Studies
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[1] "Alabama" "Alaska"
+ [3] "Arizona" "Arkansas"
+ [5] "California" "Colorado"
+ [7] "Connecticut" "Delaware"
+ [9] "Florida" "Georgia"
+[11] "Hawaii" "Idaho"
+[13] "Illinois" "Indiana"
+[15] "Iowa" "Kansas"
+[17] "Kentucky" "Louisiana"
+[19] "Maine" "Maryland"
+[21] "Massachusetts" "Michigan"
+[23] "Minnesota" "Mississippi"
+[25] "Missouri" "Montana"
+[27] "Nebraska" "Nevada"
+[29] "New Hampshire" "New Jersey"
+[31] "New Mexico" "New York"
+[33] "North Carolina" "North Dakota"
+[35] "Ohio" "Oklahoma"
+[37] "Oregon" "Pennsylvania"
+[39] "Rhode Island" "South Carolina"
+[41] "South Dakota" "Tennessee"
+[43] "Texas" "Utah"
+[45] "Vermont" "Virginia"
+[47] "Washington" "West Virginia"
+[49] "Wisconsin" "Wyoming"
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
SEER China vs others
+
https://www.rdocumentation.org/packages/bayesTFR/versions/6.1-2/topics/country.names
+
https://stat.ethz.ch/R-manual/R-devel/library/datasets/html/state.html
+
+
Who works on SEER
+
If you want to see the code used in the analysis please click the code button on the right upper corner or throughout the page.
+Select from the tabs below.
+
+
+
+
Data retriveal from PubMed using EDirect
+
Articles are downloaded as xml
.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Parsed with column specification:
+cols(
+ PMID = col_integer(),
+ year = col_character(),
+ Affiliations = col_character()
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
Parsed with column specification:
+cols(
+ abb = col_character(),
+ country = col_character()
+)
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
[1] 6240
+
+
+
+
At the time of the research the number of articles with ‘SEER Program’[Mesh] formula is 6240.
+
+
+
+
+
+
+
+
+
+
+
+