wrnap 0.5.1 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/encodings.xml +5 -0
- data/.idea/misc.xml +5 -0
- data/.idea/modules.xml +9 -0
- data/.idea/scopes/scope_settings.xml +5 -0
- data/.idea/vcs.xml +7 -0
- data/.idea/workspace.xml +169 -0
- data/.idea/wrnap.iml +49 -0
- data/lib/wrnap/package/base.rb +5 -5
- data/lib/wrnap/package/fft_eq.rb +20 -0
- data/lib/wrnap/package/fft_eq_base.rb +22 -0
- data/lib/wrnap/package/fft_population.rb +47 -0
- data/lib/wrnap/version.rb +1 -1
- metadata +14 -3
- data/lib/wrnap/package/population.rb +0 -95
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cefe9e6fe3cf4bf1b3be6b6a3736811b1ffaaf27
|
4
|
+
data.tar.gz: de8eecb67814098f053eb2c6dbd83fa082d57e2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4ffa744e8f49dd166642309710ec373b756af413127b65c4e812a6982794328d929f86add790264c8179030100145630a1fd6ac4be925cd7ccf216bab6a1f825
|
7
|
+
data.tar.gz: 5efc6edf99af6535cef344c05ef5a5547e4f8d77549e2540c12f2bc57d714517f9fee4597a3ac86bf5e1d029b4622a0940c667d597c9e6352f04fa26de1cc173
|
data/.idea/.name
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
wrnap
|
data/.idea/.rakeTasks
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<Settings><!--This file was automatically generated by Ruby plugin.
|
3
|
+
You are allowed to:
|
4
|
+
1. Remove rake task
|
5
|
+
2. Add existing rake tasks
|
6
|
+
To add existing rake tasks automatically delete this file and reload the project.
|
7
|
+
--><RakeGroup description="" fullCmd="" taksId="rake"><RakeTask description="Build wrnap-0.5.1.gem into the pkg directory" fullCmd="build" taksId="build" /><RakeTask description="Build and install wrnap-0.5.1.gem into system gems" fullCmd="install" taksId="install" /><RakeTask description="Create tag v0.5.1 and build and push wrnap-0.5.1.gem to Rubygems" fullCmd="release" taksId="release" /></RakeGroup></Settings>
|
data/.idea/encodings.xml
ADDED
data/.idea/misc.xml
ADDED
data/.idea/modules.xml
ADDED
data/.idea/vcs.xml
ADDED
data/.idea/workspace.xml
ADDED
@@ -0,0 +1,169 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<project version="4">
|
3
|
+
<component name="ChangeListManager">
|
4
|
+
<list default="true" id="f215766d-a45c-47cc-a7d7-9487868cd8b4" name="Default" comment="">
|
5
|
+
<change type="MODIFICATION" beforePath="$PROJECT_DIR$/lib/wrnap/package/base.rb" afterPath="$PROJECT_DIR$/lib/wrnap/package/base.rb" />
|
6
|
+
</list>
|
7
|
+
<ignored path="wrnap.iws" />
|
8
|
+
<ignored path=".idea/workspace.xml" />
|
9
|
+
<option name="TRACKING_ENABLED" value="true" />
|
10
|
+
<option name="SHOW_DIALOG" value="false" />
|
11
|
+
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
12
|
+
<option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
|
13
|
+
<option name="LAST_RESOLUTION" value="IGNORE" />
|
14
|
+
</component>
|
15
|
+
<component name="ChangesViewManager" flattened_view="true" show_ignored="false" />
|
16
|
+
<component name="CreatePatchCommitExecutor">
|
17
|
+
<option name="PATCH_PATH" value="" />
|
18
|
+
</component>
|
19
|
+
<component name="DaemonCodeAnalyzer">
|
20
|
+
<disable_hints />
|
21
|
+
</component>
|
22
|
+
<component name="FavoritesManager">
|
23
|
+
<favorites_list name="wrnap" />
|
24
|
+
</component>
|
25
|
+
<component name="FileEditorManager">
|
26
|
+
<leaf>
|
27
|
+
<file leaf-file-name="wrnap.rb" pinned="false" current="true" current-in-tab="true">
|
28
|
+
<entry file="file://$PROJECT_DIR$/lib/wrnap.rb">
|
29
|
+
<provider selected="true" editor-type-id="text-editor">
|
30
|
+
<state vertical-scroll-proportion="-0.074179746" vertical-offset="52" max-vertical-offset="1183">
|
31
|
+
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
32
|
+
<folding />
|
33
|
+
</state>
|
34
|
+
</provider>
|
35
|
+
</entry>
|
36
|
+
</file>
|
37
|
+
</leaf>
|
38
|
+
</component>
|
39
|
+
<component name="FindManager">
|
40
|
+
<FindUsagesManager>
|
41
|
+
<setting name="OPEN_NEW_TAB" value="true" />
|
42
|
+
</FindUsagesManager>
|
43
|
+
</component>
|
44
|
+
<component name="Git.Settings">
|
45
|
+
<option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
|
46
|
+
</component>
|
47
|
+
<component name="ProjectFrameBounds">
|
48
|
+
<option name="y" value="22" />
|
49
|
+
<option name="width" value="1280" />
|
50
|
+
<option name="height" value="774" />
|
51
|
+
</component>
|
52
|
+
<component name="ProjectLevelVcsManager" settingsEditedManually="false">
|
53
|
+
<OptionsSetting value="true" id="Add" />
|
54
|
+
<OptionsSetting value="true" id="Remove" />
|
55
|
+
<OptionsSetting value="true" id="Checkout" />
|
56
|
+
<OptionsSetting value="true" id="Update" />
|
57
|
+
<OptionsSetting value="true" id="Status" />
|
58
|
+
<OptionsSetting value="true" id="Edit" />
|
59
|
+
<ConfirmationsSetting value="0" id="Add" />
|
60
|
+
<ConfirmationsSetting value="0" id="Remove" />
|
61
|
+
</component>
|
62
|
+
<component name="ProjectReloadState">
|
63
|
+
<option name="STATE" value="0" />
|
64
|
+
</component>
|
65
|
+
<component name="ProjectView">
|
66
|
+
<navigator currentView="ProjectPane" proportions="" version="1">
|
67
|
+
<flattenPackages />
|
68
|
+
<showMembers />
|
69
|
+
<showModules />
|
70
|
+
<showLibraryContents />
|
71
|
+
<hideEmptyPackages />
|
72
|
+
<abbreviatePackageNames />
|
73
|
+
<autoscrollToSource />
|
74
|
+
<autoscrollFromSource />
|
75
|
+
<sortByType />
|
76
|
+
</navigator>
|
77
|
+
<panes>
|
78
|
+
<pane id="ProjectPane">
|
79
|
+
<subPane>
|
80
|
+
<PATH>
|
81
|
+
<PATH_ELEMENT>
|
82
|
+
<option name="myItemId" value="wrnap" />
|
83
|
+
<option name="myItemType" value="com.intellij.ide.projectView.impl.nodes.ProjectViewProjectNode" />
|
84
|
+
</PATH_ELEMENT>
|
85
|
+
</PATH>
|
86
|
+
</subPane>
|
87
|
+
</pane>
|
88
|
+
<pane id="Scope" />
|
89
|
+
</panes>
|
90
|
+
</component>
|
91
|
+
<component name="PropertiesComponent">
|
92
|
+
<property name="WebServerToolWindowFactoryState" value="false" />
|
93
|
+
<property name="options.lastSelected" value="reference.settingsdialog.IDE.editor.colors.Font" />
|
94
|
+
<property name="options.splitter.main.proportions" value="0.3" />
|
95
|
+
<property name="options.splitter.details.proportions" value="0.2" />
|
96
|
+
<property name="options.searchVisible" value="true" />
|
97
|
+
<property name="FullScreen" value="false" />
|
98
|
+
</component>
|
99
|
+
<component name="RunManager">
|
100
|
+
<list size="0" />
|
101
|
+
</component>
|
102
|
+
<component name="ShelveChangesManager" show_recycled="false" />
|
103
|
+
<component name="SvnConfiguration">
|
104
|
+
<configuration />
|
105
|
+
</component>
|
106
|
+
<component name="TaskManager">
|
107
|
+
<task active="true" id="Default" summary="Default task">
|
108
|
+
<changelist id="f215766d-a45c-47cc-a7d7-9487868cd8b4" name="Default" comment="" />
|
109
|
+
<created>1399483991383</created>
|
110
|
+
<updated>1399483991383</updated>
|
111
|
+
</task>
|
112
|
+
<servers />
|
113
|
+
</component>
|
114
|
+
<component name="ToolWindowManager">
|
115
|
+
<frame x="0" y="22" width="1280" height="774" extended-state="6" />
|
116
|
+
<editor active="false" />
|
117
|
+
<layout>
|
118
|
+
<window_info id="Messages" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.32968536" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
119
|
+
<window_info id="Changes" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
120
|
+
<window_info id="Terminal" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
121
|
+
<window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
|
122
|
+
<window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
123
|
+
<window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
124
|
+
<window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" weight="0.16796875" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
|
125
|
+
<window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
|
126
|
+
<window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
127
|
+
<window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="true" content_ui="tabs" />
|
128
|
+
<window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25307798" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
|
129
|
+
<window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="-1" side_tool="false" content_ui="tabs" />
|
130
|
+
<window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
|
131
|
+
<window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
132
|
+
<window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
133
|
+
<window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
|
134
|
+
<window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="SLIDING" type="SLIDING" visible="false" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
|
135
|
+
<window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
|
136
|
+
<window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
|
137
|
+
</layout>
|
138
|
+
</component>
|
139
|
+
<component name="Vcs.Log.UiProperties">
|
140
|
+
<option name="RECENTLY_FILTERED_USER_GROUPS">
|
141
|
+
<collection />
|
142
|
+
</option>
|
143
|
+
<option name="RECENTLY_FILTERED_BRANCH_GROUPS">
|
144
|
+
<collection />
|
145
|
+
</option>
|
146
|
+
</component>
|
147
|
+
<component name="VcsContentAnnotationSettings">
|
148
|
+
<option name="myLimit" value="2678400000" />
|
149
|
+
</component>
|
150
|
+
<component name="VcsManagerConfiguration">
|
151
|
+
<option name="myTodoPanelSettings">
|
152
|
+
<TodoPanelSettings />
|
153
|
+
</option>
|
154
|
+
</component>
|
155
|
+
<component name="XDebuggerManager">
|
156
|
+
<breakpoint-manager />
|
157
|
+
</component>
|
158
|
+
<component name="editorHistoryManager">
|
159
|
+
<entry file="file://$PROJECT_DIR$/lib/wrnap.rb">
|
160
|
+
<provider selected="true" editor-type-id="text-editor">
|
161
|
+
<state vertical-scroll-proportion="-0.074179746" vertical-offset="52" max-vertical-offset="1183">
|
162
|
+
<caret line="0" column="0" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
|
163
|
+
<folding />
|
164
|
+
</state>
|
165
|
+
</provider>
|
166
|
+
</entry>
|
167
|
+
</component>
|
168
|
+
</project>
|
169
|
+
|
data/.idea/wrnap.iml
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<module type="RUBY_MODULE" version="4">
|
3
|
+
<component name="FacetManager">
|
4
|
+
<facet type="gem" name="Ruby Gem">
|
5
|
+
<configuration>
|
6
|
+
<option name="GEM_APP_ROOT_PATH" value="$MODULE_DIR$" />
|
7
|
+
<option name="GEM_APP_TEST_PATH" value="" />
|
8
|
+
<option name="GEM_APP_LIB_PATH" value="$MODULE_DIR$/lib" />
|
9
|
+
</configuration>
|
10
|
+
</facet>
|
11
|
+
</component>
|
12
|
+
<component name="NewModuleRootManager">
|
13
|
+
<content url="file://$MODULE_DIR$" />
|
14
|
+
<orderEntry type="inheritedJdk" />
|
15
|
+
<orderEntry type="sourceFolder" forTests="false" />
|
16
|
+
<orderEntry type="module-library">
|
17
|
+
<library name="wrnap (v0.5.1, /Users/evansenter/Source/wrnap) [path][gem]">
|
18
|
+
<CLASSES>
|
19
|
+
<root url="file://$MODULE_DIR$/lib" />
|
20
|
+
<root url="file://$MODULE_DIR$/pkg" />
|
21
|
+
<root url="file://$MODULE_DIR$/.idea" />
|
22
|
+
</CLASSES>
|
23
|
+
<SOURCES>
|
24
|
+
<root url="file://$MODULE_DIR$/lib" />
|
25
|
+
<root url="file://$MODULE_DIR$/pkg" />
|
26
|
+
<root url="file://$MODULE_DIR$/.idea" />
|
27
|
+
</SOURCES>
|
28
|
+
</library>
|
29
|
+
</orderEntry>
|
30
|
+
<orderEntry type="library" scope="PROVIDED" name="activesupport (v4.1.0, rbenv: 2.0.0-p0) [gem]" level="application" />
|
31
|
+
<orderEntry type="library" scope="PROVIDED" name="bio (v1.4.3.0001, rbenv: 2.0.0-p0) [gem]" level="application" />
|
32
|
+
<orderEntry type="library" scope="PROVIDED" name="bundler (v1.6.2, rbenv: 2.0.0-p0) [gem]" level="application" />
|
33
|
+
<orderEntry type="library" scope="PROVIDED" name="entrez (v0.5.8.1, rbenv: 2.0.0-p0) [gem]" level="application" />
|
34
|
+
<orderEntry type="library" scope="PROVIDED" name="hoe (v3.12.0, rbenv: 2.0.0-p0) [gem]" level="application" />
|
35
|
+
<orderEntry type="library" scope="PROVIDED" name="httparty (v0.13.1, rbenv: 2.0.0-p0) [gem]" level="application" />
|
36
|
+
<orderEntry type="library" scope="PROVIDED" name="i18n (v0.6.9, rbenv: 2.0.0-p0) [gem]" level="application" />
|
37
|
+
<orderEntry type="library" scope="PROVIDED" name="json (v1.8.1, rbenv: 2.0.0-p0) [gem]" level="application" />
|
38
|
+
<orderEntry type="library" scope="PROVIDED" name="minitest (v5.3.3, rbenv: 2.0.0-p0) [gem]" level="application" />
|
39
|
+
<orderEntry type="library" scope="PROVIDED" name="multi_xml (v0.5.5, rbenv: 2.0.0-p0) [gem]" level="application" />
|
40
|
+
<orderEntry type="library" scope="PROVIDED" name="rake (v10.2.2, rbenv: 2.0.0-p0) [gem]" level="application" />
|
41
|
+
<orderEntry type="library" scope="PROVIDED" name="rand (v0.9.1, rbenv: 2.0.0-p0) [gem]" level="application" />
|
42
|
+
<orderEntry type="library" scope="PROVIDED" name="rinruby (v2.0.3, rbenv: 2.0.0-p0) [gem]" level="application" />
|
43
|
+
<orderEntry type="library" scope="PROVIDED" name="rroc (v0.1.1, rbenv: 2.0.0-p0) [gem]" level="application" />
|
44
|
+
<orderEntry type="library" scope="PROVIDED" name="shuffle (v0.1.1, rbenv: 2.0.0-p0) [gem]" level="application" />
|
45
|
+
<orderEntry type="library" scope="PROVIDED" name="thread_safe (v0.3.3, rbenv: 2.0.0-p0) [gem]" level="application" />
|
46
|
+
<orderEntry type="library" scope="PROVIDED" name="tzinfo (v1.1.0, rbenv: 2.0.0-p0) [gem]" level="application" />
|
47
|
+
</component>
|
48
|
+
</module>
|
49
|
+
|
data/lib/wrnap/package/base.rb
CHANGED
@@ -39,11 +39,11 @@ module Wrnap
|
|
39
39
|
data = [data] unless data.is_a?(Array)
|
40
40
|
|
41
41
|
@data = case data.map(&:class)
|
42
|
-
when [Wrnap::Global::Rna]
|
43
|
-
when *(1..3).map { |i| [String] * i }
|
44
|
-
when [Hash]
|
45
|
-
when [Array]
|
46
|
-
when [NilClass]
|
42
|
+
when [Wrnap::Global::Rna], [Wrnap::Global::Rna::Context] then data.first
|
43
|
+
when *(1..3).map { |i| [String] * i } then RNA.from_string(*data)
|
44
|
+
when [Hash] then RNA.from_hash(*data)
|
45
|
+
when [Array] then RNA.from_array(*data)
|
46
|
+
when [NilClass] then Wrnap::Global::Rna.placeholder
|
47
47
|
else raise TypeError.new("Unsupported Wrnap::Global::Rna#initialize format: #{data}")
|
48
48
|
end
|
49
49
|
else
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Wrnap
|
2
|
+
module Package
|
3
|
+
class FftEq < FftEqBase
|
4
|
+
attr_reader :equilibrium
|
5
|
+
|
6
|
+
self.default_flags = ->(context, flags) do
|
7
|
+
{
|
8
|
+
"-fftbor2d-i" => context.data.seq,
|
9
|
+
"-fftbor2d-j" => context.data.str_1,
|
10
|
+
"-fftbor2d-k" => context.data.str_2,
|
11
|
+
"-population-e" => 1e-4
|
12
|
+
}
|
13
|
+
end
|
14
|
+
|
15
|
+
def post_process
|
16
|
+
@equilibrium = (response.empty? || response =~ /Infinity/ ? -1 : 10 ** response.strip.to_f)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Wrnap
|
2
|
+
module Package
|
3
|
+
class FftEqBase < Base
|
4
|
+
self.executable_name = "FFTeq"
|
5
|
+
|
6
|
+
self.default_flags = ->(context, flags) do
|
7
|
+
{
|
8
|
+
"-fftbor2d-i" => context.data.seq,
|
9
|
+
"-fftbor2d-j" => context.data.str_1,
|
10
|
+
"-fftbor2d-k" => context.data.str_2
|
11
|
+
}
|
12
|
+
end
|
13
|
+
self.quote_flag_params = %w|-fftbor2d-i -fftbor2d-j -fftbor2d-k|
|
14
|
+
|
15
|
+
def run_command(flags)
|
16
|
+
Wrnap.debugger { "Running #{exec_name} on #{data.inspect}" }
|
17
|
+
|
18
|
+
"%s %s" % [exec_name, stringify_flags(flags)]
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,47 @@
|
|
1
|
+
module Wrnap
|
2
|
+
module Package
|
3
|
+
class FftPopulation < FftEqBase
|
4
|
+
THREE_COLUMN_REGEX = /^([+-]\d+\.\d+\t){2}[+-]\d+\.\d+$/
|
5
|
+
|
6
|
+
attr_reader :starting_population, :target_population
|
7
|
+
|
8
|
+
class PopulationProportion
|
9
|
+
include Enumerable
|
10
|
+
|
11
|
+
attr_reader :proportion_over_time
|
12
|
+
|
13
|
+
def initialize(time, proportion)
|
14
|
+
@proportion_over_time = time.zip(proportion)
|
15
|
+
end
|
16
|
+
|
17
|
+
def time_range(from, to)
|
18
|
+
proportion_over_time.select { |time, _| ((from.to_f)..(to.to_f)) === time }
|
19
|
+
end
|
20
|
+
|
21
|
+
def time_points; proportion_over_time.map(&:first); end
|
22
|
+
def proportion_points; proportion_over_time.map(&:last); end
|
23
|
+
|
24
|
+
def each
|
25
|
+
proportion_over_time.each { |_| yield _ }
|
26
|
+
end
|
27
|
+
|
28
|
+
def inspect
|
29
|
+
"#<Wrnap::Package::Population::PopulationProportion time: (%f..%f), proportion: (%f..%f)>" % [
|
30
|
+
time_points[0],
|
31
|
+
time_points[-1],
|
32
|
+
proportion_points[0],
|
33
|
+
proportion_points[-1],
|
34
|
+
]
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def post_process
|
39
|
+
unless response.empty?
|
40
|
+
time_points, target_population, starting_population = response.split(/\n/).select { |line| line =~ THREE_COLUMN_REGEX }.map { |line| line.split(/\t/).map(&:to_f) }.transpose
|
41
|
+
@starting_population = PopulationProportion.new(time_points, starting_population)
|
42
|
+
@target_population = PopulationProportion.new(time_points, target_population)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
47
|
+
end
|
data/lib/wrnap/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: wrnap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Evan Senter
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -130,6 +130,15 @@ extensions: []
|
|
130
130
|
extra_rdoc_files: []
|
131
131
|
files:
|
132
132
|
- ".gitignore"
|
133
|
+
- ".idea/.name"
|
134
|
+
- ".idea/.rakeTasks"
|
135
|
+
- ".idea/encodings.xml"
|
136
|
+
- ".idea/misc.xml"
|
137
|
+
- ".idea/modules.xml"
|
138
|
+
- ".idea/scopes/scope_settings.xml"
|
139
|
+
- ".idea/vcs.xml"
|
140
|
+
- ".idea/workspace.xml"
|
141
|
+
- ".idea/wrnap.iml"
|
133
142
|
- Gemfile
|
134
143
|
- LICENSE.md
|
135
144
|
- README.md
|
@@ -146,7 +155,10 @@ files:
|
|
146
155
|
- lib/wrnap/package/base.rb
|
147
156
|
- lib/wrnap/package/energy_grid_2d.rb
|
148
157
|
- lib/wrnap/package/eval.rb
|
158
|
+
- lib/wrnap/package/fft_eq.rb
|
159
|
+
- lib/wrnap/package/fft_eq_base.rb
|
149
160
|
- lib/wrnap/package/fft_mfpt.rb
|
161
|
+
- lib/wrnap/package/fft_population.rb
|
150
162
|
- lib/wrnap/package/fftbor.rb
|
151
163
|
- lib/wrnap/package/fftbor2d.rb
|
152
164
|
- lib/wrnap/package/ffthairpin.rb
|
@@ -156,7 +168,6 @@ files:
|
|
156
168
|
- lib/wrnap/package/kinwalker.rb
|
157
169
|
- lib/wrnap/package/mfpt.rb
|
158
170
|
- lib/wrnap/package/plot.rb
|
159
|
-
- lib/wrnap/package/population.rb
|
160
171
|
- lib/wrnap/package/rna2dfold.rb
|
161
172
|
- lib/wrnap/package/rnabor.rb
|
162
173
|
- lib/wrnap/package/spectral.rb
|
@@ -1,95 +0,0 @@
|
|
1
|
-
module Wrnap
|
2
|
-
module Package
|
3
|
-
class Population < Base
|
4
|
-
THREE_COLUMN_REGEX = /^([+-]\d+\.\d+\t){2}[+-]\d+\.\d+$/
|
5
|
-
|
6
|
-
attr_reader :str_1_to_str_2, :str_1_to_str_1, :equilibrium
|
7
|
-
|
8
|
-
self.default_flags = ->(context, flags) do
|
9
|
-
{
|
10
|
-
"-fftbor2d-i" => context.data.seq,
|
11
|
-
"-fftbor2d-j" => context.data.str_1,
|
12
|
-
"-fftbor2d-k" => context.data.str_2,
|
13
|
-
"-spectral-i" => -10,
|
14
|
-
"-spectral-j" => 10,
|
15
|
-
"-spectral-p" => 1e-2,
|
16
|
-
}
|
17
|
-
end
|
18
|
-
self.quote_flag_params = %w|-fftbor2d-i -fftbor2d-j -fftbor2d-k|
|
19
|
-
|
20
|
-
class PopulationProportion
|
21
|
-
include Enumerable
|
22
|
-
|
23
|
-
attr_reader :proportion_over_time
|
24
|
-
|
25
|
-
def initialize(time, proportion)
|
26
|
-
@proportion_over_time = time.zip(proportion)
|
27
|
-
end
|
28
|
-
|
29
|
-
def time_range(from, to)
|
30
|
-
proportion_over_time.select { |time, _| ((from.to_f)..(to.to_f)) === time }
|
31
|
-
end
|
32
|
-
|
33
|
-
def equilibrium(percentile: 95, window_size: 5, epsilon: 1e-4)
|
34
|
-
start = proportion_points.first
|
35
|
-
stop = proportion_points.last
|
36
|
-
|
37
|
-
if start != stop
|
38
|
-
sign = stop > start ? :increasing : :decreasing
|
39
|
-
# If the population is increasing over time, we want the 95%, otherwise we want the 5%
|
40
|
-
spread_100 = (start.zero? || stop.zero? ? [start, stop].max : (stop / start).abs) / 100
|
41
|
-
# Look for the first index at the percentile we're interested in, and scan to the right from there.
|
42
|
-
start_index = proportion_points.each_with_index.find do |proportion, i|
|
43
|
-
case sign
|
44
|
-
when :increasing then proportion > (stop - (spread_100 * (100 - percentile)))
|
45
|
-
when :decreasing then proportion < (stop + (spread_100 * (100 - percentile)))
|
46
|
-
end
|
47
|
-
end.last
|
48
|
-
|
49
|
-
# The first slice starting at x we find where abs(p(x + i), p(x)) < epslion for all 1 <= x < window_size is equilibrium,
|
50
|
-
# and we return that time point.
|
51
|
-
equilibrium_time = proportion_over_time[start_index..-1].each_cons(window_size).find do |proportion_slice|
|
52
|
-
proportion_slice.all? { |time, proportion| (proportion - proportion_slice.first.last).abs < epsilon }
|
53
|
-
end
|
54
|
-
|
55
|
-
equilibrium_time ? 10 ** equilibrium_time.first.first : -1
|
56
|
-
else
|
57
|
-
-1
|
58
|
-
end
|
59
|
-
end
|
60
|
-
|
61
|
-
def time_points; proportion_over_time.map(&:first); end
|
62
|
-
def proportion_points; proportion_over_time.map(&:last); end
|
63
|
-
|
64
|
-
def each
|
65
|
-
proportion_over_time.each { |_| yield _ }
|
66
|
-
end
|
67
|
-
|
68
|
-
def inspect
|
69
|
-
"#<Wrnap::Package::Population::PopulationProportion time: (%f..%f), proportion: (%f..%f)>" % [
|
70
|
-
time_points[0],
|
71
|
-
time_points[-1],
|
72
|
-
proportion_points[0],
|
73
|
-
proportion_points[-1],
|
74
|
-
]
|
75
|
-
end
|
76
|
-
end
|
77
|
-
|
78
|
-
def run_command(flags)
|
79
|
-
Wrnap.debugger { "Running #{exec_name} on #{data.inspect}" }
|
80
|
-
|
81
|
-
"%s %s" % [exec_name, stringify_flags(flags)]
|
82
|
-
end
|
83
|
-
|
84
|
-
def post_process
|
85
|
-
if flags.include?("-spectral-e")
|
86
|
-
@equilibrium = 10 ** response.strip.to_f
|
87
|
-
else
|
88
|
-
time_points, str_1_to_str_2, str_1_to_str_1 = response.split(/\n/).select { |line| line =~ THREE_COLUMN_REGEX }.map { |line| line.split(/\t/).map(&:to_f) }.transpose
|
89
|
-
@str_1_to_str_2 = PopulationProportion.new(time_points, str_1_to_str_2)
|
90
|
-
@str_1_to_str_1 = PopulationProportion.new(time_points, str_1_to_str_1)
|
91
|
-
end
|
92
|
-
end
|
93
|
-
end
|
94
|
-
end
|
95
|
-
end
|