Idealized example of FOR-EACH Loop and IF

Slides:



Advertisements
Similar presentations
Using the Degree Works Planner. Click on the Planner tab in the students Degree Works account.
Advertisements

Chapter 3 – Web Design Tables & Page Layout
Whats New in Office 2010?. Major Changes in Office 2010 The Office Ribbon, which first made its appearance in Office 2007, now appears in all Office 2010.
Microsoft Word 2010 Lesson 1: Introduction to Word.
Word Processing First Steps
Chapter 10—Creating Presentations
Click anywhere to go on to the next slide This demonstration is best viewed as a slide show, enabling you to simulate a session and make changes in cursor.
XP New Perspectives on Microsoft Office Word 2003 Tutorial 1 1 Microsoft Office Word 2003 Tutorial 1 – Creating a Document.
XP 1 Microsoft Office Word 2003 Tutorial 1 – Creating a Document.
Basic Editing Lesson 2- Part 2. Navigating and Searching Through a Document Find command options, the mouse, scroll bars, and various keystroke and keyboard.
What kinds of documents can you create with Word 2007?
Business Computer Information Systems 1A Test 2: Word Basics, Basic Editing, and Formatting Text Lessons 1, 2, and 5 Microsoft Office XP Test 2 – REVIEW.
1 ONE TIME PRINT SETUP To print Requisitions from Banner, follow this process once: Open Microsoft Excel, select (1) TOOLS, then (2) MACROS, then (3) SECURITY.
Chapter 8: String Manipulation
Chapter Seven Advanced Shell Programming. 2 Lesson A Developing a Fully Featured Program.
Getting Started with Expression Web 3
Microsoft Office Word 2003 Tutorial 1 Creating a Document.
Key Applications Module Lesson 16 — Excel Essentials Computer Literacy BASICS.
XP New Perspectives on Microsoft Word 2002 Tutorial 21 Microsoft Word 2002 Tutorial 2 – Editing and Formatting a Document.
PMS /134/182 HEX 0886B6 PMS /39/80 HEX 5E2750 PMS /168/180 HEX 00A8B4 PMS /190/40 HEX 66CC33 By Adrian Gardener Date 9 July 2012.
XP 1 Microsoft Word 2002 Tutorial 1 – Creating a Document.
· Adding and Renaming Worksheets
1 Lesson 13 Editing and Formatting documents Computer Literacy BASICS: A Comprehensive Guide to IC 3, 4 th Edition Morrison / Wells.
Basic Editing Lesson 2.
A lesson approach © 2011 The McGraw-Hill Companies, Inc. All rights reserved. a lesson approach Microsoft® PowerPoint 2010 © 2011 The McGraw-Hill Companies,
Basic Editing Lesson 2.
Programming with Microsoft Visual Basic 2008 Fourth Edition Chapter Eight String Manipulation.
USING WORDPRESS TO CREATE A WEBSITE (RATHER THAN A BLOG) STEP-BY-STEP INSTRUCTIONS.
Learning PowerPoint Presenting your ideas as a slide show… …on the computer!
Word 2003 The Word Screen. Word 2003 Screen File Menu –Holds the options for creating a new document, opening a document, saving a document, printing.
Click anywhere to go on to the next slide This demonstration is best viewed as a slide show, enabling you to simulate a session and make changes in cursor.
Programming with Microsoft Visual Basic 2008 Fourth Edition Chapter Eight String Manipulation.
Click on this button to move to the previous slide of your notebook. Click on this button to move to the next slide of your notebook. Click on this button.
Today We Will Review: Operating Systems (Windows) (week 3 & 4) Starting up MS Windows Desktop and its contents Functions of the desktop components Brain.
MS WORD INFORMATION TECHNOLOGY MANAGEMENT SERVICE Training & Research Division.
Welcome to the Basic Microsoft Word Guide. Before you start this Guide, you will need to complete “Basic Computer”; “Basic Windows” and know how to type.
Setting up a WordPress Site
SAP ERP Basic System Navigation
Running a Forms Developer Application
Production Maestro Training
4.0.2 Microsoft Word Screen Components Quiz
Microsoft Excel.
Tutorial 2 – Editing and Formatting a Document
LMEvents SharePoint Portal How-to Guide
Computer Programming I
CONTENT MANAGEMENT SYSTEM CSIR-NISCAIR, New Delhi
Tutorial 1 – Creating a Document
Customization
MS PowerPoint 2010 Week 2.
Multi-host Internet Access Portal (MIAP) Enhancement Guide
Understanding Microsoft Excel
Microsoft Office Illustrated Introductory, Windows XP Edition
Basic Editing Lesson 2.
This tutorial is designed to be used in a “follow along” fashion
Key Applications Module Lesson 12 — Word Essentials
Benchmark Series Microsoft Word 2016 Level 1
Formatting and Editing Skills
Sorting … and Insertion Sort.
Introduction to Programming
Prepared by: Arlene N. Baratang, Ph.D.
BUSINESS COMMUNICATION SKILLS PRESENTATION SKILLS OF THESIS & PROJECT
Information System Analysis
European Computer Driving Licence
Understanding Microsoft Excel
Objectives At the end of this session, students will be able to:
Applying principles of computer science in a biological context
Key Applications Module Lesson 12 — Word Essentials
Key Applications Module Lesson 16 — Excel Essentials
Introduction to Programming
Getting Started with Data
Presentation transcript:

