File: WorkflowDemo.py

package info (click to toggle)
mobyle 1.5.5%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 8,288 kB
  • sloc: python: 22,709; makefile: 35; sh: 33; ansic: 10; xml: 6
file content (92 lines) | stat: -rw-r--r-- 2,837 bytes parent folder | download | duplicates (4)
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
########################################################################################
#                                                                                      #
#   Author: Herve Menager,                                                             #
#   Organization:'Biological Software and Databases' Group, Institut Pasteur, Paris.   #  
#   Distributed under GPLv2 Licence. Please refer to the COPYING.LIB document.         #
#                                                                                      #
########################################################################################
from Mobyle.Workflow import Workflow, Task, Link, Parameter, Type, Datatype, Biotype, Parser  #@UnusedImport

print __file__

if __name__ == "__main__":
    
    wf = Workflow()
    wf.name = 'toto'
    wf.version = '1.1'
    wf.title = 'test workflow'
    wf.description = 'this workflow is a test one'
    t1 = Task()
    t1.id = 1
    t1.service = 'clustalw-multialign'
    t1.suspend = False
    t1.description = "Run a clustalw"
    t2 = Task()
    t2.id = 2
    t2.service = 'protdist'
    t2.suspend = True
    t2.description = "Run a protdist"

    input = Parameter()
    input.id = '1'
    input.name = 'sequences'
    input.prompt = 'Input sequences'
    input.type = Type()
    input.type.datatype = Datatype()
    input.type.datatype.class_name = "Sequence"
    input.type.biotypes = [Biotype("Protein")]

    output_format = Parameter()
    output_format.id = '2'
    output_format.name = 'alignment_format'
    output_format.prompt = 'Alignment format'
    output_format.type = Type()
    output_format.type.datatype = Datatype()
    output_format.type.datatype.class_name = "String"
    
    output = Parameter()
    output.id = '3'
    output.isout = True
    output.name = 'matrix'
    output.prompt = 'Distance matrix'
    output.type = Type()
    output.type.datatype = Datatype()
    output.type.datatype.class_name = "Matrix"
    output.type.datatype.superclass_name = "AbstractText"
    output.type.biotypes = [Biotype("Protein")]
    
    l1 = Link()
    l1.to_task = t1.id
    l1.from_parameter = "1"
    l1.to_parameter = "infile"

    l2 = Link()
    l2.to_task = t1.id
    l2.from_parameter = "2"
    l2.to_parameter = "outputformat"
    
    l3 = Link()
    l3.from_task = t1.id
    l3.to_task = t2.id
    l3.from_parameter = "aligfile"
    l3.to_parameter = "infile"
    
    l4 = Link()
    l4.from_task = t2.id
    l4.from_parameter = "outfile"
    l4.to_parameter = "3"
    
    wf.tasks = [t1, t2]
    wf.links = [l1, l2, l3, l4]
    wf.parameters = [input, output_format, output]

    mp = Parser()
    
    print mp.tostring(wf)
    
    wffile = open( '/tmp/workflow.xml', 'w' )
    wffile.write( mp.tostring(wf)) 
    wffile.close()


    print mp.parse('/tmp/workflow.xml')