Giter Site home page Giter Site logo

tapseq's Introduction

TAPseq

An R-package to design PCR primers for TAP-seq published in Nature Methods, 2020. TAPseq is available through Bioconductor.

Installation

This package requires local installations of Primer3 and BLASTn. TAPseq has been developed and tested using Primer3 v.2.5.0 and blastn v.2.6.0. It's strongly suggested to use Primer3 >= 2.5.0! Earlier versions require a primer3_config directory, which needs to be provided whenever calling functions interacting with Primer3. Source code and installation instructions can be found under:

Primer3: https://github.com/primer3-org/primer3/releases
BLASTn: https://www.ncbi.nlm.nih.gov/books/NBK279690/

Please install these tools first and add them to your PATH. If you don't want to add the tools to your "global" PATH, you can add the following code to an ~/.Rprofile file. This should add the tools to your PATH in R whenever you start a new session.

Sys.setenv(PATH = paste("/full/path/to/primer3-x.x.x/src", Sys.getenv("PATH"), sep = ":"))

Sys.setenv(PATH = paste("/full/path/to/blast+/ncbi-blast-x.x.x+/bin", Sys.getenv("PATH"), 
                        sep = ":"))

The R-package and its R dependencies can be installed from Bioconductor using the BiocManager package. This requires R >= 4.0.0.

if (!requireNamespace("BiocManager", quietly=TRUE))
    install.packages("BiocManager")
BiocManager::install("TAPseq")

TAPseq can also be installed directly from GitHub using the devtools package. This also allows to install an older version, which work for R >= 3.5.

install.packages("devtools")

# latest development version
devtools::install_github("argschwind/TAPseq", dependencies = TRUE)

# installing a previous version for R >= 3.5
devtools::install_github("argschwind/TAPseq@r_release_3.5", dependencies = TRUE)

Examples

An example of the TAPseq primer design workflow can be found in a vignette. To view the vignette, run the following command (assuming vignettes were built when the package was installed).

vignette("tapseq_primer_design", package = "TAPseq")

Examples of how to select and evaluate target genes to identify cell populations can be found in a separate vignette. This requires that the additional dependencies are installedl, which should be the case if the package was installed with building vignettes and suggested dependencies.

vignette("tapseq_target_genes", package = "TAPseq")

tapseq's People

Contributors

argschwind avatar hpages avatar jwokaty avatar nturaga avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

tapseq's Issues

Primers only designed to 3' ends for transcripts in forward orientation

Hello!

Thank for this great resource. For the most part the vignette you have made is great and very easy to understand and replicate. I am trying to apply the TAPseq primer design pipeline to a set of genes from the mouse genome (mm10).

The steps for polyA site detection and truncation of 3’ ends of transcripts seem to be working well, and for genes in the forward orientation I can run the primer design pipeline to design inner and outer primers in the correct locations to capture from the 3’ ends of transcripts. However, for reverse-oriented transcripts the primers are still designed relative to the higher genomic coordinates (ie. right hand side), so to the 5’ ends rather than 3’ ends of transcripts. Attached are URLs with two screenshots of example genes that illustrate the issue I am having (outer primers=blue, inner primers=gold).

https://ibb.co/d7p377z
https://ibb.co/zb3HhrY

Is there something I am missing (likely in the following 3 commands) which retains the strandedness of transcript sequences, and thus means primers are designed correctly to the 3’ ends for genes in reverse orientation?

# extract sequences of truncated transcripts
library(BSgenome)
mm10 <- getBSgenome("BSgenome.Mmusculus.UCSC.mm10")

# get sequence for all truncated transcripts
txs_seqs <- getTxsSeq(truncated_txs, genome = mm10)

# create TAPseq IO for outer forward primers from truncated transcript sequences
outer_primers <- TAPseqInput(txs_seqs, target_annot = truncated_txs,
                             product_size_range = c(500, 700), primer_num_return = 5)

This might be silly question with an easy fix, but as far as I can tell I am following the commands from the example vignette exactly, so for the moment I am stumped.

Many thanks in advance for any assistance you can offer!
Joe

Error: Overlapping exons found for transcripts:

Hello,

When I tried to get the truncated transcripts with the following code:

truncated_txs <- truncateTxsPolyA(target_genes, polyA_sites = polyA_sites, parallel = TRUE)

An error message showed:

Verifying input...
Error: Overlapping exons found for transcripts:
ENSG00000137203 - ENST00000319516
ENSG00000137203 - ENST00000379608
ENSG00000137203 - ENST00000379613
ENSG00000137203 - ENST00000461628
ENSG00000137203 - ENST00000462727
ENSG00000137203 - ENST00000464323
ENSG00000137203 - ENST00000465858
ENSG00000137203 - ENST00000466073
ENSG00000137203 - ENST00000473652
ENSG00000137203 - ENST00000474952
ENSG00000137203 - ENST00000475264
ENSG00000137203 - ENST00000478375
ENSG00000137203 - ENST00000482890

I used Homo_sapiens.GRCh38.98.gtf to generate the GRangesList. Do I have to keep only 1 transcript with a particular exon and remove all the rest?

Thank you.

Prepare for upcoming Seurat v5 release

I am opening this issue as a notification because TAPseq is listed here as a package that relies (depends/imports/suggests) on Seurat. As you may know, we recently released Seurat v5 as a beta in March of this year, with new updates for spatial, multimodal, and massively scalable analysis. For more information on updates and improvements, check out our website https://satijalab.org/seurat/.
We are now preparing to release Seurat v5 to CRAN, and plan to submit it on October 23rd. While we have tried our best to keep things backward-compatible, it is possible that updates to Seurat and SeuratObject might break your existing functionality or tests. We wanted to reach out before the new version is on CRAN, so that there's time to report issues/incompatibilities and prepare you for any changes in your code base that might be necessary.