Idealized example of FOR-EACH Loop and IF Scientific objective Identify upstream regions with protein-binding site TGC........CAT in Anabaena PCC 7120 Upstream region A T This demonstration is best viewed as a slide show, enabling you to simulate a session and make changes in cursor position more obvious. To do this, click Slide Show on the top tool bar, then View show. Click anywhere to go on to the next slide

Click at any time Click to clear screen Problem calls for a loop. (Click on menu) Undo | Redo Workspace Find functions in categories shown above Click for menu of box operations Function-specific options Deletes box Function box ORTHOLOG-OF gene-or-protein IN | CUTOFF 1e-10 Click on box to select (red outline) input box Click to extend function for menu of options Potential input box + type of needed input Clears box Click at any time Click to clear screen Results

Click at any time Click to clear screen FOR-EACH is a version of LOOP that may be more readable for some. (Click on arrow) Logical comparison Logical connectives Loops and conditional executions Other logic functions BOTH EITHER FOR-EACH IF IF-NOT LOOP NOT ORDER Undo | Redo Workspace Find functions in categories shown above Click for menu of box operations Function-specific options Deletes box Function box ORTHOLOG-OF gene-or-protein IN | CUTOFF 1e-10 Click on box to select (red outline) input box Click to extend function for menu of options Potential input box + type of needed input Clears box Click at any time Click to clear screen Results

Undo | Redo Workspace First step is to name the variable that will be iterated during the loop. Any name will do. FOR-EACH variable name Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Click on green arrow for choices of type of iteraation. Undo | Redo Workspace Click on green arrow for choices of type of iteraation. FOR-EACH gene| Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Control section – Determines form of iteration Undo | Redo Workspace FOR-EACH gene IN list FROM number FROM number BY number FROM number TO number FROM number TO number BY number Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace Word in italics, Times Roman, identifies type of input desired. User input is non-italics, Courier. FOR-EACH gene IN list Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace Clicking hole (unfilled or not) selects it for both input (cursor appears) and replacement by a function. FOR-EACH gene IN | Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Control section – Determines form of iteration Analyysis Components Gene-protein classes Sequence classes Undo | Redo Workspace FOR-EACH gene IN | Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Control section – Determines form of iteration Analyysis Components Gene-protein classes Sequence classes CODING-GENES-OF COMMON-ORTHOLOGS-OF GENES-OF NONCODING-GENES-OF PROTEINS-OF Undo | Redo Workspace FOR-EACH gene IN | Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Control section – Determines form of iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF organism-or-replicon-or-protein Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

No other iteration controls needed, so get rid of section. Undo | Redo Workspace FOR-EACH gene IN GENES-OF A7120| Control section – Determines form of iteration Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated No other iteration controls needed, so get rid of section. Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

No initialization needed, so get rid of that section too. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Initialization section – Initializes loop variables before the loop begins Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop No initialization needed, so get rid of that section too. Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Need to define the match for each gene, so open up variable update section. Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration Help Copy section Cut section Delete section -------------------------- ASSIGN variable ASSIGN variable-list Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Section-specific possibilities appear below dashed line (ASSIGN maps to AS). Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration The variable match will be the specific sequence upstream from a gene that matches the pattern. ASSIGN = variable name value Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match| value Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration I just realized… I want to confine the search to upstream sequences of length > 20 ASSIGN = match | Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Logical comparison Logical connectives Loops and conditional executions Other logic functions BOTH EITHER FOR-EACH IF IF-NOT LOOP NOT ORDER Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match | Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF condition THEN form ELSE form Note that IF is built like FOR-EACH, consisting of a required argument plus two sections (dark cyano). The THEN section is required (so no X) but the ELSE block is optional. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF | THEN form ELSE form Another problem… I can't compare the length of the upstream region to 20 if the upstream region doesn't exist! (This happens when two genes are right next to each other). I need to protect against that possibility. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Logical comparison Logical connectives Loops and conditional executions Other logic functions BOTH EITHER FOR-EACH IF IF-NOT LOOP NOT ORDER Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF | THEN form ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF BOTH AND condition THEN form ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF BOTH AND upseq| condition THEN form ELSE form Body – Forms to be iterated I invent a variable upseq containing the upstream sequence, which must exist for the condition to be fulfilled. I'll worry later about defining it. Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

