Git Product home page Git Product logo

ggmsa's Introduction

ggmsa:a visual exploration tool for multiple sequence alignment and associated data

License: Artistic-2.0

ggmsa is designed for visualization and annotation of multiple sequence alignment. It implements functions to visualize publication-quality multiple sequence alignments (protein/DNA/RNA) in R extremely simple and powerful.

For details, please visit http://yulab-smu.top/ggmsa/

🔨 Installation

The released version from Bioconductor

if (!requireNamespace("BiocManager", quietly=TRUE))
    install.packages("BiocManager")
## BiocManager::install("BiocUpgrade") ## you may need this
BiocManager::install("ggmsa")

Alternatively, you can grab the development version from github using devtools:

if (!requireNamespace("devtools", quietly=TRUE))
    install.packages("devtools")
devtools::install_github("YuLab-SMU/ggmsa")

💡 Quick Example

library(ggmsa)
protein_sequences <- system.file("extdata", "sample.fasta", package = "ggmsa")
ggmsa(protein_sequences, start = 221, end = 280, char_width = 0.5, seq_name = TRUE) + geom_seqlogo() + geom_msaBar()

📚 Learn more

Check out the guides for learning everything there is to know about all the different features:

🏃 Author

YuLab https://yulab-smu.top/

Department of Bioinformatics, School of Basic Medical Sciences, Southern Medical University

💖 Contributing

We welcome any contributions! By participating in this project you agree to abide by the terms outlined in the Contributor Code of Conduct.

ggmsa's People

Contributors

caotianze avatar guangchuangyu avatar lshep avatar nturaga avatar nyzhoulang avatar xiangpin avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

ggmsa's Issues

Adjusting x axis of facet_msa?

Hi,
I'm having difficulty visualising a sequence alignment using facet_msa. I'm knitting to a Word document. The characters end up being too narrow. The following codes were used:

{r amino-acid-sequence, fig.asp=0.3, fig.width= 10}
ggmsa(aa_seq_src, char_width = 0.9, seq_name = TRUE, color = "Chemistry_AA") +
 facet_msa(field = 200)

image

I tried changing char_width to something smaller:

{r amino-acid-sequence, fig.asp=0.3, fig.width= 10}
ggmsa(aa_seq_src, char_width = 0.1, seq_name = TRUE, color = "Chemistry_AA") +
 facet_msa(field = 200)

image

I tried adding + coord_cartesian() but nothing changed.

I also tried reducing the field to 100 and the characters end up disappearing:

{r amino-acid-sequence, fig.asp=0.3, fig.width= 10}
ggmsa(aa_seq_src, char_width = 0.1, seq_name = TRUE, color = "Chemistry_AA") +
 facet_msa(field = 100)

image

If I replace fig.asp with out.width the following occurs:

{r amino-acid-sequence, out.width = "500%", fig.width= 10}
ggmsa(aa_seq_src, char_width = 0.1, seq_name = TRUE, color = "Chemistry_AA") +
 facet_msa(field = 100)

image

Any ideas on what's going on and how I can adjust the x axis of the facets so that they are not too narrow?

adjusting geom_msabar()

Hi,

very cool package, im trying to tidy the figures and wanted to know if the msabar + consensus can be adjusted visually. for example, perhaps shrunk height-wise to it takes less vertical space.

also, is there a way to highlight (bold) certain rownames in the msa?
i assume this package interacts with ggplot in some way?

question about save to image

I use above code to save to image file xx.png,

library(ggmsa)

png('xx.png')
protein_sequences <- system.file("extdata", "sample.fasta", package = "ggmsa")
ggmsa(protein_sequences, start = 221, end = 280, char_width = 0.5, seq_name = TRUE) + geom_seqlogo() + geom_msaBar()
dev.off()

and I get wired width image as below:
xx (2)

So how I adjust the proper image width or autoadjust it ?

My environment is as this:

R version 4.1.1 
ggmsa 1.0.2
Ubuntu 18.04.4 LTS

Thanks!
Si

Annotating a specific facet

Hi,

I want to annotate a region of a sequence using the annotate function layered on ggmsa. This works fine when there are no facets, see code and output below:

protein_sequences <- "/RFolder/Resources/HA_alignment.align.fasta"

start = 65.5
end = 85

p <- ggmsa(protein_sequences,
      char_width = 0.9,
      seq_name = TRUE,
      color = "Chemistry_AA" ) 

 p  + annotate("rect", xmin=65.5, xmax=85,
     ymin=-Inf , ymax=Inf, alpha=0.2, color = "red", size = 1, fill = NA)

image

However, when I add facet_msa(field = 70) to my variable p , the following error code appears:

