bio-ngs 0.3.2.alpha.01

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. data/.document +5 -0
  2. data/Gemfile +39 -0
  3. data/Gemfile.lock +81 -0
  4. data/LICENSE.txt +28 -0
  5. data/README.rdoc +240 -0
  6. data/Rakefile +60 -0
  7. data/VERSION +1 -0
  8. data/bin/biongs +35 -0
  9. data/bio-ngs.gemspec +215 -0
  10. data/ext/mkrf_conf.rb +87 -0
  11. data/lib/bio-ngs.rb +54 -0
  12. data/lib/bio/appl/ngs/bcl2qseq.rb +93 -0
  13. data/lib/bio/appl/ngs/blast.rb +36 -0
  14. data/lib/bio/appl/ngs/bowtie-inspect.rb +50 -0
  15. data/lib/bio/appl/ngs/cufflinks.rb +489 -0
  16. data/lib/bio/appl/ngs/fastx.rb +170 -0
  17. data/lib/bio/appl/ngs/samtools.rb +118 -0
  18. data/lib/bio/appl/ngs/sff_extract.rb +23 -0
  19. data/lib/bio/appl/ngs/tophat.rb +158 -0
  20. data/lib/bio/ngs/converter.rb +100 -0
  21. data/lib/bio/ngs/core_ext.rb +12 -0
  22. data/lib/bio/ngs/db.rb +66 -0
  23. data/lib/bio/ngs/db/migrate/homology/201105030707_create_blastout.rb +22 -0
  24. data/lib/bio/ngs/db/migrate/homology/201105030709_create_goannotation.rb +29 -0
  25. data/lib/bio/ngs/db/migrate/ontology/201105030708_create_go.rb +18 -0
  26. data/lib/bio/ngs/db/migrate/ontology/201105030710_create_gene_go.rb +17 -0
  27. data/lib/bio/ngs/db/migrate/ontology/201105030711_create_gene.rb +16 -0
  28. data/lib/bio/ngs/db/models.rb +1 -0
  29. data/lib/bio/ngs/db/models/homology.rb +8 -0
  30. data/lib/bio/ngs/db/models/ontology.rb +16 -0
  31. data/lib/bio/ngs/ext/bin/common/fastq_coverage_graph.sh +161 -0
  32. data/lib/bio/ngs/ext/bin/common/sff_extract +1505 -0
  33. data/lib/bio/ngs/ext/bin/linux/samtools +0 -0
  34. data/lib/bio/ngs/ext/bin/osx/samtools +0 -0
  35. data/lib/bio/ngs/ext/versions.yaml +73 -0
  36. data/lib/bio/ngs/graphics.rb +189 -0
  37. data/lib/bio/ngs/homology.rb +102 -0
  38. data/lib/bio/ngs/ontology.rb +103 -0
  39. data/lib/bio/ngs/quality.rb +64 -0
  40. data/lib/bio/ngs/record.rb +50 -0
  41. data/lib/bio/ngs/task.rb +46 -0
  42. data/lib/bio/ngs/utils.rb +176 -0
  43. data/lib/development_tasks.rb +34 -0
  44. data/lib/enumerable.rb +37 -0
  45. data/lib/tasks/bwa.thor +126 -0
  46. data/lib/tasks/convert.thor +454 -0
  47. data/lib/tasks/history.thor +51 -0
  48. data/lib/tasks/homology.thor +121 -0
  49. data/lib/tasks/ontology.thor +93 -0
  50. data/lib/tasks/project.thor +51 -0
  51. data/lib/tasks/quality.thor +142 -0
  52. data/lib/tasks/rna.thor +126 -0
  53. data/lib/tasks/sff_extract.thor +9 -0
  54. data/lib/templates/README.tt +43 -0
  55. data/lib/templates/db.tt +6 -0
  56. data/lib/wrapper.rb +225 -0
  57. data/spec/converter_qseq_spec.rb +56 -0
  58. data/spec/fixture/s_1_1_1108_qseq.txt +100 -0
  59. data/spec/quality_spec.rb +40 -0
  60. data/spec/sff_extract_spec.rb +98 -0
  61. data/spec/spec_helper.rb +55 -0
  62. data/spec/tophat_spec.rb +99 -0
  63. data/spec/utils_spec.rb +22 -0
  64. data/test/conf/test_db.yml +4 -0
  65. data/test/data/blastoutput.xml +69 -0
  66. data/test/data/gene-GO.json +1 -0
  67. data/test/data/goa_uniprot +27 -0
  68. data/test/data/goslim_goa.obo +1763 -0
  69. data/test/helper.rb +18 -0
  70. data/test/test_bio-ngs.rb +17 -0
  71. data/test/test_db.rb +21 -0
  72. data/test/test_homology.rb +102 -0
  73. data/test/test_ngs.rb +21 -0
  74. data/test/test_ontology.rb +74 -0
  75. data/test/test_utils.rb +29 -0
  76. metadata +460 -0
