mojaie / MolecularGraph.jl

Graph-based molecule modeling toolkit for cheminformatics
MIT License
189 stars 27 forks source link

Running the package on REPL #66

Closed Leticia-maria closed 1 year ago

Leticia-maria commented 2 years ago

I've tested the following command on REPL (using Ubuntu terminal):

mol2 = smilestomol("O=C3N2/C(=C(/C=C\\c1scnc1C)CS[C@@H]2[C@@H]3NC(=O)C(=N\\OC)/c4nc(sc4)N)C(=O)O")
molsvg2 = drawsvg(mol2, 300, 300)
display("image/svg+xml",  molsvg2)

but I got an error message:

ERROR: MethodError: no method matching show(::Base.TTY, ::MIME{Symbol("image/svg+xml")}, ::String)
Closest candidates are:
  show(::IO, ::AbstractString, ::Any) at ~/packages/julias/julia-1.7/share/julia/base/multimedia.jl:111
  show(::IO, ::MIME{Symbol("text/plain")}, ::AbstractString; limit) at ~/packages/julias/julia-1.7/share/julia/base/strings/io.jl:196
  show(::IO, ::MIME{Symbol("text/plain")}, ::Any) at ~/packages/julias/julia-1.7/share/julia/base/multimedia.jl:47
  ...
Stacktrace:
 [1] display(d::TextDisplay, M::MIME{Symbol("image/svg+xml")}, x::Any)
   @ Base.Multimedia ./multimedia.jl:249
 [2] display(m::MIME{Symbol("image/svg+xml")}, x::Any)
   @ Base.Multimedia ./multimedia.jl:342
 [3] display(mime::String, x::Any)
   @ Base.Multimedia ./multimedia.jl:217
 [4] top-level scope
   @ REPL[10]:1
timholy commented 2 years ago

Maybe try it after loading Electron.jl or Blink.jl.

Leticia-maria commented 2 years ago

I've tried it, but it still showing me the error message, @timholy @mojaie

ERROR: MethodError: no method matching show(::Base.TTY, ::MIME{Symbol("image/svg+xml")}, ::String)
Closest candidates are:
  show(::IO, ::AbstractString, ::Any) at ~/packages/julias/julia-1.7/share/julia/base/multimedia.jl:111
  show(::IO, ::MIME{Symbol("text/tab-separated-values")}, ::Any) at ~/packages/julias/julia-1.7/share/julia/stdlib/v1.7/DelimitedFiles/src/DelimitedFiles.jl:830
  show(::IO, ::MIME{Symbol("text/csv")}, ::Any) at ~/packages/julias/julia-1.7/share/julia/stdlib/v1.7/DelimitedFiles/src/DelimitedFiles.jl:829
  ...
Stacktrace:
 [1] display(d::TextDisplay, M::MIME{Symbol("image/svg+xml")}, x::Any)
   @ Base.Multimedia ./multimedia.jl:249
 [2] display(m::MIME{Symbol("image/svg+xml")}, x::Any)
   @ Base.Multimedia ./multimedia.jl:342
 [3] display(mime::String, x::Any)
   @ Base.Multimedia ./multimedia.jl:217
 [4] top-level scope
   @ REPL[8]:1
DoktorMike commented 2 years ago

I'm also having this issue and I posted a question on Discourse here. The question was answered and you can have a look there for details but basically the solution is to use ElectronDisplay.jl. Full code below.

using MolecularGraph
using ElectronDisplay

# (R)-(-)-Apomorphine hydrochloride
mol = smilestomol("CN1CCc2cccc-3c2[C@H]1Cc1ccc(O)c(O)c-31");
molsvg = drawsvg(mol, 500, 500);
display("image/svg+xml", molsvg)