Revisión Sistemática de Software
Workflow for sistematic software revision.
Preview
Run
Run this Workflow in the Taverna Workbench...
Option 1:
Copy and paste this link into File > 'Open workflow location...'
http://www.myexperiment.org/workflows/2495/download?version=4
[ More Info ]
Taverna is available from http://taverna.sourceforge.net/
If you are having problems downloading it in Taverna, you may need to provide your username and password in the URL so that Taverna can access the Workflow:
Replace http:// in the link above with http://yourusername:yourpassword@
Workflow Components
None
None
None
itextpdf-5.1.2.jar |
Name | Description |
---|---|
rlocation | |
default_image_path | |
default_pdf_path | |
i2_path |
Name | Type | Description |
---|---|---|
Mensaje | stringconstant |
ValueWelcome to RSSintesis test demo! Enter the following fields and press OK |
TítuloBienvenida | stringconstant |
ValueWelcome! |
Select_Criteria | localworker |
Scriptimport java.awt.*; import java.awt.event.*; import javax.swing.*; public class SwingFileChooserDemo extends JDialog implements ActionListener { JButton okButton; JTextArea met, fac, fac1, fac2; JLabel l; public SwingFileChooserDemo(String titulo, String msg) { super(null, titulo,true); setLayout(new BoxLayout(getContentPane(), BoxLayout.Y_AXIS)); add(Box.createRigidArea(new Dimension(0,5))); l = new JLabel(msg); l.setAlignmentX(0.5f); add(l); add(Box.createRigidArea(new Dimension(0,5))); met = new JTextArea(1, 15); JScrollPane logScrollPane = new JScrollPane(met); JPanel pan1 = new JPanel(); //use FlowLayout pan1.add(new JLabel("Metric")); pan1.add(logScrollPane); fac = new JTextArea(1, 15); JScrollPane logScrollPane2 = new JScrollPane(fac); JPanel pan2 = new JPanel(); //use FlowLayout pan2.add(new JLabel("Factor")); pan2.add(logScrollPane2); fac1 = new JTextArea(1, 15); JScrollPane logScrollPane3 = new JScrollPane(fac1); JPanel pan3 = new JPanel(); //use FlowLayout pan3.add(new JLabel("Level 1")); pan3.add(logScrollPane3); fac2 = new JTextArea(1, 15); JScrollPane logScrollPane4 = new JScrollPane(fac2); JPanel pan4 = new JPanel(); //use FlowLayout pan4.add(new JLabel("Level 2")); pan4.add(logScrollPane4); okButton = new JButton("Ok"); okButton.addActionListener(this); add(pan1); add(pan2); add(pan3); add(pan4); add(okButton); } public void actionPerformed(ActionEvent e) { if (met.getText() == "" || fac.getText() == "" || fac1.getText() == "" || fac2.getText() == "") { JOptionPane.showMessageDialog(null, "Please fill out all the fields", "Cannot proceed with next screen", JOptionPane.INFORMATION_MESSAGE); } else { setVisible(false); } } String getMet() { return met.getText(); } String getFac() { return fac.getText(); } String getFac1() { return fac1.getText(); } String getFac2() { return fac2.getText(); } } SwingFileChooserDemo frame = new SwingFileChooserDemo(title, message); frame.setSize(600,265); frame.setLocationRelativeTo(null); frame.setVisible(true); Metric = frame.getMet(); Factor = frame.getFac(); f1 = frame.getFac1(); f2 = frame.getFac2(); |
Fail_if_false_2 | beanshell |
Scriptif ("false".equals(test)) { throw new Exception("Test matches, aborting downstream processors"); } dummy = test; |
Fail_if_true_2 | beanshell |
Scriptif ("true".equals(test)) { throw new Exception("Test matches, aborting downstream processors"); } dummy = test; |
RSSintesisMenu | localworker |
Scriptimport javax.swing.JOptionPane; import javax.swing.*; import java.awt.*; a = JOptionPane.showOptionDialog(null, message, (title == void ? null : title), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, new Object[]{"Create GPA", "Search Evidences"}, null); answer = (a == 0); |
Search_Evidences | workflow | |
SearchRegisteredGPA | workflow | |
message_value | stringconstant |
ValueWelcome to RSSintesis Demo. Please choose an action |
GPAExists | beanshell |
Scriptif ("true".equals(test)) { throw new Exception("Test matches, aborting downstream processors"); } dummy = test; |
NoGPA | beanshell |
Scriptif ("false".equals(test)) { throw new Exception("Test matches, aborting downstream processors"); } dummy = test; factor = Factor; metric = Metric; f1 = F1; f2 = F2; |
RSSintesisMenu_2 | localworker |
Scriptimport javax.swing.JOptionPane; import javax.swing.*; import java.awt.*; a = JOptionPane.showOptionDialog(null, message, (title == void ? null : title), JOptionPane.YES_NO_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE, null, new Object[]{"New GPA", "Reuse GPA"}, null); answer = (a == 0); studies = Studies; aditional = Aditional; |
NewGPA | beanshell |
Scriptif ("false".equals(test)) { throw new Exception("Test matches, aborting downstream processors"); } dummy = test; factor = Factor; metric = Metric; f1 = F1; f2 = F2; |
ReuseGPA | beanshell |
Scriptif ("true".equals(test)) { throw new Exception("Test matches, aborting downstream processors"); } dummy = test; studies = Studies; aditional = Aditional; |
message_value_1 | stringconstant |
ValueWe found a decomposition for the factors you created. Do you wish to use that one or create another one? |
title_value_1 | stringconstant |
ValueReuse Decomposition? |
title_value_2 | stringconstant |
ValueSelect Criteria of GPA |
ProcessCriteria | workflow | |
SubgroupAggregation | rshell |
Scriptlibrary(grid) setwd("/home/elias/Desktop/meta/R") for (i in list.files()) source(i) # Transform to data.frame newdata <- function(rows, sep =",") { cnames <- strsplit(rows[[1]], sep)[[1]] info <- Reduce(function(r, x) rbind(r, strsplit(x, sep)[[1]]), rows[-1], NULL) res <- data.frame(info, stringsAsFactors = FALSE) colnames(res) <- cnames aggregate(res, by = list(ID = paste(res$study,res$factor)), head, 1)[,-1] } ## ## Cast important columns ## cast <- function(data) { transform(data, n.e = as.numeric(n.e), mean.e = as.numeric(mean.e), n.c = as.numeric(n.c), mean.c = as.numeric(mean.c), sd.e = as.numeric(sd.e), sd.c = as.numeric(sd.c)) } prueba <- cast(newdata(data)) f <- newdata(aditional) m <- prueba$metric[1] f1 <- prueba$f1[1] f2 <- prueba$f2[1] if (SM == "RRnp") { meta1 <- metacont(n.e = n.e, mean.e = mean.e, n.c = n.c, mean.c = mean.c, data=prueba, byvar= in1, sm = SM, aditional=f, studlab=study, metric=m, f1=f1, f2=f2) } else { meta1 <- metacont(n.e, mean.e, sd.e, n.c, mean.c, sd.c, data=prueba, byvar= in1, sm = SM, aditional= f, studlab=study, metric=m, f1=f1, f2=f2) } # Export png r_plot_2 = "/tmp/r_plot.png" height <- 180 + 15*length(in1) + 60*length(unique(in1)) width <- 800 + 25*length(colnames(f)) cols <- unique(f$factor) leftcols <- c("studlab", cols, "n.e", "mean.e", "sd.e", "n.c", "mean.c", "sd.c") png(r_plot_2, width = width, height = height) forest(meta1, comb.random = FALSE, print.tau2 = FALSE, print.Q = TRUE, print.pval.Q = FALSE, leftcols = leftcols, rightcols = c("effect", "ci"), lab.e = f1, lab.c = f2, colgap.forest=unit(2,"cm"), bylab="Subgroup", lab.c.attach.to.col = "mean.c", lab.e.attach.to.col = "mean.e") dev.off() evidences = evidences(meta1, in1) R Serverlocalhost:6311 |
PrintDecomposition | localworker |
Scriptimport javax.swing.JOptionPane; import javax.swing.*; import javax.swing.table.*; import java.awt.*; import java.io.File; import javax.imageio.ImageIO; import java.awt.image.BufferedImage; JLabel scaleIfNecessary(String f) { Dimension dim = Toolkit.getDefaultToolkit().getScreenSize(); BufferedImage i1 = ImageIO.read(new File(f)); int w = i1.getWidth(); int h = i1.getHeight(); // Scale i1 if the i1 is bigger than the screen if (w > dim.getWidth()/2 || h > dim.getHeight()/2) { Double scale = 0.7; int new_w = (int) (w*scale); int new_h = (int) (h*scale); Image i2 = i1.getScaledInstance(new_w, new_h, Image.SCALE_SMOOTH); i1 = new BufferedImage(new_w, new_h, BufferedImage.TYPE_INT_RGB); Graphics g = i1.createGraphics(); g.drawImage(i2, 0, 0, new_w, new_h, null); } return new JLabel(new ImageIcon(i1)); } JPanel box = new JPanel(); box.setLayout(new BoxLayout(box, BoxLayout.Y_AXIS)); JLabel plot = scaleIfNecessary(img); plot.setAlignmentX(0.5f); JScrollPane jspane = new JScrollPane(plot); jspane.setMaximumSize(new Dimension(1000, 450)); box.add(jspane); box.add(Box.createRigidArea(new Dimension(0, 20))); JLabel h = new JLabel("Subgroup Meta-Analysis"); h.setAlignmentX(0.5f); box.add(h); box.add(Box.createRigidArea(new Dimension(0, 10))); // Table TableModel tm = new DefaultTableModel(); tm.setColumnIdentifiers(new String[] { "Evidence", "Text", "Subgroup"}); for(i = 0; i < evidences.size(); i++) tm.addRow(new String[] { "E" + (i + 1), " |
PrintEvidenceList | localworker |
Scriptimport java.awt.Desktop; import java.io.File; import java.io.FileOutputStream; import java.util.Date; import com.itextpdf.text.*; import com.itextpdf.text.pdf.*; Document document = new Document(); PdfWriter.getInstance(document, new FileOutputStream(p_path)); document.open(); Paragraph paragraph = new Paragraph("List of Evidences generated by the GPA"); paragraph.setAlignment(Element.ALIGN_CENTER); document.add(paragraph); document.add( Chunk.NEWLINE ); PdfPTable table = new PdfPTable(3); float[] columnWidths = {1f, 2f, 1f}; table.setWidths(columnWidths); PdfPCell c1 = new PdfPCell(new Phrase("ID_EV")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Evidence")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); c1 = new PdfPCell(new Phrase("Subgroup")); c1.setHorizontalAlignment(Element.ALIGN_CENTER); table.addCell(c1); table.setHeaderRows(1); for (i = 0; i < evidences.size(); i++){ table.addCell("E" + (i + 1)); table.addCell("" + evidences.get(i)); table.addCell("A" + (i + 1)); } document.add(table); document.add( Chunk.NEWLINE ); Paragraph paragraph2 = new Paragraph("Those evidences correspond to the following plot."); paragraph2.setAlignment(Element.ALIGN_CENTER); document.add(paragraph2); Image image1 = Image.getInstance(image); image1.scalePercent(60f); image1.setAlignment(Image.MIDDLE); document.add(image1); document.close(); File pdfFile = new File(p_path); if (pdfFile.exists()) { if (Desktop.isDesktopSupported()) { Desktop.getDesktop().open(pdfFile); } else { System.out.println("Awt Desktop is not supported!"); } } else { System.out.println("File is not exists!"); } System.out.println("Done"); answer = "answer"; subgroups = descomposición; |
deleteGPA | wsdl |
Wsdlhttp://localhost:8080/RSsintesis/NewWebService?wsdlWsdl OperationdeleteGPA |
deleteGPA_input | xmlsplitter | |
QuiqueService | workflow | |
ProcessCriteria_2 | workflow |
Name | Description | Inputs | Outputs |
---|---|---|---|
Fail_if_false_2 | test | dummy | |
Fail_if_true_2 | test | dummy | |
GPAExists | test | dummy | |
NoGPA |
test Factor F1 F2 Metric |
dummy factor f1 f2 metric |
|
NewGPA |
test Factor Metric F1 F2 |
dummy metric factor f1 f2 |
|
ReuseGPA |
test Studies Aditional |
dummy studies aditional |
|
Fail_if_false |
test Descomposición estudios img |
dec studies image |
|
Fail_if_true |
test img Descomposición evidencias |
dec dummy image evidences |
|
TransformToList | in1 | out1 | |
TransformToList2 | in1 | out1 | |
JoinStudyData | in1 | out1 | |
JoinAditionalData | in1 | out1 | |
TransformToList2 | in1 | out1 | |
TransformToList | in1 | out1 | |
CheckForEmptyStudies | estudios | empty | |
TransformToList2 |
in1 p_path |
out1 |
None
Source | Sink |
---|---|
Mensaje:value | Select_Criteria:message |
Fail_if_false_2:dummy | Select_Criteria:dummy |
title_value_2:value | Select_Criteria:title |
RSSintesisMenu:answer | Fail_if_false_2:test |
RSSintesisMenu:answer | Fail_if_true_2:test |
TítuloBienvenida:value | RSSintesisMenu:title |
message_value:value | RSSintesisMenu:message |
Fail_if_true_2:dummy | Search_Evidences:dummy |
default_pdf_path | Search_Evidences:default_pdf_path |
Select_Criteria:f1 | SearchRegisteredGPA:f1 |
Select_Criteria:f2 | SearchRegisteredGPA:f2 |
Select_Criteria:Factor | SearchRegisteredGPA:factor |
Select_Criteria:Metric | SearchRegisteredGPA:metric |
SearchRegisteredGPA:empty | GPAExists:test |
SearchRegisteredGPA:empty | NoGPA:test |
Select_Criteria:f1 | NoGPA:F1 |
Select_Criteria:f2 | NoGPA:F2 |
Select_Criteria:Factor | NoGPA:Factor |
Select_Criteria:Metric | NoGPA:Metric |
GPAExists:dummy | RSSintesisMenu_2:dummy |
message_value_1:value | RSSintesisMenu_2:message |
title_value_1:value | RSSintesisMenu_2:title |
SearchRegisteredGPA:adicional | RSSintesisMenu_2:Aditional |
SearchRegisteredGPA:estudios | RSSintesisMenu_2:Studies |
RSSintesisMenu_2:answer | NewGPA:test |
Select_Criteria:f1 | NewGPA:F1 |
Select_Criteria:f2 | NewGPA:F2 |
Select_Criteria:Factor | NewGPA:Factor |
Select_Criteria:Metric | NewGPA:Metric |
RSSintesisMenu_2:answer | ReuseGPA:test |
RSSintesisMenu_2:aditional | ReuseGPA:Aditional |
RSSintesisMenu_2:studies | ReuseGPA:Studies |
NewGPA:f2 | ProcessCriteria:f2 |
NewGPA:factor | ProcessCriteria:factor |
NewGPA:metric | ProcessCriteria:metric |
NewGPA:f1 | ProcessCriteria:f1 |
deleteGPA:parameters | ProcessCriteria:dummy |
i2_path | ProcessCriteria:i2_path |
rlocation | ProcessCriteria:r_path |
default_image_path | ProcessCriteria:i_path |
default_pdf_path | ProcessCriteria:p_path |
ReuseGPA:aditional | SubgroupAggregation:aditional |
ReuseGPA:studies | SubgroupAggregation:data |
SearchRegisteredGPA:subgroups | SubgroupAggregation:in1 |
QuiqueService:sm | SubgroupAggregation:SM |
rlocation | SubgroupAggregation:r_path |
default_image_path | SubgroupAggregation:i_path |
SubgroupAggregation:evidences | PrintDecomposition:evidences |
SubgroupAggregation:r_plot_2 | PrintDecomposition:img |
SubgroupAggregation:evidences | PrintEvidenceList:evidences |
PrintDecomposition:image | PrintEvidenceList:image |
PrintDecomposition:answer | PrintEvidenceList:in1 |
default_pdf_path | PrintEvidenceList:p_path |
deleteGPA_input:output | deleteGPA:parameters |
NewGPA:f1 | deleteGPA_input:f1 |
NewGPA:f2 | deleteGPA_input:f2 |
NewGPA:metric | deleteGPA_input:metric |
SearchRegisteredGPA:raw_studies | QuiqueService:studies_xml |
NoGPA:f1 | ProcessCriteria_2:f1 |
NoGPA:f2 | ProcessCriteria_2:f2 |
NoGPA:factor | ProcessCriteria_2:factor |
NoGPA:metric | ProcessCriteria_2:metric |
rlocation | ProcessCriteria_2:r_path |
default_image_path | ProcessCriteria_2:i_path |
default_pdf_path | ProcessCriteria_2:p_path |
i2_path | ProcessCriteria_2:i2_path |
None
Workflow Type
Version 4 (latest) (of 4)
Log in to add Tags
Shared with Groups (0)
None
Statistics
Reviews (0)
Other workflows that use similar services (0)
There are no workflows in myExperiment that use similar services to this Workflow.
Comments (0)
No comments yet
Log in to make a comment