bioroebe 0.10.80 → 0.11.12
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of bioroebe might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/README.md +507 -310
- data/bioroebe.gemspec +3 -3
- data/doc/README.gen +506 -309
- data/doc/todo/bioroebe_todo.md +29 -40
- data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
- data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
- data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +13 -11
- data/lib/bioroebe/base/commandline_application/misc.rb +18 -8
- data/lib/bioroebe/base/prototype/misc.rb +1 -1
- data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
- data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
- data/lib/bioroebe/constants/files_and_directories.rb +8 -1
- data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
- data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
- data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
- data/lib/bioroebe/parsers/genbank_parser.rb +353 -24
- data/lib/bioroebe/python/README.md +1 -0
- data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
- data/lib/bioroebe/python/gui/gtk3/widget1.py +22 -0
- data/lib/bioroebe/python/mymodule.py +8 -0
- data/lib/bioroebe/python/protein_to_dna.py +30 -0
- data/lib/bioroebe/python/shell/shell.py +19 -0
- data/lib/bioroebe/python/to_rna.py +14 -0
- data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +11 -0
- data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
- data/lib/bioroebe/sequence/sequence.rb +54 -2
- data/lib/bioroebe/shell/menu.rb +3336 -3304
- data/lib/bioroebe/shell/readline/readline.rb +1 -1
- data/lib/bioroebe/shell/shell.rb +11233 -28
- data/lib/bioroebe/siRNA/siRNA.rb +81 -1
- data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
- data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
- data/lib/bioroebe/toplevel_methods/nucleotides.rb +22 -5
- data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
- data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
- data/lib/bioroebe/version/version.rb +2 -2
- data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
- data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +3 -3
- metadata +17 -36
- data/doc/setup.rb +0 -1655
- data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
- data/lib/bioroebe/shell/add.rb +0 -108
- data/lib/bioroebe/shell/assign.rb +0 -360
- data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
- data/lib/bioroebe/shell/constants.rb +0 -166
- data/lib/bioroebe/shell/download.rb +0 -335
- data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
- data/lib/bioroebe/shell/enzymes.rb +0 -310
- data/lib/bioroebe/shell/fasta.rb +0 -345
- data/lib/bioroebe/shell/gtk.rb +0 -76
- data/lib/bioroebe/shell/history.rb +0 -132
- data/lib/bioroebe/shell/initialize.rb +0 -217
- data/lib/bioroebe/shell/loop.rb +0 -74
- data/lib/bioroebe/shell/misc.rb +0 -4341
- data/lib/bioroebe/shell/prompt.rb +0 -107
- data/lib/bioroebe/shell/random.rb +0 -289
- data/lib/bioroebe/shell/reset.rb +0 -335
- data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
- data/lib/bioroebe/shell/search.rb +0 -337
- data/lib/bioroebe/shell/sequences.rb +0 -200
- data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
- data/lib/bioroebe/shell/startup.rb +0 -127
- data/lib/bioroebe/shell/taxonomy.rb +0 -14
- data/lib/bioroebe/shell/tk.rb +0 -23
- data/lib/bioroebe/shell/user_input.rb +0 -88
- data/lib/bioroebe/shell/xorg.rb +0 -45
@@ -1,166 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'bioroebe/shell/constants.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module Bioroebe # === Bioroebe::Shell
|
8
|
-
|
9
|
-
class Shell < ::Bioroebe::CommandlineApplication
|
10
|
-
|
11
|
-
# ========================================================================= #
|
12
|
-
# Right now we will only add the chemistry_paradise gem, if it is available.
|
13
|
-
# ========================================================================= #
|
14
|
-
array_failsave_requires = %w(
|
15
|
-
chemistry_paradise
|
16
|
-
)
|
17
|
-
array_failsave_requires.each {|project|
|
18
|
-
begin
|
19
|
-
require project
|
20
|
-
rescue LoadError; end # Silent rescue.
|
21
|
-
}
|
22
|
-
|
23
|
-
# ========================================================================= #
|
24
|
-
# === NAMESPACE
|
25
|
-
# ========================================================================= #
|
26
|
-
NAMESPACE = inspect
|
27
|
-
|
28
|
-
# ========================================================================= #
|
29
|
-
# === TRUNCATE_AT_N_ELEMENTS
|
30
|
-
#
|
31
|
-
# If we display nucleotide strings, then by default, these may be very
|
32
|
-
# long. So the following constant will act as a threshold.
|
33
|
-
# ========================================================================= #
|
34
|
-
TRUNCATE_AT_N_ELEMENTS = 2000
|
35
|
-
|
36
|
-
# ========================================================================= #
|
37
|
-
# === VALID_WAYS_TO_EXIT
|
38
|
-
#
|
39
|
-
# All ways to exit will be recorded here.
|
40
|
-
#
|
41
|
-
# If you need to use more ways, simply append to this Array.
|
42
|
-
#
|
43
|
-
# This constant may have to be moved into the bio-shell part eventually.
|
44
|
-
# ========================================================================= #
|
45
|
-
VALID_WAYS_TO_EXIT = %w(
|
46
|
-
quit q exit qq :q qt
|
47
|
-
bye
|
48
|
-
rda
|
49
|
-
r2
|
50
|
-
tq
|
51
|
-
sq
|
52
|
-
exit_program
|
53
|
-
exitprogram
|
54
|
-
)
|
55
|
-
|
56
|
-
# ========================================================================= #
|
57
|
-
# === DEFAULT_PADDING
|
58
|
-
# ========================================================================= #
|
59
|
-
DEFAULT_PADDING = ' ' # This is left-padding.
|
60
|
-
|
61
|
-
# ========================================================================= #
|
62
|
-
# === MAIN_EDITOR
|
63
|
-
#
|
64
|
-
# Which editor to use.
|
65
|
-
# ========================================================================= #
|
66
|
-
if ENV['IS_ROEBE']
|
67
|
-
MAIN_EDITOR = 'bluefish'
|
68
|
-
else # else assume that we may be on windows.
|
69
|
-
MAIN_EDITOR = 'notepad++.exe'
|
70
|
-
end; MY_EDITOR = MAIN_EDITOR # === MY_EDITOR
|
71
|
-
|
72
|
-
# ========================================================================= #
|
73
|
-
# === HOME_DIRECTORY_OF_USER_X
|
74
|
-
#
|
75
|
-
# Hardcoded path - only useful on my home setup, though.
|
76
|
-
# ========================================================================= #
|
77
|
-
HOME_DIRECTORY_OF_USER_X = '/home/x/'
|
78
|
-
|
79
|
-
# ========================================================================= #
|
80
|
-
# === RUBY_SRC
|
81
|
-
#
|
82
|
-
# Hardcoded. This is only useful on my home system.
|
83
|
-
# ========================================================================= #
|
84
|
-
if ENV['RSRC']
|
85
|
-
RUBY_SRC = "#{ENV['RSRC']}/"
|
86
|
-
else
|
87
|
-
RUBY_SRC = "#{HOME_DIRECTORY_OF_USER_X}programming/ruby/src/"
|
88
|
-
end
|
89
|
-
|
90
|
-
# ========================================================================= #
|
91
|
-
# === RUBY_BIOROEBE
|
92
|
-
#
|
93
|
-
# This allows a user to designate another home directory.
|
94
|
-
# ========================================================================= #
|
95
|
-
if ENV['RUBY_BIOROEBE']
|
96
|
-
BIOROEBE = ENV['RUBY_BIOROEBE'].to_s
|
97
|
-
else
|
98
|
-
BIOROEBE = ENV['HOME']
|
99
|
-
end
|
100
|
-
|
101
|
-
# ========================================================================= #
|
102
|
-
# === BIOSHELL_SAVE_FILE
|
103
|
-
#
|
104
|
-
# Designate the default location for the save-file, a markdown file.
|
105
|
-
# ========================================================================= #
|
106
|
-
if Dir.exist? ::Bioroebe.log_dir?
|
107
|
-
BIOSHELL_SAVE_FILE = "#{::Bioroebe.log_dir?}shell_file.md"
|
108
|
-
else
|
109
|
-
BIOSHELL_SAVE_FILE = '/home/Temp/bioroebe/shell_file.md'
|
110
|
-
end
|
111
|
-
|
112
|
-
# ========================================================================= #
|
113
|
-
# === HOME_DIR
|
114
|
-
#
|
115
|
-
# This probably is not used a lot anymore these days.
|
116
|
-
# ========================================================================= #
|
117
|
-
if RUBY_SRC # This is valid at home.
|
118
|
-
HOME_DIR = "#{ENV['RSRC']}/bioroebe/lib/bioroebe/"
|
119
|
-
else
|
120
|
-
begin
|
121
|
-
home_dir = File.expand_path('~')
|
122
|
-
rescue Exception
|
123
|
-
home_dir = '/root/'
|
124
|
-
end
|
125
|
-
HOME_DIR = home_dir+'.gem/gems/bioroebe-'+
|
126
|
-
Bioroebe.version?.to_s+'/lib/bioroebe/'
|
127
|
-
end
|
128
|
-
|
129
|
-
require 'bioroebe/project/project.rb'
|
130
|
-
# ========================================================================= #
|
131
|
-
# === FILE_USE_SILENT_STARTUP
|
132
|
-
# ========================================================================= #
|
133
|
-
FILE_USE_SILENT_STARTUP =
|
134
|
-
"#{::Bioroebe.project_base_directory?}shell/configuration/use_silent_startup.yml"
|
135
|
-
|
136
|
-
# ========================================================================= #
|
137
|
-
# === SHALL_WE_DEBUG
|
138
|
-
# ========================================================================= #
|
139
|
-
SHALL_WE_DEBUG = false
|
140
|
-
|
141
|
-
_ = ::Bioroebe.project_yaml_directory?+
|
142
|
-
'default_dna_input.yml' # cat $RUBY_BIO/YAML/default_dna_input.yml
|
143
|
-
# ========================================================================= #
|
144
|
-
# === DEFAULT_DNA_INPUT_YAML_FILE
|
145
|
-
# ========================================================================= #
|
146
|
-
DEFAULT_DNA_INPUT_YAML_FILE = YAML.load_file(_) if File.exist? _
|
147
|
-
|
148
|
-
require 'bioroebe/toplevel_methods/log_directory.rb' # ← Required for: Bioroebe.store_here?
|
149
|
-
# ========================================================================= #
|
150
|
-
# === store_here?
|
151
|
-
#
|
152
|
-
# Where to store output generated by BioRoebe. Should point to a
|
153
|
-
# locally existing directory.
|
154
|
-
# ========================================================================= #
|
155
|
-
def store_here?
|
156
|
-
::Bioroebe.store_here?
|
157
|
-
end
|
158
|
-
|
159
|
-
# ========================================================================= #
|
160
|
-
# === show_log_dir
|
161
|
-
# ========================================================================= #
|
162
|
-
def show_log_dir
|
163
|
-
e ::Bioroebe.log_dir?
|
164
|
-
end
|
165
|
-
|
166
|
-
end; end
|
@@ -1,335 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'bioroebe/shell/download.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
require 'bioroebe/base/commandline_application/commandline_application.rb'
|
8
|
-
|
9
|
-
module Bioroebe
|
10
|
-
|
11
|
-
class Shell < ::Bioroebe::CommandlineApplication
|
12
|
-
|
13
|
-
require 'bioroebe/toplevel_methods/map_ncbi_entry_to_eutils_id.rb'
|
14
|
-
|
15
|
-
# ========================================================================= #
|
16
|
-
# === wget (wget tag)
|
17
|
-
#
|
18
|
-
# Simply use wget to download remote files.
|
19
|
-
# ========================================================================= #
|
20
|
-
def wget(i)
|
21
|
-
if i.is_a? Array
|
22
|
-
i.each {|entry| wget(entry) }
|
23
|
-
else
|
24
|
-
unless i.start_with? 'wget '
|
25
|
-
i = "wget #{i}"
|
26
|
-
end
|
27
|
-
esystem i
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
31
|
-
# ========================================================================= #
|
32
|
-
# === download (download tag)
|
33
|
-
#
|
34
|
-
# General download handler. Some sequences will be changed, such
|
35
|
-
# as lambda (for the phage called lambda), to the corresponding
|
36
|
-
# entry at NCBI.
|
37
|
-
# ========================================================================= #
|
38
|
-
def download(i)
|
39
|
-
if i.is_a? Array
|
40
|
-
i.each {|entry| download(entry) }
|
41
|
-
else
|
42
|
-
case i.to_s
|
43
|
-
# ===================================================================== #
|
44
|
-
# === The lambda phage sequence
|
45
|
-
#
|
46
|
-
# Download the lambda-sequence, via:
|
47
|
-
#
|
48
|
-
# download lambda
|
49
|
-
#
|
50
|
-
# ===================================================================== #
|
51
|
-
when 'lambda',
|
52
|
-
/^-?-?lambda(_|-)?genome$/i
|
53
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('NC_001416.1.fasta')+
|
54
|
-
'.fasta'
|
55
|
-
# ===================================================================== #
|
56
|
-
# === Download the cytochrome c sequence (of humans)
|
57
|
-
#
|
58
|
-
# This should be equivalent to:
|
59
|
-
#
|
60
|
-
# https://www.ncbi.nlm.nih.gov/protein/XP_011521207.1?report=fasta
|
61
|
-
#
|
62
|
-
# ===================================================================== #
|
63
|
-
when /cytochrome_c_protein_sequence/
|
64
|
-
return Bioroebe::Ncbi.efetch_by_url('NP_061820.1')
|
65
|
-
# ===================================================================== #
|
66
|
-
# === P1
|
67
|
-
# ===================================================================== #
|
68
|
-
when 'P1'
|
69
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('NC_005856.1.fasta')+
|
70
|
-
'.fasta'
|
71
|
-
# ===================================================================== #
|
72
|
-
# === P2
|
73
|
-
#
|
74
|
-
# The P2 phage, from E. coli, a temperate phage.
|
75
|
-
# ===================================================================== #
|
76
|
-
when 'P2'
|
77
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('NC_041848.1.fasta')+
|
78
|
-
'.fasta'
|
79
|
-
# ===================================================================== #
|
80
|
-
# === T12
|
81
|
-
#
|
82
|
-
# This is the Streptococcus phage T12.
|
83
|
-
# ===================================================================== #
|
84
|
-
when 'T12'
|
85
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('NC_028700.1.fasta')+
|
86
|
-
'.fasta'
|
87
|
-
# ===================================================================== #
|
88
|
-
# === T2
|
89
|
-
#
|
90
|
-
# This is the phage T2.
|
91
|
-
# ===================================================================== #
|
92
|
-
when 'T2'
|
93
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('AP018813.1.fasta')+
|
94
|
-
'.fasta'
|
95
|
-
# ===================================================================== #
|
96
|
-
# === T4
|
97
|
-
#
|
98
|
-
# This is the phage T4.
|
99
|
-
# ===================================================================== #
|
100
|
-
when 'T4'
|
101
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('NC_000866.4.fasta')+
|
102
|
-
'.fasta'
|
103
|
-
# ===================================================================== #
|
104
|
-
# === T6
|
105
|
-
#
|
106
|
-
# This is the phage T6.
|
107
|
-
# ===================================================================== #
|
108
|
-
when 'T6'
|
109
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('MH550421.1.fasta')+
|
110
|
-
'.fasta'
|
111
|
-
# ===================================================================== #
|
112
|
-
# === rhinovirus
|
113
|
-
# ===================================================================== #
|
114
|
-
when /^-?-?rhinovirus/i
|
115
|
-
i = ::Bioroebe.map_ncbi_entry_to_eutils_id('NC_038311')+
|
116
|
-
'.fasta'
|
117
|
-
# ===================================================================== #
|
118
|
-
# === Handle .pdb files here
|
119
|
-
# ===================================================================== #
|
120
|
-
when /\.pdb$/
|
121
|
-
cd :download_directory
|
122
|
-
wget i
|
123
|
-
register_this_download(i)
|
124
|
-
parse_this_pdb_file(File.basename(i))
|
125
|
-
end
|
126
|
-
# ===================================================================== #
|
127
|
-
# === Handle Fasta files next
|
128
|
-
# ===================================================================== #
|
129
|
-
if i.end_with? '.fa' or i.end_with? '.fasta'
|
130
|
-
i = i.dup if i.frozen?
|
131
|
-
unless File.exist? i
|
132
|
-
_ = Bioroebe::Ncbi.efetch_by_url(
|
133
|
-
i.delete_suffix('.fasta')
|
134
|
-
)
|
135
|
-
if File.exist? _
|
136
|
-
erev "The file is now available at `#{sfile(_)}`."
|
137
|
-
end
|
138
|
-
else
|
139
|
-
# ================================================================= #
|
140
|
-
# The above download_fasta() makes use of NCBI. We need to rewrite
|
141
|
-
# this eventually. For now, we will do another, simpler approach
|
142
|
-
# here.
|
143
|
-
# ================================================================= #
|
144
|
-
what = URI.open(i).read
|
145
|
-
into = log_dir?+File.basename(i)
|
146
|
-
erev "Storing into `#{sfile(into)}#{rev}`."
|
147
|
-
write_what_into(what, into)
|
148
|
-
return into # This will also return the local path.
|
149
|
-
end
|
150
|
-
else
|
151
|
-
# erev 'Unsure what to do with '+sfancy(i)
|
152
|
-
esystem "wget #{i}"
|
153
|
-
end
|
154
|
-
end
|
155
|
-
end
|
156
|
-
|
157
|
-
require 'bioroebe/fasta_and_fastq/download_fasta.rb'
|
158
|
-
# ========================================================================= #
|
159
|
-
# === download_fasta
|
160
|
-
#
|
161
|
-
# Use this to download a fasta sequence.
|
162
|
-
# ========================================================================= #
|
163
|
-
def download_fasta(i = nil)
|
164
|
-
if i.is_a? Array
|
165
|
-
i.each {|entry|
|
166
|
-
download_fasta(entry)
|
167
|
-
}
|
168
|
-
else
|
169
|
-
# ===================================================================== #
|
170
|
-
# Delegate to a special class here.
|
171
|
-
# ===================================================================== #
|
172
|
-
stored_here = ::Bioroebe.download_fasta(i) # bl $BIOROEBE/download_fasta.rb
|
173
|
-
if stored_here
|
174
|
-
if File.exist? stored_here
|
175
|
-
assign_sequence(stored_here)
|
176
|
-
end
|
177
|
-
return stored_here
|
178
|
-
else
|
179
|
-
e crimson('No result could be found for ')+sfancy(i)+rev
|
180
|
-
end
|
181
|
-
end
|
182
|
-
end
|
183
|
-
|
184
|
-
# ========================================================================= #
|
185
|
-
# === register_this_download
|
186
|
-
#
|
187
|
-
# Simply register all downloads - we may use this information at some
|
188
|
-
# later point.
|
189
|
-
#
|
190
|
-
# The entries here typically are HTTP or HTTPS-URLs.
|
191
|
-
# ========================================================================= #
|
192
|
-
def register_this_download(i)
|
193
|
-
@internal_hash[:array_all_downloads] << i
|
194
|
-
end
|
195
|
-
|
196
|
-
# ========================================================================= #
|
197
|
-
# === set_download_directory
|
198
|
-
# ========================================================================= #
|
199
|
-
def set_download_directory(
|
200
|
-
i = ::Bioroebe.log_dir?
|
201
|
-
)
|
202
|
-
i = i.to_s
|
203
|
-
erev "Setting the download directory to #{simp(i)}#{rev} next:"
|
204
|
-
::Bioroebe.set_log_dir(i)
|
205
|
-
end
|
206
|
-
|
207
|
-
# ========================================================================= #
|
208
|
-
# === download_this_pdb_file
|
209
|
-
#
|
210
|
-
# Use this method to download a .pdb file.
|
211
|
-
#
|
212
|
-
# There seem to be at least two major methods how to use the PDB
|
213
|
-
# database:
|
214
|
-
#
|
215
|
-
# (1) http://www.rcsb.org/pdb/files/3O30.pdb
|
216
|
-
# (2) http://www.rcsb.org/pdb/explore.do?structureId=1QRI
|
217
|
-
#
|
218
|
-
# The files/ URI seems to redirect you directly to the .pdb
|
219
|
-
# file in question, so I think it is the preferred way.
|
220
|
-
# However had, the explore.do query gives additional
|
221
|
-
# information.
|
222
|
-
#
|
223
|
-
# Other useful URLs are:
|
224
|
-
#
|
225
|
-
# http://www.rcsb.org/pdb/explore.do?structureId=1ZAA
|
226
|
-
# http://dx.doi.org/10.2210/pdb1gi5/pdb
|
227
|
-
#
|
228
|
-
# Usage example:
|
229
|
-
#
|
230
|
-
# download_this_pdb_file http://www.rcsb.org/pdb/files/3O30.pdb
|
231
|
-
#
|
232
|
-
# ========================================================================= #
|
233
|
-
def download_this_pdb_file(
|
234
|
-
i = '3O30'
|
235
|
-
)
|
236
|
-
i = ['3O30'] if i.nil? # If nil, use a default value.
|
237
|
-
if i.is_a? Array
|
238
|
-
i = ['3O30'] if i.empty?
|
239
|
-
i.each {|entry| download_this_pdb_file(entry) }
|
240
|
-
else
|
241
|
-
i = i.to_s.dup
|
242
|
-
unless i.end_with? '.pdb'
|
243
|
-
i << '.pdb'
|
244
|
-
end
|
245
|
-
unless i.start_with? 'http://www.rcsb.org/pdb/files/'
|
246
|
-
i[0,0] = 'https://www.rcsb.org/pdb/files/'
|
247
|
-
end
|
248
|
-
target_dir = download_dir?
|
249
|
-
cd target_dir
|
250
|
-
# ===================================================================== #
|
251
|
-
# http://www.rcsb.org/pdb/files/3O30.pdb
|
252
|
-
# ===================================================================== #
|
253
|
-
download_this = "#{i.to_s}"
|
254
|
-
erev "Checking for the availability of "\
|
255
|
-
"#{olivedrab(download_this)}#{rev} next ..."
|
256
|
-
if does_this_remote_file_exist?(download_this)
|
257
|
-
erev 'Next downloading '+sfancy(download_this)+
|
258
|
-
rev+' into '+sfancy(target_dir)+'.'
|
259
|
-
esystem "wget #{download_this}" # We will just use wget for now.
|
260
|
-
_ = ::Bioroebe.pdb_directory?
|
261
|
-
if File.directory? _
|
262
|
-
new_target = _+File.basename(download_this)
|
263
|
-
erev 'Moving into '+sfancy(new_target)+rev+', where '\
|
264
|
-
'.pdb files are kept by default.'
|
265
|
-
mv(
|
266
|
-
target_dir+File.basename(download_this),
|
267
|
-
new_target
|
268
|
-
)
|
269
|
-
end
|
270
|
-
register_this_download(download_this)
|
271
|
-
else
|
272
|
-
erev "The remote file at #{sfile(download_this)} does not exist."
|
273
|
-
erev 'Hence, we can not download it.'
|
274
|
-
end
|
275
|
-
end
|
276
|
-
end
|
277
|
-
|
278
|
-
# ========================================================================= #
|
279
|
-
# === does_this_remote_file_exist?
|
280
|
-
#
|
281
|
-
# This method determines, based on wget, whether a remote file
|
282
|
-
# exists or whether it does not.
|
283
|
-
# ========================================================================= #
|
284
|
-
def does_this_remote_file_exist?(i)
|
285
|
-
remote_file_exists = false
|
286
|
-
# ======================================================================= #
|
287
|
-
# Use wget --spider to check if the remote file exists.
|
288
|
-
# ======================================================================= #
|
289
|
-
_ = "wget --spider -v #{i} 2>&1"
|
290
|
-
result = `#{_}`
|
291
|
-
if result.include?('Remote file exists') or # Yes, the remote file exists.
|
292
|
-
result =~ /File '.+' exists./
|
293
|
-
remote_file_exists = true
|
294
|
-
end
|
295
|
-
if result.include? '/404'
|
296
|
-
remote_file_exists = false
|
297
|
-
end
|
298
|
-
return remote_file_exists
|
299
|
-
end
|
300
|
-
|
301
|
-
# ========================================================================= #
|
302
|
-
# === handle_pdb_files
|
303
|
-
#
|
304
|
-
# This method will either show more information about .pdb files or
|
305
|
-
# it will simply attempt to download the .pdb file in question.
|
306
|
-
# ========================================================================= #
|
307
|
-
def handle_pdb_files(i)
|
308
|
-
if i.nil? or i.empty?
|
309
|
-
# In this case, we show some info.
|
310
|
-
cliner
|
311
|
-
erev '.pdb files are files in the "Protein Data Bank" format.'
|
312
|
-
e
|
313
|
-
erev 'It is a standard for files containing atomic coordinates.'
|
314
|
-
e
|
315
|
-
erev 'Each line in a .pdb file is called a "record".'
|
316
|
-
e
|
317
|
-
erev 'You can pass an ID (a number) and we will attempt to download '\
|
318
|
-
'that .pdb file.'
|
319
|
-
e
|
320
|
-
erev 'Example:'
|
321
|
-
e
|
322
|
-
erev ' pdb 333'
|
323
|
-
e
|
324
|
-
erev 'More information can be seen here:'
|
325
|
-
e
|
326
|
-
efancy ' https://www.cgl.ucsf.edu/chimera/docs/UsersGuide/tutorials/pdbintro.html'
|
327
|
-
e
|
328
|
-
print rev
|
329
|
-
cliner
|
330
|
-
else
|
331
|
-
download_this_pdb_file(i)
|
332
|
-
end
|
333
|
-
end
|
334
|
-
|
335
|
-
end; end
|
@@ -1,158 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'bioroebe/shell/enable_and_disable.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
# Note that the method disable_colours() can be found in the file
|
8
|
-
# colours.rb
|
9
|
-
# =========================================================================== #
|
10
|
-
require 'bioroebe/base/commandline_application/commandline_application.rb'
|
11
|
-
|
12
|
-
module Bioroebe
|
13
|
-
|
14
|
-
class Shell < ::Bioroebe::CommandlineApplication
|
15
|
-
|
16
|
-
# ========================================================================= #
|
17
|
-
# === enable (enable tag)
|
18
|
-
#
|
19
|
-
# Enable-functionality can be passed through this method here.
|
20
|
-
#
|
21
|
-
# Invocation example from within the bioshell:
|
22
|
-
#
|
23
|
-
# enable colours
|
24
|
-
#
|
25
|
-
# ========================================================================= #
|
26
|
-
def enable(i)
|
27
|
-
if i.is_a? Array
|
28
|
-
i = i.join.strip
|
29
|
-
end
|
30
|
-
case i.to_s # case tag
|
31
|
-
# ======================================================================= #
|
32
|
-
# === enable cd_aliases
|
33
|
-
#
|
34
|
-
# This variant will be verbose.
|
35
|
-
# ======================================================================= #
|
36
|
-
when /^-?-?cd(-|_)?aliases$/
|
37
|
-
erev 'class '+
|
38
|
-
steelblue('Rcfiles::DirectoryAliases')+rev+' will be '\
|
39
|
-
'enabled next, allowing'
|
40
|
-
erev 'you to navigate the local filesystem '\
|
41
|
-
'more easily so.'
|
42
|
-
::Bioroebe::Configuration.do_use_expand_cd_aliases
|
43
|
-
# ======================================================================= #
|
44
|
-
# === use colours
|
45
|
-
# ======================================================================= #
|
46
|
-
when /^colou?rs$/
|
47
|
-
enable_colours
|
48
|
-
# ======================================================================= #
|
49
|
-
# === use xsel
|
50
|
-
# ======================================================================= #
|
51
|
-
when 'xsel'
|
52
|
-
enable_xsel
|
53
|
-
end
|
54
|
-
end; alias use enable # === use (use tag)
|
55
|
-
|
56
|
-
# ========================================================================= #
|
57
|
-
# === enable_configuration
|
58
|
-
# ========================================================================= #
|
59
|
-
def enable_configuration
|
60
|
-
config_dir = ::Bioroebe.project_yaml_directory?+
|
61
|
-
'/configuration/'
|
62
|
-
unless Object.const_defined?(:Roebe) and
|
63
|
-
Roebe.const_defined?(:Configuration)
|
64
|
-
begin
|
65
|
-
require 'roebe/configuration/class/configuration.rb'
|
66
|
-
rescue LoadError; end
|
67
|
-
end
|
68
|
-
if Object.const_defined?(:Roebe) and
|
69
|
-
Roebe.const_defined?(:Configuration)
|
70
|
-
# ===================================================================== #
|
71
|
-
# === Initialize @config
|
72
|
-
# ===================================================================== #
|
73
|
-
@config = ::Roebe::Configuration.new(config_dir, :do_not_run_yet)
|
74
|
-
@config.be_verbose if @config.respond_to? :be_verbose
|
75
|
-
@config.run
|
76
|
-
else
|
77
|
-
@config = nil
|
78
|
-
end
|
79
|
-
end
|
80
|
-
|
81
|
-
# ========================================================================= #
|
82
|
-
# === disable (disable tag)
|
83
|
-
# ========================================================================= #
|
84
|
-
def disable(i)
|
85
|
-
if i.is_a? Array
|
86
|
-
i = i.join(' ').strip
|
87
|
-
end
|
88
|
-
case i.to_s # case tag
|
89
|
-
# ======================================================================= #
|
90
|
-
# === disable :cd_aliases
|
91
|
-
# ======================================================================= #
|
92
|
-
when /^-?-?cd(-|_)?aliases$/i
|
93
|
-
erev 'We will no longer use class Rcfiles::DirectoryAliases'
|
94
|
-
::Bioroebe::Configuration.do_not_use_expand_cd_aliases
|
95
|
-
# ======================================================================= #
|
96
|
-
# === truncate
|
97
|
-
# ======================================================================= #
|
98
|
-
when /^truncate$/i
|
99
|
-
disable_truncate
|
100
|
-
# ======================================================================= #
|
101
|
-
# === prompt
|
102
|
-
# ======================================================================= #
|
103
|
-
when 'prompt'
|
104
|
-
set_prompt :empty # This means to use an empty prompt.
|
105
|
-
# ======================================================================= #
|
106
|
-
# === padding
|
107
|
-
# ======================================================================= #
|
108
|
-
when 'padding'
|
109
|
-
set_padding 0, :be_verbose
|
110
|
-
# ======================================================================= #
|
111
|
-
# === disable colours
|
112
|
-
# ======================================================================= #
|
113
|
-
when 'colours',
|
114
|
-
'colors',
|
115
|
-
/^col/
|
116
|
-
disable_colours
|
117
|
-
# ======================================================================= #
|
118
|
-
# === disable xsel
|
119
|
-
# ======================================================================= #
|
120
|
-
when 'xsel'
|
121
|
-
disable_xsel
|
122
|
-
else
|
123
|
-
erev "No such disable-action could be found (#{sfancy(i)}#{rev})"
|
124
|
-
end
|
125
|
-
end
|
126
|
-
|
127
|
-
# ========================================================================= #
|
128
|
-
# === disable_truncate
|
129
|
-
# ========================================================================= #
|
130
|
-
def disable_truncate
|
131
|
-
do_not_truncate
|
132
|
-
end
|
133
|
-
|
134
|
-
# ========================================================================= #
|
135
|
-
# === disable_xsel
|
136
|
-
# ========================================================================= #
|
137
|
-
def disable_xsel
|
138
|
-
if use_xsel?
|
139
|
-
e 'Now disabling xsel.'
|
140
|
-
@internal_hash[:use_xsel] = false
|
141
|
-
else
|
142
|
-
e 'xsel is already disabled.'
|
143
|
-
end
|
144
|
-
end
|
145
|
-
|
146
|
-
# ========================================================================= #
|
147
|
-
# === enable_xsel
|
148
|
-
# ========================================================================= #
|
149
|
-
def enable_xsel
|
150
|
-
if @internal_hash[:use_xsel]
|
151
|
-
e 'xsel is already enabled.'
|
152
|
-
else
|
153
|
-
e 'Now enabling xsel.'
|
154
|
-
@internal_hash[:use_xsel] = true
|
155
|
-
end
|
156
|
-
end
|
157
|
-
|
158
|
-
end; end
|