thenlevy / ensnano Goto Github PK
View Code? Open in Web Editor NEWENSnano, a 3D graphical application for DNA nanostructures.
License: GNU General Public License v3.0
ENSnano, a 3D graphical application for DNA nanostructures.
License: GNU General Public License v3.0
Thank you again for your exceptional software development.
I am a beginner in both ENSnano and oxDNA.
So, I first attempted to run a simulation on oxen.org using the files in ENSnano-rocket_design.zip, which can be downloaded from http://www.ens-lyon.fr/ensnano/#rocket.
I uploaded two files (rocket-export oxDNA.oxdna and rocket-export oxDNA.top) and executed a "submit job" with the default settings.
I did, however, get the following error:
Error
INFO: seeding the RNG with 1259777439
INFO: Initializing backend
INFO: Backend precision: double
INFO: Simulation type: MD
INFO: The generator will try to take into account bonded interactions by choosing distances between bonded neighbours no larger than 2.000000
INFO: Using '' as the input for sequence-dependent values
INFO: Running Debye-Huckel at salt concentration = 1
INFO: Using different widths for major and minor grooves
INFO: pid: 13345
DEBUG: Debye-Huckel parameters: Q=0.054300, lambda_0=0.361646, lambda=0.357493, r_high=1.072479, cutoff=2.571515
DEBUG: Debye-Huckel parameters: debye_huckel_RC=1.608718e+00, debye_huckel_B=8.766182e-03 INFO: The Debye length at this temperature and salt concentration is 0.357493
ERROR: Distance between bonded neighbors 15 and 16 exceeds acceptable values (d = 1.830765)
I assumed that I needed Relaxation, therefore I checked the Needs Relaxation box. But the outcomes were similar.
Error
INFO: seeding the RNG with -1692663956
INFO: Initializing backend
INFO: Backend precision: double
INFO: Simulation type: MC
INFO: Using unphysical backbone (DNA_relax interaction)
INFO: The generator will try to take into account bonded interactions by choosing distances between bonded neighbours no larger than 2.000000
INFO: Using '' as the input for sequence-dependent values
INFO: Using default strength constant = 32.000000 for the DNA_relax interaction
INFO: pid: 13451
INFO: Using a maximum backbone force of 10 (the corresponding mbf_xmax is 0.169258) and a far value of 0.04
I would appreciate it if you could inform me of the required preprocessing to run ENSnano exported files in oxDNA. Thanks.
[Tested in dev
]
Similar as in cadnano it would be nice to have the option to select endpoint nucleotides. This is usefull if one wants to extend the ends of open strands.
Two (independent?) requests:
Hello,
First of all, this tool is simply awesome, I am very happy to use it in combination with Cadnano and export large structures of oxdna! Thanks for open source for the community!
But one thing is that cadnano can customize the input of each sequence. This software cannot specify the input of the sequence, so the design of many large-scale structures assembled from single-stranded DNA still needs to be designed with cadnano. So, I have a feature request - it would be great if ENSnano files could be exported to Cadnano json format or custom DNA strand input sequences could be specified, which would be especially useful for both simulation and cadnano design.
thank you very much!
As pointed out in #11, the current way of enabling cross-overs recommendations is a bit unpractical. We should think of a better solution.
Tested in main
When saving a ensnano file with a set sequence, the sequence (and its starting position) is saved inside the .ens file, but when loading the file back into ensnano and clicking Show sequences
, the sequence isn't shown.
Currently, in most cases when scadnano import fails, ENSnano gives the error message Error when loading design: "Oh No"
(
Line 1348 in 7561224
As suggested in #15, it should be possible to import several designs into one single ENSnano session
[Tested in dev
]
There are some inconsistencies in the way the user interface is designed:
I think in general it might be good to have a way to highlight/select/focus single nucleotides in the 2D View, this would the allow to have a symmetric behavior from 2D and 3D view.
Hello,
Is there a way to implement single stranded regions between two helices? For example scaffold loops and staple bridges in: https://www.nature.com/articles/nnano.2016.256
Additionally is there any work being done to add the ability to do deletions for twist correction?
I understand that the GUI does not currently support this, but is it possible to write sequence data directly to the ENSnano file? Just only if possible, could you please tell us how to directly write data to "strands" > i > "domains" > "HelixDomain" > "sequence”?
I have found the following statement in your documentation. So we will wait for the release of a new version if directly written data is not reflected in the export staples function.
We are currently working on an interface to set the sequences for the parts of the design which are not matched with a scaffold.
Hi,
First of all, this tool is great, all the combined 2D/3D features make it a significant improvement over Cadnano! Thanks for open-sourcing this for the community!
I have a feature request - Importing Cadnano files into ENSnano works well, but there doesn't seem to be a way to export back out to the Cadnano json format. This would be especially useful when running Cando (http://cando-dna-origami.org) simulations, which only work with a Cadnano file input. Perhaps you could also implement this to export 1 file per grid in a single system?
Many thanks!
Tested in main
When importing sequences into ensnano from a .txt file doesn't work, one can only select .ens files even when All supported files
is selected. Saving the file as .ens solves this problem but it guess .txt files should also be shown.
Hi,
I am new to Rust (and to ENSnano) and wanted to run it on Linux which sadly does not come with an executable.
I tried building it as described in the README but failed with the following output:
$ cargo run --features=log_after_renderer_setup --release
Updating crates.io index
Updating git repository `https://github.com/thenlevy/chebyshev_polynomials`
Updating git repository `https://github.com/termhn/ultraviolet`
Updating git repository `https://github.com/nical/lyon`
Updating git repository `https://github.com/rust-cli/confy`
error: failed to select a version for the requirement `iced_aw = "^0.2.0"`
candidate versions found which didn't match: 0.7.0, 0.6.0, 0.5.2
location searched: crates.io index
required by package `ensnano_gui v0.4.0 (/path/to/ensnano/ensnano-gui)`
perhaps a crate was updated and forgotten to be re-vendored?
Looking at https://docs.rs/iced_aw/0.2.0/iced_aw/index.html, the required version is apparently no longer available. I tried editing ensnano-gui/Cargo.toml
and ensnano-organizer/Cargo.toml
to 0.7.0 (and in another attempt to 0.5.2) which both did not compile.
What ultimately allowed me to build and run ENSnano was to clone iced_aw
, checkout version 0.2.0 and cargo build --release
. I then updated the entries for iced_raw
in ensnano-gui/Cargo.toml
to iced_aw = { path="/path/to/iced_aw", features = ["tab_bar"]}
and in ensnano-organizer/Cargo.toml
to iced_aw = { path="/path/to/iced_aw", features=["icons", "icon_text"] }
.
$ rustc --version
rustc 1.72.1 (d5c2e9c34 2023-09-13)
$ cargo --version
cargo 1.72.1 (103a7ff2e 2023-08-15)
Maybe this will be useful to others. Please let me know if this approach is flawed and what is considered the better way to build ENSnano on Linux.
windows 10, cargo run crash
active toolchain
stable-x86_64-pc-windows-msvc (default)
rustc 1.56.1 (59eed8a2a 2021-11-01)
thread 'main' panicked at 'wgpu error: Validation Error
Caused by:
In Device::create_render_pipeline
error matching FRAGMENT shader requirements against the pipeline
unable to filter the texture (ResourceBinding { group: 0, binding: 2 }) by the sampler (ResourceBinding { group: 0, binding: 1 })
non-filterable float texture
', C:\Users\Administrator.cargo\registry\src\mirrors.ustc.edu.cn-12df342d903acd47\wgpu-0.11.1\src\backend\direct.rs:2195:5
note: run with RUST_BACKTRACE=1
environment variable to display a backtrace
error: process didn't exit successfully: target\release\ensnano.exe
(exit code: 101)
This might not be a bug but it can be really bad for new users.
How to reproduce:
Scadnano imports take into account group position and orientation, but not helix position and orientation. This is important for scadnano designs that don't have a grid; in this case, it appears that the import uses a default grid and grid position for each helix.
In the attached file (extension renamed from .sc), for example, the helices are arranged in a curved fashion.
c-small.txt
[Description]
When two close helices are cut at suggestied possible cross-over position, the 2D and 3D View show cross-overs that are not possible.
[How to reproduce]
Hello!
I have encountered an issue during the building process (more precisely during the dependency-fetching phase). Cargo refuses to load the iced
crate.
error: failed to get `iced` as a dependency of package `ensnano v0.2.1`
Caused by:
failed to load source for dependency `iced`
Caused by:
Unable to update https://github.com/thenlevy/iced?rev=5eddea0
Caused by:
revspec '5eddea0' not found; class=Reference (4); code=NotFound (-3)
It seems like the version specified in the Cargo.toml
indicates the revision 5eddea0
, which does apparently not exist.
[dependencies]
iced = { git = "https://github.com/thenlevy/iced", rev = "5eddea0", features=["image"] }
iced_wgpu = { git = "https://github.com/thenlevy/iced", rev = "5eddea0" }
iced_graphics = { git = "https://github.com/thenlevy/iced", rev = "5eddea0" }
iced_winit = { git = "https://github.com/thenlevy/iced", rev = "5eddea0" }
iced_native = { git = "https://github.com/thenlevy/iced", rev = "5eddea0" }
When manually editing the Cargo.toml
file to remove these indications, the building process runs; but stops once again (although a bit further) because ensnano_organizer
also uses iced
as a dependency with this conflicting revision.
cargo 1.53.0 (4369396ce 2021-04-27)
rustc 1.53.0 (53cb7b09b 2021-06-17)
rustup 1.24.3 (ce5817a94 2021-05-31)
OS : Pop!_OS 20.10 x86_64
This issue has been reproduced on the following configuration
rustc 1.54.0-nightly (3e99439f4 2021-05-17)
OS : MacOs 11.4 Big Sur
git clone https://github.com/thenlevy/ensnano
cd ensnano
cargo run
Hello! I am new to ENSnano.
I've just started working on a structural design following the tutorial, but I am already impressed by the potential of ENSnano. ENSnano fits my demand! I look forward to your ongoing development.
The first feature I want is Orthographic projection. This feature would be useful for periodic and precise placement of DNA Helix. The other feature is a grid for more flexible helix placement. For example, I want to slightly deform a nanotube into an ellipse, but I don't know how to do it. One way might be to have a number of grids with only one helix placed, and then arrange them in the desired overall shape. However, if you have a better existing solution, I would appreciate it if you could let me know.
Hello,
When trying to copy and paste crossovers/strands from structures imported from cadnano Ctrl+v/j dont seem to do anything.
Furthermore is there a way to fully delete grids? I can see I can turn visibility off but not delete.
Regards,
D
Hey, thank you for this Software. I have a small feature request:
Selected objects in Nucleotide Selection Mode or DNA Strand Selection Mode lose selection after translation in 2D View (Middle Mouse Button).
It would be nice if the selection stays, as it's done if one selects whole helices.
I've noticed that on master
the mouse cursor does often not update correctly.
This is patched on dev already
Is there any way to add deletions? I see when I import them from a scadnano file they are not added (but the helices are the correct length).
Also is there a way to have 8nt grid spacing (like (s)cadnano? This would be very useful for designing structures.
Hey there!
I tried to install ENSnano according to the instructions:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
git clone https://github.com/thenlevy/ensnano.git
cd ensnano
source "$HOME/.cargo/env"
cargo run --release
But then I got an error after the last command
Updating git repository `https://github.com/hecrj/wgpu_glyph`
Updating crates.io index
Updating git repository `https://github.com/termhn/ultraviolet`
Updating git repository `https://github.com/hecrj/iced`
Updating git repository `https://github.com/iced-rs/iced_aw`
Updating git repository `https://github.com/thenlevy/iced_aw`
Updating git repository `https://github.com/nical/lyon`
Updating git repository `https://github.com/hecrj/iced`
Updating git repository `https://github.com/iced-rs/winit`
error: failed to get `winit` as a dependency of package `iced_winit v0.3.0 (https://github.com/hecrj/iced?rev=61c747b53589d98f477fea95f85d2ea5349666d3#61c747b5)`
... which satisfies git dependency `iced_winit` of package `ensnano_organizer v0.1.0 (/Users/alisagorislav/ensnano/ensnano-organizer)`
... which satisfies path dependency `ensnano_organizer` of package `ensnano_design v0.4.0 (/Users/alisagorislav/ensnano/ensnano-design)`
Caused by:
failed to load source for dependency `winit`
Caused by:
Unable to update https://github.com/iced-rs/winit?rev=1e6623c4d06d110e5408dcbdf1edebd07e6a200e
Caused by:
revspec '1e6623c4d06d110e5408dcbdf1edebd07e6a200e' not found; class=Reference (4); code=NotFound (-3)
I used macOS Monterey 12.1, the Rust version is stable 1.63.0 (bottled)
How can I fix this problem?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.