-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathsetup.sh
More file actions
executable file
·146 lines (125 loc) · 4.15 KB
/
setup.sh
File metadata and controls
executable file
·146 lines (125 loc) · 4.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#!/usr/bin/env bash
# WGS Extract v6 Setup Script
# Sets up virtual environment and installs all dependencies
set -e # Exit on error
echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ WGS Extract v6 - Setup Script ║"
echo "╚═══════════════════════════════════════════════════════════════╝"
echo ""
# Check Python version
echo "1. Checking Python version..."
if ! command -v python3.13 &> /dev/null; then
echo "❌ Error: python3.13 not found"
echo " Please install Python 3.13 or later"
exit 1
fi
PYTHON_VERSION=$(python3.13 --version)
echo " ✓ Found $PYTHON_VERSION"
echo ""
# Check external tools
echo "2. Checking external tools..."
MISSING_TOOLS=()
if ! command -v samtools &> /dev/null; then
MISSING_TOOLS+=("samtools")
fi
if ! command -v bcftools &> /dev/null; then
MISSING_TOOLS+=("bcftools")
fi
if ! command -v tabix &> /dev/null; then
MISSING_TOOLS+=("tabix")
fi
if ! command -v java &> /dev/null; then
MISSING_TOOLS+=("java")
fi
if [ ${#MISSING_TOOLS[@]} -gt 0 ]; then
echo " ⚠️ Warning: Missing tools: ${MISSING_TOOLS[*]}"
echo " Install with: sudo apt install samtools bcftools tabix default-jre"
echo ""
read -p " Continue anyway? (y/n) " -n 1 -r
echo
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
exit 1
fi
else
echo " ✓ All external tools found"
fi
echo ""
# Create virtual environment
echo "3. Creating virtual environment..."
if [ -d "venv" ]; then
echo " ⚠️ venv/ already exists"
read -p " Remove and recreate? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
rm -rf venv
python3.13 -m venv venv
echo " ✓ Virtual environment recreated"
else
echo " ✓ Using existing virtual environment"
fi
else
python3.13 -m venv venv
echo " ✓ Virtual environment created"
fi
echo ""
# Activate virtual environment
echo "4. Activating virtual environment..."
source venv/bin/activate
echo " ✓ Virtual environment activated"
echo ""
# Upgrade pip
echo "5. Upgrading pip..."
pip install --upgrade pip > /dev/null
echo " ✓ pip upgraded"
echo ""
# Install requirements
echo "6. Installing WGS Extract dependencies..."
pip install -r requirements.txt
echo " ✓ Dependencies installed"
echo ""
# Install Yleaf
echo "7. Installing bundled Yleaf..."
if [ -d "yleaf" ]; then
pip install ./yleaf/
echo " ✓ Yleaf installed from ./yleaf/"
else
echo " ❌ Error: yleaf/ directory not found"
exit 1
fi
echo ""
# Verify installation
echo "8. Verifying installation..."
# Check WGS Extract can be imported
if python3 -c "import wgsextract; print('WGS Extract:', wgsextract.__version__)" 2>/dev/null; then
echo " ✓ WGS Extract modules OK"
else
echo " ❌ WGS Extract import failed"
exit 1
fi
# Check Yleaf
if python3 -c "import yleaf; print('Yleaf:', yleaf.__version__)" 2>/dev/null; then
echo " ✓ Yleaf OK"
else
echo " ❌ Yleaf import failed"
exit 1
fi
# Check Yleaf command
if venv/bin/Yleaf -h &> /dev/null; then
echo " ✓ Yleaf command OK"
else
echo " ❌ Yleaf command failed"
exit 1
fi
echo ""
echo "╔═══════════════════════════════════════════════════════════════╗"
echo "║ Setup Complete! ║"
echo "╚═══════════════════════════════════════════════════════════════╝"
echo ""
echo "To run WGS Extract:"
echo " ./wgsextract.sh"
echo ""
echo "First time users:"
echo " 1. Load a BAM/CRAM file from Settings tab"
echo " 2. Download reference genomes (Settings → Reference Library)"
echo " 3. Explore features in Extract Data and Analyze tabs"
echo ""