data/.document ADDED
@@ -0,0 +1,5 @@
1
+ lib/**/*.rb
2
+ bin/*
3
+ -
4
+ features/**/*.feature
5
+ LICENSE.txt
data/Gemfile ADDED
@@ -0,0 +1,39 @@
1
+ source "http://rubygems.org"
2
+ # Add dependencies required to use your gem here.
3
+ # Example:
4
+ # gem "activesupport", ">= 2.3.5"
5
+
6
+ gem "bio", ">= 1.4.2"
7
+ gem "bio-bwa", ">= 0.2.2"
8
+ gem "bio-samtools", ">= 0.0.0"
9
+ gem "thor", ">= 0.14.6"
10
+ gem "rubyvis", ">= 0.5.0"
11
+ gem "daemons", ">= 1.1.0"
12
+ gem "ruby-ensembl-api", ">= 1.0.1"
13
+ gem "activerecord",">= 3.0.5"
14
+ gem "sqlite3", ">= 1.3.3"
15
+ gem "bio-blastxmlparser"
16
+ gem "progressbar",">= 0.9.0"
17
+
18
+ # Add dependencies to develop your gem here.
19
+ # Include everything needed to run rake, tests, features, etc.
20
+ group :development do
21
+ gem "shoulda", ">= 0"
22
+ gem "bundler", "~> 1.0.0"
23
+ gem "jeweler", "~> 1.5.2"
24
+ gem "rcov", ">= 0"
25
+ gem "bio", ">= 1.4.2"
26
+ gem "thor", ">= 0.14.6"
27
+ gem "ffi", ">= 1.0.6"
28
+ gem "rubyvis", ">= 0.5.0"
29
+ gem "rspec", ">= 2.5.0"
30
+ gem "daemons", ">= 1.1.0"
31
+ gem "bio-samtools", ">= 0.0.0"
32
+ gem "ruby-ensembl-api", ">= 1.0.1"
33
+ gem 'bio-bwa', ">= 0.2.2"
34
+ gem "activerecord",">= 3.0.5"
35
+ gem "sqlite3", ">= 1.3.3"
36
+ gem "bio-blastxmlparser"
37
+ gem "progressbar",">= 0.9.0"
38
+ gem "json"
39
+ end
data/Gemfile.lock ADDED
@@ -0,0 +1,81 @@
1
+ GEM
2
+ remote: http://rubygems.org/
3
+ specs:
4
+ activemodel (3.1.1)
5
+ activesupport (= 3.1.1)
6
+ builder (~> 3.0.0)
7
+ i18n (~> 0.6)
8
+ activerecord (3.1.1)
9
+ activemodel (= 3.1.1)
10
+ activesupport (= 3.1.1)
11
+ arel (~> 2.2.1)
12
+ tzinfo (~> 0.3.29)
13
+ activesupport (3.1.1)
14
+ multi_json (~> 1.0)
15
+ arel (2.2.1)
16
+ bio (1.4.2)
17
+ bio-blastxmlparser (1.0.1)
18
+ bio-logger (>= 1.0.0)
19
+ nokogiri (>= 1.5.0)
20
+ bio-bwa (0.2.2)
21
+ bio-logger (1.0.0)
22
+ log4r (>= 1.1.9)
23
+ bio-samtools (0.2.4)
24
+ bio (>= 1.4.1)
25
+ ffi
26
+ builder (3.0.0)
27
+ daemons (1.1.4)
28
+ diff-lcs (1.1.3)
29
+ ffi (1.0.9)
30
+ git (1.2.5)
31
+ i18n (0.6.0)
32
+ jeweler (1.5.2)
33
+ bundler (~> 1.0.0)
34
+ git (>= 1.2.5)
35
+ rake
36
+ json (1.6.1)
37
+ log4r (1.1.9)
38
+ multi_json (1.0.3)
39
+ nokogiri (1.5.0)
40
+ progressbar (0.9.1)
41
+ rake (0.9.2)
42
+ rcov (0.9.11)
43
+ rspec (2.6.0)
44
+ rspec-core (~> 2.6.0)
45
+ rspec-expectations (~> 2.6.0)
46
+ rspec-mocks (~> 2.6.0)
47
+ rspec-core (2.6.4)
48
+ rspec-expectations (2.6.0)
49
+ diff-lcs (~> 1.1.2)
50
+ rspec-mocks (2.6.0)
51
+ ruby-ensembl-api (1.0.1)
52
+ activerecord
53
+ bio (>= 1)
54
+ rubyvis (0.5.0)
55
+ shoulda (2.11.3)
56
+ sqlite3 (1.3.4)
57
+ thor (0.14.6)
58
+ tzinfo (0.3.30)
59
+
60
+ PLATFORMS
61
+ ruby
62
+
63
+ DEPENDENCIES
64
+ activerecord (>= 3.0.5)
65
+ bio (>= 1.4.2)
66
+ bio-blastxmlparser
67
+ bio-bwa (>= 0.2.2)
68
+ bio-samtools (>= 0.0.0)
69
+ bundler (~> 1.0.0)
70
+ daemons (>= 1.1.0)
71
+ ffi (>= 1.0.6)
72
+ jeweler (~> 1.5.2)
73
+ json
74
+ progressbar (>= 0.9.0)
75
+ rcov
76
+ rspec (>= 2.5.0)
77
+ ruby-ensembl-api (>= 1.0.1)
78
+ rubyvis (>= 0.5.0)
79
+ shoulda
80
+ sqlite3 (>= 1.3.3)
81
+ thor (>= 0.14.6)
data/LICENSE.txt ADDED
@@ -0,0 +1,28 @@
1
+ Copyright (c) 2011 Francesco Strozzi and Raoul J.P. Bonnal
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining
4
+ a copy of this software and associated documentation files (the
5
+ "Software"), to deal in the Software without restriction, including
6
+ without limitation the rights to use, copy, modify, merge, publish,
7
+ distribute, sublicense, and/or sell copies of the Software, and to
8
+ permit persons to whom the Software is furnished to do so, subject to
9
+ the following conditions:
10
+
11
+ The above copyright notice and this permission notice shall be
12
+ included in all copies or substantial portions of the Software.
13
+
14
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18
+ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19
+ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20
+ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
21
+
22
+
23
+
24
+ IMPORTANT NOTE:
25
+
26
+ The present package includes several binaries that are available under
27
+ different open licenses. Please check the website of each software
28
+ for further details.
data/README.rdoc ADDED
@@ -0,0 +1,240 @@
1
+ = bio-ngs
2
+
3
+ Provides a framework for handling NGS data with Bioruby.
4
+
5
+ == What we want to do and support
6
+ * SAMtools
7
+ * BWA
8
+ * Bowtie/TopHat/Cufflinks
9
+
10
+ * Reporting: text and graphs
11
+ * SGE?
12
+
13
+ == Tasks
14
+ We'll try to keep this list updated but just in case type 'biongs -T' to get the most updated list
15
+ NOTE: We are working on these and other tasks, if you find some bugs, please open an issue on Github.
16
+ === bwa
17
+
18
+ * biongs bwa:aln:long [FASTQ] --file-out=FILE_OUT --prefix=PREFIX # Run the aligment for LONG query sequences
19
+ * biongs bwa:aln:short [FASTQ] --file-out=FILE_OUT --prefix=PREFIX # Run the aligment for SHORT query sequences
20
+ * biongs bwa:index:long [FASTA] # Make the BWT index for a LONG FASTA database
21
+ * biongs bwa:index:short [FASTA] # Make the BWT index for a SHORT FASTA database
22
+ * biongs bwa:sam:paired --fastq=one two three --file-out=FILE_OUT --prefix=PREFIX --sai=one two three # Convert SAI alignment output into SAM format (paired ends)
23
+ * biongs bwa:sam:single [SAI] --fastq=FASTQ --file-out=FILE_OUT --prefix=PREFIX # Convert SAI alignment output into SAM format (single end)
24
+
25
+ === convert
26
+ Most of this tasks create sub-processes to speed up conversions
27
+
28
+ * biongs convert:bam:extract_genes BAM GENES --ensembl-release=N # Extract GENES from bam. It connects to Ensembl Humnan, release 61
29
+ * biongs convert:bam:sort BAM [PREFIX]
30
+ * biongs convert:bcl:qseq:convert RUN OUTPUT [JOBS] # Convert a bcl dataset in qseq
31
+ * biongs convert:illumina:fastq:trim_b FASTQ # perform a trim on all the sequences on B qualities with Illumina's criteria. Ref to CASAVA manual.
32
+ * biongs convert:qseq:fastq:by_file FIRST OUTPUT # Convert a qseq file into fastq
33
+ * biongs convert:qseq:fastq:by_lane LANE OUTPUT # Convert all the file in the current and descendant directories belonging to the specified lane in fastq. This command is specific for Illum...
34
+ * biongs convert:qseq:fastq:by_lane_index LANE INDEX OUTPUT # Convert the qseq from a line and index in a fastq file
35
+ * biongs convert:qseq:fastq:samples_by_lane SAMPLES LANE OUTPUT # Convert the qseqs for each sample in a specific lane. SAMPLES is an array of index codes separated by commas lane is an integer
36
+
37
+ === quality
38
+
39
+ * biongs quality:boxplot FASTQ_QUALITY_STATS # plot reads quality as boxplot
40
+ * biongs quality:fastq_stats FASTQ # Reports quality of FASTQ file
41
+ * biongs quality:illumina_b_profile_raw FASTQ --read-length=N # perform a profile for reads coming fom Illumina 1.5+ and write the report in a txt file
42
+ * biongs quality:illumina_b_profile_svg FASTQ --read-length=N # perform a profile for reads coming fom Illumina 1.5+
43
+ * biongs quality:reads FASTQ # perform quality check for NGS reads
44
+ * biongs quality:reads_coverage FASTQ_QUALITY_STATS # plot reads coverage in bases
45
+ * biongs quality:trim FASTQ # trim all the sequences
46
+
47
+
48
+
49
+ === rna
50
+
51
+ * biongs rna:idx2fasta INDEX FASTA # Create a fasta file from an indexed genome, using bowtie-inspect
52
+ * biongs rna:tophat DIST INDEX OUTPUTDIR FASTQS # run tophat as from command line, default 6 processors
53
+
54
+ === root
55
+
56
+ * biongs project NAME
57
+
58
+ === sff
59
+
60
+ * biongs sff:extract [FILE] # Run sff_extract on a SFF file
61
+
62
+
63
+ == TasksExamples
64
+
65
+ biongs convert:bam:extract_genes your_original.bam BLID,GATA3,PTPRC --ensembl_release=61 --ensembl_specie=homo_sapiens
66
+
67
+
68
+ = ForDevelopers
69
+
70
+ == Wrapper
71
+ Bio-Ngs comes with a build-in wrapper to map binary software directly in BioRuby as objects. From this wrapper object is possible to create Thor task as well, with a lot of sugar.
72
+ === Wrapping a binary
73
+
74
+ We want wrap TopHat the famous tool for NGS analyses.
75
+ * The first step is to include the Wrapping module
76
+ * set the name of the binary to call. Note: if you avid to set the program name it would not be possible to create a thor task and/or run the program
77
+ * add the options that the binary accepts, usually if preferred to declare all the options, discover them typing 'your_program_name -h'
78
+
79
+ module Bio
80
+ module Ngs
81
+ class Tophat
82
+ include Bio::Command::Wrapper
83
+
84
+ set_program Bio::Ngs::Utils.binary("tophat/tophat")
85
+ add_option "output-dir",:type => :string, :aliases => '-o'
86
+ add_option "min-anchor", :type => :numeric, :aliases => '-a'
87
+ add_option "splice-mismatches", :type => :numeric, :aliases => '-m'
88
+ #all other options that you want to expose with the wrapping
89
+ end #Tophat
90
+ end #Ngs
91
+ end #Bio
92
+
93
+ is possible to use specify in the class
94
+ use_aliases
95
+ if you want to give a priority to short notation or if your program has only the short notation but you want to extend the task with the long one as well.
96
+ We defined a new property for add_option called
97
+ :collapse => true
98
+ is used only with use_aliases and it collapse the passed parameter to the short notation - example coming from fastx.rb wrapper, note last row - :
99
+ module Bio
100
+ module Ngs
101
+ module Fastx
102
+ class Trim
103
+ include Bio::Command::Wrapper
104
+ set_program Bio::Ngs::Utils.binary("fastq_quality_trimmer")
105
+ use_aliases
106
+ add_option :min_size, :type=>:numeric, :default=>20, :aliases => "-l", :desc=>"Minimum length - sequences shorter than this (after trimming)
107
+ will be discarded. Default = 0 = no minimum length."
108
+ add_option :min_quality, :type=>:numeric, :default=>10, :aliases => "-t", :desc=>"Quality threshold - nucleotides with lower
109
+ quality will be trimmed (from the end of the sequence)."
110
+ add_option :output, :type=>:string, :aliases => "-o", :desc => "FASTQ output file.", :collapse=>true
111
+ add_option :input, :type=>:string, :aliases => "-i", :desc => "FASTQ input file.", :collapse=>true
112
+ add_option :gzip, :type => :boolean, :aliases => "-z", :desc => "Compress output with GZIP."
113
+ add_option :verbose, :type => :boolean, :aliases => "-v", :desc => "[-v] = Verbose - report number of sequences.
114
+ If [-o] is specified, report will be printed to STDOUT.
115
+ If [-o] is not specified (and output goes to STDOUT),
116
+ report will be printed to STDERR."
117
+ add_option :quality_type, :type=>:numeric, :default => 33, :aliases => "-Q", :desc=>"Quality of fastq file"
118
+ end
119
+ end
120
+ end
121
+ end
122
+ fastq_quality_trimmer accepts only short notation options and we need to pass an input file, but for some reason popen used internally doesn't work properly with the standard behavior so using :collapse=>true the application will be called:
123
+ fastq_quality_trimmer -t 20 -t 10 -Q 33 -iinput_file_name.fastq -ooutput_file_name.fastq_trim
124
+ running the program by hand form the command line using a space as separator after -i and -o works as expected. :collapse is a work around for this problem.
125
+
126
+
127
+
128
+ In case you program work like git which has a main program and the sub_programs for each feature you can use specify the sub program name with
129
+ set_sub_program "sub_name"
130
+ The wrapper will run the command composing:
131
+ set_program set_sub_program options arguments
132
+ A practical example of this behavior is samtools which has multiple sub programs view, merge, sort, ....
133
+ SamTools is a particular case because in biongs we are using bio-samtools a binding with FFI and the wrapper because the merge function was too complicated for the binding or at least we do not spent enough time on it, so we make the wrapping for this functionality.
134
+
135
+ This step is very similar to define a Thor task, add_option is grabbed/inspired from Thor.
136
+ Then you can user this binary also from a bioruby script just calling:
137
+ tophat = Bio::Ngs::Tophat.new
138
+ tophat.params = {"mate-inner-dist"=>dist, "output-dir"=>outputdir, "num-threads"=>1, "solexa1.3-quals"=>true}
139
+ #very important: you can pass parameters that have a name which has been previously declared in the Tophat's class.
140
+ # if you want to pass not declared parameters/options please use arguments.
141
+ tophat.run :arguments=>[index, "#{fastqs}" ]
142
+
143
+ === Define the Task
144
+ With our new wrapper, let's define a Thor task on the fly
145
+
146
+ class MyTasks < Thor
147
+ desc "tophat DIST INDEX OUTPUTDIR FASTQS", "run tophat as from command line, default 6 processors"
148
+ Bio::Ngs::Tophat.new.thor_task(self, :tophat) do |wrapper, task, dist, index, outputdir, fastqs|
149
+ wrapper.params = {"mate-inner-dist"=>dist, "output-dir"=>outputdir, "num-threads"=>1, "solexa1.3-quals"=>true}
150
+ wrapper.run :arguments=>[index, "#{fastqs}" ], :separator=>"="
151
+ #you tasks here
152
+ end
153
+ end
154
+
155
+ Now is you list the tasks with 'thor -T' you will see the new task.
156
+
157
+ You can create a new wrapper and configure it and run it from inside a Thor's tasks, like in 'biongs quality:boxplot'
158
+
159
+ desc "boxplot FASTQ_QUALITY_STATS", "plot reads quality as boxplot"
160
+ method_option :title, :type=>:string, :aliases =>"-t", :desc => "Title (usually the solexa file name) - will be plotted on the graph."
161
+ method_option :output, :type=>:string, :aliases =>"-o", :desc => "Output file name. default is input file_name with .txt."
162
+ def boxplot(fastq_quality_stats)
163
+ output_file = options.output || "#{fastq_quality_stats}.png"
164
+ boxplot = Bio::Ngs::Fastx::ReadsBoxPlot.new
165
+ boxplot.params={input:fastq_quality_stats, output:output_file}
166
+ boxplot.run
167
+ end
168
+
169
+ === Override the run command when the binary dosen't behave normally
170
+ module Bio
171
+ module Ngs
172
+ module Samtools
173
+ class View
174
+ include Bio::Command::Wrapper
175
+ set_program Bio::Ngs::Utils.binary("samtools")
176
+ add_option "output", :type => :string, :aliases => '-o'
177
+
178
+ alias :original_run :run
179
+ def run(opts = {:options=>{}, :arguments=>[], :output_file=>nil, :separator=>"="})
180
+ opts[:arguments].insert(0,"view")
181
+ opts[:arguments].insert(1,"-b")
182
+ opts[:arguments].insert(2,"-o")
183
+ original_run(opts)
184
+ end
185
+ end #View
186
+ end #Samtools
187
+ end #Ngs
188
+ end #Bio
189
+
190
+ === Notes
191
+ * It's possible to add more sugar and we are working hard on it
192
+ * aliases are not well supported at this time. ToDo
193
+
194
+ = REQUIREMENTS
195
+ * http://hannonlab.cshl.edu/fastx_toolkit/ (the gem tries to install this tool by itself)
196
+ * http://www.gnuplot.info/
197
+
198
+ Pleas follow the instruction for your own distribution/operating system
199
+
200
+ = TODO
201
+ * Report the version of every software installed/used from bio-ngs
202
+ * Develop fastq quality reports with RibuVis ?
203
+ * Write documentation
204
+ * DONE: Wrapper: better support for aliases and Wrapper#params
205
+ * Convert: re factor code to use ::Daemons
206
+ * DONE:misk_tasks? Extract genes/regions of interest from a bam file and create a smaller bam
207
+ * BRANCH:misk_tasks Explore possibility to user DelayedJobs
208
+ * biongs ann:ensembl:gtf:features:categorize GTF GTF categorize also by chromosome not only by BioType
209
+ * configuration file input,output, experimental design
210
+ * include fastx toolkit, download and compile
211
+ * how to put in background tasks that can be run in parallel
212
+ * is it possible to establish a relation between input data and output data ? like fastq task_selected output/s
213
+ * add description for developers on howto include news external tool with versions.yaml
214
+
215
+ = ChangeLog
216
+ * 2011.05-26: Bump to version 0.2.0 Complete support for installing fastx and possibly other downloadable tool, inside the gem
217
+ * 2011-05-25: Bump to version 0.1.0 Update Cufflinks toolkit 1.0.2. Added initial support to fastx tool kit (binaries not included)
218
+ * 2011-04-08: Tasks for filtering Ensembl annotation and create classifications. (misk_tasks branch)
219
+
220
+
221
+ = Contributing to bio-ngs
222
+
223
+ Please do not hesitate to contact us:
224
+
225
+ Raoul J.P. Bonnal, http://github.com/helios, r -at- bioruby -dot- org
226
+ Francesco Strozzi, http://github.com/fstrozzi
227
+
228
+ * Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet
229
+ * Check out the issue tracker to make sure someone already hasn't requested it and/or contributed it
230
+ * Fork the project
231
+ * Start a feature/bugfix branch
232
+ * Commit and push until you are happy with your contribution
233
+ * Make sure to add tests for it. This is important so I don't break it in a future version unintentionally.
234
+ * Please try not to mess with the Rakefile, version, or history. If you want to have your own version, or is otherwise necessary, that is fine, but please isolate to its own commit so I can cherry-pick around it.
235
+
236
+ == Copyright
237
+
238
+ Copyright (c) 2011 Francesco Strozzi and Raoul J.P. Bonnal. See LICENSE.txt for
239
+ further details.
240
+
data/Rakefile ADDED
@@ -0,0 +1,60 @@
1
+ require 'rubygems'
2
+ require 'bundler'
3
+ begin
4
+ Bundler.setup(:default, :development)
5
+ rescue Bundler::BundlerError => e
6
+ $stderr.puts e.message
7
+ $stderr.puts "Run `bundle install` to install missing gems"
8
+ exit e.status_code
9
+ end
10
+ require 'rake'
11
+
12
+ require 'jeweler'
13
+ Jeweler::Tasks.new do |gem|
14
+ # gem is a Gem::Specification... see http://docs.rubygems.org/read/chapter/20 for more options
15
+ gem.name = "bio-ngs"
16
+ gem.homepage = "http://github.com/helios/bioruby-ngs"
17
+ gem.license = "MIT"
18
+ gem.summary = %Q{bio-ngs provides a framework for handling NGS data with BioRuby}
19
+ gem.description = %Q{bio-ngs provides a framework for handling NGS data with BioRuby}
20
+ gem.email = "francesco.strozzi@gmail.com"
21
+ gem.authors = ["Francesco Strozzi","Raoul J.P. Bonnal"]
22
+ # Include your dependencies below. Runtime dependencies are required when using your gem,
23
+ # and development dependencies are only needed for development (ie running rake tasks, tests, etc)
24
+ # gem.add_runtime_dependency 'jabber4r', '> 0.1'
25
+ # gem.add_development_dependency 'rspec', '> 1.2.3'
26
+ end
27
+ Jeweler::RubygemsDotOrgTasks.new
28
+
29
+ require 'rake/testtask'
30
+ Rake::TestTask.new(:test) do |test|
31
+ test.libs << 'lib' << 'test'
32
+ test.pattern = 'test/**/test_*.rb'
33
+ test.verbose = true
34
+ end
35
+
36
+ require 'rcov/rcovtask'
37
+ Rcov::RcovTask.new do |test|
38
+ test.libs << 'test'
39
+ test.pattern = 'test/**/test_*.rb'
40
+ test.verbose = true
41
+ end
42
+
43
+ task :default => :test
44
+
45
+ require 'rake/rdoctask'
46
+ Rake::RDocTask.new do |rdoc|
47
+ version = File.exist?('VERSION') ? File.read('VERSION') : ""
48
+
49
+ rdoc.rdoc_dir = 'rdoc'
50
+ rdoc.title = "bio-ngs #{version}"
51
+ rdoc.rdoc_files.include('README*')
52
+ rdoc.rdoc_files.include('lib/**/*.rb')
53
+ end
54
+
55
+ require 'rspec/core/rake_task'
56
+ RSpec::Core::RakeTask.new
57
+
58
+
59
+ require 'development_tasks'
60
+ BioNgs::BioNgsTasks.new