Trading of counterfeit medicines is a profitable business. If a quality of such product meets consumers’ need, consumers could benefit form such products even when it falls under the quality standard set by stringent medicine regulatory agencies.
Though these are not always true, oral medicines that are often encapsulated have a slower rate of absorption than parenteral medicines and a lower propensity to cause a rapid or perceivable toxic effect. Also, oral medicines do not require additional material to furnish, such as syringe. From these charasteristics as well as their number of products traded in the legitimate market, oral drugs have been preferred by illegitimate pharmaceutical entrepreneurs.
The aims of analysis were to compare the trend of counterfeit drug reporting, including cases not confirmed, between administration routes, using the US-FDA FAERS quarterly datasets during years from 2013 to 2016. My assumption is that the reporting of suspicousness itself could indicate consumer’s or prescriber’s uncertainity about drug sources, irrespective of the product authenticity.
Results suggest that the number of cases for oral and injectable drugs decreased from year 2015 to year 2016. In contrast, the number of cases with inhalational and topical dugs slightly increased, although these numbers were much smaller than those for oral and injectables drugs. The limitation is that the US-FDA FAERS collects spontaneous reporting therefore that the datasets are unlikely to have captured all cases.
Files in the csv format were used. https://www.fda.gov/Drugs/GuidanceComplianceRegulatoryInformation/Surveillance/AdverseDrugEffects/ucm082193.htm
setwd("/Volumes/LaCie/FAERS/")
directories <- dir()
cl <- makeCluster(3)
registerDoParallel(cl)
caseid_fake <- foreach(i = 1: length(directories), .combine = c) %dopar% {
setwd(paste0("/Volumes/LaCie/FAERS/", directories[i], "/ascii"))
files <- grep("txt", dir(), value = T)
files <- grep("^REAC", files, value = TRUE)
data<-read.csv(files, header = TRUE, sep = "$")
data[grep("counterfeit", data$pt, ignore.case = TRUE), "caseid"]
}
stopCluster(cl)
setwd("/Volumes/LaCie/FAERS")
directories <- dir()
cl <- makeCluster(3)
registerDoParallel(cl)
drug <- foreach(i = 1: length(directories), .combine = rbind) %dopar% {
setwd(paste0("/Volumes/LaCie/FAERS/", directories[i], "/ascii"))
files <- grep("txt", dir(), value = T)
files <- grep("^DRUG", files, value = TRUE)
data<-read.csv(files, header = TRUE, sep = "$")
data[data$caseid %in% caseid_fake & data$role_cod == "PS",
c("caseid", "drugname", "route")]
}
drug[]<-parLapply(cl, drug, as.character)
stopCluster(cl)
setwd("/Volumes/LaCie/FAERS")
directories <- dir()
cl <- makeCluster(3)
registerDoParallel(cl)
date <- foreach(i = 1: length(directories), .combine = rbind) %dopar% {
setwd(paste0("/Volumes/LaCie/FAERS/", directories[i], "/ascii"))
files <- grep("txt", dir(), value = T)
files <- grep("^DEMO", files, value = TRUE)
data<-read.csv(files, header = TRUE, sep = "$")
data[data$caseid %in% caseid_fake, c("caseid", "fda_dt", "occp_cod","occr_country")]
}
date[] <- parLapply(cl, date, as.character)
stopCluster(cl)
data <- merge(drug, date, by="caseid")
data$drugname <- toupper(data$drugname)
data$route <- toupper(data$route)
data[] <- lapply(data, as.character)
data$route <- toupper(data$route) %>% str_replace_all("-", "") %>% str_extract("[A-Z]+")
data$route[is.na(data$route)] <- "UNKNOWN"
data$occp_cod[data$occp_cod ==""] <- "UNKNOWN"
data$occr_country[data$occr_country ==""] <- "UNKNOWN"
Table 1 Route of Administration as reported in the datasets
cat("Frequency of Drug Administration Route, as was in the database")
## Frequency of Drug Administration Route, as was in the database
data$route %>% table
## .
## INHALATION INTRAMUSCULAR INTRAOCULAR INTRAUTERINE INTRAVENOUS
## 6 9 2 7 30
## NASAL OPHTHALMIC ORAL OTHER RESPIRATORY
## 5 16 623 37 17
## SUBCUTANEOUS SUBDERMAL TOPICAL TRANSDERMAL TRANSPLACENTAL
## 17 1 14 5 4
## UNKNOWN VAGINAL
## 614 6
Table 2 Route of Administration, recategorized
data$route[data$route %in% c("INHALATION", "RESPIRATORY")] <- "INHALATIONAL"
data$route[grep("^INTRA|^SUB|^TRANS", data$route) ] <- "INJECTABLES"
data$route[data$route %in% c("NASAL", "OPHTHALMIC", "TOPICAL","VAGINAL")] <- "TOPICAL"
cat("Frequency of Drug Administration Routes, recategorized")
## Frequency of Drug Administration Routes, recategorized
data$route %>% table
## .
## INHALATIONAL INJECTABLES ORAL OTHER TOPICAL
## 23 75 623 37 41
## UNKNOWN
## 614
Table 3 Drug Name with Unknown Route of Administration
This table shows drugs that had 5 or more records of counterfeit incindents.
data %>% filter(route=="UNKNOWN") %>% group_by(drugname) %>% summarise(Number_of_Cases = n()) %>% arrange(desc(Number_of_Cases)) %>% filter(Number_of_Cases > 5)
## # A tibble: 17 × 2
## drugname Number_of_Cases
## <chr> <int>
## 1 VIAGRA 135
## 2 CIALIS 117
## 3 CYMBALTA 30
## 4 ALPRAZOLAM. 17
## 5 GLUCOBAY 16
## 6 HYDROCODONE/ACETAMINOPHEN 15
## 7 AVASTIN 9
## 8 CELEBREX 9
## 9 FENTANYL TRANSDERMAL SYSTEM 9
## 10 NOVOTHYROX 9
## 11 ADVIL 8
## 12 XANAX 8
## 13 SILDENAFIL CITRATE. 7
## 14 ABILIFY 6
## 15 FENTANYL. 6
## 16 LEVITRA 6
## 17 PREMARIN 6
The total number of drugs, route of which was recorded as ‘blank’ or unknown:
data %>% filter(route=="UNKNOWN") %>% group_by(drugname) %>% summarise(Number_of_Cases = n()) %>% arrange(desc(Number_of_Cases)) %>% select(drugname) %>% unlist %>% length
## [1] 164
Figure 1. The Number of Counterfeit Case by Route of Administration
Year <- data$fda_dt %>% str_extract("201[0-9]") %>% as.numeric()
data$Year <- Year %>% as.factor()
data %>% select(Year, route) %>% group_by(Year, route) %>% summarise(Number_Incident=n()) %>%
ggplot(aes(Year, Number_Incident, group=route)) + geom_point(aes(shape = route, color = route), size=4) +geom_line() + ggtitle("Counterfeit Cases Recorded in US-FDA FAERS\n All routes, 2013 to 2016") +ylab("Number of Cases")
Figure 2. The Number of Counterfeit Case by Route of Administration
Year <- data$fda_dt %>% str_extract("201[0-9]") %>% as.numeric()
data$Year <- Year %>% as.factor()
data %>% filter(route %in% c("INJECTABLES","INHALATIONAL","TOPICAL")) %>% select(Year, route) %>% group_by(Year, route) %>% summarise(Number_Incident=n()) %>%
ggplot(aes(Year, Number_Incident, group=route)) + geom_point(aes(shape = route, color = route), size=4) +geom_line() + ggtitle("Counterfiet Cases for INHALATION, INJECTABLE and TOPICAL Drugs\n 2013 to 2016") +ylab("Number of Cases") + ylim(0,50)
Figure 3. The Reporting Person by Profession
Year <- data$fda_dt %>% str_extract("201[0-9]") %>% as.numeric()
data$Year <- Year %>% as.factor()
data$occp_cod[data$occp_cod == "CN"] <- "CONSUMER"
data$occp_cod[data$occp_cod == "LW"] <- "LAWYER"
data$occp_cod[data$occp_cod == "MD"] <- "PHYSICIAN"
data$occp_cod[data$occp_cod == "OT"] <- "OTHER PROFESSIONAL"
data$occp_cod[data$occp_cod == "PH"] <- "PHARMACIST"
data %>% select(Year, occp_cod, occr_country) %>% group_by(Year, occp_cod) %>% summarise(num=n()) %>%
ggplot(aes(Year, num, group = occp_cod)) + geom_point(aes(shape = occp_cod, color = occp_cod), size=4) +geom_line() + ggtitle("Reporter's Occupation (occp_cod)\n 2013 to 2016") +ylab("Number of Cases") + ylim(0,500)