bioroebe 0.10.80 → 0.11.32

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.

Files changed (210) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3209 -2618
  3. data/bin/bioroebe +7 -1
  4. data/bioroebe.gemspec +3 -3
  5. data/doc/README.gen +3208 -2617
  6. data/doc/quality_control/commandline_applications.md +3 -3
  7. data/doc/todo/bioroebe_todo.md +2040 -2615
  8. data/lib/bioroebe/aminoacids/aminoacid_substitution.rb +1 -9
  9. data/lib/bioroebe/aminoacids/codon_percentage.rb +1 -9
  10. data/lib/bioroebe/aminoacids/deduce_aminoacid_sequence.rb +1 -9
  11. data/lib/bioroebe/aminoacids/display_aminoacid_table.rb +1 -0
  12. data/lib/bioroebe/aminoacids/show_hydrophobicity.rb +1 -6
  13. data/lib/bioroebe/base/colours_for_base/colours_for_base.rb +18 -8
  14. data/lib/bioroebe/base/commandline_application/commandline_arguments.rb +13 -11
  15. data/lib/bioroebe/base/commandline_application/misc.rb +26 -9
  16. data/lib/bioroebe/base/commandline_application/opn.rb +8 -8
  17. data/lib/bioroebe/base/commandline_application/reset.rb +3 -2
  18. data/lib/bioroebe/base/misc.rb +35 -0
  19. data/lib/bioroebe/base/prototype/misc.rb +11 -1
  20. data/lib/bioroebe/codon_tables/frequencies/parse_frequency_table.rb +2 -10
  21. data/lib/bioroebe/codons/possible_codons_for_this_aminoacid.rb +1 -9
  22. data/lib/bioroebe/codons/show_codon_tables.rb +6 -2
  23. data/lib/bioroebe/codons/show_codon_usage.rb +2 -1
  24. data/lib/bioroebe/constants/aminoacids_and_proteins.rb +1 -0
  25. data/lib/bioroebe/constants/database_constants.rb +1 -1
  26. data/lib/bioroebe/constants/files_and_directories.rb +31 -4
  27. data/lib/bioroebe/constants/misc.rb +20 -0
  28. data/lib/bioroebe/count/count_amount_of_nucleotides.rb +3 -0
  29. data/lib/bioroebe/crystal/README.md +2 -0
  30. data/lib/bioroebe/crystal/to_rna.cr +19 -0
  31. data/lib/bioroebe/data/README.md +11 -8
  32. data/lib/bioroebe/data/electron_microscopy/pos_example.pos +396 -0
  33. data/lib/bioroebe/data/electron_microscopy/test_particles.star +36 -0
  34. data/lib/bioroebe/electron_microscopy/coordinate_analyzer.rb +15 -18
  35. data/lib/bioroebe/{fasta_and_fastq/parse_fasta/run.rb → electron_microscopy/electron_microscopy_module.rb} +16 -8
  36. data/lib/bioroebe/electron_microscopy/fix_pos_file.rb +1 -9
  37. data/lib/bioroebe/electron_microscopy/flipy.rb +83 -0
  38. data/lib/bioroebe/electron_microscopy/parse_coordinates.rb +2 -10
  39. data/lib/bioroebe/electron_microscopy/read_file_xmd.rb +1 -9
  40. data/lib/bioroebe/electron_microscopy/simple_star_file_generator.rb +4 -9
  41. data/lib/bioroebe/fasta_and_fastq/autocorrect_the_name_of_this_fasta_file.rb +1 -9
  42. data/lib/bioroebe/fasta_and_fastq/compact_fasta_file/compact_fasta_file.rb +7 -9
  43. data/lib/bioroebe/fasta_and_fastq/fasta_defline/fasta_defline.rb +1 -5
  44. data/lib/bioroebe/fasta_and_fastq/fasta_to_yaml/fasta_to_yaml.rb +81 -0
  45. data/lib/bioroebe/fasta_and_fastq/parse_fasta/parse_fasta.rb +1460 -7
  46. data/lib/bioroebe/fasta_and_fastq/return_fasta_subsection_of_this_file.rb +11 -2
  47. data/lib/bioroebe/fasta_and_fastq/show_fasta_headers.rb +27 -12
  48. data/lib/bioroebe/fasta_and_fastq/simplify_fasta_header/simplify_fasta_header.rb +1 -5
  49. data/lib/bioroebe/fasta_and_fastq/split_this_fasta_file_into_chromosomes/constants.rb +0 -5
  50. data/lib/bioroebe/genome/README.md +4 -0
  51. data/lib/bioroebe/genome/genome.rb +67 -0
  52. data/lib/bioroebe/genomes/genome_pattern.rb +3 -9
  53. data/lib/bioroebe/gui/gtk +1 -0
  54. data/lib/bioroebe/gui/gtk3/controller/controller.rb +45 -27
  55. data/lib/bioroebe/gui/gtk3/dna_to_aminoacid_widget/dna_to_aminoacid_widget.rb +76 -50
  56. data/lib/bioroebe/gui/gtk3/fasta_table_widget/fasta_table_widget.rb +99 -21
  57. data/lib/bioroebe/gui/gtk3/hamming_distance/hamming_distance.rb +42 -28
  58. data/lib/bioroebe/gui/gtk3/nucleotide_analyser/nucleotide_analyser.rb +119 -71
  59. data/lib/bioroebe/gui/gtk3/protein_to_DNA/protein_to_DNA.rb +18 -18
  60. data/lib/bioroebe/gui/gtk3/random_sequence/random_sequence.rb +19 -11
  61. data/lib/bioroebe/gui/libui/three_to_one/three_to_one.rb +8 -6
  62. data/lib/bioroebe/gui/shared_code/protein_to_DNA/protein_to_DNA_module.rb +14 -14
  63. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$1.class +0 -0
  64. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne$CloseListener.class +0 -0
  65. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.class +0 -0
  66. data/lib/bioroebe/gui/swing/three_to_one/ThreeToOne.java +141 -0
  67. data/lib/bioroebe/java/README.md +4 -0
  68. data/lib/bioroebe/java/bioroebe/Sequence.java +25 -1
  69. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Base.class +0 -0
  70. data/lib/bioroebe/java/bioroebe/{Base.java → src/main/java/bioroebe/Base.java} +15 -2
  71. data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.class → src/main/java/bioroebe/BisulfiteTreatment.class} +0 -0
  72. data/lib/bioroebe/java/bioroebe/{BisulfiteTreatment.java → src/main/java/bioroebe/BisulfiteTreatment.java} +0 -0
  73. data/lib/bioroebe/java/bioroebe/{Codons.class → src/main/java/bioroebe/Codons.class} +0 -0
  74. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Codons.java +34 -0
  75. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.class +0 -0
  76. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/Commandline.java +95 -0
  77. data/lib/bioroebe/java/bioroebe/{Esystem.class → src/main/java/bioroebe/Esystem.class} +0 -0
  78. data/lib/bioroebe/java/bioroebe/{Esystem.java → src/main/java/bioroebe/Esystem.java} +0 -0
  79. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.class → src/main/java/bioroebe/GenerateRandomDnaSequence.class} +0 -0
  80. data/lib/bioroebe/java/bioroebe/{GenerateRandomDnaSequence.java → src/main/java/bioroebe/GenerateRandomDnaSequence.java} +8 -2
  81. data/lib/bioroebe/java/bioroebe/{IsPalindrome.class → src/main/java/bioroebe/IsPalindrome.class} +0 -0
  82. data/lib/bioroebe/java/bioroebe/{IsPalindrome.java → src/main/java/bioroebe/IsPalindrome.java} +5 -1
  83. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.class +0 -0
  84. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/PartnerNucleotide.java +56 -0
  85. data/lib/bioroebe/java/bioroebe/{RemoveFile.class → src/main/java/bioroebe/RemoveFile.class} +0 -0
  86. data/lib/bioroebe/java/bioroebe/{RemoveFile.java → src/main/java/bioroebe/RemoveFile.java} +10 -4
  87. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.class → src/main/java/bioroebe/RemoveNumbers.class} +0 -0
  88. data/lib/bioroebe/java/bioroebe/{RemoveNumbers.java → src/main/java/bioroebe/RemoveNumbers.java} +1 -0
  89. data/lib/bioroebe/java/bioroebe/{ToCamelcase.class → src/main/java/bioroebe/ToCamelcase.class} +0 -0
  90. data/lib/bioroebe/java/bioroebe/{ToCamelcase.java → src/main/java/bioroebe/ToCamelcase.java} +3 -3
  91. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.class +0 -0
  92. data/lib/bioroebe/java/bioroebe/src/main/java/bioroebe/ToRNA.java +42 -0
  93. data/lib/bioroebe/java/bioroebe/toplevel_methods/BaseComposition.class +0 -0
  94. data/lib/bioroebe/java/bioroebe/toplevel_methods/BaseComposition.java +73 -0
  95. data/lib/bioroebe/misc/ruler.rb +1 -0
  96. data/lib/bioroebe/nucleotides/most_likely_nucleotide_sequence_for_this_aminoacid_sequence.rb +1 -9
  97. data/lib/bioroebe/nucleotides/show_nucleotide_sequence.rb +7 -7
  98. data/lib/bioroebe/parsers/genbank_parser.rb +347 -26
  99. data/lib/bioroebe/parsers/gff.rb +1 -9
  100. data/lib/bioroebe/patterns/scan_for_repeat.rb +1 -5
  101. data/lib/bioroebe/pdb/fetch_fasta_sequence_from_pdb.rb +1 -9
  102. data/lib/bioroebe/pdb/parse_mmCIF_file.rb +1 -9
  103. data/lib/bioroebe/pdb/parse_pdb_file.rb +1 -9
  104. data/lib/bioroebe/project/project.rb +1 -1
  105. data/lib/bioroebe/python/README.md +1 -0
  106. data/lib/bioroebe/python/__pycache__/mymodule.cpython-39.pyc +0 -0
  107. data/lib/bioroebe/python/gui/gtk3/all_in_one.css +4 -0
  108. data/lib/bioroebe/python/gui/gtk3/all_in_one.py +59 -0
  109. data/lib/bioroebe/python/gui/gtk3/widget1.py +20 -0
  110. data/lib/bioroebe/python/gui/tkinter/all_in_one.py +91 -0
  111. data/lib/bioroebe/python/mymodule.py +8 -0
  112. data/lib/bioroebe/python/protein_to_dna.py +33 -0
  113. data/lib/bioroebe/python/shell/shell.py +19 -0
  114. data/lib/bioroebe/python/to_rna.py +14 -0
  115. data/lib/bioroebe/python/toplevel_methods/esystem.py +12 -0
  116. data/lib/bioroebe/python/toplevel_methods/open_in_browser.py +20 -0
  117. data/lib/bioroebe/python/toplevel_methods/palindromes.py +42 -0
  118. data/lib/bioroebe/python/toplevel_methods/rds.py +13 -0
  119. data/lib/bioroebe/python/toplevel_methods/shuffleseq.py +23 -0
  120. data/lib/bioroebe/python/toplevel_methods/three_delimiter.py +37 -0
  121. data/lib/bioroebe/python/toplevel_methods/time_and_date.py +43 -0
  122. data/lib/bioroebe/python/toplevel_methods/to_camelcase.py +21 -0
  123. data/lib/bioroebe/requires/require_the_bioroebe_project.rb +3 -1
  124. data/lib/bioroebe/sequence/nucleotide_module/nucleotide_module.rb +28 -25
  125. data/lib/bioroebe/sequence/protein.rb +105 -3
  126. data/lib/bioroebe/sequence/sequence.rb +61 -2
  127. data/lib/bioroebe/shell/menu.rb +3819 -3713
  128. data/lib/bioroebe/shell/misc.rb +51 -4311
  129. data/lib/bioroebe/shell/readline/readline.rb +1 -1
  130. data/lib/bioroebe/shell/shell.rb +11250 -28
  131. data/lib/bioroebe/siRNA/siRNA.rb +81 -1
  132. data/lib/bioroebe/string_matching/find_longest_substring.rb +3 -2
  133. data/lib/bioroebe/string_matching/hamming_distance.rb +1 -9
  134. data/lib/bioroebe/taxonomy/class_methods.rb +3 -8
  135. data/lib/bioroebe/taxonomy/constants.rb +4 -3
  136. data/lib/bioroebe/taxonomy/edit.rb +2 -1
  137. data/lib/bioroebe/taxonomy/help/help.rb +10 -10
  138. data/lib/bioroebe/taxonomy/info/check_available.rb +15 -9
  139. data/lib/bioroebe/taxonomy/info/info.rb +18 -11
  140. data/lib/bioroebe/taxonomy/info/is_dna.rb +46 -36
  141. data/lib/bioroebe/taxonomy/interactive.rb +140 -104
  142. data/lib/bioroebe/taxonomy/menu.rb +27 -18
  143. data/lib/bioroebe/taxonomy/parse_fasta.rb +3 -1
  144. data/lib/bioroebe/taxonomy/shared.rb +1 -0
  145. data/lib/bioroebe/taxonomy/taxonomy.rb +1 -0
  146. data/lib/bioroebe/toplevel_methods/aminoacids_and_proteins.rb +31 -24
  147. data/lib/bioroebe/toplevel_methods/colourize_related_methods.rb +164 -0
  148. data/lib/bioroebe/toplevel_methods/databases.rb +1 -1
  149. data/lib/bioroebe/toplevel_methods/fasta_and_fastq.rb +107 -63
  150. data/lib/bioroebe/toplevel_methods/file_and_directory_related_actions.rb +14 -2
  151. data/lib/bioroebe/toplevel_methods/misc.rb +118 -11
  152. data/lib/bioroebe/toplevel_methods/nucleotides.rb +22 -5
  153. data/lib/bioroebe/toplevel_methods/open_in_browser.rb +2 -0
  154. data/lib/bioroebe/toplevel_methods/palindromes.rb +1 -2
  155. data/lib/bioroebe/toplevel_methods/taxonomy.rb +2 -2
  156. data/lib/bioroebe/toplevel_methods/to_camelcase.rb +5 -0
  157. data/lib/bioroebe/utility_scripts/align_open_reading_frames.rb +1 -9
  158. data/lib/bioroebe/utility_scripts/check_for_mismatches/check_for_mismatches.rb +1 -9
  159. data/lib/bioroebe/utility_scripts/compacter.rb +1 -9
  160. data/lib/bioroebe/utility_scripts/compseq/compseq.rb +1 -9
  161. data/lib/bioroebe/utility_scripts/create_batch_entrez_file.rb +1 -9
  162. data/lib/bioroebe/utility_scripts/dot_alignment.rb +1 -9
  163. data/lib/bioroebe/utility_scripts/move_file_to_its_correct_location.rb +1 -4
  164. data/lib/bioroebe/utility_scripts/showorf/constants.rb +0 -5
  165. data/lib/bioroebe/utility_scripts/showorf/reset.rb +1 -4
  166. data/lib/bioroebe/version/version.rb +2 -2
  167. data/lib/bioroebe/www/embeddable_interface.rb +101 -52
  168. data/lib/bioroebe/www/sinatra/sinatra.rb +186 -70
  169. data/lib/bioroebe/yaml/aminoacids/amino_acids_long_name_to_one_letter.yml +2 -2
  170. data/lib/bioroebe/yaml/configuration/browser.yml +1 -1
  171. data/lib/bioroebe/yaml/genomes/README.md +3 -4
  172. data/lib/bioroebe/yaml/restriction_enzymes/restriction_enzymes.yml +3 -3
  173. metadata +69 -64
  174. data/doc/setup.rb +0 -1655
  175. data/lib/bioroebe/fasta_and_fastq/parse_fasta/constants.rb +0 -50
  176. data/lib/bioroebe/fasta_and_fastq/parse_fasta/initialize.rb +0 -86
  177. data/lib/bioroebe/fasta_and_fastq/parse_fasta/menu.rb +0 -117
  178. data/lib/bioroebe/fasta_and_fastq/parse_fasta/misc.rb +0 -981
  179. data/lib/bioroebe/fasta_and_fastq/parse_fasta/report.rb +0 -156
  180. data/lib/bioroebe/fasta_and_fastq/parse_fasta/reset.rb +0 -128
  181. data/lib/bioroebe/genbank/genbank_parser.rb +0 -291
  182. data/lib/bioroebe/java/bioroebe/Base.class +0 -0
  183. data/lib/bioroebe/java/bioroebe/Codons.java +0 -22
  184. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.class +0 -0
  185. data/lib/bioroebe/java/bioroebe/PartnerNucleotide.java +0 -19
  186. data/lib/bioroebe/java/bioroebe.jar +0 -0
  187. data/lib/bioroebe/shell/add.rb +0 -108
  188. data/lib/bioroebe/shell/assign.rb +0 -360
  189. data/lib/bioroebe/shell/chop_and_cut.rb +0 -281
  190. data/lib/bioroebe/shell/constants.rb +0 -166
  191. data/lib/bioroebe/shell/download.rb +0 -335
  192. data/lib/bioroebe/shell/enable_and_disable.rb +0 -158
  193. data/lib/bioroebe/shell/enzymes.rb +0 -310
  194. data/lib/bioroebe/shell/fasta.rb +0 -345
  195. data/lib/bioroebe/shell/gtk.rb +0 -76
  196. data/lib/bioroebe/shell/history.rb +0 -132
  197. data/lib/bioroebe/shell/initialize.rb +0 -217
  198. data/lib/bioroebe/shell/loop.rb +0 -74
  199. data/lib/bioroebe/shell/prompt.rb +0 -107
  200. data/lib/bioroebe/shell/random.rb +0 -289
  201. data/lib/bioroebe/shell/reset.rb +0 -335
  202. data/lib/bioroebe/shell/scan_and_parse.rb +0 -135
  203. data/lib/bioroebe/shell/search.rb +0 -337
  204. data/lib/bioroebe/shell/sequences.rb +0 -200
  205. data/lib/bioroebe/shell/show_report_and_display.rb +0 -2901
  206. data/lib/bioroebe/shell/startup.rb +0 -127
  207. data/lib/bioroebe/shell/taxonomy.rb +0 -14
  208. data/lib/bioroebe/shell/tk.rb +0 -23
  209. data/lib/bioroebe/shell/user_input.rb +0 -88
  210. data/lib/bioroebe/shell/xorg.rb +0 -45
@@ -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