Error in $<-.data.frame(*tmp*, "PANEL", value = c(1L, 1L, 1L, 1L, :
replacement has 90482 rows, data has 1

facet_msa works fine without any annotations:
image

Just wondering if anyone had any pointers.

I'd also like to point out a few other things:

none_bg seems to override seq_name and replaces sequence names with a numeric axis. See output below:
image

posHighlighted overrides color, where any color set (e.g. "Chemistry_AA") in the ggmsa function no longer seems to apply to the position highlighted in posHighlighted.

Any help appreciated.

How is it broken down?

Hello, Uncle Y:
Is it possible to add a parameter as follows:
1
2

I'm using the (plot_grid ) here.
A. Add a parameter that can be chosen to be displayed in several lines when our sequence is long. Our current parameters can only show all or our specified lengths on one line.
B. Also found that the second line should start with 101, but the picture above is 100, and a similar situation occurs at the end.
C. When the FONT parameter is set by default, instead of a sequence name, a numeric representation appears, but if FONT = NULL is set, the sequence name comes out. Not quite getting it here, by definition it should just control whether the sequence is displayed or not, not the sequence name.

                 Thank you, Uncle Y.
                 Your loyal fans.

Can't use `ggplot2::coord_flip()` with ggmsa plots?

Here's the reprex:

library(ggmsa)
#> Registered S3 methods overwritten by 'ggalt':
#>   method                  from   
#>   grid.draw.absoluteGrob  ggplot2
#>   grobHeight.absoluteGrob ggplot2
#>   grobWidth.absoluteGrob  ggplot2
#>   grobX.absoluteGrob      ggplot2
#>   grobY.absoluteGrob      ggplot2
#> Registered S3 method overwritten by 'ggtree':
#>   method      from 
#>   identify.gg ggfun
#> ggmsa v1.3.2  Document: http://yulab-smu.top/ggmsa/
#> 
#> If you use ggmsa in published research, please cite:
#> L Zhou, T Feng, S Xu, F Gao, TT Lam, Q Wang, T Wu, H Huang, L Zhan, L Li, Y Guan, Z Dai*, G Yu* ggmsa: a visual exploration tool for multiple sequence alignment and associated data. Briefings in Bioinformatics. DOI:10.1093/bib/bbac222

protein_sequences <- system.file("extdata", "sample.fasta", package = "ggmsa")
ggmsa(protein_sequences, 300, 350, char_width = 0.5, seq_name = TRUE) + geom_msaBar() + ggplot2::coord_flip()
#> Coordinate system already present. Adding new coordinate system, which will replace the existing one.
#> NULL
  
sessionInfo()
#> R version 4.1.2 (2021-11-01)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Arch Linux
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/libopenblasp-r0.3.18.so
#> LAPACK: /usr/lib/liblapack.so.3.10.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [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] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] ggmsa_1.3.2
#> 
#> loaded via a namespace (and not attached):
#>  [1] maps_3.4.0             tidyr_1.1.4            jsonlite_1.7.2        
#>  [4] assertthat_0.2.1       highr_0.9              stats4_4.1.2          
#>  [7] yulab.utils_0.0.4      GenomeInfoDbData_1.2.6 yaml_2.2.1            
#> [10] Rttf2pt1_1.3.10        pillar_1.6.4           lattice_0.20-45       
#> [13] glue_1.6.0             extrafontdb_1.0        digest_0.6.28         
#> [16] RColorBrewer_1.1-3     XVector_0.32.0         polyclip_1.10-0       
#> [19] colorspace_2.0-2       ggfun_0.0.6            htmltools_0.5.2       
#> [22] pkgconfig_2.0.3        zlibbioc_1.38.0        purrr_0.3.4           
#> [25] patchwork_1.1.1        tidytree_0.3.9         scales_1.1.1          
#> [28] ggplotify_0.1.0        tweenr_1.0.2           ggforce_0.3.3         
#> [31] tibble_3.1.6           generics_0.1.1         farver_2.1.0          
#> [34] IRanges_2.26.0         ggplot2_3.3.5          ellipsis_0.3.2        
#> [37] withr_2.4.2            seqmagick_0.1.5        BiocGenerics_0.40.0   
#> [40] lazyeval_0.2.2         cli_3.3.0              magrittr_2.0.1        
#> [43] crayon_1.4.2           evaluate_0.14          ash_1.0-15            
#> [46] fs_1.5.0               fansi_0.5.0            nlme_3.1-153          
#> [49] MASS_7.3-54            tools_4.1.2            lifecycle_1.0.1       
#> [52] stringr_1.4.0          aplot_0.1.4            S4Vectors_0.30.2      
#> [55] ggtree_3.0.4           munsell_0.5.0          reprex_2.0.1          
#> [58] Biostrings_2.60.2      compiler_4.1.2         ggalt_0.4.0           
#> [61] GenomeInfoDb_1.28.4    gridGraphics_0.5-1     rlang_1.0.2           
#> [64] grid_4.1.2             RCurl_1.98-1.5         rstudioapi_0.13       
#> [67] bitops_1.0-7           rmarkdown_2.11         proj4_1.0-11          
#> [70] gtable_0.3.0           DBI_1.1.1              R6_2.5.1              
#> [73] knitr_1.36             dplyr_1.0.7            fastmap_1.1.0         
#> [76] extrafont_0.18         utf8_1.2.2             treeio_1.16.2         
#> [79] KernSmooth_2.23-20     ape_5.6-2              stringi_1.7.6         
#> [82] parallel_4.1.2         Rcpp_1.0.7             vctrs_0.4.1           
#> [85] R4RNA_1.20.0           tidyselect_1.1.1       xfun_0.28

Created on 2022-05-13 by the reprex package (v2.0.1)

ggmsa plot error due to unique names

Hello, I'm trying to use ggmsa to plot an amino acid sequence alignment. I've aligned it using the msa() function and then converted it to an AAbin type file to then use with ggmsa().

When I try to make the ggmsa plot like this:

ggmsa(AA_alignment1_cv, 120, 220, color = "Clustal", font = "DroidSansMono", char_width = 0.5)

I get this error:

Error in tidy_msa(msa, start = start, end = end) :
Sequences must have unique names

My sequences do all have different names? (I am using gene IDs in many cases) What counts as a 'unique name'? For example are these not unique because they start the same?
"Alyli.0014s0106" and "Alyli.0091s0126"

Thanks!

Error in if (freq1 > 0.9 && freq2 > 0) {: missing value where TRUE/FALSE needed

I got that error while trying to reproduce your example in http://yulab-smu.top/ggmsa/articles/guides/Annotations.html#geom-helix.

Here's the reprex:

library(ggmsa)
#> Registered S3 methods overwritten by 'ggalt':
#>   method                  from   
#>   grid.draw.absoluteGrob  ggplot2
#>   grobHeight.absoluteGrob ggplot2
#>   grobWidth.absoluteGrob  ggplot2
#>   grobX.absoluteGrob      ggplot2
#>   grobY.absoluteGrob      ggplot2
#> Registered S3 method overwritten by 'ggtree':
#>   method      from 
#>   identify.gg ggfun
#> ggmsa v1.3.2  Document: http://yulab-smu.top/ggmsa/
#> 
#> If you use ggmsa in published research, please cite:
#> L Zhou, T Feng, S Xu, F Gao, TT Lam, Q Wang, T Wu, H Huang, L Zhan, L Li, Y Guan, Z Dai*, G Yu* ggmsa: a visual exploration tool for multiple sequence alignment and associated data. Briefings in Bioinformatics. DOI:10.1093/bib/bbac222

known_file <- system.file("extdata", "vienna.txt", package = "R4RNA")
known <- readSSfile(known_file, type = "Vienna" )
cripavirus_msa <- system.file("extdata", "Cripavirus.fasta", package = "ggmsa")

ggmsa(cripavirus_msa, font = NULL, color = "Chemistry_NT", seq_name = FALSE, show.legend = TRUE, border = "white") +
  geom_helix(helix_data = known)
#> Error in if (freq1 > 0.9 && freq2 > 0) {: missing value where TRUE/FALSE needed

sessionInfo()
#> R version 4.1.2 (2021-11-01)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Arch Linux
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/libopenblasp-r0.3.18.so
#> LAPACK: /usr/lib/liblapack.so.3.10.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [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] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] ggmsa_1.3.2
#> 
#> loaded via a namespace (and not attached):
#>  [1] maps_3.4.0             tidyr_1.1.4            jsonlite_1.7.2        
#>  [4] assertthat_0.2.1       highr_0.9              stats4_4.1.2          
#>  [7] yulab.utils_0.0.4      GenomeInfoDbData_1.2.6 yaml_2.2.1            
#> [10] Rttf2pt1_1.3.10        pillar_1.6.4           lattice_0.20-45       
#> [13] glue_1.6.0             extrafontdb_1.0        digest_0.6.28         
#> [16] RColorBrewer_1.1-3     XVector_0.32.0         polyclip_1.10-0       
#> [19] colorspace_2.0-2       ggfun_0.0.6            htmltools_0.5.2       
#> [22] pkgconfig_2.0.3        zlibbioc_1.38.0        purrr_0.3.4           
#> [25] patchwork_1.1.1        tidytree_0.3.9         scales_1.1.1          
#> [28] ggplotify_0.1.0        tweenr_1.0.2           ggforce_0.3.3         
#> [31] tibble_3.1.6           generics_0.1.1         farver_2.1.0          
#> [34] IRanges_2.26.0         ggplot2_3.3.5          ellipsis_0.3.2        
#> [37] withr_2.4.2            seqmagick_0.1.5        BiocGenerics_0.40.0   
#> [40] lazyeval_0.2.2         cli_3.3.0              magrittr_2.0.1        
#> [43] crayon_1.4.2           evaluate_0.14          ash_1.0-15            
#> [46] fs_1.5.0               fansi_0.5.0            nlme_3.1-153          
#> [49] MASS_7.3-54            tools_4.1.2            lifecycle_1.0.1       
#> [52] stringr_1.4.0          aplot_0.1.4            S4Vectors_0.30.2      
#> [55] ggtree_3.0.4           munsell_0.5.0          reprex_2.0.1          
#> [58] Biostrings_2.60.2      compiler_4.1.2         ggalt_0.4.0           
#> [61] GenomeInfoDb_1.28.4    gridGraphics_0.5-1     rlang_1.0.2           
#> [64] grid_4.1.2             RCurl_1.98-1.5         rstudioapi_0.13       
#> [67] bitops_1.0-7           rmarkdown_2.11         proj4_1.0-11          
#> [70] gtable_0.3.0           DBI_1.1.1              R6_2.5.1              
#> [73] knitr_1.36             dplyr_1.0.7            fastmap_1.1.0         
#> [76] extrafont_0.18         utf8_1.2.2             treeio_1.16.2         
#> [79] KernSmooth_2.23-20     ape_5.6-2              stringi_1.7.6         
#> [82] parallel_4.1.2         Rcpp_1.0.7             vctrs_0.4.1           
#> [85] R4RNA_1.20.0           tidyselect_1.1.1       xfun_0.28

Created on 2022-05-13 by the reprex package (v2.0.1)

I can't find Cripavirus.fasta

Hello,
when I run the code in the tutorial here:
cripavirus_msa <- system.file("extdata", "Cripavirus.fasta", package = "ggmsa")
I couldn't find the Cripavirus.fasta
Where could I get it?

Protein secondary structure & domain annotation

Hi,

this seems an awesome and very much needed package! I have 2 feature request: would it be possible to add protein secondary structure annotation (helices and beta-sheets) and also domain annotation (similar to the biotite package in python)?

Thank you!

geom_seqlogo + facet_msa

Hi

I'm trying to figure out how I breaking down alignment and plot each part with logo.

library(ggmsa)
protein_sequences <- system.file("extdata", "sample.fasta", package = "ggmsa")
ggmsa(protein_sequences, end = 300, font = NULL, color = "Chemistry_AA") + 
    facet_msa(field = 100) + 
    geom_seqlogo()
#Error in `$<-.data.frame`(`*tmp*`, "PANEL", value = c(1L, 1L, 1L, 1L,  : 
#  replacement has 2700 rows, data has 104177  
ggmsa(protein_sequences, end = 300, font = NULL, color = "Chemistry_AA") + 
    geom_seqlogo() + 
    facet_msa(field = 100)
#Error in FUN(X[[i]], ...) : object 'group' not found

Thanks in advance

Commented out examples in documentation of `ggmsa()`?

Part of the examples in doc of ggmsa() are commented out:

ggmsa/R/ggmsa.R

Lines 64 to 74 in 9a6ef7d

##' #XMultipleAlignment objects can be used as input in the 'ggmsa'
##' #AAMultipleAlignment <- readAAMultipleAlignment(fasta)
##' #ggmsa(AAMultipleAlignment, 164, 213, color="Chemistry_AA")
##'
##' #XStringSet objects can be used as input in the 'ggmsa'
##' #AAStringSet <- readAAStringSet(fasta)
##' #ggmsa(AAStringSet, 164, 213, color="Chemistry_AA")
##'
##' #Xbin objects from 'seqmagick' can be used as input in the 'ggmsa'
##' #AAbin <- fa_read(fasta)
##' #ggmsa(AAbin, 164, 213, color="Chemistry_AA")

You could make them work if you:

#XMultipleAlignment objects can be used as input in the 'ggmsa'
AAMultipleAlignment <- Biostrings::readAAMultipleAlignment(fasta)
ggmsa(AAMultipleAlignment, 164, 213, color="Chemistry_AA")

#XStringSet objects can be used as input in the 'ggmsa'
AAStringSet <- Biostrings::readAAStringSet(fasta)
ggmsa(AAStringSet, 164, 213, color="Chemistry_AA")

#Xbin objects from 'seqmagick' can be used as input in the 'ggmsa'
AAbin <- seqmagick::fa_read(fasta)
ggmsa(AAbin, 164, 213, color="Chemistry_AA")

Otherwise you leave the user wondering if those examples are to be used or not...

cannot read fasta alignment file

Hello, After ggmsa is installed successfully, I read in the sequence using the following code:

library(ggmsa)
protein_sequences <- system.file("extdata","test.fasta",package="ggmsa")

nor errors,but i think it not read fasta file,cause :
protein_sequences [1]""
nothings in protein_sequences, and my fasta file format is :

>AF178440.1/5925-6123
UUGACUAUGUGAUCUUGCUUUCG...
>AB017037.1/6286-6484
GAAAAUGUGUGAUCUGAUUAGAA...
>AF014388.1/6078-6278
GUUAAGAUGUGAUCUUGCUUCCU...
>AF218039.1/6028-6228
GCAAAAAUGUGAUCUUGCUUGUA...
>AF183905.1/5647-5848
CCAACAAUGUGAUCUUGCUUGCG...
>AB006531.1/6003-6204
CUGACUAUGUGAUCUUAUUAAAA...
>AF022937.1/6935-7121
AGUGUUGUGUGAUCUUGCGCGAU...

all sequences are alingment and have same length. i wonder to know if there are any problem above ?
thanks

boxshade color

Dear all,

I like make a custom color as boxshade tool
image

I try make with custom color, but when use it not given desired output

Tree + Seq Logo & AA one-letter code on sequence

Thanks for this great package!

I was wondering about the implementation of two things on module ggtree(tree) + geom_facet():

Sequence logo on top of MSA?
AA one-letter code at sequences on MSA?

Best

could not find function "geom_facet"

Hi man.
I have install ggmsa successfully.But when i try to draw alignment sequence with cluster tree,error reported.

p <- ggtree(tree ) + geom_tiplab()
data = tidy_msa(x, 164, 213)
p + geom_facet(geom = geom_msa, data =data, panel = 'msa', font = NULL, color= "Chemistry_AA") +xlim_tree(1)

error as fellow:
Error in geom_facet(geom = geom_msa, data = data, panel = "msa", font = NULL, :
could not find function "geom_facet".

does "geom_facet" need to be installed separately?and how?

Thanks

能否支持任意字母?

Y 叔你好,

我有需要做多序列比对和可视化,但我的序列并不是蛋白的,这个可视化能否拓展到任意字母 A-Z?我目前看到 J、O、X、Z是不支持的

image

Plotting alignment in wide format

Hi,
Thank you so much for this amazing package!

I was wondering if there is a way of making the alignment plot wider (i.e., bigger in width, than in height).
I am working with a matrix of 200 sequences, with 70nt each. I plotted the alignment with:

ggmsa(seq, seq_name = F,
            char_width = 0.5,
            font = NULL, border = NA, color = "Chemistry_NT") +
            geom_seqlogo(color = "Chemistry_NT")

Which resulted in the following alignment:

original

However, I would like to generate a wider visualization, like this (edited with an image editing tool):

wider

I tried to address this by changing the size parameters of a downstream ggsave() call, but it doesn't affect the width/height of the alignment matrix itself, only the size of the device (e.g., the output png image). Do you know how can I generate this straight from ggmsa(), without needing external image editing tools?

You can find the fasta file here, in case you want it.

Best,
Vinícius

Feature Request: Consensus View

Hi,

Thank you for the cool package. I'd like to request "consensus view". That's when only the sequence of the reference (the top alignment) is visible with the rest hidden/replaced with a character (usually '.' or '?' or preferably user specified) but disagreements are shown/colored. Here is an example to better illustrate what I'm referring to from Geneious:

Annotation 2020-09-02 170741

Ideally, I'd like to combine consensus view with posHighligthed option to be able to show say mutations in binding sites.

If at all possible the above example should be replicable inside ggmsa because a lot of wetlab scientists use Geneious to perform these tasks.

Thanks!

Ammar

Problems with tree, MSA and logo

Hi, I'm trying to follow the instructions in an earlier post for generating a combined tree, and alignment with a logo on top,
When I run the following code

nick <- tidy_msa(dna_sequences,70,100)
p <- ggtree(tr2 ) + geom_tiplab(size=3, fontface = 1)
p + geom_facet(geom = geom_msa, data = nick, panel = 'Alignment', font = NULL, color = "Clustal") +
xlim_tree(1)

it displays the tree and alignment. However when I run this, which includes the logo:

nick <- tidy_msa(dna_sequences,70,100)
p <- ggtree(tr2 ) + geom_tiplab(size=3, fontface = 1)
p + geom_facet(geom = geom_msa, data = nick, panel = 'Alignment', font = NULL, color = "Clustal") +
geom_facet(geom = ggmsa:::geom_logo, data = nick, panel='Alignment', color = "Clustal", adaptive = T) +
xlim_tree(1)

It returns an error message:
Error in $<-.data.frame(*tmp*, "color", value = list(color = c(T = "#ffffff"))) :
replacement has 1 row, data has 9

Any ideas what I'm doing wrong?

Last row of facet_msa has different width characters

Hi, is there a way to make the last row of facet_msa have the same width for the characters?
het_c_prots %>% msa(method = 'ClustalOmega') %>% as('AAMultipleAlignment') %>% ggmsa(seq_name = TRUE, color='Chemistry_AA', char_width = 0.5) + facet_msa(field = 100)
000009

Error with custom color

Hi, i have found that using custom color produced the next error:

Error in color_scheme(y, color, custom_color) : 
  object 'my_cutstom' not found

I have found that if my custom color dataframe is named as "'my_cutstom" (as you example) the error is fixed. I look at the code and i found that in:
https://github.com/YuLab-SMU/ggmsa/blob/master/R/color_else.R
there is what i think an error with variables names...and it should be:

    if (!is.null(custom_color)){
        custom_color[["names"]] <- as.character(custom_color[["names"]]) #Elimination factor interference
        custom_color[["color"]] <- as.character(custom_color$col) #Fuzzy matching the string "colors" or "colours"
        row.names(custom_color) <- custom_color[["names"]]
        scheme_AA$custom_color <- custom_color[row.names(scheme_AA), "color"] %>% as.character()
        y$color <- scheme_AA[y$character, "custom_color"]
    }else{

Thanks for this great package!!

Error in parse(text = elt) : <text>:1:7: unexpected symbol

Hello,

Here is my code:

protein_sequences <- "/Users/michael/Desktop/Lab/RHG/grim/Grim_drosophilidae_protein_mel.fasta"
ggmsa(protein_sequences, 300, 350, color = "Clustal", font = "DroidSansMono", char_width = 0.5, seq_name = TRUE, use_dot = TRUE)

And I get this output:

Error in parse(text = elt) : :1:7: unexpected symbol
1: Using an
^
In addition: Warning message:
In rbind(c("M", "A", "I", "A", "Y", "F", "I", "P", "D", "Q", "A", :
number of columns of result is not a multiple of vector length (arg 1)

Any tips?

Possible to create custom colour schemes?

Hi,
Im wondering if its possible to create custom colour schemes?
I would like to colour my msa according to consensus, similar to how it is done in Jalview; higher consensus is deeper shade of blue/purple, gaps are white.

I am plotting a large msa (4Kb) and having gaps white instead of grey would make visualisation a lot easier.
Even just a tweak i could use to change gaps to white would be great.

Thanks

How to install ggmsa under R 3.6

Hi,

Thanks for the nice tool. But I notice that it depends on the newest R 4.1. Is there a way to install ggmsa under old R version (R 3.6)?

Bin

Creat FASTA files from APE files

I have nt sequences in ape files. I would like to create peptide FATSA sequences and read them into R for alignment in ggmsa.

Is this supported? and If not how can I create FASTA files that ggmsa recognizes?

Thanks
Chris

Is there a way to only highlight/colour unconserved regions?

Hi! First, thank you for your tool!

Background: I have an MSA alignment of a single gene coming from multiple sources.

I have managed to produce a tree and combine MSA alignment [ggtree() + geom_facet(geom = geom_msa)] into one image, but I only wanted to highlight/colour regions that aren't conserved. Is there a way to do this?

I also found the geom_msaBar useful to highlight unconserved regions, but I am unable to incorporate it into geom_facet.

Thank you!

update docs

add documents to msa_data and geom_msa, and export them; update other documents if necessary.

draft a vignette for the package. You can use the following examples as a starting point.

library(ggmsa)
f <- system.file("extdata/sample.fasta", package="ggmsa")
ggmsa(f, 164, 213, color="Chemistry_AA")

image

library(Biostrings)
x <- readAAStringSet(f)
d <- as.dist(stringDist(x, method = "hamming")/width(x)[1])
library(ape)
tree <- bionj(d)

p <- ggtree(tree ) + geom_tiplab()

data = ggmsa:::msa_data(f, 164, 213, color="Chemistry_AA")
p+ geom_facet(geom = ggmsa:::geom_msa, data = data,  panel = 'msa') + xlim_tree(1)

image

Stop codon

Hi ho,

how to plot a stop codon or "stop-aa" in an alignment of proteins?

In my msa (made with DECIPHER) such stops on aa-level are indicated as asterisk.

When using ggmsa though they are just ignored and an empty position is plotted.

`Chemistry_AA` color showing even when `color` parameter is set to `Clustal`

When running the following command, if the posHighlighted parameter is used, the color scheme of the resulting plot is always Chemistry_AA even if it has been set it to Clustal. If the posHighlighted parameter is commented out, the color palette works properly.

library(ggmsa)

csp_aa <- Biostrings::readAAStringSet("output/csp.fasta")

ggmsa(csp_aa,
      start = 1,
      end = 111,
      color = "Clustal",
      seq_name = TRUE,
      char_width = 0.5,
      # posHighligthed = c(30:46, 60:83),
      disagreement = TRUE,
      font = "DroidSansMono")

I think this has something to do with this section in the ggmsa::geom_msa function as it redefines the color aesthetic, but I am unsure.

if (!is.null(posHighligthed)) {
    none_bg = TRUE
    bg_data <- bg_data[bg_data$position %in% posHighligthed, 
                       ]
    bg_data$postion <- as.factor(bg_data$position)
    mapping <- modifyList(mapping, aes_(x = ~position, fill = ~character,
                                        width = 1))
  }

SessionInfo()

R version 3.6.2 (2019-12-12)
Platform: x86_64-apple-darwin15.6.0 (64-bit)
Running under: macOS Catalina 10.15.4

Matrix products: default
BLAS:   /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib

locale:
[1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8

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

other attached packages:
[1] ggplot2_3.3.2       ggmsa_0.0.4         Biostrings_2.54.0   XVector_0.26.0      IRanges_2.20.2     
[6] S4Vectors_0.24.4    BiocGenerics_0.32.0

loaded via a namespace (and not attached):
 [1] Rcpp_1.0.4       rstudioapi_0.11  magrittr_1.5     zlibbioc_1.32.0  tidyselect_1.0.0 munsell_0.5.0   
 [7] colorspace_1.4-1 R6_2.4.1         rlang_0.4.5      stringr_1.4.0    dplyr_0.8.5      tools_3.6.2     
[13] grid_3.6.2       gtable_0.3.0     withr_2.2.0      ellipsis_0.3.0   digest_0.6.25    assertthat_0.2.1
[19] tibble_3.0.1     lifecycle_0.2.0  crayon_1.3.4     farver_2.0.3     tidyr_1.0.2      purrr_0.3.4     
[25] vctrs_0.2.4      glue_1.4.0       labeling_0.3     stringi_1.4.6    compiler_3.6.2   pillar_1.4.3    
[31] scales_1.1.0     pkgconfig_2.0.3 

how to add a group of point in to ggmsa

Hi,
I am trying to annotate two group specific point in the picture. However, it doesn't seem to work properly . Please see examples below:

p<-ggmsa(aln_data,start = 1,end=400,color = "Chemistry_NT", char_width = 0.5,seq_name = T,border = NA)+facet_msa(50)
pos_info =data.frame('pos'=rep(c(10,20,60,300),2),group =rep(c('HG','GW'),each=4))
p+geom_point(data=pos_info,aes(x=pos,y=3.2,color=group,shape=group),size=0.2)

图片

hope you can give me some advice

Combine ggmsa plot and ggtree?

Hi,
I am wondering if it is possible to combine the ggmsa plot with a ggtree. I tried it with aplot, but the alignment was not ordered according to the tree tips (see below). I am using R version 4.1.2, ggtree version 3.1.4.991, ggmsa version 1.1.0 and aplot version 0.1.1.

library(Biostrings)
library(ggtree)
library(ggmsa)
library(aplot)

nt_sequences <- system.file("extdata", "LeaderRepeat_All.fa", package = "ggmsa")
nt_align <- readDNAStringSet(nt_sequences)
p <-  ggmsa(nt_align, seq_name = T, char_width = 0.5, font = NULL, color = "Chemistry_NT")
set.seed(42)
g <- ggtree(rtree(length(names(nt_align)), tip.label = names(nt_align))) + geom_tiplab() + 
  xlim(0,9)
p %>% insert_left(g, width = 0.5)

Resulting plot:
ggmsa_issue

Any help or suggestion is appreciated.
Thanks

Error in .Call2 with DNAbin

Hi,

Whenever I try to use ggmsa, I get the following error code: Error in .Call2("new_XStringSet_from_CHARACTER", class(x0), elementType(x0), : key 48 (char '0') not in lookup table.

I use ggsma on a DNAbin object. What am I doing wrong?

Best, Berry

Spelling of the ggmsa argument "posHighligthed"

Hi, I found a typo in a argument of ggmsa function "posHighligthed" and I think it is better to change its case style from came case to snake case because the other arguments is snake case.

geom_msaBar conservation layer incorrectly aligned

geom_msaBar() leads to a misaligned (too narrow) conservation layer:
Example code from here - http://yulab-smu.top/ggmsa/reference/geom_msaBar.html:

f <- [system.file](https://rdrr.io/r/base/system.file.html)("extdata/sample.fasta", package="ggmsa")
[ggmsa](http://yulab-smu.top/ggmsa/reference/ggmsa.html)(f, 221, 280, font = NULL, seq_name = TRUE) + geom_msaBar()

geom_msaBar_misaligned

I have played around with the graphical output settings both in rstudio and jupyter but nothing seems to help.
Am I missing sth. obvious?

Note: wrong number of arguments to 'seq_len'

I installed {ggmsa} from source with devtools::install_github("YuLab-SMU/ggmsa") and got that suspicious note:

* installing *source* package ‘ggmsa’ ...
** using staged installation
** R
** inst
** byte-compile and prepare package for lazy loading
Note: wrong number of arguments to 'seq_len' 
** help
*** installing help indices
*** copying figures
** building package indices
** installing vignettes
** testing if installed package can be loaded from temporary location
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (ggmsa)

ggmsa is very slow cause of a very big pdf?

Hello!
I try to visualize an aa alignment (50 seq x 100 sites) and it is REALLY slow. When I export a pdf, it is more than 1 Mb. Adobe Reader freezes when trying open it. Also it has big white spaces below and above the plot which increase weight of a picture.
Is there any option to decrease dpi or something else to solve it?

custom color with consensus_views

Hi,
I was wondering if it would be possible to render a valid result with the custom_color = ... argument when also setting consensus_views = TRUE. Currently, you can render custom colors if the consensus view is set to FALSE, but not if TRUE.

As I show below, it appears you can currently generate alternative color schemes while also passing consensus_view = TRUE provided those alternatives are the built-in set of colors, however, I can not find a way to pass the custom_color argument and get the expected custom palette to render (it always defaults back to the default color palette).

Thanks for any tips you can offer

# reproducing using https://github.com/YuLab-SMU/ggmsa/issues/32
# custom palette labeled 'my_cutstom', though see: https://github.com/YuLab-SMU/ggmsa/issues/21
protein_sequences <- system.file("extdata", "sample.fasta", package = "ggmsa")

p1 <- ggmsa(protein_sequences, 300, 345)
            custom_color = my_cutstom, 
            char_width = 0.5, 
            show.legend = FALSE)

my_cutstom <- data.frame(names = c(LETTERS[1:26],"-"), 
                         color = "#FFFFFF", 
                         stringsAsFactors = FALSE)

# default color works
ggmsa(protein_sequences, 300, 350, char_width = 0.5, seq_name = TRUE, consensus_views = TRUE, disagreement = FALSE, use_dot = TRUE)

# custom color can work if not requiring consensus_views to be TRUE:
ggmsa(protein_sequences, 300, 350, char_width = 0.5, seq_name = TRUE, custom_color = my_cutstom)

# alternate built-in color works
ggmsa(protein_sequences, 300, 350, char_width = 0.5, seq_name = TRUE, consensus_views = TRUE, disagreement = FALSE, use_dot = TRUE, color = 'Taylor_AA')

# custom color does not work
ggmsa(protein_sequences, 300, 350, char_width = 0.5, seq_name = TRUE, consensus_views = TRUE, disagreement = FALSE, use_dot = TRUE, custom_color = my_cutstom)

Font in alignments is pixelated

It seems that the letters of the residues in the alignment are rendered with bitmap fonts...? They look very pixelated in my plots.

Do you got any idea on how I could fix this on my side? Thanks!

library(ggmsa)
#> Registered S3 methods overwritten by 'ggalt':
#>   method                  from   
#>   grid.draw.absoluteGrob  ggplot2
#>   grobHeight.absoluteGrob ggplot2
#>   grobWidth.absoluteGrob  ggplot2
#>   grobX.absoluteGrob      ggplot2
#>   grobY.absoluteGrob      ggplot2
#> Registered S3 method overwritten by 'ggtree':
#>   method      from 
#>   identify.gg ggfun
#> ggmsa v1.3.2  Document: http://yulab-smu.top/ggmsa/
#> 
#> If you use ggmsa in published research, please cite:
#> L Zhou, T Feng, S Xu, F Gao, TT Lam, Q Wang, T Wu, H Huang, L Zhan, L Li, Y Guan, Z Dai*, G Yu* ggmsa: a visual exploration tool for multiple sequence alignment and associated data. Briefings in Bioinformatics. DOI:10.1093/bib/bbac222

protein_sequences <- system.file("extdata", "sample.fasta", package = "ggmsa")
ggmsa(protein_sequences, 300, 350, char_width = 0.5, seq_name = TRUE) + geom_msaBar()
#> Coordinate system already present. Adding new coordinate system, which will replace the existing one.

  
sessionInfo()
#> R version 4.1.2 (2021-11-01)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Arch Linux
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/libopenblasp-r0.3.18.so
#> LAPACK: /usr/lib/liblapack.so.3.10.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [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] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] ggmsa_1.3.2
#> 
#> loaded via a namespace (and not attached):
#>  [1] maps_3.4.0             tidyr_1.1.4            jsonlite_1.7.2        
#>  [4] assertthat_0.2.1       highr_0.9              stats4_4.1.2          
#>  [7] yulab.utils_0.0.4      GenomeInfoDbData_1.2.6 yaml_2.2.1            
#> [10] Rttf2pt1_1.3.10        pillar_1.6.4           lattice_0.20-45       
#> [13] glue_1.6.0             extrafontdb_1.0        digest_0.6.28         
#> [16] RColorBrewer_1.1-3     XVector_0.32.0         polyclip_1.10-0       
#> [19] colorspace_2.0-2       ggfun_0.0.6            htmltools_0.5.2       
#> [22] pkgconfig_2.0.3        zlibbioc_1.38.0        purrr_0.3.4           
#> [25] patchwork_1.1.1        tidytree_0.3.9         scales_1.1.1          
#> [28] ggplotify_0.1.0        tweenr_1.0.2           ggforce_0.3.3         
#> [31] tibble_3.1.6           generics_0.1.1         farver_2.1.0          
#> [34] IRanges_2.26.0         ggplot2_3.3.5          ellipsis_0.3.2        
#> [37] withr_2.4.2            seqmagick_0.1.5        BiocGenerics_0.40.0   
#> [40] lazyeval_0.2.2         cli_3.3.0              magrittr_2.0.1        
#> [43] crayon_1.4.2           evaluate_0.14          ash_1.0-15            
#> [46] fs_1.5.0               fansi_0.5.0            nlme_3.1-153          
#> [49] MASS_7.3-54            tools_4.1.2            lifecycle_1.0.1       
#> [52] stringr_1.4.0          aplot_0.1.4            S4Vectors_0.30.2      
#> [55] ggtree_3.0.4           munsell_0.5.0          reprex_2.0.1          
#> [58] Biostrings_2.60.2      compiler_4.1.2         ggalt_0.4.0           
#> [61] GenomeInfoDb_1.28.4    gridGraphics_0.5-1     rlang_1.0.2           
#> [64] grid_4.1.2             RCurl_1.98-1.5         rstudioapi_0.13       
#> [67] labeling_0.4.2         bitops_1.0-7           rmarkdown_2.11        
#> [70] proj4_1.0-11           gtable_0.3.0           DBI_1.1.1             
#> [73] R6_2.5.1               knitr_1.36             dplyr_1.0.7           
#> [76] fastmap_1.1.0          extrafont_0.18         utf8_1.2.2            
#> [79] treeio_1.16.2          KernSmooth_2.23-20     ape_5.6-2             
#> [82] stringi_1.7.6          parallel_4.1.2         Rcpp_1.0.7            
#> [85] vctrs_0.4.1            R4RNA_1.20.0           tidyselect_1.1.1      
#> [88] xfun_0.28

Created on 2022-05-13 by the reprex package (v2.0.1)

Add a 'None' option for color

First, this is a nice package -- thank you.

I would like to highlight some positions in an alignment in a more manual manner. I'm doing this by including some vertical lines with geom_vline which works wonderfully.

But, the ggmsa coloring is distracting from what I'd like to highlight in this instance. 'Clustal' is the least intrusive, but it still is a distraction.

I propose another color option, 'None', which would allow users to color bases themselves like so:

  ggmsa(AAMultipleAlignment(seq_set_alignments),
        interval_min,interval_max, 
        color = "Clustal",  # ideally, there would be a "None" option
        font = "DroidSansMono", 
        char_width = 0.5, 
        seq_name = TRUE ) + 
    geom_vline(xintercept = rgt1_expr_phos_sites, color = "red", size = 6, alpha = .5) + 
    geom_vline(xintercept = eds1_expr_phos_sites, color = "orange", size = 6, alpha = .5) +
    geom_vline(xintercept = rgt1_comp_phos_sites, color = "blue", size = 6, alpha = .5) +
    geom_vline(xintercept = eds1_comp_phos_sites, color = "purple", size = 6, alpha = .5)

image

The boxes with the narrow colors are the ones i am adding.

non-numeric argument to binary operator

I want to show all sequence in one page, but the following code will not work

nt_seq<- system.file("extdata", "LeaderRepeat_All.fa", package = "ggmsa")
ggmsa(nt_seq, color = "Chemistry_NT", font = NULL) + 
  geom_msaBar() +
  facet_msa(field = 120)

The error is shown blow

Coordinate system already present. Adding new coordinate system, which will replace the existing one.
Error in ggmsa(nt_seq, color = "Chemistry_NT", font = NULL) + geom_msaBar() +  : 
  non-numeric argument to binary operator

Is it possible to combine the geom_msaBar and face_msa function.

Text overlapping.

Hi!
I have an issue with sequences' labels overlapping. An example below:
image
Yes, I can set up width and hight of output figures, but, i'm generating these images in a loop, so, it would be hard to set up each of them.
So, the question: is there any way to fix that? (Firstly I thought that it can be caused by added Logo object, but nope.)
Maybe you can make setting up the font size of labels based on font size of nucleotides/amino acids. It can solve the problem. There should be also a way to check height of text, maybe there is smth like that too.

Thank in advance!

Geom_Logo masks the first line of sequence alignment

Hi I'm almost there now with the graphic I want to produce using ggmsa. However, I'm finding that the logo seems to extend into the first line of the sequence alignment underneath and masks it (I've attached a screenshot to explain what I mean), Any ideas on what I could do to stop this happening?

Capture

the code is below.
p <- ggtree(tr) + geom_tiplab(size=3, fontface = 1)
nick <- p + geom_facet(geom = geom_msa, data = meme_seq, panel = 'Alignment', color = "Chemistry_NT") +
geom_facet(geom = ggmsa:::geom_logo, data = meme_seq, panel='Alignment', color = "Chemistry_NT", adaptive = FALSE, margins = TRUE, top = TRUE)
facet_widths(nick, c(80,100))

print on several pages

Hello,
as in one of the other discussions I'm using GGMSA for about 1000 records of 900-1000 protein sequences. It will produce a plot where "character width" is automaticly adjusted in such a way that it fits in one plot.
When printing a pdf with ggsave I see the dots after zooming to a level of 400%. I use border="white" to make it better.
Because it is too much information for 1 page I have following questions;

  1. can I set border width?? Borders. allthought white, are relative big compared to the colored dot.
  2. Is it possible to print on more than 1 pages?

I can split up the data set in smaller parts (e.g. 200 records by 200 columns) but is more work to run 25 times in this case.
It would be nice if character width could be set to a fixed value and that the number of pages to print is then depending on the number of columns and the number of records.

Thanks,
Addie

Error in if (freq > 0.9) { : missing value where TRUE/FALSE needed

Hi all,

I want to create a graph combing the phylogenetic tree, fasta sequence, and some phenotypic traits.
When I first tried msaplot() to align the fasta sequence with the tree., there is no issue. Now I use ggmsa to align the tree with corresponding fasta file, it generates the following error message:
"Error in if (freq > 0.9) { : missing value where TRUE/FALSE needed"

Here is my r code:

tre <- read.tree("/Users/dklabuser/limin/data_analysis/pan-genome/genomic_comparison/pTi_roary_output/accessory_binary_genes.fa.newick")
n <- MRCA(tre, c("Tul003", "Teh002"))
tre <- root(tre,node = n)

p <- ggtree(tre, layout = "rectangular") +
  geom_tiplab(size=1.5) 

# rotate the tree for T-DNA right border alignment.
p <- flip(p, 6, 34) %>% flip(19,32)

nt_sequence <- system.file("extdata","/Users/dklabuser/limin/Dissertation_papers/dissertation/chapter4_genetic_diversity/RB_aln.fasta", package = "ggmsa")

ggmsa(nt_sequence,1,24,char_width = 0.5, color = "Chemistry_AA", seq_name = TRUE, use_dot = TRUE)

Here is the error message of the previous code:

Screen Shot 2021-02-19 at 1 39 35 PM

Does anyone know what goes wrong with my codes? and how to solve this issue
Your help is greatly appreciated!

Best,
Limin

Required R version too new

Hi, I have a question related to the required R version:

Depends: R (>= 4.1.0)

Is it really needed to have this very new R version? I'm asking because I'm working on a system which only has R 4.0.5, being the newer available yet on the OS repositories.
I get the following error:

ERROR: this R is version 4.0.5, package 'ggmsa' requires R >= 4.1.0

If it isn't strictly necessary, may be it could make the package available to more people to have an older R version to depend on.
Thank you for the package, anyway!

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.