NestLink 1.10.0
The following content is described in more detail in Egloff et al. (2018), (under review NMETH-A35040).
library(NestLink)
library(ExperimentHub)
eh <- ExperimentHub()
## snapshotDate(): 2021-10-18
query(eh, "NestLink")
## ExperimentHub with 8 records
## # snapshotDate(): 2021-10-18
## # $dataprovider: Functional Genomics Center Zurich (FGCZ)
## # $species: NA
## # $rdataclass: data.frame, DNAStringSet
## # additional mcols(): taxonomyid, genome, description,
## # coordinate_1_based, maintainer, rdatadateadded, preparerclass, tags,
## # rdatapath, sourceurl, sourcetype
## # retrieve records with, e.g., 'object[["EH2063"]]'
##
## title
## EH2063 | Sample NGS NB FC linkage data
## EH2064 | Flycodes tryptic digested
## EH2065 | Nanobodies tryptic digested
## EH2066 | FASTA as ground-truth for unit testing
## EH2067 | Known nanobodies
## EH2068 | Quantitaive results for SMEG and COLI
## EH2069 | F255744 Mascot Search result
## EH2070 | WU160118 Mascot Search results
# dataFolder <- file.path(path.package(package = 'NestLink'), 'extdata')
# expFile <- list.files(dataFolder, pattern='*.fastq.gz', full.names = TRUE)
expFile <- query(eh, c("NestLink", "NL42_100K.fastq.gz"))[[1]]
## see ?NestLink and browseVignettes('NestLink') for documentation
## loading from cache
scratchFolder <- tempdir()
setwd(scratchFolder)
For data QC some known NB were spiked in. Here, we load the NB DNA sequences and translate them to the corresponding AA sequences.
# knownNB_File <- list.files(dataFolder,
# pattern='knownNB.txt', full.names = TRUE)
knownNB_File <- query(eh, c("NestLink", "knownNB.txt"))[[1]]
## see ?NestLink and browseVignettes('NestLink') for documentation
## loading from cache
knownNB_data <- read.table(knownNB_File, sep='\t',
header = TRUE, row.names = 1, stringsAsFactors = FALSE)
knownNB <- Biostrings::translate(DNAStringSet(knownNB_data$Sequence))
names(knownNB) <- rownames(knownNB_data)
knownNB <- sapply(knownNB, toString)
The workflow uses the first 100 reads only for a rapid processing time.
param <- list()
param[['nReads']] <- 100 #Number of Reads from the start of fastq file to process
param[['maxMismatch']] <- 1 #Number of accepted mismatches for all pattern search steps
param[['NB_Linker1']] <- "GGCCggcggGGCC" #Linker Sequence left to nanobody
param[['NB_Linker2']] <- "GCAGGAGGA" #Linker Sequence right to nanobody
param[['ProteaseSite']] <- "TTAGTCCCAAGA" #Sequence next to flycode
param[['FC_Linker']] <- "GGCCaaggaggcCGG" #Linker Sequence next to flycode
param[['knownNB']] <- knownNB
param[['minRelBestHitFreq']] <- 0.8 #minimal fraction of the dominant nanobody for a specific flycode
param[['minConsensusScore']] <- 0.9 #minimal fraction per sequence position in nanabody consensus sequence calculation
param[['minNanobodyLength']] <- 348 #minimal nanobody length in [nt]
param[['minFlycodeLength']] <- 33 #minimal flycode length in [nt]
param[['FCminFreq']] <- 1 #minimal number of subreads for a specific flycode to keep it in the analysis
The following steps are included:
system.time(NB2FC <- runNGSAnalysis(file = expFile[1], param))
## user system elapsed
## 1.915 0.112 2.027
head(NB2FC, 2)
## NB
## 1 SQVQLVESGGGLVQAGGSLRLSCAASGFPVEAHRMYWYRQAPGKEREWVAAISSKGQQTWYADSVKGRFTISRDNAKNTVYLQMNSLKPEDTAVYYCNVKDYGWYYGDYDYWGQGTQVTVS
## 2 SQVQLVESGGGLVQAGGSLRLSCAASGFPVSWTKMYWYRQAPGKEREWVAAIWSTGSWTKYADSVKGRFTISRDNAKNTVYLQMNSLKPEDTAVYYCNVKDKGHQHAHYDYWGQGTQVTVS
## FlycodeCount
## 1 29
## 2 3
## AssociatedFlycodes
## 1 GSAAATAVTWR,GSADGQETDWR,GSADVPEAVWLTVR,GSAPTAPVSWQEGGR,GSAVDPVTVWLTVR,GSDAEGVAAWQSR,GSDAEYTTAWR,GSDDTDETDWR,GSDEAEEEGWQEGGR,GSDPGTDDEWQSR,GSDTEDWEEWQSR,GSDVWDTAVWLTVR,GSEGTDAVGWLTVR,GSEPASEVVWQEGGR,GSEPDVYTAWLTVR,GSEVLDGDEWR,GSFVASFAVWLTVR,GSGDVEGEAWQEGGR,GSGPDPPYGWLR,GSPAVDPPVWLTVR,GSPDEVEVVWLTVR,GSPDSPPAYWLTVR,GSPTVVTFLWR,GSQYTLTPTWLTVR,GSSDAASPSWLTVR,GSTGEDGVVWLTVR,GSTVVTSDPWLTVR,GSVDDQPDTWQEGGR,GSYTPGSTSWQSR
## 2 GSADFPVVAWLR,GSAEVDEADWQEGGR,GSEPDVAAGWQSR
## NB_Name
## 1
## 2
head(nanobodyFlycodeLinking.as.fasta(NB2FC))
## [1] ">NB0001 FC29 SQVQLVESGGGLVQAGGSLRLSCAASGFPVEAHRMYWYRQAPGKEREWVAAISSKGQQTWYADSVKGRFTISRDNAKNTVYLQMNSLKPEDTAVYYCNVKDYGWYYGDYDYWGQGTQVTVS\nGSAAATAVTWRGSADGQETDWRGSADVPEAVWLTVRGSAPTAPVSWQEGGRGSAVDPVTVWLTVRGSDAEGVAAWQSRGSDAEYTTAWRGSDDTDETDWRGSDEAEEEGWQEGGRGSDPGTDDEWQSRGSDTEDWEEWQSRGSDVWDTAVWLTVRGSEGTDAVGWLTVRGSEPASEVVWQEGGRGSEPDVYTAWLTVRGSEVLDGDEWRGSFVASFAVWLTVRGSGDVEGEAWQEGGRGSGPDPPYGWLRGSPAVDPPVWLTVRGSPDEVEVVWLTVRGSPDSPPAYWLTVRGSPTVVTFLWRGSQYTLTPTWLTVRGSSDAASPSWLTVRGSTGEDGVVWLTVRGSTVVTSDPWLTVRGSVDDQPDTWQEGGRGSYTPGSTSWQSR\n"
## [2] ">NB0002 FC3 SQVQLVESGGGLVQAGGSLRLSCAASGFPVSWTKMYWYRQAPGKEREWVAAIWSTGSWTKYADSVKGRFTISRDNAKNTVYLQMNSLKPEDTAVYYCNVKDKGHQHAHYDYWGQGTQVTVS\nGSADFPVVAWLRGSAEVDEADWQEGGRGSEPDVAAGWQSR\n"
## [3] ">NB0003 FC1 SQVQLVESGGGLVQAGGSLRLSCAASGFPVSWWKMYWYRQAPGKEREWVAAIWSEGWWTKYADSVKGRFTISRDNAKNTVYLQMNSLKPEDTAVYYCNVKDYGGENANYDYWGQGTQVTVS\nGSDGTTEDAWQEGGR\n"
## [4] ">NB0004 FC1 SQVQLVESGGGLVQAGGSLRLSCAASGFPVEWSWMYWYRQAPGKEREWVAAIYSQGRGTEYADSVKGRFTISRDNAKNTVYLQMNSLKPEDTAVYYCNVKDYGWWYGDYDYWGQGTQVTVS\nGSEEAADPAWR\n"
## [5] ">NB0005 FC1 SQVQLVESGGGLVQAGGSLRLSCAASGFPVEAHRMYWYRQAPGKEREWVAAISSKGQQTWYADSVKGRFTISRDNAKNTVYLQMNSLEPEDTAVYYCNVKDYGWYYGDYDYWGQGTQVTVS\nGSEEAEATWWR\n"
## [6] ">NB0006 FC2 SQVQLVESGGGLVQAGGSLRLSCAASGFPVEENFMYWYRQAPGKEREWVAAIYSHGYETEYADSVKGRFTISRDNAKNTVYLQMNSLKPEDTAVYYCNVKDQGYWWWEYDYWGQGTQVTVS\nGSGLPATPAWLRGSTDAEEGVWLTVR\n"
To analyze the expressed flycodes mass spectrometry is used.
the FASTA file containing the nanobody - flycode linkage can
be written to a file using functions such as cat
.
The exec directory provides alternative shell scripts using command line GNU tools and AWK.
Here is the output of the sessionInfo()
command.
## R version 4.1.1 (2021-08-10)
## Platform: x86_64-pc-linux-gnu (64-bit)
## Running under: Ubuntu 20.04.3 LTS
##
## Matrix products: default
## BLAS: /home/biocbuild/bbs-3.14-bioc/R/lib/libRblas.so
## LAPACK: /home/biocbuild/bbs-3.14-bioc/R/lib/libRlapack.so
##
## locale:
## [1] LC_CTYPE=en_US.UTF-8 LC_NUMERIC=C
## [3] LC_TIME=en_GB LC_COLLATE=C
## [5] LC_MONETARY=en_US.UTF-8 LC_MESSAGES=en_US.UTF-8
## [7] LC_PAPER=en_US.UTF-8 LC_NAME=C
## [9] LC_ADDRESS=C LC_TELEPHONE=C
## [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C
##
## attached base packages:
## [1] stats4 stats graphics grDevices utils datasets methods
## [8] base
##
## other attached packages:
## [1] scales_1.1.1 ggplot2_3.3.5
## [3] NestLink_1.10.0 ShortRead_1.52.0
## [5] GenomicAlignments_1.30.0 SummarizedExperiment_1.24.0
## [7] Biobase_2.54.0 MatrixGenerics_1.6.0
## [9] matrixStats_0.61.0 Rsamtools_2.10.0
## [11] GenomicRanges_1.46.0 BiocParallel_1.28.0
## [13] protViz_0.7.0 gplots_3.1.1
## [15] Biostrings_2.62.0 GenomeInfoDb_1.30.0
## [17] XVector_0.34.0 IRanges_2.28.0
## [19] S4Vectors_0.32.0 ExperimentHub_2.2.0
## [21] AnnotationHub_3.2.0 BiocFileCache_2.2.0
## [23] dbplyr_2.1.1 BiocGenerics_0.40.0
## [25] BiocStyle_2.22.0
##
## loaded via a namespace (and not attached):
## [1] nlme_3.1-153 bitops_1.0-7
## [3] bit64_4.0.5 RColorBrewer_1.1-2
## [5] filelock_1.0.2 httr_1.4.2
## [7] tools_4.1.1 bslib_0.3.1
## [9] utf8_1.2.2 R6_2.5.1
## [11] KernSmooth_2.23-20 mgcv_1.8-38
## [13] colorspace_2.0-2 DBI_1.1.1
## [15] withr_2.4.2 tidyselect_1.1.1
## [17] bit_4.0.4 curl_4.3.2
## [19] compiler_4.1.1 DelayedArray_0.20.0
## [21] labeling_0.4.2 bookdown_0.24
## [23] sass_0.4.0 caTools_1.18.2
## [25] rappdirs_0.3.3 stringr_1.4.0
## [27] digest_0.6.28 rmarkdown_2.11
## [29] jpeg_0.1-9 pkgconfig_2.0.3
## [31] htmltools_0.5.2 highr_0.9
## [33] fastmap_1.1.0 rlang_0.4.12
## [35] RSQLite_2.2.8 shiny_1.7.1
## [37] farver_2.1.0 jquerylib_0.1.4
## [39] generics_0.1.1 hwriter_1.3.2
## [41] jsonlite_1.7.2 gtools_3.9.2
## [43] dplyr_1.0.7 RCurl_1.98-1.5
## [45] magrittr_2.0.1 GenomeInfoDbData_1.2.7
## [47] Matrix_1.3-4 munsell_0.5.0
## [49] Rcpp_1.0.7 fansi_0.5.0
## [51] lifecycle_1.0.1 stringi_1.7.5
## [53] yaml_2.2.1 zlibbioc_1.40.0
## [55] grid_4.1.1 blob_1.2.2
## [57] parallel_4.1.1 promises_1.2.0.1
## [59] crayon_1.4.1 lattice_0.20-45
## [61] splines_4.1.1 KEGGREST_1.34.0
## [63] magick_2.7.3 knitr_1.36
## [65] pillar_1.6.4 codetools_0.2-18
## [67] glue_1.4.2 BiocVersion_3.14.0
## [69] evaluate_0.14 latticeExtra_0.6-29
## [71] BiocManager_1.30.16 png_0.1-7
## [73] vctrs_0.3.8 httpuv_1.6.3
## [75] gtable_0.3.0 purrr_0.3.4
## [77] assertthat_0.2.1 cachem_1.0.6
## [79] xfun_0.27 mime_0.12
## [81] xtable_1.8-4 later_1.3.0
## [83] tibble_3.1.5 AnnotationDbi_1.56.1
## [85] memoise_2.0.0 ellipsis_0.3.2
## [87] interactiveDisplayBase_1.32.0
Egloff, Pascal, Iwan Zimmermann, Fabian M. Arnold, Cedric A.J. Hutter, Damien Damien Morger, Lennart Opitz, Lucy Poveda, et al. 2018. “Engineered Peptide Barcodes for In-Depth Analyses of Binding Protein Ensembles.” bioRxiv. https://doi.org/10.1101/287813.