daslab / arnie Goto Github PK
View Code? Open in Web Editor NEWPython utility to estimate, compare, and reweight RNA energetics across many secondary structure algorithms.
License: MIT License
Python utility to estimate, compare, and reweight RNA energetics across many secondary structure algorithms.
License: MIT License
The pseudoknots
variable is accessed before being initialized (the argument is still named pk
). This was introduced by commit 877e3a9
I had trouble with HotKnots too, but eventually I went to
/home/groups/rhiju/rkretsch/PK/HotKnots_v2.0/bin/
And ran the command line
/HotKnots -noPS -s GGGAAAACCC -m DP -p params/parameters_DP03.txt
And that worked. When I went back to Thomas' PKAnalysis.py wrapper, I was also able get HotKnots working.
There is some stuff within HotKnots itself regarding relative paths โ which would be worth troubleshooting.
From @rkretsch :
in the wrapper in arnie, I literally had to have it move to the hotknots folder and run in there and move back because I could not get hotknots to run (on any machine) outside its folder
It looks like they have updated hotknots since when I wrote this wrapper though, so may be worth Thomas
investigating what improvements they made and if its better explicitly requiring the latest hotknots
Let's demonstrate EternaFold and Vienna2 through ContraFold since they are on bioconda.
Arnie documentation is out-of-date and missing key information. We have a group of tasks related to updating the documentation:
Hello, I am struggling to get this program to work. Can you tell me:
Ideally remove the necessity of adding a folder to your pythonpath. Would be a nice bonus if the package location was handled a little more user-friendly than the text file.
There was a desire to have a Das lab specific documentation on how to run this on Sherlock, including module that need to be loaded for each package and an example arnie_file with previous installs of packages.
Caught by David Cox and me during Ribonanza paper writing and testing on CASP15 targets:
Here's code snippet:
#!/usr/bin/python3
from arnie.utils import *
from ast import literal_eval
bp = literal_eval('[[0, 362], [1, 361], [2, 360], [3, 359], [4, 358], [5, 357], [6, 356], [7, 355], [8, 354], [9, 26], [10, 25], [11, 24], [12, 23], [13, 22], [14, 21], [15, 20], [27, 71], [28, 70], [29, 69], [30, 68], [32, 66], [33, 65], [34, 64], [35, 63], [36, 62], [37, 61], [38, 53], [39, 52], [40, 51], [41, 50], [42, 49], [54, 135], [55, 134], [56, 133], [57, 132], [58, 131], [59, 130], [72, 353], [73, 352], [74, 298], [75, 297], [76, 296], [77, 295], [78, 294], [79, 293], [80, 292], [81, 291], [82, 290], [83, 289], [84, 288], [86, 286], [87, 285], [89, 283], [95, 280], [102, 265], [103, 264], [104, 263], [106, 261], [107, 260], [108, 259], [109, 258], [110, 257], [111, 256], [112, 255], [113, 254], [114, 253], [115, 149], [116, 148], [118, 146], [119, 145], [120, 144], [121, 143], [123, 141], [124, 140], [125, 139], [126, 138], [127, 137], [150, 167], [151, 166], [152, 165], [153, 164], [154, 163], [155, 162], [156, 161], [168, 252], [169, 251], [170, 187], [171, 186], [172, 185], [173, 184], [174, 183], [175, 182], [176, 181], [188, 205], [189, 204], [190, 203], [191, 202], [192, 201], [193, 200], [194, 199], [206, 250], [207, 249], [208, 248], [210, 246], [212, 244], [213, 243], [214, 242], [215, 241], [216, 240], [217, 232], [218, 231], [219, 230], [220, 229], [221, 228], [233, 319], [234, 318], [235, 317], [236, 316], [237, 315], [238, 314], [299, 333], [300, 332], [301, 331], [302, 330], [303, 329], [304, 328], [305, 327], [307, 325], [308, 324], [309, 323], [310, 322], [311, 321], [334, 351], [335, 350], [336, 349], [337, 348], [338, 347], [339, 346], [340, 345]]')
dbn = convert_bp_list_to_dotbracket(bp,363)
print(dbn)
The output is:
((((((((((((((((....)))))))((((.(((((((((((......)))))[[[[[[.)))))).))))(((((((((((((.((.(.....(......(((.(((((((((((.((((.(((((..]]]]]].))))).)))).))(((((((....)))))))(((((((((....)))))))(((((((....)))))))(((.(.((((((((((......))))).......))))).).)))))))))))))).)))..............)..).)).)))))))))))(((((((.(((((.........))))).)))))))(((((((....))))))))))))))))))
But it should be:
((((((((((((((((....)))))))((((.(((((((((((......)))))[[[[[[.)))))).))))(((((((((((((.((.(.....(......(((.(((((((((((.((((.(((((..]]]]]].))))).)))).))(((((((....)))))))(((((((((....)))))))(((((((....)))))))(((.(.((((((((((......)))))[[[[[[.))))).).)))))))))))))).)))..............)..).)).)))))))))))(((((((.(((((..]]]]]].))))).)))))))(((((((....))))))))))))))))))
That is, the second kissing loop ([[[[[[
,]]]]]]
) is missing.
Tagging @rkretsch for advice or a hotfix, and @tkaragianes for help with then updating pip
(which doesn't seem to have pk_predictors at all?)
Currently the separation of predictors into bpp, mfe, mea, and pk often does not make much intuitive sense. Eg there are predictors in mfe that can predict PKs and there is repeat functionality between mea and pk. I would suggest reconsidering these separation and creating more intuitive groupings.
when running all tests and examples, noticed many tmp files were never deleted.
The structure sanitization function should be updated to match the OpenKnotScore sanitize_structure implementation. This will be made consistent across projects.
Line 59 in 702f70b
There are functions in utils (placed in the last section "ORPHANED" in utils) are not used elsewhere in the package nor clearly documented. These should either be documented on how to use, taken outside utils into their own module if they have distinct utility, or deprecated.
Hi!
I am trying to run linear partition from arnie and it fails with segmentation fault running the following code, for instance.
In [5]: pfunc.pfunc_linearpartition_('AAAAAAAAA', package='vienna')
---------------------------------------------------------------------------
Exception Traceback (most recent call last)
<ipython-input-5-fa89ff9f43a7> in <module>
----> 1 pfunc.pfunc_linearpartition_('AAAAAAAAA', package='vienna')
/app/arnie/arnie/pfunc.py in pfunc_linearpartition_(seq, bpps, package, beam_size, return_free_energy, DEBUG)
551
552 if p.returncode:
--> 553 raise Exception('LinearPartition failed: on %s\n%s' % (seq, stderr))
554
555 os.remove("%s.sh" % tmp_command)
Exception: LinearPartition failed: on AAAAAAAAA
b'Segmentation fault (core dumped)\n'
I installed LinearPartition and ViennaRNA as described in the setup docs.
LinearPartition seems to work from the command line, so i suspect that something within ARNIE is not working properly?
$ echo GGGCUCGUAGAUCAGCGGUAGAUCGCUUCCUUCGCAAGGAAGCCCUGGGUUCAAAUCCCAGCGAGUCCACCA | ./linearpartition -o output2
Log Partition Coefficient: 15.88272
Outputing base pairing probability matrix to output2...
Done!
I am running on Debian10 inside docker.
Hi,
I am trying to get multiRNAfold tarball with the link: http://www.rnasoft.ca/download.html
However, the link directs to some random webpage?
Is there any updated link for RNAsoft?
Best,
Mandar Kulkarni
Line 47 in 19e9cba
free_energy('GGGUUUCCC',package='vienna')
Traceback (most recent call last):
....
return pfunc(seq, package=package, T=T, dangles=dangles, coaxial=coaxial, pseudo=pseudo, dna=dna, beam_size = beam_size,
TypeError: pfunc() got an unexpected keyword argument 'pseudo'
Fully merge in the PK branch and document install of packages and how to use.
I may be wrong but I think
if not ensemble:
structure = structure.replace('.','x')
is meant to be
if not ensemble:
constraint = constraint.replace('.','x')
in free_energy.py.
Hello, I am trying to use Arnie without eternafold installed. I find that my system crashes unless I change
if 'eternafoldparams' not in return_dct.keys():
return_dct['eternafoldparams'] = "%s/../params/EternaFoldParams.v1" % return_dct['eternafold']
to
if 'eternafoldparams' not in return_dct.keys() and 'eternafold' in return_dct.keys():
return_dct['eternafoldparams'] = "%s/../params/EternaFoldParams.v1" % return_dct['eternafold']
at the end of utils.py
because my dict doesn't have the 'eternafold '
key. Figured I'd post this here as a suggestion but maybe I'm just using Arnie incorrectly
Currently an RNA secondary structure is represented in many different formats, including file-formats, with all the conversation handled ad-hoc. Creating a secondary structure class would alleviate a lot readability issues and prevent future bugs.
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.