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 +4 -4
- data/README.org +2 -1
- data/lib/bio-gadget.rb +1 -0
- data/lib/bio-gadget/femrg.rb +61 -0
- data/lib/bio-gadget/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9bf862ca4bbf3f563456a0285f3e690a08fc2556
|
4
|
+
data.tar.gz: 4d4956c35b4d96374d7a73f24b37fe48dc053bfa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
-
|
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
@@ -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
|
data/lib/bio-gadget/version.rb
CHANGED
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.
|
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-
|
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
|