OSCR

In Silico-Identified miR-16-5p and miR-32-5p as a Shared Molecular Signature of Primary Gliomas and Parkinson's Disease: Plasma Levels Are Increased Only in Glioma Patients.

Code ↔ Paper

1 match between paragraphs of the paper and lines of its authors' code, computed by the harvester (lexical-v1). Click a colored paragraph or line to see its counterpart.

The 1 match
  1. [1] § 2. Methods › 2.1. Bioinformatic Assessment ↔ vignettes/vignette_wizbionet.Rmd, lines 413 to 447 · score 0.55 · multiMiR, target prediction, target interactions, miRNAs, genes · Report a mismatch

Paper

Loaded from Europe PMC by your browser; OSCR does not store it: doi.org · Europe PMC

The paper is loaded when this pane is shown.

The authors' code

R Markdown · 741 lines · 35 KB · MIT · 1 match

  1. ---
  2. title: "vignette-wizbionet"
  3. author: "Zofia Wicik"
  4. date: "2026-07-21 (wizbionet 1.3.0 update)"
  5. output: rmarkdown::html_vignette
  6. vignette: >
  7. %\VignetteIndexEntry{vignette-wizbionet}
  8. %\VignetteEngine{knitr::rmarkdown}
  9. %\VignetteEncoding{UTF-8}
  10. ---
  11. <!-- .markdown-block { -->
  12. <!-- padding-top: 0 !important; -->
  13. <!-- padding-bottom: 0 !important; -->
  14. <!-- } -->
  15. ```{r setup, include = FALSE}
  16. knitr::opts_chunk$set(
  17. collapse = TRUE,
  18. comment = "#>"
  19. )
  20. ```
  21. ## Introduction
  22. This package was build to provide set of tools enabling identification of the top genes and non-coding RNAs (miRNAs, lncRNAs) from expression studies. It can also be applied to arbitrary selected lists of genes mined from the literature.
  23. In order to identify best coding and non-coding genes that would serve as key regulators of complex diseases, we developed a key-gene scoring system taking into account their mutual regulation. In this document we we will try to show examples of analyses which can be made with this toolbox:
  24. ## Installation
  25. ```{r eval=FALSE, fig.width=10}
  26. #Some of the dependencies are not downloaded automatically yet.
  27. #Below is the code which will install all of them. Just copy it and paste to your R console
  28. #dependencies
  29. #dplyr (>= 1.0.2), multiMiR (>= 1.8.0), stringr (>= 1.4.0), XML (>= 3.99-0.5),
  30. #OneR (>= 2.2.0), plyr (>= 1.8.6),
  31. #tidyselect (>= 1.1.0), kableExtra (>= 1.1.0), knitr (>= 1.29), rmarkdown (>= 2.3), utils
  32. # 1. installation of the necessary packages, if it will not work download source file from the webpage.
  33. #https://www.bioconductor.org/packages/release/bioc/html/multiMiR.html
  34. if (!requireNamespace("BiocManager", quietly=TRUE))
  35. install.packages("BiocManager")
  36. BiocManager::install()
  37. BiocManager::install("multiMiR")
  38. # https://cran.r-project.org/web/packages/OneR/index.html
  39. install.packages("OneR", type = "binary")
  40. #https://cran.r-project.org/web/packages/kableExtra/
  41. install.packages('kableExtra', type = "binary")
  42. # 2 A. You can install package wizbionet from the GitHub use this command:
  43. install.packages("remotes")
  44. remotes::install_github("wizbionet/wizbionet", dependencies ="Depends")
  45. # 2 B.Or install wizbionet from the wizbionet_0.99.0.tar.gz file downloaded from this link:
  46. #https://github.com/wizbionet/wizbionet/raw/master/wizbionet_0.99.0.tar.gz
  47. install.packages("https://github.com/wizbionet/wizbionet/raw/master/wizbionet_0.99.0.tar.gz",
  48. repos = NULL, type = "source",
  49. dependencies =TRUE
  50. )
  51. #Voila, load the package:
  52. library(wizbionet)
  53. ```
  54. ## wizbionet workflow example
  55. ### 1. importing gene lists to the R
  56. This set of functions enables combining gene lists associated with your process of interest. You can copy columns from excel and paste them to R using command:
  57. ```{r, eval= FALSE }
  58. # genelistGWAS<- readClipboard()
  59. # genelistGO<- readClipboard()
  60. # genelistKEGG<- readClipboard()
  61. ```
  62. ### 2. Updating gene symbols annotation using NCBI_synonyms()
  63. The common problem while working with different gene lists are not matching gene symbols which can generates duplicates while merging them. this package offers tool for efficient annotation of human genes according to NCBI nomenclature using function **NCBI_synonyms()**. Notice that gene EP3 has now symbol PTGER3, and SNT3 has symbol SNTB2.
  64. ```{r, eval= FALSE }
  65. genelistGWAS<- as.data.frame(genelistGWAS)
  66. NCBI_synonyms(genelistGWAS, "genelistGWAS")
  67. ```
  68. ```{r, echo=FALSE }
  69. invisible(capture.output(dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'EP3', 'ANO5', 'FGFR1', 'PTGFR','SNT3', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))))
  70. invisible(capture.output(output<- wizbionet::NCBI_synonyms(dat1, 'genelistGWAS')))
  71. temp<-kableExtra::kable_styling(knitr::kable(output, align="l"),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white")
  72. temp<-kableExtra::column_spec(temp, column=2, color='red')
  73. temp
  74. ```
  75. ### 3. Selecting columns based on syntax using col_selector()
  76. If you are not interested in other columns except for the official gene symbols you can use syntax specific function:
  77. ```{r, eval= FALSE }
  78. col_selector(genelistGWAS, key_words = "SymbolNCBI")
  79. #Use Regular Expression Syntax (https://rstudio.com/wp-content/uploads/2016/09/RegExCheatsheet.pdf) to precisely select columns:
  80. #Meta characters . * +
  81. #Anchors: ^ Start of the string; $ End of the string
  82. ```
  83. ### 4. Binding multiple gene lists and/or data.frames of unequal lenght using cbind_filler()
  84. To be able to bind multiple gene lists and/or data.frames of unequal lenght u can use **cbind_filler()**
  85. ```{r, eval= FALSE }
  86. output<- cbind_filler(list(genelistGWAS,genelistGO,genelistKEEG))
  87. ```
  88. If you are working with vectors after binding them you will need to add names manually. If the gene lists were data frames with headings you don't need to do this.
  89. ```{r, eval= FALSE }
  90. names(output)<-c('genelistGWAS','genelistGO','genelistKEEG')
  91. ```
  92. Below is example data frame merged using **cbind_filler()** function with suggestions of the sources of gene lists. The advantage of this function is that it allows to combine vectors/data frames of different lenght
  93. ```{r, eval= FALSE }
  94. output<- cbind_filler(output)
  95. ```
  96. ```{r, echo=FALSE }
  97. dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  98. dat2<- data.frame(genelistGO=c('CDH24', 'ONECUT2', 'NEBL', 'KAT6A', 'PTGER3', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  99. dat3<- data.frame(genelistKEGG=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR', 'NELL1', 'NR2C2', 'TGFB3', 'BRD1', 'RAD23B', 'PRKDC', 'IGSF10', 'AKIRIN1', 'HACD4', 'C4orf32'))
  100. input<- list(dat1,dat2,dat3)
  101. invisible(capture.output(output<- wizbionet::cbind_filler(input)))
  102. rownames(output)<-NULL
  103. kableExtra::kable_styling(knitr::kable(output, align="l"),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white",
  104. )
  105. ```
  106. ### 5. Combining and summarizing multiple gene lists using lists.combiner()
  107. When you have already a data frame build using **cbind_filler()** or just imported form txt/excel or csv file, we suggest to use function **lists.combiner()**.
  108. This function will merge all of those data frames and will provide information in which list a given gene was present and in how many lists in total it appeared.
  109. ```{r, eval= FALSE }
  110. output<- lists.combiner(output)
  111. head(output, n=15)
  112. ```
  113. ```{r, echo=FALSE }
  114. dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  115. dat2<- data.frame(genelistGO=c('CDH24', 'ONECUT2', 'NEBL', 'KAT6A', 'PTGER3', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  116. dat3<- data.frame(genelistKEGG=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR', 'NELL1', 'NR2C2', 'TGFB3', 'BRD1', 'RAD23B', 'PRKDC', 'IGSF10', 'AKIRIN1', 'HACD4', 'C4orf32'))
  117. input<- list(dat1,dat2,dat3)
  118. invisible(capture.output(temp<- wizbionet::cbind_filler(input)))
  119. invisible(capture.output(output<- wizbionet::lists.combiner(temp)))
  120. rownames(output)<-NULL
  121. temp<-kableExtra::kable_styling(knitr::kable(head(output,n=15)),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white",
  122. )
  123. temp<-kableExtra::column_spec(temp, column=5, color='red')
  124. temp
  125. ```
  126. Now you have a complete list of genes of interest (column input) and can easily see that gene PTGER3 was present in all of those data sets. You can also use function **NCBI_synonyms()** to add gene IDs.
  127. ```{r, eval= FALSE }
  128. output<- NCBI_synonyms(output, "input")
  129. head(output, n=10)
  130. ```
  131. ```{r, echo=FALSE }
  132. dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  133. dat2<- data.frame(genelistGO=c('CDH24', 'ONECUT2', 'NEBL', 'KAT6A', 'PTGER3', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  134. dat3<- data.frame(genelistKEGG=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR', 'NELL1', 'NR2C2', 'TGFB3', 'BRD1', 'RAD23B', 'PRKDC', 'IGSF10', 'AKIRIN1', 'HACD4', 'C4orf32'))
  135. input<- list(dat1,dat2,dat3)
  136. invisible(capture.output(temp<- wizbionet::cbind_filler(input)))
  137. invisible(capture.output(output<- wizbionet::lists.combiner(temp)))
  138. invisible(capture.output(output<- wizbionet::NCBI_synonyms(output, "input")))
  139. #head(output, n=15)
  140. temp<-kableExtra::kable_styling(knitr::kable(head(output,n=10)),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white",
  141. )
  142. temp<-kableExtra::column_spec(temp, column=c(6,7,8), color='red')
  143. temp
  144. ```
  145. ### 6. Clusterization of gene lists using clusterizer_oneR()
  146. If you want to know genes associated with highest number of genes lists you can use function **clusterizer_oneR()**, which will divide genes from the "input" column into four clusters based on column "count". clusterizer_oneR() utilzes Jenks natural breaks optimization algorithm from the original OneR package as a non-arbitrary classification dividing numbers of regulated genes into four categories (clusters). advantage of this method is non-arbitrary selection of top hits. You can cluster multiple numeric columns using this function. If you want to change the number of bins or method of the clusterization you can use function OneR::bin
  147. ```{r, eval= FALSE }
  148. landmark_col,="SymbolNCBI"
  149. cols_to_cluster="count"
  150. output<- clusterizer_oneR(output, landmark_col, cols_to_cluster)
  151. head(output, n=10)
  152. ```
  153. ```{r, echo=FALSE }
  154. dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  155. dat2<- data.frame(genelistGO=c('CDH24', 'ONECUT2', 'NEBL', 'KAT6A', 'PTGER3', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  156. dat3<- data.frame(genelistKEGG=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR', 'NELL1', 'NR2C2', 'TGFB3', 'BRD1', 'RAD23B', 'PRKDC', 'IGSF10', 'AKIRIN1', 'HACD4', 'C4orf32'))
  157. input<- list(dat1,dat2,dat3)
  158. invisible(capture.output(temp<- wizbionet::cbind_filler(input)))
  159. invisible(capture.output(output<- wizbionet::lists.combiner(temp)))
  160. invisible(capture.output(output<- wizbionet::NCBI_synonyms(output, "input")))
  161. invisible(capture.output(output<- wizbionet::clusterizer_oneR(output, landmark_col="SymbolNCBI", cols_to_cluster="count")
  162. ))
  163. output<-as.data.frame( output)
  164. temp<-kableExtra::kable_styling(knitr::kable(head(output,n=15)),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", )
  165. temp<-kableExtra::column_spec(temp, column=c(9,10), color='red')
  166. temp
  167. ```
  168. ### 7. Clusterization of gene lists using top_percent()
  169. top_percent() is an alternative for **clusterizer_oneR()** which doesn't deal well with continuous numbers like p-values or fold changes. This function enables comparison of data sets of different length.
  170. It is suggested to use it on gene lists which have associated numeric values.
  171. Prioritization of the analyzed gene lists can be based on the scores assigned after data aggregation and counting.
  172. This function helps to avoid arbitrary selection of top candidates, selecting top percent of genes for a given cutoff. It includes all genes close to a cutoff if they have same value. It generates new column with TRUE or FALSE value giving information if our gene was present in the top percents.
  173. ```{r, eval= FALSE }
  174. landmark_col,="SymbolNCBI"
  175. cols_to_cluster="count"
  176. cutoff=25
  177. output<- clusterizer_oneR(output, landmark_col, cols_to_cluster, cutoff)
  178. head(output, n=10)
  179. ```
  180. ```{r, echo=FALSE }
  181. dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  182. dat2<- data.frame(genelistGO=c('CDH24', 'ONECUT2', 'NEBL', 'KAT6A', 'PTGER3', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  183. dat3<- data.frame(genelistKEGG=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR', 'NELL1', 'NR2C2', 'TGFB3', 'BRD1', 'RAD23B', 'PRKDC', 'IGSF10', 'AKIRIN1', 'HACD4', 'C4orf32'))
  184. input<- list(dat1,dat2,dat3)
  185. invisible(capture.output(temp<- wizbionet::cbind_filler(input)))
  186. invisible(capture.output(output<- wizbionet::lists.combiner(temp)))
  187. invisible(capture.output(output<- wizbionet::NCBI_synonyms(output, "input")))
  188. invisible(capture.output(output<- wizbionet::top_percent(output, landmark_col="SymbolNCBI", cols_to_cluster="count", cutoff=25 )))
  189. output<-as.data.frame( output)
  190. temp<-kableExtra::kable_styling(knitr::kable(head(output,n=15)),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", )
  191. temp<-kableExtra::column_spec(temp, column=c(9), color='red')
  192. temp
  193. ```
  194. ### 8. Merging of the multiple data frames with headings preservation using dataframe.merger()
  195. As you can see in the output appeared two columns 'clus_count' and 'clusNR_count'. First column provides logical information if gene was present in the top two clusters (cl1, cl2). Second column provides information in which cluster appeared this gene.
  196. You can combine this data frame with your another data frame prioritized in same way using common column (in this case "SymbolNCBI") and function **dataframe.merger()**.
  197. ```{r, eval= FALSE }
  198. dataframe_list=list('output'=output, 'other_dataframe'=other_dataframe)
  199. ID_column="input"
  200. dataframe.merger(dataframe_list, ID_column="input")
  201. ```
  202. If you are analyzing two data sets using this approach you can select genes present in both of them, so called top genes. This approach enables quick selection of top candidates across multiple datasates.
  203. ```{r, eval= FALSE }
  204. landmark_col="SymbolNCBI"
  205. cols_to_cluster= c("count", 'count_regulatory_miRNA')
  206. output<- clusterizer_oneR(output, landmark_col, cols_to_cluster)
  207. head(output, n=10)
  208. ```
  209. ```{r, echo=FALSE }
  210. dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  211. dat2<- data.frame(genelistGO=c('CDH24', 'ONECUT2', 'NEBL', 'KAT6A', 'PTGER3', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  212. dat3<- data.frame(genelistKEGG=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR', 'NELL1', 'NR2C2', 'TGFB3', 'BRD1', 'RAD23B', 'PRKDC', 'IGSF10', 'AKIRIN1', 'HACD4', 'C4orf32'))
  213. input<- list(dat1,dat2,dat3)
  214. invisible(capture.output(temp<- wizbionet::cbind_filler(input)))
  215. invisible(capture.output(output<- wizbionet::lists.combiner(temp)))
  216. invisible(capture.output(output<- wizbionet::NCBI_synonyms(output, "input")))
  217. output<-output[,c("SymbolNCBI", "count")]
  218. rownames(output)<-NULL
  219. output$count_regulatory_miRNA<- rnorm(n=24, m=65, s=30)
  220. output$count_regulatory_miRNA<- round(output$count_regulatory_miRNA)
  221. landmark_col="SymbolNCBI"
  222. cols_to_cluster= c("count", 'count_regulatory_miRNA')
  223. invisible(capture.output(output<- wizbionet::clusterizer_oneR(output, landmark_col, cols_to_cluster)))
  224. temp<-kableExtra::kable_styling(knitr::kable(head(output,n=15)),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white", )
  225. temp<-kableExtra::column_spec(temp, column=c(4,6), color='red')
  226. temp
  227. ```
  228. ### 9. Aggregation and summarizing of the rows across multiple columns using col_agrecounter()
  229. Function ***col_agrecounter*()*** allows to aggregates and summarize complex data frames with preserving names of the columns and providing:
  230. - aggregated occurrences for example genes or miRNAs in a column with preserved name and suffix "_coll"
  231. - count of occurrences from column "_coll" as collumn with suffix "_count". After this function we suggest runing top_percent() or clusterizer_oneR() to see which miRNAs are the most interesting ones based on the number of regulated targets.
  232. ```{r, eval= FALSE }
  233. #Example
  234. dat1<- data.frame(
  235. mature_miRNA=c('hsa-miR-195-5p', 'hsa-miR-195-3p','hsa-miR-195-5p', 'hsa-miR-195-5p',
  236. 'hsa-miR-4753-5p', 'hsa-miR-4753-3p'),
  237. pre_miRNA=c('hsa-miR-195', 'hsa-miR-195','hsa-miR-195', 'hsa-miR-195',
  238. 'hsa-miR-4753', 'hsa-miR-4753'),
  239. Target=c('CDH24', 'PAX1', 'PTGER3', 'ONECUT2', 'TGFB3', 'FGFR1'))
  240. #set parameters####
  241. #dataframe for aggegation and counting (A&C)
  242. inputDF<-dat1
  243. #selected column names which will be A&C
  244. col_names <- c( "Target")
  245. #landmark column for A&C columns,other columns will be aggregated based on this
  246. col_collapse <- "pre_miRNA"
  247. #vector of content of the landmark column "col_collapse" as vector.
  248. #You can use internal col_to_string() function
  249. rows_collapse <-col_to_string(inputDF$pre_miRNA)
  250. #additional landmark column which will not allow to deduplicate. useful when you want to analyze pre-miRNAs instead of mature mirNAs
  251. control_col<- "mature_miRNA"
  252. #run function
  253. output<- col_agrecounter(inputDF, col_names, col_collapse , rows_collapse, control_col)
  254. ```
  255. ```{r, echo= FALSE }
  256. #Example
  257. dat1<- data.frame(
  258. mature_miRNA=c('hsa-miR-195-5p', 'hsa-miR-195-3p','hsa-miR-195-5p', 'hsa-miR-195-5p',
  259. 'hsa-miR-4753-5p', 'hsa-miR-4753-3p'),
  260. pre_miRNA=c('hsa-miR-195', 'hsa-miR-195','hsa-miR-195', 'hsa-miR-195',
  261. 'hsa-miR-4753', 'hsa-miR-4753'),
  262. Target=c('CDH24', 'PAX1', 'PTGER3', 'ONECUT2', 'TGFB3', 'FGFR1'))
  263. #set parameters####
  264. #dataframe for aggegation and counting (A&C)
  265. inputDF<-dat1
  266. #selected column names which will be A&C
  267. col_names <- c( "Target")
  268. #landmark column for A&C columns,other columns will be aggregated based on this
  269. col_collapse <- "pre_miRNA"
  270. #vector of content of the landmark column "col_collapse" as vector.
  271. #You can use internal col_to_string() function
  272. rows_collapse <-wizbionet::col_to_string(inputDF$pre_miRNA)
  273. #additional landmark column which will not allow to deduplicate. useful when you want to analyze pre-miRNAs instead of mature mirNAs
  274. control_col<- "mature_miRNA"
  275. #run function
  276. output<- wizbionet::col_agrecounter(inputDF, col_names, col_collapse , rows_collapse, control_col)
  277. #names(output)
  278. temp<-kableExtra::kable_styling(knitr::kable(head(output,n=15)),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white", )
  279. temp<-kableExtra::column_spec(temp, column=c(6,7), color='red')
  280. temp
  281. ```
  282. ### 10. Identification of the top genes across datasets
  283. Using base::subset function you can extract top genes which got high scores in both columns in this case "count" and 'count_regulatory_miRNA'.
  284. ```{r, eval= FALSE }
  285. output<-subset(output, output$clus_count==TRUE & output$clus_count_regulatory_miRNA==TRUE )
  286. ```
  287. Example data frame:
  288. ```{r, echo=FALSE }
  289. dat1<- data.frame(genelistGWAS=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  290. dat2<- data.frame(genelistGO=c('CDH24', 'ONECUT2', 'NEBL', 'KAT6A', 'PTGER3', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC'))
  291. dat3<- data.frame(genelistKEGG=c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR', 'NELL1', 'NR2C2', 'TGFB3', 'BRD1', 'RAD23B', 'PRKDC', 'IGSF10', 'AKIRIN1', 'HACD4', 'C4orf32'))
  292. input<- list(dat1,dat2,dat3)
  293. invisible(capture.output(temp<- wizbionet::cbind_filler(input)))
  294. invisible(capture.output(output<- wizbionet::lists.combiner(temp)))
  295. invisible(capture.output(output<- wizbionet::NCBI_synonyms(output, "input")))
  296. output<-output[,c("SymbolNCBI", "count")]
  297. output$count_regulatory_miRNA<- rnorm(n=24, m=65, s=30)
  298. output$count_regulatory_miRNA<- round(output$count_regulatory_miRNA)
  299. landmark_col="SymbolNCBI"
  300. cols_to_cluster= c("count", 'count_regulatory_miRNA')
  301. invisible(capture.output(output<- wizbionet::clusterizer_oneR(output, landmark_col, cols_to_cluster)))
  302. output<-subset(output, output$clus_count==TRUE & output$clus_count_regulatory_miRNA==TRUE )
  303. rownames(output)<-NULL
  304. temp<-kableExtra::kable_styling(knitr::kable(head(output,n=15)),font_size=9, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white", )
  305. temp<-kableExtra::column_spec(temp, column=c(4,6), color='red')
  306. temp
  307. ```
  308. ### 11. Identification of the top miRNAs and top targets using topmiRNA_toptarget()###
  309. As top miRNAs we define miRNAs associated with your process of interest and regulating highest number of deferentially expressed genes (DE genes). If you have expression data for miRNAs and mRNAs you can perform target predictions to identify pairs of oppositely regulated miRNAs and genes use function **topmiRNA_toptarget()**. This function retrieves miRNA-target interactions and identify miRNAs and genes with highest number of analyzed interactions with miRNAs. You can also use only targets associated with a specific process to identify top miRNAs regulating it.
  310. ```{r topmiRNA_toptarget, eval= FALSE }
  311. #generate and modify list of arguments. Important: Don't add mirna= and target= fields they are already included as DEmir_up,DEgenes_down,DEmir_down, DEgenes_up!
  312. multimir_args<- as.list(args(multiMiR::get_multimir))
  313. #add lists of DE miRNAs and genes
  314. DEmir_up<-c('hsa-miR-150-5p','hsa-miR-448-5p','hsa-miR-448-3p',
  315. 'hsa-miR-493-5p','hsa-miR-493-3p') # example DE miRNAs
  316. DEgenes_down<-c('5797','8826','7994','2775','7182','79647','5733',
  317. '158158','9480','8626','50636') # example DE genes
  318. DEmir_down<-c('hsa-miR-4731-5p','hsa-miR-541-3p','hsa-miR-449b-5p','hsa-miR-541-5p')
  319. DEgenes_up<-c('203859','4745','4916','126298','2258','8464','55917','23450','29767')
  320. mirna_type<-"pre_mir" # "mature_mir"
  321. multimir_args= list(url = NULL,
  322. org = "hsa",
  323. table = "all",
  324. predicted.cutoff = 10,
  325. predicted.cutoff.type = "p",
  326. predicted.site = "conserved"
  327. )
  328. #execute function
  329. output<- topmiRNA_toptarget(DEmir_up,DEgenes_down, DEmir_down, DEgenes_up, multimir_args,mirna_type)
  330. #execute function
  331. output<-wizbionet::topmiRNA_toptarget(DEmir_up,DEgenes_down,DEmir_down,
  332. DEgenes_up, mir_type, multimir_args)
  333. output$multimir_output
  334. output$top_miR
  335. output$top_gene
  336. ```
  337. #### Output of the **topmiRNA_toptarget()** is a list() with three data frames named:
  338. ##### **A. multimir_output**
  339. Data frame *multimir_output* is based on original output from the multiMiR::get_multimir(), but integrates two separate analyses for up and down regulated miRNAs. Directionality of expression is shown in the column "multimir". Additionally, at the end of the dataframe is added column "premir" where are present names of analyzed miRNAs before maturation.
  340. ```{r, echo=FALSE}
  341. utils::data(topmiRNA_toptarget_output, package = 'wizbionet')
  342. output<-topmiRNA_toptarget_output$multimir_output
  343. output<-head(output,n=15)
  344. #table
  345. temp<- knitr::kable(output, align="l")
  346. temp<- kableExtra::kable_styling(temp,font_size=8, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white")
  347. temp<-kableExtra::column_spec(temp, column=c(14,15),color="red")
  348. temp<-kableExtra::scroll_box(temp, width = "100%", height = "200px")
  349. temp
  350. ```
  351. ##### **B. top_miR**
  352. Data frame *top_miR* has aggregated and prioritized results from get_multimir output showing number of genes associated with pre-miRNAs. It has columns with name *clus_...* providing logical information if gene was in top 2 clusters (cl1 and cl2) ~top 20 percents and column *clusNR_..*. providing information in which cluster the gene was present (cl1,cl2,cl3,cl4). It enables quick identification of the miRNAs regulating highest number of analyzed targets
  353. ```{r topmiRNA_toptarget: top_miR, echo=FALSE }
  354. utils::data(topmiRNA_toptarget_output, package = 'wizbionet')
  355. output<-topmiRNA_toptarget_output$top_miR
  356. output<-head(output,n=15)
  357. rownames(output)<-NULL
  358. #names(output)
  359. #table
  360. temp<- knitr::kable(output, align="l")
  361. temp<- kableExtra::kable_styling(temp,font_size=8, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white")
  362. temp<-kableExtra::column_spec(temp, column=c(6,7,12,13), color = "red")
  363. temp<-kableExtra::scroll_box(temp, width = "100%", height = "200px")
  364. temp
  365. ```
  366. ##### **C. top_gene**
  367. Data frame *top_gene* has aggregated and prioritized results from get_multimir function showing number of genes associated with analyzed targets. It also has columns with information if gene is in top 20%.
  368. ```{r topmiRNA_toptarget: top_gene, echo=FALSE }
  369. utils::data(topmiRNA_toptarget_output, package = 'wizbionet')
  370. output<-topmiRNA_toptarget_output$top_gene
  371. output<-head(output,n=10)
  372. rownames(output)<-NULL
  373. #names(output)
  374. #table
  375. temp<- knitr::kable(output, align="l")
  376. temp<- kableExtra::kable_styling(temp,font_size=8, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white")
  377. temp<-kableExtra::column_spec(temp, column=c(4,5,6,8), color="red")
  378. temp<- kableExtra::scroll_box(temp, width = "100%", height = "200px")
  379. temp
  380. ```
  381. ### 12. Identification of the top long-non coding RNAs and their targets using lnc_RNARNA_scanner()
  382. Function ***lnc_RNARNA_scanner*** identify targets of lncRNAs by performing automatized mining of the [link](http://rtools.cbrc.jp/cgi-bin/RNARNA/index.pl) database using ENST transcript IDs (ENST_input) as an input. It enables identification of so-called top lncRNAs associated with your process of interest and regulating highest number of deferentially expressed genes (DE genes)
  383. **ENST_input** is a vector of characters (human ENST transcript numbers). RNARNAdb will show information during the analysis if non coding transcript was present in the database. Careful, it sometimes also recognizes miRNAs.
  384. **analyze_onlyDEtargets** TRUE or FALSE (logical), it says if you want to check all possible lncRNA targets or only DE targets.
  385. **ENST_targets** vector of characters of human ENST numbers of your interest, usually DE mRNAs
  386. **nr_top_genes** is a number number of top targets you want to select from all possible targets of lncRNAs. Default value for RNARNA database top targets output set by us is 500 if you want to compare it with DE genes. Your ENST_targets will be subtracted from this number.
  387. ```{r, eval= FALSE }
  388. #Example of the analysis
  389. ENST_input<-c('ENST00000436290', 'ENST00000432892', 'ENST00000454526',
  390. 'ENST00000423793', 'ENST00000436960','ENST00000412754'
  391. )
  392. ENST_targets<-c('ENST00000491143', 'ENST00000314191',
  393. 'ENST00000309733', 'ENST00000377122', 'ENST00000338981',
  394. 'ENST00000495827', 'ENST00000425708', 'ENST00000272748',
  395. ...)
  396. nr_top_genes=500
  397. analyze_onlyDEtargets=FALSE
  398. output<- lnc_RNARNA_scanner(ENST_input, analyze_onlyDEtargets,
  399. ENST_targets ,nr_top_genes)
  400. names(output)
  401. ```
  402. #### lnc_RNARNA_scanner output
  403. Output of **lnc_RNARNA_scanner** function is a list of data frames. To access the lists use $ sign or[[]].
  404. All outputs have column ""full_id" which describes interacting RNAs with your lncRNAs and provide a full name of the lncRNA for example: "List of RNAs interacting with ENST00000423793(RP11-432J22.2)". You can use this column for aggregating and summarizing those datasets using **col_agrecounter()** and than **clusterizer_oneR()**
  405. to obtain top lncRNAs or top targets.
  406. ##### **A. if analyze_onlyDEtargets= was set as TRUE**
  407. The output will include list *"lncRNA_DEtargets"* which has only top DE targets of analyzed lncRNAs
  408. ```{r lnc_RNARNA_scanner: analyze_onlyDEtargets_TRUE, echo=FALSE }
  409. utils::data(lnc_RNARNA_scanner_output, package = 'wizbionet')
  410. output<-lnc_RNARNA_scanner_output$lncRNA_DEtargets
  411. output<-head(output,n=10)
  412. rownames(output)<-NULL
  413. #names(output)
  414. #table
  415. temp<- knitr::kable(output, align="l")
  416. temp<- kableExtra::kable_styling(temp,font_size=8, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white")
  417. temp<-kableExtra::column_spec(temp, column=c(10), color="red")
  418. temp<- kableExtra::scroll_box(temp, width = "100%", height = "200px")
  419. temp
  420. ```
  421. ##### **B. if analyze_onlyDEtargets= was set as FALSE**
  422. The output will include list *"lncRNA_AllTargets"* which has all possible top targets of analyzed lncRNAs
  423. ```{r lnc_RNARNA_scanner: analyze_onlyDEtargets_FALSE, echo=FALSE }
  424. utils::data(lnc_RNARNA_scanner_output, package = 'wizbionet')
  425. output<-lnc_RNARNA_scanner_output$lncRNA_AllTargets
  426. output<-head(output,n=10)
  427. rownames(output)<-NULL
  428. #names(output)
  429. #table
  430. temp<- knitr::kable(output, align="l")
  431. temp<- kableExtra::kable_styling(temp,font_size=8, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white")
  432. temp<-kableExtra::column_spec(temp, column=c(10), color="red")
  433. temp<- kableExtra::scroll_box(temp, width = "100%", height = "200px")
  434. temp
  435. ```
  436. ##### **C. additionally output always has a list "result_lnc_RNAtoRNA_list"**
  437. This list has complete results (including binding sites, location, rank) for each of the analyzed transcripts.
  438. Each transcript has assigned two sub-lists "ENSTnumber_minEnergy" and "ENSTnumber_sumEnergy"
  439. which were used for selection of the top targets. Those dataframes are a raw otput from RNARNA database.
  440. ```{r lnc_RNARNA_scanner: result_lnc_RNAtoRNA_list, echo=FALSE }
  441. utils::data(lnc_RNARNA_scanner_output, package = 'wizbionet')
  442. output<-lnc_RNARNA_scanner_output$result_lnc_RNAtoRNA_list$ENST00000436290_minEnergy
  443. output<-head(output,n=10)
  444. rownames(output)<-NULL
  445. #names(output)
  446. #table
  447. temp<- knitr::kable(output, align="l")
  448. temp<- kableExtra::kable_styling(temp,font_size=8, bootstrap_options = c('condensed'), latex_options=c('scale_down'),full_width = FALSE, position = "left", stripe_color = "white")
  449. temp<-kableExtra::column_spec(temp, column=c(4,5))
  450. temp<- kableExtra::scroll_box(temp, width = "100%", height = "200px")
  451. temp
  452. ```
  453. ### 13. Copying gene list to the clipboard with venny.list()
  454. If you want to quickly check the overlaps betwen the gene lists you can utilize function venny.list()
  455. it will copy to clipboard the vector of characters, remove NAs and duplicates. Additionally it will print the number of collected items. This function was created to use together with the webpage http://bioinfogp.cnb.csic.es/tools/venny/ or paste results to the excel or cytoscape
  456. ```{r eval=FALSE }
  457. genes<-c('SGCD', 'TBC1D8B', 'PTGER3', 'ANO5', 'FGFR1', 'PTGFR','SNTB2', 'USP9Y', 'PTPRM', 'CRIM1', 'BRD1', 'RAD23B', 'PRKDC')
  458. counts<- c(66, 62, 54, 40, 34, 32, 32, 16, 15, 15, 15, 14,10)
  459. input<- data.frame(genes,counts)
  460. wizbionet::venny.list(input$genes)
  461. ```
  462. ## New functions added in wizbionet 1.3.0
  463. The functions below were added in the 1.3.0 update. Examples use small gene / miRNA data frames; set `eval=TRUE` to run them.
  464. ### 14. Updating gene symbols with the 2023 annotation using NCBI_synonyms2023()
  465. Same behaviour as **NCBI_synonyms()** but based on the June 2023 NCBI annotation bundled with the package (`inst/extdata/Homo_sapiens_uncoll_Jun2023.txt.gz`). You can also supply your own annotation table through the `annotation` argument.
  466. ```{r, eval=FALSE }
  467. genelist <- data.frame(symbols = c('EP3', 'SNT3', 'TP53', 'ONECUT2'))
  468. NCBI_synonyms2023(genelist, "symbols")
  469. ```
  470. ### 15. Unifying symbols across several lists using unify_symbols()
  471. Maps every column of gene symbols to official NCBI symbols and binds the unified lists side by side. Choose the 2020 (default) or 2023 annotation.
  472. ```{r, eval=FALSE }
  473. gene_lists <- data.frame(
  474. listGWAS = c('EP3', 'SNT3', 'TP53'),
  475. listGO = c('PTGER3', 'MYC', 'KRAS'))
  476. unify_symbols(gene_lists) # 2020 annotation (default)
  477. unify_symbols(gene_lists, use_2023 = TRUE) # 2023 annotation
  478. ```
  479. ### 16. Collapsing oversized cells using coll_reduction()
  480. Replaces long collapsed gene strings with a `"more than <cutoff>"` label wherever the paired `_COUNT` column exceeds the cutoff. Keeps wide enrichment tables readable.
  481. ```{r, eval=FALSE }
  482. df <- data.frame(
  483. Term = c('Oxidative phosphorylation WP623', 'Apoptosis WP254'),
  484. genes_coll = c('ATP5F1A;NDUFS2;NDUFS1;NDUFV2;NDUFV1', 'BID;BBC3'),
  485. genes_COUNT = c(45, 2))
  486. coll_reduction(df, cutoff = 30)
  487. ```
  488. ### 17. Counting genes overlapping a key vector using count_keyvec()
  489. For each column of separated gene strings, keeps only the genes present in a key vector and reports the overlap count per row.
  490. ```{r, eval=FALSE }
  491. df <- data.frame(
  492. pathway = c('apoptosis', 'MAPK'),
  493. genes = c('TP53;EGFR;MYC', 'KRAS;BRAF'))
  494. count_keyvec(df, cols = 'genes', separator = ';',
  495. genes_vec = c('TP53', 'MYC', 'KRAS'))
  496. ```
  497. ### 18. Reverse-combining logical columns into gene lists using reverse_list_comb()
  498. Extracts the identifiers flagged `TRUE` in each logical column and returns one gene list per column.
  499. ```{r, eval=FALSE }
  500. df <- data.frame(
  501. SymbolNCBI = c('TP53', 'EGFR', 'MYC'),
  502. Hippocampus = c(TRUE, FALSE, TRUE),
  503. Cortex = c(FALSE, FALSE, TRUE))
  504. reverse_list_comb(df, main_col = 'SymbolNCBI')
  505. ```
  506. For a non-gene identifier column (e.g. metabolites) use **rev_lists_comb_other()** with `input_col=`.
  507. ### 19. Aggregating miRNA-target tables across tissues using col_agrecounter_log()
  508. Extends **col_agrecounter()** with a loop over several logical membership columns (e.g. tissues), aggregating and counting targets per key.
  509. ```{r, eval=FALSE }
  510. df <- data.frame(
  511. pre_miRNA = c('hsa-miR-195', 'hsa-miR-195', 'hsa-miR-4753'),
  512. Target = c('CDH24', 'PAX1', 'TGFB3'),
  513. Hippocampus_log = c(TRUE, TRUE, TRUE),
  514. Cortex_log = c(TRUE, FALSE, TRUE))
  515. col_agrecounter_log(df, col_names = 'Target', col_collapse = 'pre_miRNA',
  516. cols_log = c('Hippocampus_log', 'Cortex_log'))
  517. ```
  518. ### 20. Expanding miRNA names using miR_mature()
  519. Splits each miRNA into precursor and mature (`-5p`, `-3p`) query rows for multiMiR.
  520. ```{r, eval=FALSE }
  521. df <- data.frame(miRNA = c('hsa-mir-21', 'hsa-miR-155-5p'))
  522. miR_mature(df, col = 'miRNA')
  523. ```
  524. ### 21. Small helpers: countgenes() and log_to_NR()
  525. ```{r, eval=FALSE }
  526. # encode the number of unique genes into the column names
  527. countgenes(data.frame(listA = c('TP53', 'EGFR', 'TP53'),
  528. listB = c('MYC', 'KRAS', 'BRAF')))
  529. # convert a TRUE/FALSE membership matrix to 1/0
  530. log_to_NR(data.frame(setA = c(TRUE, FALSE), setB = c(FALSE, TRUE)))
  531. ```
  532. ## How to cite
  533. If you use **wizbionet** in your research, please cite the primary article:
  534. > Wicik Z, Jales Neto LH, Guzman LEF, Pavao R, Takayama L, Caparbo VF, Lopes NHM, Pereira AC, Pereira RMR (2021). *The crosstalk between bone metabolism, lncRNAs, microRNAs and mRNAs in coronary artery calcification.* Genomics 113(1 Pt 2):503-513. doi: [10.1016/j.ygeno.2020.09.041](https://doi.org/10.1016/j.ygeno.2020.09.041) (PMID: 32971215).
  535. You can also retrieve this from R with `citation("wizbionet")`.
  536. Some functions rely on external tools and databases; when you use them, please also cite:
  537. - **topmiRNA_toptarget()** uses the multiMiR package and database: Ru Y, Kechris KJ, Tabakoff B, et al. (2014). *The multiMiR R package and database: integration of microRNA-target interactions along with their disease and drug associations.* Nucleic Acids Research 42(17):e133. doi: [10.1093/nar/gku631](https://doi.org/10.1093/nar/gku631).
  538. - **lnc_RNARNA_scanner()** mines the RNARNA database: Terai G, Iwakiri J, Kameda T, Hamada M, Asai K (2016). *Comprehensive prediction of lncRNA-RNA interactions in human transcriptome.* BMC Genomics 17(S1):12. doi: [10.1186/s12864-015-2307-5](https://doi.org/10.1186/s12864-015-2307-5).

vignette_wizbionet.Rmd at commit 6f77972, under MIT · at the source

Overview

Authors: Janusz Szyndler1, Zofia Wicik2, Anna Wierucka3, Piotr Maciejak2, Michał Sobstyl4, Angelika Stapińska-Syniec4, Piotr Glinka4, Karol Piwowarski4, Natalia Chmielewska2
  1. Department of Experimental and Clinical Pharmacology, Center for Preclinical Research and Technology CePT, Medical University of Warsaw, Banacha 1B Street, 02-097 Warsaw, Poland
  2. Department of Experimental and Clinical Neuroscience, Institute of Psychiatry and Neurology, Sobieskiego 9 Street, 02-957 Warsaw, Poland; (Z.W.); (P.M.)
  3. Faculty of Medicine, Medical University of Warsaw, Zwirki and Wigury 61 Street, 02-097 Warsaw, Poland
  4. Department of Neurosurgery, Institute of Psychiatry and Neurology, Warsaw, Poland, Sobieskiego 9 Street 02-957 Warsaw, Poland; (M.S.); (A.S.-S.); (P.G.); (K.P.)
Journal: Brain sciences, volume 16, issue 4, article 347
Dates: received 17 February 2026; accepted 20 March 2026; published online 24 March 2026
Type: Research article · Language: English
License: CC BY
Identifiers: DOI 10.3390/brainsci16040347 · PMID 42041758 · PMCID PMC13115420 · OpenAlex W7140281210
Open access: gold, a free copy (OpenAlex)
Status: code verified (how the code is found and verified)
Categories: other (modality), human (organism), other condition (population), Parkinson's (population), cellular / molecular (subfield)
Methods: Statistics
Keywords: Parkinson’s disease, gliomas, miR-16-5p, miR-32-5p, p53
Topic: MicroRNA in disease regulation (Cancer Research, Biochemistry, Genetics and Molecular Biology), according to OpenAlex
Funding: This study was funded by internal resources of the Department of Experimental and Clinical Pharmacology, Centre for Preclinical Research and Technology CePT, Medical University of Warsaw, and the Department of Experimental and Clinical Neuroscience, Insti (none)
Citations: not cited yet (Europe PMC); 52 references in the paper

Abstract

Highlights: What are the main findings?

A 953 of genes was shared between glioblastoma and Parkinson’s disease (PD), indicating substantial overlap in disease-related molecular pathways.

Plasma levels of miR-16-5p and miR-32-5p were significantly higher in glioma patients compared with PD patients and controls, and miR-16-5p together with p53 were increased in glioblastoma tumor tissue.

What are the implications of the main findings?

miR-16-5p and miR-32-5p may serve as peripheral biomarkers associated with glioma-related molecular pathways.

The shared gene network indicates a potential molecular connection between neurodegeneration and glioma biology. Further studies are needed to identify specific pathways involved in both cell death and proliferation.

Abstract: Objectives: In this study, we explore the molecular basis of the literature-reported inverse association between brain neoplasms and neurodegenerative disorders, including Parkinson’s disease (PD). As miRNAs are post-transcriptional regulators, we selected them as candidates underlying opposite processes of neurodegeneration and glioma development. Methods: We used bioinformatic analyses for disease-gene extraction, miRNA target prediction, enrichment analyses, and miRNA ranking. We identified 953 shared genes between PD and glioblastoma (GBM) in DisGeNET, then prioritized miRNAs predicted to regulate the largest number of shared targets. Next, we collected peripheral blood from patients with PD (n = 12), patients with gliomas (the most advanced—grade IV, n = 10 and grade III n = 3) and controls undergoing spinal surgery for disk pathology (n = 10). Blood samples were obtained pre-operatively in controls and glioma patients. Tumor and peritumoral tissues were obtained from glioma patients, whereas tissue sampling is not feasible in PD. Brain tissues and plasma were analyzed using RT-qPCR (miRNA) and ELISA (p53). Results: We observed increased levels of miR-16-5p (p < 0.05) and p53 protein (p < 0.05) in tumor tissues compared with peritumoral tissue. Additionally, miR-16-5p and miR-32-5p plasma levels were elevated in glioma patients compared with both PD patients (p < 0.01 and p < 0.001, respectively) and controls (p < 0.01 and p < 0.001, respectively). Plasma levels in PD did not differ from controls. Conclusions: Although these analyses highlight miR-16-5p and miR-32-5p as candidate biomarkers associated with glioma related pathways, the results did not provide evidence for the expected opposite regulation between PD and glioma. Future studies with a larger cohort of patients using high-throughput methods are needed to validate these findings and to elucidate the mechanisms driving neurodegeneration or excessive proliferation.

Reproduced under the paper's license (CC BY), from the paper cited above.

Repository

Its files are read in the Code ↔ Paper reader above, with 1 match between paragraphs and lines of code.

wizbionet/wizbionet

License: MIT
State: the link answers, verified on 30 September 2026
Evidence: files inventoried
Commit: 6f779729014c54ec96a5efc1afb6e997af543d06, 21 July 2026
Languages: R (39)
Size: 87 files, 39 scripts
Software Heritage: archived
Found in: the text, “2.1. Bioinformatic Assessment”
Holds: README, license file, environment (DESCRIPTION), tests, continuous integration, documentation, 3 notebooks
Not found: CITATION.cff
Tools: tidyverse (10 files), data.table (1 file)
Availability: 1 check, the latest on 30 September 2026: the link answers
  • 30 September 2026: the link answers
41 files

Tracing map

Proposed by the machine: these links were found in the paper and verified at the source, without human review. The map will receive a Zenodo DOI once one of the paper's authors has validated it with their ORCID.

What the map holds:

  • 1 repository of the authors' code, each at its verified commit, with its license and how the link was found in the paper;
  • 39 scripts, each with its path and the digest of its content;
  • 1 match between paragraphs of the paper and lines of the code (method lexical-v1);
  • neither the text of the paper nor the code itself.

Its JSON (tracing-map.json) is deposited on Zenodo with its DOI once the map is validated.

Data

No dataset and no data link were found in the paper.

Data Availability Statement

Data supporting the findings of this study are available from the corresponding author upon request. The results of the bioinformatic analyses are provided in Supplementary Table S1.

Reproduced under the paper's license (CC BY), from the paper cited above.

Versions

The history of this record: each version stored by the harvester or made by a correction of its authors or of the maintainers of its code, and what changed in its facts. The texts of the paper (its abstract, its availability statements) are not part of it; versions that changed only those are not listed.

Version 1, 30 September 2026: the first record

Recorded: type, language, journal, volume, issue, pages, dates, 9 authors, 5 keywords, 1 funder, 52 references.

Cite

This paper

Szyndler, J., Wicik, Z., Wierucka, A., Maciejak, P., Sobstyl, M., Stapińska-Syniec, A., Glinka, P., Piwowarski, K., & Chmielewska, N. (2026). In Silico-Identified miR-16-5p and miR-32-5p as a Shared Molecular Signature of Primary Gliomas and Parkinson's Disease: Plasma Levels Are Increased Only in Glioma Patients. Brain sciences, 16(4), 347. https://doi.org/10.3390/brainsci16040347

BibTeX

@article{szyndler2026silico,
author = {Szyndler, Janusz and Wicik, Zofia and Wierucka, Anna and Maciejak, Piotr and Sobstyl, Michał and Stapińska-Syniec, Angelika and Glinka, Piotr and Piwowarski, Karol and Chmielewska, Natalia},
title = {{In Silico-Identified miR-16-5p and miR-32-5p as a Shared Molecular Signature of Primary Gliomas and Parkinson's Disease: Plasma Levels Are Increased Only in Glioma Patients}},
journal = {Brain sciences},
year = {2026},
month = mar,
volume = {16},
number = {4},
pages = {347},
publisher = {Multidisciplinary Digital Publishing Institute (MDPI)},
issn = {2076-3425},
doi = {10.3390/brainsci16040347},
url = {https://doi.org/10.3390/brainsci16040347},
pmid = {42041758},
pmcid = {PMC13115420}
}

RIS

TY - JOUR
AU - Szyndler, Janusz
AU - Wicik, Zofia
AU - Wierucka, Anna
AU - Maciejak, Piotr
AU - Sobstyl, Michał
AU - Stapińska-Syniec, Angelika
AU - Glinka, Piotr
AU - Piwowarski, Karol
AU - Chmielewska, Natalia
TI - In Silico-Identified miR-16-5p and miR-32-5p as a Shared Molecular Signature of Primary Gliomas and Parkinson's Disease: Plasma Levels Are Increased Only in Glioma Patients
T2 - Brain sciences
J2 - Brain Sci
PY - 2026
DA - 2026/03/24
VL - 16
IS - 4
SP - 347
SN - 2076-3425
PB - Multidisciplinary Digital Publishing Institute (MDPI)
DO - 10.3390/brainsci16040347
UR - https://doi.org/10.3390/brainsci16040347
LA - en
ER -

CSL-JSON

{
"id": "10.3390/brainsci16040347",
"type": "article-journal",
"title": "In Silico-Identified miR-16-5p and miR-32-5p as a Shared Molecular Signature of Primary Gliomas and Parkinson's Disease: Plasma Levels Are Increased Only in Glioma Patients",
"container-title": "Brain sciences",
"author": [
{
"family": "Szyndler",
"given": "Janusz"
},
{
"family": "Wicik",
"given": "Zofia"
},
{
"family": "Wierucka",
"given": "Anna"
},
{
"family": "Maciejak",
"given": "Piotr"
},
{
"family": "Sobstyl",
"given": "Michał"
},
{
"family": "Stapińska-Syniec",
"given": "Angelika"
},
{
"family": "Glinka",
"given": "Piotr"
},
{
"family": "Piwowarski",
"given": "Karol"
},
{
"family": "Chmielewska",
"given": "Natalia"
}
],
"container-title-short": "Brain Sci",
"volume": "16",
"issue": "4",
"page": "347",
"DOI": "10.3390/brainsci16040347",
"PMID": "42041758",
"PMCID": "PMC13115420",
"ISSN": "2076-3425",
"publisher": "Multidisciplinary Digital Publishing Institute (MDPI)",
"URL": "https://doi.org/10.3390/brainsci16040347",
"language": "en",
"issued": {
"date-parts": [
[
2026,
3,
24
]
]
}
}

The tracing map gets a citation of its own once an author has validated it and it has a DOI.

Similar papers

The papers with a page that share the most with this one: the tools found in their code, their categories, datasets, cited references and authors, the rarest counting most.

[1] doi:10.3389/fonc.2023.1158773
MicroRNAs miR-16 and miR-519 control meningioma cell proliferation &lt;i&gt;via&lt;/i&gt; overlapping transcriptomic programs shared with the RNA-binding protein HuR.
Journal: Frontiers in oncology
In common: other condition, cellular / molecular, 2 references
[2] doi:10.1186/s13073-023-01175-6 [code]
Stalled oligodendrocyte differentiation in IDH-mutant gliomas.
Journal: Genome medicine
In common: data.table, tidyverse, other condition, cellular / molecular, 1 reference
[3] doi:10.1038/s41746-024-01175-9 [code]
Identification of Parkinson's disease PACE subtypes and repurposing treatments through integrative analyses of multimodal data.
Journal: NPJ digital medicine
In common: tidyverse, Parkinson's, 2 references
[4] doi:10.1016/j.heliyon.2025.e42445 [code]
A bird's eye view to the homeostatic, Alzheimer and Glioblastoma attractors.
Journal: Heliyon
In common: other condition, 2 references
[5] doi:10.1126/sciadv.adr1481 [code]
Modulation of blood-tumor barrier transcriptional programs improves intratumoral drug delivery and potentiates chemotherapy in GBM.
Journal: Science advances
In common: tidyverse, other condition, cellular / molecular, 2 references
[6] doi:10.1111/jcmm.70098
Inhibition of circular JUN prevents the proliferation and invasion of glioblastoma via miR-3064-IGFBP5 axis.
Journal: Journal of cellular and molecular medicine
In common: other condition, cellular / molecular, 2 references
[7] doi:10.1038/s43018-025-00976-5 [code]
crossNN is an explainable framework for cross-platform DNA methylation-based classification of tumors.
Journal: Nature cancer
In common: data.table, tidyverse, other condition, 1 reference
[8] doi:10.1016/j.xgen.2023.100340 [code]
OpenPBTA: The Open Pediatric Brain Tumor Atlas.
Journal: Cell genomics
In common: data.table, tidyverse, other condition, 1 reference
[9] doi:10.3390/genes15040483
LncRNA NDUFA6-DT: A Comprehensive Analysis of a Potential LncRNA Biomarker and Its Regulatory Mechanisms in Gliomas.
Journal: Genes
In common: other condition, 2 references
[10] doi:10.1093/neuonc/noaf234 [code]
A non-local diffusion magnetic resonance imaging tract density biomarker to stratify, predict, and interpret survival rates in human glioblastoma.
Journal: Neuro-oncology
In common: other condition, 2 references

Contribute

The authors of this paper can claim it, correct its record and validate its tracing map, and the maintainers of its code (its owner, or a public member of its organization) correct what it says of their repository; anyone signed in can ask for its removal. Every request goes to OSCR's own machine, which answers it; your account page follows them.

Sign in with ORCID to claim this paper as one of its authors, correct its record or validate its tracing map: when the paper's metadata lists your ORCID iD, you are recognized at once. Maintainers of its code: sign in with GitHub, then claim the repository on your account page.

Add the badge to the code's README

OSCR: the badge of this paper

If you are an author or a maintainer of this paper's code, you can add this badge. It says what OSCR knows of the paper (its code, its validated tracing map) and links the code to this page. Paste one of these snippets under the README's title. Keep the two marks around it, so that the badge can be replaced in place and is never added twice. OSCR changes nothing in your repository.

Markdown
<!-- oscr-badge:start -->
[![OSCR](https://openscicode.org/badge/doi/10.3390/brainsci16040347.svg)](https://openscicode.org/badge/doi/10.3390/brainsci16040347)
<!-- oscr-badge:end -->
reStructuredText
.. oscr-badge:start

.. image:: https://openscicode.org/badge/doi/10.3390/brainsci16040347.svg
   :target: https://openscicode.org/badge/doi/10.3390/brainsci16040347
   :alt: OSCR

.. oscr-badge:end
HTML
<!-- oscr-badge:start -->
<a href="https://openscicode.org/badge/doi/10.3390/brainsci16040347"><img src="https://openscicode.org/badge/doi/10.3390/brainsci16040347.svg" alt="OSCR"></a>
<!-- oscr-badge:end -->

On GitHub, open the README, choose Edit (the pencil), paste the snippet under the title, then "Commit changes".

If you choose to, you can have the badge kept up to date for you, with oscr badge --write from the command line or with the GitHub Action in your repository's workflows. Every other form and option (a card, AsciiDoc, LaTeX, shields.io) is on the badge page.

Request its removal

To ask OSCR to remove this record, the copies of its authors' scripts or its tracing map, use the removal request page: signed in, you say who you are, what to remove and why, then review and confirm the request. Published rules decide every request (how).

Discussion, reproductions, activity

Discussion: code errors and mismatches between the code and the paper about this paper and its code, from readers and its authors, beside the paper and its tracing map.

Report a mismatch between the code and the paper · Report a code error (signed in)

Reproductions: reports from readers who ran the authors' code and did not get the paper's result, what they ran, with which environment, commit and data.

Report a reproduction failure (signed in)

Versions of its code: the releases of its code tied to a version of this paper (the preprint, the accepted manuscript, the version of record…), each with the tracing map versioned with it.

Activity: what happens around this paper: new versions of its record, its map's validation, discussions and reproductions. It opens with sign-in.