JAL-2805 bunch of needed methods/constants made public
[jalview.git] / wiki / RubyExamples.wiki
index b52eef0..3d50199 100644 (file)
@@ -1,13 +1,50 @@
-#summary One-sentence summary of this page.
+#summary Ruby examples
 
-= Introduction =
+= Ruby Examples =
 
-Add your content here.
+Various simple Ruby examples.
 
+Author: [https://sites.google.com/site/cmzmasek/ Christian Zmasek], Sanford-Burnham Medical Research Institute
 
-= Details =
+Copyright (C) 2011 Christian M Zmasek. All rights reserved.
 
-Add your content here.  Format your content with:
-  * Text in *bold* or _italic_
-  * Headings, paragraphs, and lists
-  * Automatic links to other wiki pages
\ No newline at end of file
+
+= Using net/ftp to download all Proteomes from the Ensembl Database =
+
+This, or something like it, can be used to download from Ensembl all "pep.all.fa.gz" files.
+
+{{{
+require 'net/ftp'
+
+EMAIL           = 'myemail'
+PUB_RELEASE_DIR = '/pub/release-64/fasta'
+PEP_DIR         = '/pep'
+
+ftp = Net::FTP.new('ftp.ensembl.org', 'anonymous', EMAIL)
+ftp.passive = true # To avoid "No route to host" error.
+ftp.chdir( PUB_RELEASE_DIR )
+files = ftp.list('*_*') # To only look at files with an underscore.
+count = 0
+files.each do | file |
+  species = file.split().last
+  begin
+    ftp.chdir(species + PEP_DIR)
+    pepfiles = ftp.list()
+    pepfiles.each do | pepfile |
+      pepfile = pepfile.split().last
+      if pepfile =~ /all.fa.gz/ # Only want the "all.fa.gz" files (and not the
+                                # "abinitio" files).
+        ftp.getbinaryfile(pepfile)
+        puts 'downloaded "' + pepfile + '"'
+        count += 1
+      end
+    end
+  rescue Exception
+    puts 'ignoring "' + species + '"'
+  end
+  ftp.chdir(PUB_RELEASE_DIR) # To go back to the starting directory.
+end
+ftp.close
+puts 'done (downloaded ' + count.to_s + ' files)'
+}}}
\ No newline at end of file