Sep 19

The proposed use cases were agreed upon. Now it is time to generate the UMLs and mockups for the interface. Ian created an interesting concept that can be seen here.

Giovanni also added some extra use cases that certainly will enrich the program and can be easily added.

Use case 10: GC and other bases composition
Primary Actor: user
Trigger: user clicks on ‘GC composition’ in the ‘features’ or ‘properties’ or ‘color’ menu

Basic course: user click the option and the sequence is colorated according to the GC composition.
I’m thinking about something similar to the rasmol – color {structure, temperature, …} function.

Alternate course: by default, the sequence is colored in black.
————
Use case 11: blast sequence
Primary actor: user
Trigger: user clicks on ‘blast’ option in one of the menu, and selects custom parameters.

Basic course: user clicks on the ‘blast’ button and a small selection menu appears.
Here, he can choose which database and parameters to use.
Then, the sequence is blasted using the ncbi-blast eutils and a report with the results is shown on the screen.

Alternate course: internet connection is not available and an error is shown.

Sep 11

Posting a first draft of the use cases, based on the goals set previously.

Use Case: 1 - Opening a FASTA file
Primary Actor: User
Trigger: user elects to open a file

Basic course: The user opens a FASTA file using the menu or toolbar, the program validates the file, checking if it is a FASTA file, and check for the sequence type (protein or nucleotide or other). The program presents as pop-up/mouse over menu possible actions that can be done on the file and displays a border less-frame less window with an icon representing the opened file for user interaction.

Alternate course: The file opened is not a FASTA file. A warning is displayed and the user is asked to open another file or quit the program.
———————————————————————————————

Use Case: 2 - Cutting sequences
Primary Actor: User
Trigger: user clicks on the “Cut Sequences” option in the pop-up menu

Basic course: The use selects the option to cut sequences in the file. The program presents a window with the sequence(s) characteristic(s) (name and length). If the file is single, sequence selection by name is disabled and start and end positions boxes to define the cut are displayed. If the file is multiple, sequences can be selected by name and there is a start and end boxes for each sequence is displayed. User can select a unique start and end position to cut or enter one for each sequence. At the end program displays a log with the action performed.

Alternate course: User clicks cancel.
———————————————————————————————

Use Case: 3 Change sequence title(s)
Primary Actor: User
Trigger: user clicks on “Rename sequences” option in the pop-up menu

Basic course: The user selects the option to rename sequence(s) in the file. The program presents a window with a list of sequence(s) to be renamed. User can select one or multiple sequences and enter a unique name for all of them with some kind of variable ID (so the names are slightly different) or select a new name for each selected sequence.

Alternate course: User clicks cancel.
———————————————————————————————

Use Case: 4 Split multifasta in unique files
Primary Actor: User
Trigger: user clicks on “Split sequences” option in the pop-up menu

Basic course: The use have opened a multiple sequence file and the option is available and clicked by him/her. The program presents a window with the number of sequences present in the file, a text box to enter a string for the resulting name of the single files, another box to define a variable to be inserted in the name in order to make the resulting file names unique and a box with the directory tree for resulting path selection. User clicks OK and a log is displayed with the actions performed.

Alternate course: User clicks OK with no name in the file name box or in the unique variable box or not path has been selected. Program displays the required warnings and presents the initial selection form again.
———————————————————————————————

Use Case: 5 Merge sequences from different fasta files
Primary Actor: User
Trigger: user clicks on “Merge sequences” when more than one opened file is selected

Basic course: User must open more than one FASTA file. When these files are selected the program presents an option to merge these files. When the user clicks this option, a Dialog form is presented where the resulting file name and path can be selected. Clicking OK generates a log of the actions.

Alternative course:
———————————————————————————————

Use Case: 6 Reverse complement
Primary actor: User
Trigger: user clicks the “Reverse complement” option in the pop-up menu

Basic course: User clicks the option and a form with the sequence names is presented. User can select multiple sequences to reverse complement and click OK to perform the action.

Alternative course: The file opened is not a DNA file but a protein. Program displays a warning.
———————————————————————————————

Use Case: 7 DNA translation/transcription
Primary actor: User
Trigger: user clicks the “Translate/Transcribe” option in the pop-up menu

Basic course: User clicks the option and a form with the sequence names is presented. User can select multiple sequences to either transcribe or translate or both and click OK to perform the action.

Alternative course: The file opened is not a DNA file but a protein. Program displays a warning.
———————————————————————————————

Use Case: 8 find motifs
Primary actor: User
Trigger: user clicks the “Find motifs” option in the pop-up menu

Basic course: User clicks the option and a form with a box to input a pattern to find. This patter at first must be a IUPAC nucleotide pattern or a just a short sequence of amino acids. The form also contains a list of the sequences in the file and the user can select/deselect sequences where to search or not.

Alternative course: An incorrect search string is entered. Program displays a warning and points out ways to correct the error.
———————————————————————————————

Use Case: 9 Convert files
Primary actor: User
Trigger: user selects the “Convert file” option in the pop-up menu

Basic course: User selects the option to convert the file and is presented with a form to enter the file name s/he wants, the resulting path, file tags and the type of conversion. Multiple conversion at once are accepted. Clicks OK and a log is generated.

Aug 16

That’s maybe the second most difficult thing in software development, especially when you are in a collaborative project. You might aim too high or too low, and it is difficult to have a balance.

This “project” as mentioned started some years ago, with no fixed timeline, no goals. It was just a nice way to contribute to the community and to learn some more wxWidgets. Something like MrMTgui.

After some discussions I think we found a balancing point, a first idea of what to expect. We will probably settle to:

  •  cut sequences (single and multiple)
  • change sequence titles (also in batches)
  • merge sequences from different fasta files
  • split multifasta in unique files
  • reverse complement
  • DNA translation/transcription
  • find motifs (defined patterns)
  • convert fasta format to GenBank, Phylip and Nexus

and we will build from that.

Aug 15

InFasta C++ version screenshot

Aug 15

I created a forum page, if you want to discuss InFasta.

Aug 15

InFasta is an old project, which started just before I left McMaster a couple of years ago. It is registered on sourceforge and if you want to check the program just click here.

The interface is very poor, and not many features are included. I plan to replace the old version with a new improved Python/wxPython combo.

Aug 15

As any good collaborative project the first milestone has arrived. Should we use a project management tool or should we go as the usual bioinformatics projects?

Two options: we can go with Trac, which is already installed on the ISP, or should we go with Basecamp, a WEb 2.0 project management platform?

Aug 14

This is my first attempt on Open Science and this diary will store all the ups and downs of the process. InFasta is a software idea I had a couple of years ago, a open-source program that would do whatever you want to a FASTA file (or multiple files).

It started as a C++/wxWidgets package, but time run out of me and I haven’t been able to continue developing it. Now it will resurface as a Python/wxPython cross-platform application, fully open source. This time I will have Keith Hughitt along the way, and we are going to prove (or not) if Python has batteries included.

We already decided some of the functionality but to make this as actual Open Science project, the community input is more than desired. We don’t think we will publish it, but have the intention to create a lightweight cross-platform open-source package that can be useful for at least on researcher out there.