We apologize for any disruption or inconvenience, but hope that the improvements to Seurat v5 will benefit your users going forward.
To test the upcoming release, you can install Seurat from the seurat5 branch using the instructions available on this page: https://satijalab.org/seurat/articles/install.

Thank you!
Seurat v5 team

Primer3 throwing an error when running designPrimers()

Hi,
I'm trying to use this great tool for Primer design, for the beginning I just run the exact commands in the vignette, just replaced hg38 with hg19. Everything works smoothly up to the designPrimers() step, where I get the following error:

> outer_primers <- designPrimers(outer_primers) 
Converting to input for Primer3... 
Running Primer3... 
Processing output... 
Error in mapply(FUN = FUN, ..., MoreArgs = MoreArgs, SIMPLIFY = SIMPLIFY) : 
  zero-length inputs cannot be mixed with those of non-zero length
In addition: Warning messages:
1: Desired product size range not possible! Product size will be shorter for: HBG1 
2: Desired product size range not possible! Product size will be shorter for: IFITM2 
3: In system2(command = primer3_core, input = io, stdout = TRUE) :
  running command '"C:\Users\binyz\DOCUME~1\R\WIN-LI~1\4.1\PRIMER~1.1\src\PRIMER~1.EXE"' had status 309

Any clue what is wrong?
here is my sessionInfo():

R version 4.1.0 (2021-05-18)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 10 x64 (build 19044)

Matrix products: default

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252    LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C                           LC_TIME=English_United States.1252    

attached base packages:
[1] parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] BSgenome.Hsapiens.UCSC.hg19_1.4.3 BiocManager_1.30.16               BSgenome_1.62.0                  
 [4] rtracklayer_1.54.0                Biostrings_2.62.0                 XVector_0.34.0                   
 [7] BiocParallel_1.28.3               GenomicRanges_1.46.1              GenomeInfoDb_1.30.1              
[10] IRanges_2.28.0                    S4Vectors_0.32.3                  BiocGenerics_0.40.0              
[13] TAPseq_1.6.0                     

loaded via a namespace (and not attached):
 [1] bitops_1.0-7                matrixStats_0.61.0          fs_1.5.0                    usethis_2.1.5              
 [5] devtools_2.4.3              bit64_4.0.5                 filelock_1.0.2              progress_1.2.2             
 [9] httr_1.4.2                  rprojroot_2.0.2             tools_4.1.0                 utf8_1.2.2                 
[13] R6_2.5.1                    DBI_1.1.1                   withr_2.4.3                 tidyselect_1.1.1           
[17] prettyunits_1.1.1           processx_3.5.2              bit_4.0.4                   curl_4.3.2                 
[21] compiler_4.1.0              cli_3.1.0                   Biobase_2.54.0              xml2_1.3.2                 
[25] desc_1.4.0                  DelayedArray_0.20.0         callr_3.7.0                 rappdirs_0.3.3             
[29] stringr_1.4.0               digest_0.6.29               Rsamtools_2.10.0            pkgconfig_2.0.3            
[33] sessioninfo_1.2.2           MatrixGenerics_1.6.0        dbplyr_2.1.1                fastmap_1.1.0              
[37] rlang_0.4.11                rstudioapi_0.13             RSQLite_2.2.10              BiocIO_1.4.0               
[41] generics_0.1.0              dplyr_1.0.7                 RCurl_1.98-1.6              magrittr_2.0.1             
[45] GenomeInfoDbData_1.2.7      Matrix_1.3-3                Rcpp_1.0.8                  fansi_1.0.2                
[49] lifecycle_1.0.1             stringi_1.7.6               yaml_2.3.5                  SummarizedExperiment_1.24.0
[53] zlibbioc_1.40.0             pkgbuild_1.3.1              plyr_1.8.6                  BiocFileCache_2.2.1        
[57] grid_4.1.0                  blob_1.2.1                  crayon_1.5.0                lattice_0.20-44            
[61] GenomicFeatures_1.46.5      hms_1.1.0                   KEGGREST_1.34.0             ps_1.6.0                   
[65] pillar_1.7.0                rjson_0.2.20                reshape2_1.4.4              biomaRt_2.50.3             
[69] pkgload_1.2.4               XML_3.99-0.9                glue_1.4.2                  remotes_2.4.2              
[73] png_0.1-7                   vctrs_0.3.8                 testthat_3.1.1              tidyr_1.1.3                
[77] purrr_0.3.4                 assertthat_0.2.1            cachem_1.0.5                restfulr_0.0.13            
[81] snow_0.4-4                  tibble_3.1.6                GenomicAlignments_1.30.0    AnnotationDbi_1.56.2       
[85] memoise_2.0.1               ellipsis_0.3.2

Primer3 interface

Great code Andreas, and as far as I can tell the only R code interfacing with the new Primer3 v.2.5.0. Thought about splitting out the primer design and validation parts of the code from the TSIO object dependency and submitting that separately to CRAN?

inferPolyASites Error

Hi,

I'm running inferPolyASites with default parameters, and receive the following error:

Error in (function (classes, fdef, mtable)  : 
  unable to find an inherited method for function ‘Views’ for signature ‘"NULL"’

Is this an error that pertains to my input list of GRanges or BAM file?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.