SNPPEB 1.0 Software Design Document (current document version 1.012) Document update history: version 1.0 Created by Fengkai Zhang on Aug 4, 2004 Description: First draft for general idea version 1.01 Modified by Fengkai on September 29, 2004 Draw flowchart to show design, and also address the issues in SRS1.01 Version 1.011 Modified by Fengkai on Oct 1, 2004 Still address to SRS1.01 More detailed module design in section 5. Version 1.012 Modified by Fengkai on Oct 6, 2004 Still address to SRS1.01 Modify module design in section 5 from version 1.011. 1. Description The requirements in SRS will be fully addressed in this software design document or alternative solution should be given. We will try to use the functionalities and service provided by NCBI to simplify our implementation. Also, "Primer3" (http://frodo.wi.mit.edu/primer3/primer3_code.html) will be integrated into our application within the useage condition in its copyright document. 2. Function Design In this version of design document, we have a primary design to address the issues in SRS 1.01, and draw a design flowchart. a. Source file preparation NCBI dbSNP website (http://www.ncbi.nlm.nih.gov/SNP/) provides services by email to (1) retrieve detailed information between two STS markers and (2) get all SNP information of a list of SNPs. In current stage, we design our application to accept compressed XML file provided by NCBI dbSNP website. b. SNP information retrieval i. Upload source file: The user can select source file from client computer and upload it to the server. The server will check the file format and display SNP information or give error message if the file format is not correct. ii. Display SNP information: Fields to display one SNP: checkbox (for next step primer design), rs#, allele, flanking sequence, orientation, verification, function class, location and other. The user may select SNP and go to get primers. c. Primer design in batch i. Parameter setup This page will be similar to the primer3 web application to setup parameters to run primer3. The default value will be given according to suggestions from our lab specialists. ii. Display Result This page will display the primers for a list of SNPs. The format will be customized by our lab specialists. 3. Flowchart Prepare source file from NCBI dbSNP website Webpage to accept source file Check file formate OK Display SNP info and choose SNPs to get primers Parameter setup for primer design Call Prmer3 Display primer design result Bad Error message page 4. System Requirement and Running Enviroment Programming tool: Perl, CGI, BioPerl, XML::Twig Primer design software: Primer3 Running environment: Redhat Enterprise Linux ws3, Dell workstation Precision 670 Server: bioinfo.vipbg.vcu.edu/SNPPEB Client: IE, Mozilla, or Netscape browser and internet connection 5. Module and Webpage Design a. HTML: Form to accept source file and call cgi programs i. – welcome.htm: (1) Give simple instruction how to get compressed XML file from NCBI (2) Browse source file (compressed XML file) (3) Submit source to server. ii. … b. CGI, PM modules Upload files Check files Show error messages Uncompress files Parse XML file Display SNP information Setup parameters for primer3 Run primer3 by bioPerl Output primers from primer3 i. – load_process.cgi (1) Check file name. If end with .gz (NCBI compressed file) or .xml, go to (2); otherwise, go to (3) (2) Upload file to server temp/ folder, (if .gz file, uncompress it, change name with extension .xml), and pass XML file to SnpInfo::process(). Server file name will be unique and it will be used as process id when server handles multiple requests. (3) Echo error message for wrong file format. (4) Applay XML::Twig to parse XML file and get corresponding information. Information is saved in a temp file. (5) Display SNP information through cgi. Let user select SNPs and run Primer3 by call primer3.cgi. ii. – primer3.cgi (1) Set up parameters (2) Call Bio::Tools::Run::Primer3 to run Primer3. (3) Display Primer Result. iii. – Error.pm Template to display error message and back to main page.