miga-base 1.4.2.1 → 1.4.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile +2 -0
- data/lib/miga/cli/action/init/files_helper.rb +26 -5
- data/lib/miga/common/format.rb +6 -2
- data/lib/miga/common/net.rb +1 -1
- data/lib/miga/version.rb +2 -2
- data/scripts/mytaxa.bash +20 -11
- data/scripts/mytaxa_scan.bash +15 -6
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 725b5f62ffeba49a813504c3cfaf5a222ba5259f82eb2cb0430150483e83cc83
|
|
4
|
+
data.tar.gz: 5c3d9e21668edeb12d022a193a045ec43749c2704484976fa08bcb248cdf8fed
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c9746ea4048074e5478c087f81293bd0ee64da5a9e4c51b86d4a62d1c76f0de43a92a8a539349df8b8e0adb5fe8ad58f6594d523ce7858bcc861f265dc62c7d6
|
|
7
|
+
data.tar.gz: 276f2aabeb61253b8d2a6d219517c9334f9ac63317b0daa4482af474ed9106adc667458214619f1245cdc9c1b88627dd6440b5369c1752bfbc5e63cba6e474b8
|
data/Gemfile
CHANGED
|
@@ -64,12 +64,33 @@ module MiGA::Cli::Action::Init::FilesHelper
|
|
|
64
64
|
|
|
65
65
|
def check_mytaxa_scores(paths)
|
|
66
66
|
cli.print 'Looking for MyTaxa scores... '
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
arch = 'mytaxa_db.tar.gz'
|
|
68
|
+
mt = File.dirname(paths['MyTaxa'])
|
|
69
|
+
mt_db = File.join(mt, 'db')
|
|
70
|
+
mt_db_1 = File.join(mt_db, 'ncbiSciNames.lib')
|
|
71
|
+
miga_db = File.join(ENV['MIGA_HOME'], '.miga_db', 'mytaxa')
|
|
72
|
+
home_db = File.join(miga_db, 'db')
|
|
73
|
+
home_db_1 = File.join(home_db, 'ncbiSciNames.lib')
|
|
74
|
+
|
|
75
|
+
if File.exist?(home_db_1)
|
|
76
|
+
cli.puts 'yes'
|
|
77
|
+
elsif File.exist?(mt_db_1)
|
|
78
|
+
cli.puts 'yes, sym-linking'
|
|
79
|
+
FileUtils.mkdir_p(miga_db)
|
|
80
|
+
File.symlink(mt_db, home_db)
|
|
81
|
+
else
|
|
82
|
+
cli.puts 'no, downloading'
|
|
83
|
+
MiGA::MiGA.download_file_ftp(
|
|
84
|
+
:miga_dist, arch, File.join(miga_db, arch)
|
|
85
|
+
) { |n, size| cli.advance("#{arch}:", n, size) }
|
|
86
|
+
cmd = <<~CMD
|
|
87
|
+
cd #{miga_db.shellescape} \
|
|
88
|
+
&& tar zxf #{arch.shellescape} \
|
|
89
|
+
&& rm #{arch.shellescape}
|
|
90
|
+
CMD
|
|
91
|
+
run_cmd(cli, cmd, source: nil)
|
|
92
|
+
cli.puts
|
|
71
93
|
end
|
|
72
|
-
cli.puts 'yes'
|
|
73
94
|
end
|
|
74
95
|
|
|
75
96
|
def check_mytaxa_database(paths)
|
data/lib/miga/common/format.rb
CHANGED
|
@@ -24,10 +24,11 @@ module MiGA::Common::Format
|
|
|
24
24
|
|
|
25
25
|
##
|
|
26
26
|
# Cleans a FastA file in place, removing all sequences shorter than
|
|
27
|
-
# +min_len+
|
|
27
|
+
# +min_len+ and renaming duplicate sequence identifiers
|
|
28
28
|
def clean_fasta_file(file, min_len = 1)
|
|
29
29
|
tmp_fh = nil
|
|
30
30
|
tmp_path = nil
|
|
31
|
+
names = Set.new
|
|
31
32
|
begin
|
|
32
33
|
if file =~ /\.gz/
|
|
33
34
|
tmp_path = Tempfile.new('MiGA.gz').tap(&:close).path
|
|
@@ -45,11 +46,14 @@ module MiGA::Common::Format
|
|
|
45
46
|
ln.chomp!
|
|
46
47
|
if ln =~ /^>\s*(\S+)(.*)/
|
|
47
48
|
id, df = $1, $2
|
|
49
|
+
id = id.gsub(/[^A-Za-z0-9_\|\.]/, '_')
|
|
50
|
+
id = id + '_dup' while names.include?(id)
|
|
51
|
+
names << id
|
|
48
52
|
if next_seq[1].length >= min_len
|
|
49
53
|
tmp_fh.puts next_seq[0]
|
|
50
54
|
tmp_fh.print next_seq[1].wrap_width(80)
|
|
51
55
|
end
|
|
52
|
-
next_seq = [">#{id
|
|
56
|
+
next_seq = [">#{id}#{df}", '']
|
|
53
57
|
else
|
|
54
58
|
next_seq[1] += ln.gsub(/[^A-Za-z]/, '')
|
|
55
59
|
end
|
data/lib/miga/common/net.rb
CHANGED
|
@@ -118,7 +118,7 @@ module MiGA::Common::Net
|
|
|
118
118
|
def http_request(method, url, *opts)
|
|
119
119
|
doc = nil
|
|
120
120
|
remote_connection(url).start do |http|
|
|
121
|
-
res = http.send(method, remote_connection_uri
|
|
121
|
+
res = http.send(method, remote_connection_uri, *opts)
|
|
122
122
|
if %w[301 302].include?(res.code)
|
|
123
123
|
DEBUG "REDIRECTION #{res.code}: #{res['location']}"
|
|
124
124
|
return http_request(method, res['location'], *opts)
|
data/lib/miga/version.rb
CHANGED
|
@@ -12,7 +12,7 @@ module MiGA
|
|
|
12
12
|
# - String indicating release status:
|
|
13
13
|
# - rc* release candidate, not released as gem
|
|
14
14
|
# - [0-9]+ stable release, released as gem
|
|
15
|
-
VERSION = [1.4, 2,
|
|
15
|
+
VERSION = [1.4, 2, 5].freeze
|
|
16
16
|
|
|
17
17
|
##
|
|
18
18
|
# Nickname for the current major.minor version.
|
|
@@ -20,7 +20,7 @@ module MiGA
|
|
|
20
20
|
|
|
21
21
|
##
|
|
22
22
|
# Date of the current gem relese.
|
|
23
|
-
VERSION_DATE = Date.new(2026,
|
|
23
|
+
VERSION_DATE = Date.new(2026, 5, 20)
|
|
24
24
|
|
|
25
25
|
##
|
|
26
26
|
# References of MiGA
|
data/scripts/mytaxa.bash
CHANGED
|
@@ -27,12 +27,21 @@ else
|
|
|
27
27
|
"no such file or directory" >&2
|
|
28
28
|
exit 1
|
|
29
29
|
fi
|
|
30
|
-
if [[
|
|
31
|
-
echo "
|
|
32
|
-
|
|
30
|
+
if [[ -d "$MYTAXA_DB" ]] ; then
|
|
31
|
+
echo "Using MYTAXA_DB=$MYTAXA_DB"
|
|
32
|
+
elif [[ -d "$MIGA_HOME/.miga_db/mytaxa/db" ]] ; then
|
|
33
|
+
export MYTAXA_DB="$MIGA_HOME/.miga_db/mytaxa/db"
|
|
34
|
+
elif [[ -d "$MT/db" ]] ; then
|
|
35
|
+
export MYTAXA_DB="$MT/db"
|
|
36
|
+
else
|
|
37
|
+
echo "Cannot locate the MyTaxa scores: rerun 'miga init'" >&2
|
|
38
|
+
exit 1
|
|
33
39
|
fi
|
|
34
|
-
|
|
35
|
-
|
|
40
|
+
MT_UTILS="$MT/utils"
|
|
41
|
+
[[ -n "$CONDA_PREFIX" && ! -d "$MT_UTILS" ]] \
|
|
42
|
+
&& MT_UTILS="$CONDA_PREFIX/share/mytaxa/utils"
|
|
43
|
+
if [[ ! -d "$MT_UTILS" ]] ; then
|
|
44
|
+
echo "Cannot locate the MyTaxa utilities: $MT_UTILS" >&2
|
|
36
45
|
exit 1
|
|
37
46
|
fi
|
|
38
47
|
|
|
@@ -52,30 +61,30 @@ else
|
|
|
52
61
|
&& gunzip "../../../06.cds/$DATASET.gff3.gz"
|
|
53
62
|
if [[ -e "../../../06.cds/$DATASET.gff2" ]] ; then
|
|
54
63
|
# GFF2
|
|
55
|
-
perl "$
|
|
64
|
+
perl "$MT_UTILS/infile_convert.pl" -f gff2 \
|
|
56
65
|
"../../../06.cds/$DATASET.gff2" "$DATASET.blast" \
|
|
57
66
|
| sort -k 13 > "$DATASET.mytaxain"
|
|
58
67
|
"$MT/MyTaxa" "$DATASET.mytaxain" "$DATASET.mytaxa" "0.5"
|
|
59
|
-
perl "$
|
|
68
|
+
perl "$MT_UTILS/MyTaxa.distribution.pl" -m "$DATASET.mytaxa" \
|
|
60
69
|
-g "../../../06.cds/$DATASET.gff2" -f gff2 \
|
|
61
70
|
-I "$DATASET.mytaxa.innominate" -G "$DATASET.mytaxa.genes" \
|
|
62
71
|
-K "$DATASET.mytaxa.krona" -u
|
|
63
72
|
elif [[ -e "../../../06.cds/$DATASET.gff3" ]] ; then
|
|
64
73
|
# GFF3
|
|
65
|
-
perl "$
|
|
74
|
+
perl "$MT_UTILS/infile_convert.pl" -f gff3 \
|
|
66
75
|
"../../../06.cds/$DATASET.gff3" "$DATASET.blast" | sort -k 13 \
|
|
67
76
|
> "$DATASET.mytaxain"
|
|
68
77
|
"$MT/MyTaxa" "$DATASET.mytaxain" "$DATASET.mytaxa" "0.5"
|
|
69
|
-
perl "$
|
|
78
|
+
perl "$MT_UTILS/MyTaxa.distribution.pl" -m "$DATASET.mytaxa" \
|
|
70
79
|
-g "../../../06.cds/$DATASET.gff3" -f gff3 \
|
|
71
80
|
-I "$DATASET.mytaxa.innominate" -G "$DATASET.mytaxa.genes" \
|
|
72
81
|
-K "$DATASET.mytaxa.krona" -u
|
|
73
82
|
else
|
|
74
83
|
# No GFF
|
|
75
|
-
perl "$
|
|
84
|
+
perl "$MT_UTILS/infile_convert.pl" -f no "LOREM_IPSUM" "$DATASET.blast" \
|
|
76
85
|
| sort -k 13 > "$DATASET.mytaxain"
|
|
77
86
|
"$MT/MyTaxa" "$DATASET.mytaxain" "$DATASET.mytaxa" "0.5"
|
|
78
|
-
perl "$
|
|
87
|
+
perl "$MT_UTILS/MyTaxa.distribution.pl" -m "$DATASET.mytaxa" \
|
|
79
88
|
-I "$DATASET.mytaxa.innominate" -G "$DATASET.mytaxa.genes" \
|
|
80
89
|
-K "$DATASET.mytaxa.krona" -u
|
|
81
90
|
fi
|
data/scripts/mytaxa_scan.bash
CHANGED
|
@@ -26,12 +26,21 @@ else
|
|
|
26
26
|
"no such file or directory" >&2
|
|
27
27
|
exit 1
|
|
28
28
|
fi
|
|
29
|
-
if [[
|
|
30
|
-
echo "
|
|
31
|
-
|
|
29
|
+
if [[ -d "$MYTAXA_DB" ]] ; then
|
|
30
|
+
echo "Using MYTAXA_DB=$MYTAXA_DB"
|
|
31
|
+
elif [[ -d "$MIGA_HOME/.miga_db/mytaxa/db" ]] ; then
|
|
32
|
+
export MYTAXA_DB="$MIGA_HOME/.miga_db/mytaxa/db"
|
|
33
|
+
elif [[ -d "$MT/db" ]] ; then
|
|
34
|
+
export MYTAXA_DB="$MT/db"
|
|
35
|
+
else
|
|
36
|
+
echo "Cannot locate the MyTaxa scores: rerun 'miga init'" >&2
|
|
37
|
+
exit 1
|
|
32
38
|
fi
|
|
33
|
-
|
|
34
|
-
|
|
39
|
+
MT_UTILS="$MT/utils"
|
|
40
|
+
[[ -n "$CONDA_PREFIX" && ! -d "$MT_UTILS" ]] \
|
|
41
|
+
&& MT_UTILS="$CONDA_PREFIX/share/mytaxa/utils"
|
|
42
|
+
if [[ ! -d "$MT_UTILS" ]] ; then
|
|
43
|
+
echo "Cannot locate the MyTaxa utilities: $MT_UTILS" >&2
|
|
35
44
|
exit 1
|
|
36
45
|
fi
|
|
37
46
|
|
|
@@ -49,7 +58,7 @@ else
|
|
|
49
58
|
fi
|
|
50
59
|
|
|
51
60
|
# Prepare MyTaxa input, execute MyTaxa, and generate profiles
|
|
52
|
-
perl "$
|
|
61
|
+
perl "$MT_UTILS/infile_convert.pl" -f no "LOREM_IPSUM" "$DATASET.blast" \
|
|
53
62
|
| sort -k 13 > "$DATASET.mytaxain"
|
|
54
63
|
"$MT/MyTaxa" "$DATASET.mytaxain" "$DATASET.mytaxa" "0.5"
|
|
55
64
|
fi
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: miga-base
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.4.2.
|
|
4
|
+
version: 1.4.2.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Luis M. Rodriguez-R
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-05-20 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: daemons
|