bio-gadget 0.4.3 → 0.4.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6d522f56661028dc81bf2c51cf949e41a310b187
4
- data.tar.gz: a9fbb56f5eb610b46a138353dc3ed8f9648cd2ea
3
+ metadata.gz: 9bf862ca4bbf3f563456a0285f3e690a08fc2556
4
+ data.tar.gz: 4d4956c35b4d96374d7a73f24b37fe48dc053bfa
5
5
  SHA512:
6
- metadata.gz: 407c03f7f3625b29f6eebf38bb3bf5457a3ef416c1a99b45e16401229ff71d553f97e34b56d84c11fa9ee698cf7bb7bb90657882303b6e2973a32c3abb362168
7
- data.tar.gz: eae976bb606a74d1d161b4683d4fcef90c4ae549dcaccfdc07b32767bed98ce833cf4e2b6b8a3278c09d36c44156f7fb09e3354895bac298bb575466d65098d8
6
+ metadata.gz: e3565824e2b4dd2b7cd328e5ade202f350d8edf29e71377e502aaff7402a9266c62f833239d9596b3c2551375b703b5db89e4cb8887acba222b23aef6b41fe89
7
+ data.tar.gz: 4851e1c1047ccc59e4862ba6e965b84f5dc609f926c497e0a9cbc1964bfd4d548961d9a545e5fbbce1906b743cb0cfd309d6c634b2fe846cd3094f6da182460a
data/README.org CHANGED
@@ -16,7 +16,8 @@ Currently available commands are
16
16
 
17
17
  - dedup :: Deduplicate fastq (via STDIN)
18
18
  - demlt :: Demultiplex fastq by barcodes
19
- - fqxz :: automatic (re)compression of *.fq(.gz|.bz2) files
19
+ - femrg :: Extract and merge first exons
20
+ - fqxz :: (Re)compression of *.fq(.gz|.bz2) files
20
21
  - qvstat :: Statistics of quality values in *.qual file
21
22
  - rgt2mtx :: Convert cuffdiff read group tracking file into tab-separated matrix
22
23
  - wig5p :: Convert bam-format alignments into wig-format table
data/lib/bio-gadget.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  require 'bio-gadget/version'
2
2
  require 'bio-gadget/dedup'
3
3
  require 'bio-gadget/demlt'
4
+ require 'bio-gadget/femrg'
4
5
  require 'bio-gadget/fqxz'
5
6
  require 'bio-gadget/qvstat'
6
7
  require 'bio-gadget/rgt2mtx'
@@ -0,0 +1,61 @@
1
+ module Bio
2
+ class Gadget < Thor
3
+
4
+ desc 'femrg [GTF...]', 'Extract and merge overlapping first exons.'
5
+
6
+ def femrg(*gtf_files)
7
+
8
+ exon1s = Hash.new
9
+ fp = open("| grep -h '\texon\t' #{gtf_files.nil? ? '-' : gtf_files.join(' ')} | cut -f 1,4,5,7,9")
10
+ fp.each { |line|
11
+ chr, sstart, sstop, str, attr = line.rstrip.split(/\t/)
12
+ exon1s[chr] = Hash.new unless exon1s.key?(chr)
13
+ exon1s[chr][str] = Hash.new unless exon1s[chr].key?(str)
14
+ id = attr.match(/transcript_id \"([^\"]+)\"/).to_a[1]
15
+ en = attr.match(/exon_number \"(\d+)\"/).to_a[1].to_i
16
+ if (!exon1s[chr][str].key?(id) ||
17
+ (str == "+" && en < exon1s[chr][str][id][2]) ||
18
+ (str == "-" && exon1s[chr][str][id][2] < en))
19
+ exon1s[chr][str][id] = [sstart.to_i, sstop.to_i, en]
20
+ end
21
+ }
22
+ fp.close
23
+
24
+ idx = 0
25
+ exon1s.each { |chr, exon1schr|
26
+ exon1schr.each { |str, exon1schrstr|
27
+ ids = exon1schrstr.keys.sort { |a, b|
28
+ exon1schrstr[a][0] <=> exon1schrstr[b][0]
29
+ }
30
+ #
31
+ clusters = Array.new
32
+ members = [id = ids.shift]
33
+ start, stop, en = exon1schrstr[id]
34
+ while ids.length > 0
35
+ nid = ids.shift
36
+ nstart, nstop, nen = exon1schrstr[nid]
37
+ if stop < nstart
38
+ clusters.push([members, start, stop])
39
+ members = [nid]
40
+ start = nstart
41
+ stop = nstop
42
+ else
43
+ members.push(nid)
44
+ start, stop = [start, stop, nstart, nstop].sort.values_at(0, 3)
45
+ end
46
+ end
47
+ clusters.push([members, start, stop])
48
+ #
49
+ clusters.each { |members, start, stop|
50
+ attr = "gene_id \"FE#{idx}\"; transcript_id \"FE#{idx}\"; "
51
+ puts [chr, 'bio-gadget:femrg', 'transcript', start, stop, 1000, str, '.', attr].join("\t")
52
+ puts [chr, 'bio-gadget:femrg', 'exon', start, stop, 1000, str, '.', "#{attr}exon_number \"1\"; member_ids \"#{members.join('|')}\""].join("\t")
53
+ idx += 1
54
+ }
55
+ }
56
+ }
57
+
58
+ end
59
+
60
+ end
61
+ end
@@ -3,7 +3,7 @@ require 'thor'
3
3
  module Bio
4
4
  class Gadget < Thor
5
5
 
6
- VERSION = "0.4.3"
6
+ VERSION = "0.4.4"
7
7
 
8
8
  end
9
9
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bio-gadget
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.3
4
+ version: 0.4.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Shintaro Katayama
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-04-14 00:00:00.000000000 Z
11
+ date: 2013-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -99,6 +99,7 @@ files:
99
99
  - lib/bio-gadget.rb
100
100
  - lib/bio-gadget/dedup.rb
101
101
  - lib/bio-gadget/demlt.rb
102
+ - lib/bio-gadget/femrg.rb
102
103
  - lib/bio-gadget/fqxz.rb
103
104
  - lib/bio-gadget/qvstat.rb
104
105
  - lib/bio-gadget/rgt2mtx.rb