-
Notifications
You must be signed in to change notification settings - Fork 18
Expand file tree
/
Copy pathselection-guide.html
More file actions
1746 lines (1620 loc) · 79.4 KB
/
Copy pathselection-guide.html
File metadata and controls
1746 lines (1620 loc) · 79.4 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
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<title>Virome Analysis Tool Selection Guide</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.1/font/bootstrap-icons.css">
<style>
:root {
/* Modern virology-themed color palette */
--primary-color: #109b81; /* Teal green */
--primary-light: #6FC3BA;
--primary-dark: #097362;
--secondary-color: #2C4B7C; /* Deep blue */
--secondary-light: #557EBF;
--secondary-dark: #193152;
--accent-color: #9D5EB0; /* Purple for viruses */
--accent-light: #C89AD3;
--accent-dark: #6A3877;
--info-color: #3498db; /* Blue for info */
--success-color: #28a745; /* Green for success */
--warning-color: #ffc107; /* Yellow for warnings */
--danger-color: #e74c3c; /* Red for errors */
--light-bg: #f8f9fa;
--dark-bg: #1E293B; /* Dark slate blue */
--card-bg: #ffffff;
--card-bg-dark: #334155;
--card-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
--card-shadow-hover: 0 8px 15px rgba(0, 0, 0, 0.1);
--transition-speed: 0.3s;
--border-radius: 12px;
--section-padding: 2rem;
--card-spacing: 1.5rem;
--nav-height: 4rem;
/* Category-specific colors */
--color-identification: #4682B4; /* Steel Blue */
--color-host: #6A5ACD; /* Slate Blue */
--color-genome: #20B2AA; /* Light Sea Green */
--color-taxonomy: #DB7093; /* Pale Violet Red */
--color-functional: #9370DB; /* Medium Purple */
--color-structural: #4169E1; /* Royal Blue */
--color-crispr: #FF6347; /* Tomato */
--color-database: #3CB371; /* Medium Sea Green */
--color-sequence: #1E90FF; /* Dodger Blue */
--color-visualization: #FF8C00; /* Dark Orange */
}
/* Dark mode variables */
[data-theme="dark"] {
--primary-color: #1AB394;
--primary-light: #5BD6BC;
--primary-dark: #0D8A70;
--light-bg: #1E293B;
--dark-bg: #0F172A;
--card-bg: #334155;
--card-bg-dark: #1E293B;
--card-shadow: 0 4px 6px rgba(0, 0, 0, 0.2);
--card-shadow-hover: 0 8px 15px rgba(0, 0, 0, 0.3);
color: #E2E8F0;
}
body {
font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
background-color: var(--light-bg);
color: #333;
transition: background-color var(--transition-speed), color var(--transition-speed);
line-height: 1.6;
scroll-behavior: smooth;
padding-top: var(--nav-height);
}
[data-theme="dark"] body {
color: #E2E8F0;
}
/* Dark mode toggle */
.theme-toggle {
background: none;
border: none;
cursor: pointer;
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
color: #fff;
margin-left: 1rem;
outline: none;
position: relative;
transition: all var(--transition-speed);
}
.theme-toggle:hover {
background-color: rgba(255, 255, 255, 0.1);
}
.theme-toggle:focus-visible {
box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.4);
outline: none;
}
.theme-toggle i {
font-size: 1.2rem;
}
/* Navbar styling */
.navbar {
background: linear-gradient(135deg, var(--secondary-dark), var(--secondary-color));
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
padding: 0.75rem 1rem;
height: var(--nav-height);
position: fixed;
top: 0;
left: 0;
right: 0;
z-index: 1000;
}
.navbar-brand {
font-weight: 700;
color: #fff;
font-size: 1.3rem;
letter-spacing: 0.5px;
}
.navbar-brand i {
background: linear-gradient(135deg, #5BD6BC, #109b81);
-webkit-background-clip: text;
background-clip: text;
-webkit-text-fill-color: transparent;
margin-right: 0.3rem;
}
.nav-link {
position: relative;
padding: 0.5rem 1rem;
color: rgba(255, 255, 255, 0.9) !important;
font-weight: 500;
transition: color var(--transition-speed);
}
.nav-link:hover, .nav-link:focus {
color: #ffffff !important;
}
.nav-link.active {
color: #ffffff !important;
}
.nav-link.active::after {
content: '';
position: absolute;
bottom: 0;
left: 1rem;
right: 1rem;
height: 3px;
background-color: var(--primary-color);
border-radius: 3px 3px 0 0;
}
/* Container styling */
.guide-container {
max-width: 1200px;
margin: 2rem auto;
padding: 0 1rem;
}
/* Path visualization */
.path-indicator {
margin-bottom: 2rem;
padding: 1rem;
background-color: var(--card-bg);
border-radius: var(--border-radius);
box-shadow: var(--card-shadow);
}
[data-theme="dark"] .path-indicator {
background-color: var(--card-bg-dark);
}
.path-item {
display: inline-block;
margin-right: 0.5rem;
padding: 0.25rem 0.75rem;
background-color: var(--secondary-light);
color: white;
border-radius: 20px;
font-size: 0.9rem;
}
.path-item i {
margin-right: 0.5rem;
}
.path-separator {
display: inline-block;
margin: 0 0.5rem;
color: var(--secondary-color);
}
/* Question cards */
.question-card {
margin-bottom: 2rem;
border-radius: var(--border-radius);
box-shadow: var(--card-shadow);
background-color: var(--card-bg);
overflow: hidden;
transition: box-shadow var(--transition-speed);
}
[data-theme="dark"] .question-card {
background-color: var(--card-bg-dark);
}
.question-card:hover {
box-shadow: var(--card-shadow-hover);
}
.question-header {
background: linear-gradient(135deg, var(--secondary-color), var(--secondary-dark));
color: white;
padding: 1.5rem;
font-weight: 600;
font-size: 1.25rem;
}
.question-body {
padding: 1.5rem;
}
/* Option buttons */
.option-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 1rem;
margin-top: 1rem;
}
.option-btn {
display: block;
padding: 1rem;
text-align: left;
border: none;
border-radius: var(--border-radius);
background-color: var(--light-bg);
color: #333;
transition: transform var(--transition-speed),
box-shadow var(--transition-speed),
background-color var(--transition-speed);
box-shadow: var(--card-shadow);
cursor: pointer;
position: relative;
overflow: hidden;
height: 100%;
}
[data-theme="dark"] .option-btn {
background-color: var(--card-bg);
color: #E2E8F0;
}
.option-btn::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 5px;
height: 100%;
background-color: var(--primary-color);
}
.option-btn:hover {
transform: translateY(-3px);
box-shadow: var(--card-shadow-hover);
}
.option-btn h5 {
margin-bottom: 0.5rem;
font-weight: 600;
}
.option-btn p {
margin-bottom: 0;
font-size: 0.95rem;
opacity: 0.9;
}
/* Result cards */
.result-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
gap: 1.5rem;
margin-top: 1rem;
}
.result-card {
border-radius: var(--border-radius);
box-shadow: var(--card-shadow);
background-color: var(--card-bg);
overflow: hidden;
transition: transform var(--transition-speed),
box-shadow var(--transition-speed);
position: relative;
}
[data-theme="dark"] .result-card {
background-color: var(--card-bg-dark);
}
.result-card:hover {
transform: translateY(-5px);
box-shadow: var(--card-shadow-hover);
}
.result-card::before {
content: '';
position: absolute;
top: 0;
left: 0;
width: 5px;
height: 100%;
background-color: var(--primary-color);
}
.result-header {
background-color: var(--secondary-light);
color: white;
padding: 1rem;
font-weight: 600;
}
.result-body {
padding: 1.5rem;
}
.result-footer {
padding: 1rem;
background-color: rgba(0, 0, 0, 0.03);
text-align: right;
}
[data-theme="dark"] .result-footer {
background-color: rgba(255, 255, 255, 0.05);
}
/* Badges */
.badge {
padding: 0.4em 0.6em;
font-weight: 500;
font-size: 0.75rem;
border-radius: 6px;
box-shadow: 0 1px 2px rgba(0,0,0,0.1);
letter-spacing: 0.3px;
margin-right: 0.3rem;
margin-bottom: 0.3rem;
}
.badge-category {
background-color: var(--color-identification);
color: white;
}
/* Navigation buttons */
.nav-buttons {
display: flex;
justify-content: space-between;
margin-top: 2rem;
margin-bottom: 2rem;
}
.btn-back, .btn-reset {
padding: 0.5rem 1rem;
border-radius: var(--border-radius);
font-weight: 500;
transition: background-color var(--transition-speed),
box-shadow var(--transition-speed);
}
.btn-back {
background-color: #f8f9fa;
color: #333;
border: 1px solid #dee2e6;
}
[data-theme="dark"] .btn-back {
background-color: var(--card-bg-dark);
color: #E2E8F0;
border-color: #4b5563;
}
.btn-back:hover {
background-color: #e9ecef;
}
[data-theme="dark"] .btn-back:hover {
background-color: #4b5563;
}
.btn-reset {
background-color: var(--danger-color);
color: white;
border: none;
}
.btn-reset:hover {
background-color: #c0392b;
}
/* Responsive adjustments */
@media (max-width: 768px) {
.option-grid, .result-grid {
grid-template-columns: 1fr;
}
}
/* Hidden elements */
.hidden {
display: none !important;
}
/* Animated transitions */
@keyframes fadeIn {
from { opacity: 0; transform: translateY(20px); }
to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in {
animation: fadeIn 0.3s ease-out forwards;
}
/* Tool recommendation tags */
.tool-tag {
display: inline-block;
margin-right: 0.5rem;
margin-bottom: 0.5rem;
padding: 0.25rem 0.75rem;
background-color: var(--primary-light);
color: white;
border-radius: 20px;
font-size: 0.9rem;
transition: background-color var(--transition-speed);
}
.tool-tag:hover {
background-color: var(--primary-color);
}
/* Feature list */
.feature-list {
list-style: none;
padding-left: 0;
margin-bottom: 1rem;
}
.feature-list li {
padding: 0.25rem 0;
display: flex;
align-items: flex-start;
}
.feature-list li i {
color: var(--success-color);
margin-right: 0.5rem;
margin-top: 0.25rem;
}
/* Helper classes */
.text-emphasis {
color: var(--primary-color);
font-weight: 600;
}
[data-theme="dark"] .text-emphasis {
color: var(--primary-light);
}
</style>
</head>
<body>
<!-- Navigation Bar -->
<nav class="navbar navbar-expand-lg navbar-dark fixed-top">
<div class="container-fluid">
<a class="navbar-brand" href="index.html">
<i class="bi bi-virus me-2"></i>Awesome-<span>Virome</span>
</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse" id="navbarNav">
<ul class="navbar-nav me-auto mb-2 mb-lg-0">
<li class="nav-item">
<a class="nav-link" href="dashboard.html">Dashboard</a>
</li>
<li class="nav-item">
<a class="nav-link" href="comparison.html">Tool Comparison</a>
</li>
<li class="nav-item">
<a class="nav-link active" href="selection-guide.html">Selection Guide</a>
</li>
</ul>
<div class="d-flex align-items-center">
<button class="theme-toggle me-3" id="themeToggle">
<i class="bi bi-sun"></i>
</button>
<a href="https://github.com/shandley/awesome-virome" class="btn btn-outline-light" target="_blank">
<i class="bi bi-github me-1"></i> GitHub
</a>
</div>
</div>
</div>
</nav>
<!-- Main Container -->
<div class="guide-container">
<!-- Introduction Section -->
<div id="intro-section">
<h1 class="mb-4">Find the Right Tool for Your Research</h1>
<div class="alert alert-info">
<i class="bi bi-info-circle-fill me-2"></i>
This interactive guide will help you navigate through the vast ecosystem of viral analysis tools based on your specific research needs.
</div>
<div class="card mb-4">
<div class="card-body">
<h4>How to Use This Guide</h4>
<p>Answer a series of questions about your research to receive tailored tool recommendations:</p>
<ul>
<li>Start by selecting your main research objective</li>
<li>Answer follow-up questions to refine your needs</li>
<li>Receive customized tool recommendations based on your responses</li>
<li>Click on any tool to see more details</li>
</ul>
<button id="start-guide" class="btn btn-primary mt-3">
<i class="bi bi-arrow-right-circle me-2"></i> Start Guide
</button>
</div>
</div>
</div>
<!-- Path Indicator -->
<div id="path-indicator" class="path-indicator hidden">
<div class="path-content">
<span class="path-item"><i class="bi bi-house"></i>Start</span>
</div>
</div>
<!-- Main Question Area -->
<div id="question-area" class="hidden">
<!-- Question card will be dynamically inserted here -->
</div>
<!-- Results Section -->
<div id="results-section" class="hidden">
<h2 class="mb-4">Recommended Tools</h2>
<p class="lead">Based on your requirements, here are the most suitable tools for your research:</p>
<div id="results-grid" class="result-grid">
<!-- Result cards will be dynamically inserted here -->
</div>
<div class="nav-buttons">
<button id="restart-guide" class="btn btn-reset">
<i class="bi bi-arrow-counterclockwise me-2"></i> Start Over
</button>
<a href="comparison.html" class="btn btn-primary">
<i class="bi bi-table me-2"></i> Compare All Tools
</a>
</div>
</div>
<!-- Navigation Buttons -->
<div id="nav-buttons" class="nav-buttons hidden">
<button id="back-button" class="btn btn-back">
<i class="bi bi-arrow-left me-2"></i> Back
</button>
<button id="reset-button" class="btn btn-reset">
<i class="bi bi-arrow-counterclockwise me-2"></i> Start Over
</button>
</div>
</div>
<!-- Scripts -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
<script>
document.addEventListener('DOMContentLoaded', function() {
// Theme toggling
const themeToggle = document.getElementById('themeToggle');
const prefersDarkMode = window.matchMedia('(prefers-color-scheme: dark)').matches;
// Set initial theme based on user preference
if (localStorage.getItem('theme') === 'dark' || (prefersDarkMode && !localStorage.getItem('theme'))) {
document.documentElement.setAttribute('data-theme', 'dark');
themeToggle.innerHTML = '<i class="bi bi-moon"></i>';
}
themeToggle.addEventListener('click', function() {
const currentTheme = document.documentElement.getAttribute('data-theme');
if (currentTheme === 'dark') {
document.documentElement.setAttribute('data-theme', 'light');
themeToggle.innerHTML = '<i class="bi bi-sun"></i>';
localStorage.setItem('theme', 'light');
} else {
document.documentElement.setAttribute('data-theme', 'dark');
themeToggle.innerHTML = '<i class="bi bi-moon"></i>';
localStorage.setItem('theme', 'dark');
}
});
// Decision Tree Data Structure
const decisionTree = {
start: {
question: "What is your main research objective?",
description: "Select the primary goal of your viral analysis research.",
options: [
{
id: "identification",
text: "Virus Identification",
description: "Discover and identify viruses in sequencing data",
icon: "bi-search",
next: "identification_type"
},
{
id: "host",
text: "Host Prediction",
description: "Predict potential hosts for viral sequences",
icon: "bi-signpost-split",
next: "host_method"
},
{
id: "genome",
text: "Genome Analysis",
description: "Analyze, annotate, or assemble viral genomes",
icon: "bi-bar-chart",
next: "genome_task"
},
{
id: "classification",
text: "Taxonomic Classification",
description: "Classify viruses and determine their evolutionary relationships",
icon: "bi-diagram-3",
next: "taxonomy_approach"
},
{
id: "functional",
text: "Functional Analysis",
description: "Analyze the function of viral genes and proteins",
icon: "bi-gear",
next: "functional_type"
},
{
id: "structural",
text: "Structural Analysis",
description: "Analyze viral protein structures and interactions",
icon: "bi-box",
next: "structural_approach"
}
]
},
// Virus Identification Branch
identification_type: {
question: "What type of virus identification are you performing?",
description: "Select the specific approach for virus identification.",
options: [
{
id: "metagenome",
text: "Metagenomic Analysis",
description: "Identify viruses in complex metagenomic samples",
next: "metagenome_sample"
},
{
id: "rna",
text: "RNA Virus Identification",
description: "Specifically target RNA viruses in your data",
next: "rna_approach"
},
{
id: "dark_matter",
text: "Novel/Dark Matter Viruses",
description: "Discover completely novel viruses with no known homologs",
next: "darkmatter_approach"
},
{
id: "prophage",
text: "Prophage/Integrated Viruses",
description: "Identify viral sequences integrated in host genomes",
next: "prophage_host"
}
]
},
metagenome_sample: {
question: "What is your sample type?",
description: "Different tools are optimized for different sample origins.",
options: [
{
id: "environmental",
text: "Environmental Samples",
description: "Soil, water, air, or other environmental samples",
next: "metagenome_resources"
},
{
id: "clinical",
text: "Clinical Samples",
description: "Human or animal clinical specimens",
next: "metagenome_resources"
},
{
id: "marine",
text: "Marine/Aquatic Samples",
description: "Ocean, sea, lake, or other aquatic environments",
next: "metagenome_resources"
},
{
id: "any",
text: "General Purpose",
description: "Not specific to any particular environment",
next: "metagenome_resources"
}
]
},
metagenome_resources: {
question: "What computational resources do you have available?",
description: "Some tools require significant computational power, while others are designed for limited resources.",
options: [
{
id: "high",
text: "High Performance Computing",
description: "Access to computing clusters or powerful servers",
next: "metagenome_results"
},
{
id: "medium",
text: "Standard Workstation",
description: "Desktop computer with good specifications",
next: "metagenome_results"
},
{
id: "low",
text: "Limited Resources",
description: "Laptop or computer with limited RAM/CPU",
next: "metagenome_results"
},
{
id: "cloud",
text: "Cloud-Based Solutions",
description: "Prefer tools that run in the cloud",
next: "metagenome_results"
}
]
},
metagenome_results: {
results: [
{
name: "VirSorter2",
category: "Virus and Phage Identification",
description: "A multi-classifier, expert-guided approach to detect diverse DNA and RNA virus sequences.",
link: "https://github.com/jiarong/VirSorter2",
features: [
"Multi-classifier approach",
"Works with fragmented metagenomic contigs",
"Improved accuracy over original VirSorter",
"Identifies both DNA and RNA viruses"
],
requirements: "Requires moderate computational resources",
labels: ["DNA Viruses", "RNA Viruses", "Command Line", "Active Development"],
matches: {
environmental: true, clinical: true, marine: true, any: true,
high: true, medium: true, low: false, cloud: true
}
},
{
name: "VIBRANT",
category: "Virus and Phage Identification",
description: "Virus Identification By iteRative ANnoTation - automated recovery of viral genomes from metagenomes.",
link: "https://github.com/AnantharamanLab/VIBRANT",
features: [
"Automated viral genome recovery",
"Provides functional annotation",
"High accuracy for complete viral genomes",
"Works well with novel viruses"
],
requirements: "Moderate RAM requirements",
labels: ["DNA Viruses", "Phages", "Command Line", "Active Development"],
matches: {
environmental: true, clinical: true, marine: true, any: true,
high: true, medium: true, low: false, cloud: true
}
},
{
name: "geNomad",
category: "Virus and Phage Identification",
description: "Identifies viral and plasmid sequences in genomic and metagenomic data using machine learning.",
link: "https://github.com/apcamargo/genomad",
features: [
"Machine learning approach",
"Capable of identifying plasmids along with viruses",
"Low false positive rate",
"Provides taxonomic classification"
],
requirements: "Moderate computational requirements",
labels: ["DNA Viruses", "Plasmids", "Command Line", "Active Development"],
matches: {
environmental: true, clinical: true, marine: true, any: true,
high: true, medium: true, low: false, cloud: true
}
},
{
name: "DeepVirFinder",
category: "Virus and Phage Identification",
description: "Uses deep learning to identify viral sequences in metagenomic data, particularly effective with short contigs.",
link: "https://github.com/jessieren/DeepVirFinder",
features: [
"Deep learning approach",
"Works well with short contigs",
"No reference database required",
"Good for novel virus discovery"
],
requirements: "GPU acceleration recommended for training",
labels: ["DNA Viruses", "Deep Learning", "Command Line"],
matches: {
environmental: true, clinical: true, marine: true, any: true,
high: true, medium: true, low: false, cloud: true
}
},
{
name: "VirMiner",
category: "Virus and Phage Identification",
description: "A pipeline for viral identification and functional annotation in human microbiome datasets.",
link: "https://github.com/TingtZHENG/VirMiner",
features: [
"Web-based user interface",
"Specialized for human microbiome",
"Functional annotation",
"Viral operational taxonomic units (vOTUs)"
],
requirements: "Web server available, local installation requires moderate resources",
labels: ["Human Microbiome", "Web Interface", "Phages"],
matches: {
environmental: false, clinical: true, marine: false, any: true,
high: true, medium: true, low: true, cloud: true
}
},
{
name: "Seeker",
category: "Virus and Phage Identification",
description: "Ultra-fast viral sequence identification using k-mer signatures and machine learning.",
link: "https://github.com/gussow/seeker",
features: [
"Extremely fast processing",
"Lightweight resource requirements",
"Effective on short sequences",
"Pre-trained machine learning models"
],
requirements: "Low computational requirements",
labels: ["Fast", "Command Line", "Machine Learning"],
matches: {
environmental: true, clinical: true, marine: true, any: true,
high: true, medium: true, low: true, cloud: true
}
}
]
},
rna_approach: {
question: "What RNA virus detection approach do you prefer?",
description: "RNA virus detection can use different strategies depending on your needs.",
options: [
{
id: "rdrp",
text: "RdRp-based Detection",
description: "Identify RNA viruses based on RNA-dependent RNA polymerase",
next: "rna_results"
},
{
id: "denovo",
text: "De novo Identification",
description: "Discover novel RNA viruses without reliance on known references",
next: "rna_results"
},
{
id: "assembly",
text: "RNA Virus Assembly",
description: "Assemble RNA viral genomes from sequencing reads",
next: "rna_results"
},
{
id: "general",
text: "General RNA Virus Analysis",
description: "Multiple approaches for RNA virus identification",
next: "rna_results"
}
]
},
rna_results: {
results: [
{
name: "RdRp-scan",
category: "RNA Virus Identification",
description: "A tool for the identification of RNA-dependent RNA polymerase (RdRp) in sequence data.",
link: "https://github.com/rcedgar/palmscan",
features: [
"Fast profile-based RdRp detection",
"High sensitivity for diverse RNA viruses",
"Detection of RdRp palm domain",
"Works with fragmented sequences"
],
requirements: "Low computational requirements",
labels: ["RdRp", "RNA Viruses", "Command Line"],
matches: {
rdrp: true, denovo: false, assembly: false, general: true
}
},
{
name: "metaviralSPAdes-RNA",
category: "RNA Virus Identification",
description: "A modified metaSPAdes assembler optimized for RNA viral genome assembly.",
link: "https://github.com/ablab/spades",
features: [
"Specialized RNA virus assembly",
"De novo assembly approach",
"Handles highly diverse RNA viral populations",
"Optimized for metatranscriptomic data"
],
requirements: "Moderate to high RAM requirements",
labels: ["RNA Viruses", "Assembly", "Command Line"],
matches: {
rdrp: false, denovo: true, assembly: true, general: true
}
},
{
name: "VirMine-RNA",
category: "RNA Virus Identification",
description: "An extension of VirMine focused on RNA virus identification in metatranscriptomic data.",
link: "https://github.com/TingtZHENG/VirMiner",
features: [
"Specialized for RNA virus detection",
"Works with metatranscriptomic data",
"Functional annotation",
"Web-based interface available"
],
requirements: "Web server available, local installation requires moderate resources",
labels: ["RNA Viruses", "Web Interface", "Metatranscriptomics"],
matches: {
rdrp: false, denovo: true, assembly: false, general: true
}
},
{
name: "palmID",
category: "RNA Virus Identification",
description: "Identifies and classifies RNA virus sequences based on the conserved RdRp palm domain.",
link: "https://github.com/rcedgar/palmscan",
features: [
"RdRp palm domain detection",
"Taxonomic classification of RNA viruses",
"Highly sensitive for diverse RdRp sequences",
"Fast processing"
],
requirements: "Low computational requirements",
labels: ["RdRp", "RNA Viruses", "Taxonomy", "Command Line"],
matches: {
rdrp: true, denovo: false, assembly: false, general: true
}
}
]
},
// Host Prediction Branch
host_method: {
question: "What host prediction approach are you interested in?",
description: "Different methods are available for predicting virus-host relationships.",
options: [
{
id: "alignment",
text: "Alignment-based Methods",
description: "Predict hosts based on sequence similarity and alignment",
next: "host_organism"
},
{
id: "kmer",
text: "K-mer Based Methods",
description: "Use k-mer frequency patterns to predict hosts",
next: "host_organism"
},
{
id: "crispr",
text: "CRISPR-based Prediction",
description: "Use CRISPR spacers to identify phage-host relationships",
next: "host_organism"
},
{
id: "machine",