I want upseq's length (call it upseq-L) to be greater than 20. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF BOTH AND upseq | THEN form ELSE form Body – Forms to be iterated I want upseq's length (call it upseq-L) to be greater than 20. Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Logical comparison Logical connectives Loops and conditional executions Other logic functions BOTH EITHER FOR-EACH IF IF-NOT LOOP NOT ORDER Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF BOTH AND upseq | THEN form ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER item comparator item = THEN form ELSE form Here is a new category of things: Informational tokens (required choices). The token box has a title and a list of possible values. The box cannot be deleted. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER item comparator item Help LESS-THAN SAME-AS GREATER-THAN = THEN form ELSE form The is Windows convention to indicate more (but less likely) choices below. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER item GREATER-THAN item = THEN form ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER eq-l| GREATER-THAN item = THEN form ELSE form I type in the variable name, upseq-l, but since it's bigger than the box, the letters scroll. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20| = THEN form If the condition is met, then I look for a match of the pattern in the upstream sequence. ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

MATCH-OF is a function related to string analysis. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN | ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Bioinformatic tools String analysis String extraction String production String type checks Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN | ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Bioinformatic tools String analysis String extraction String production String type checks ALIGNMENT-OF ALPHABET-OF BACKGROUND-FREQUENCIES-OF COUNT-OF GC-FRACTION-OF LENGTH-OF MATCH-OF MATCHES-OF NUCLEOTIDE-DISTANCE Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN | ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF query type query IN target ELSE form Here's another informational token box. Like option boxes, they're cyano, so users will not be tempted to fill them. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF query type query IN target Item Pattern Restriction enzyme Slot value ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN query IN target ELSE form Input the pattern: "[AT]TGC.{8}CAT" i.e. A or T, then TGC, then eight unspecified, then CAT Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Again, the string scrolls, because it's bigger than the box. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN {8}CAT"| IN target ELSE form Again, the string scrolls, because it's bigger than the box. The target is upseq, which I grab from a previous input box. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 Help Copy Cut Target for wrap = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN target ELSE form Note the shortened menu. Only functions and global variables can be evaluated. Edit is not necessary any longer. Insert and Cut/insert strike me as too non-intuitive. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN target ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN target Help Paste Target for wrap ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

No plans for the ELSE section, so delete it. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq ELSE form No plans for the ELSE section, so delete it. Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

Ditto with Body section. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Body – Forms to be iterated Ditto with Body section. Results section – Determines the result returned by the loop Final action – To be performed after last iteration Results

When match exists, COLLECT it. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop When match exists, COLLECT it. Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop Help Delete section -------------------------- APPEND COLLECT COUNT MAXIMIZE MINIMIZE SUM WHEN conditon … UNLESS condition … Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop Help Delete section -------------------------- APPEND COLLECT COUNT MAXIMIZE MINIMIZE SUM WHEN conditon … UNLESS condition … Final action – To be performed after last iteration APPEND COLLECT COUNT MAXIMIZE MINIMIZE SUM Results

Grab match from previous box. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT Grab match from previous box. condition form Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match Help Copy Cut Target for wrap IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT condition form Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT condition form Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT condition Help Paste Target for wrap form Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match form Final action – To be performed after last iteration Results

I want to save both the gene and the match, so I need a list. Undo | Redo I want to save both the gene and the match, so I need a list. Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match | Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration List / table analysis List / table extraction List / table production List / table type-checks LIST PART-OF Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match | Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match LIST is described in the menu as the easily comprehended "LIST" but represented as the compact { } and is born empty. { } Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT Since LIST has no options, the arrow is used to generate new elements quickly match { } element Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } element element Final action – To be performed after last iteration Results

I recall that match is still copied, so I use it. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT I recall that match is still copied, so I use it. match { } gene| element Final action – To be performed after last iteration Results

I recall that match is still copied, so I use it. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT I recall that match is still copied, so I use it. match { } gene| element Final action – To be performed after last iteration Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene element Help Paste Target for wrap Final action – To be performed after last iteration Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT Housekeeping. match { } gene match Final action – To be performed after last iteration Results

Finally the task of defining the two variables I invented on the fly. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT Finally the task of defining the two variables I invented on the fly. match { } gene match Results

ASSIGN here places a new ASSIGN clause at the beginning of the list. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration Help Clear section Copy section Cut section Delete section -------------------------- ASSIGN variable ASSIGN variable-list ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT ASSIGN here places a new ASSIGN clause at the beginning of the list. match { } gene match Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = variable name value ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = Note that ASSIGN clauses are cyano, not yellow/orange, like functions, but they're a lighter shade, to set them apart from one another THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Upseq will be given the SEQUENCE-UPSTREAM-OF the current gene. Undo | Redo Workspace Upseq will be given the SEQUENCE-UPSTREAM-OF the current gene. FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq| value ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq | ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Descrtipion / analysis Gene neighborhood Gene / protein types Translation DESCRIPTION-OF ORTHOLOG-OF SEQUENCE-OF Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq | ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Descrtipion / analysis Gene neighborhood Gene / protein types Translation DESCRIPTION-OF ORTHOLOG-OF SEQUENCE-OF CONTEXT-OF GENE-DOWNSTREAM-OF GENE-LEFT-OF GENE-RIGHT-OF GENE-UPSTREAM-OF GENES-OF SEQUENCE-DOWNSTREAM-OF SEQUENCE-LEFT-OF SEQUENCE-RIGHT-OF SEQUENCE-UPSTREAM-OF Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq | ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene-or-protein ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene| ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT Now assign upseq-l. match { } gene match Results

Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN variable ASSIGN variable-list ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT ASSIGN here places a new ASSIGN clause at the position of the arrow. It's therefore possible to put an ASSIGN anywhere match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = variable name value ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = variable name value ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 Help Copy Cut Target for wrap = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = variable name value ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = variable name value Help Paste Target for wrap ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l value ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Upseq-l is given the length of the upstream sequence, upseq. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l | ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Descrtipion / analysis Gene neighborhood Gene / protein types Translation DESCRIPTION-OF ORTHOLOG-OF SEQUENCE-OF Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l | ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Descrtipion / analysis Gene neighborhood Gene / protein types Translation DESCRIPTION-OF ORTHOLOG-OF SEQUENCE-OF COG-ID-OF DESCRIPTION-OF ENCODES-PROTEIN? GENE-DESCRIBED-BY GENE-NAMED GENE-OF HYDROPHOBICITY-OF LENGTH-OF LENGTHS-OF MW-OF NAME-OF ORTHOLOG-OF PROTEIN-NAMED PROTEIN-OF Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l | ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l entity-or-list-or-string LENGTH-OF ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l entity-or-list-or-string LENGTH-OF Help Paste Target for wrap ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Clicking the filled input box immediately opens it for editing Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene Clicking the filled input box immediately opens it for editing ASSIGN = upseq-l LENGTH-OF upseq-l ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

DONE! Execute. Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l LENGTH-OF upseq-l | ASSIGN match IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Variable update section – Resets loop variables each iteration Undo | Redo Workspace FOR-EACH gene IN GENES-OF Help Execute Copy Cut Show code Target for wrap - - - - - - - - - - variable IN list variable-list IN list of lists variable FROM number variable FROM number TO number a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l LENGTH-OF upseq ASSIGN pattern IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results

Compare Click anywhere

Click anywhere Compare Undo | Redo Workspace FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = upseq SEQUENCE-UPSTREAM-OF gene ASSIGN = upseq-l LENGTH-OF upseq ASSIGN pattern IF BOTH AND upseq ORDER upseq-l GREATER-THAN 20 = THEN MATCH-OF PATTERN "[AT]TGC{8}CAT" IN upseq Results section – Determines the result returned by the loop WHEN COLLECT match { } gene match Results Click anywhere

Proposed form of LOOP and IF - Some features: FOR-EACH gene IN GENES-OF a7120 Variable update section – Resets loop variables each iteration ASSIGN = match IF condition THEN form ELSE form Body – Forms to be iterated Results section – Determines the result returned by the loop Final action – To be performed after last iteration Proposed form of LOOP and IF - Some features: Sections are self-explained and set apart using same convention as keywords (cyano, no border) to indicate that it's nonfillable. Informative token boxes Wasteful of space, maximizes comprehensibility END