Guide for NRICaribou
Transcription
Guide for NRICaribou
NRICARIBOU nricaribou.cc.umanitoba.ca Multi-role virtual server Overview and guide Paul Galpern [email protected] Prepared for: Micheline Manseau September 7, 2011 Please note: For security reasons, usernames and passwords in this document have been removed and replaced with a reference code. Use the document sent under separate cover to find these credentials. NRICARIBOU Overview and Guide (September 7, 2011) 2 1 An overview of the structure of the NRICARIBOU virtual computer, with some simplification. Entry point University of Manitoba IST Virtual Computing Facility Runs many virtual computers using the VMWare operating system World wide web server Apache software See next pages for further description. The figure also attempts to show hierarchical relationships among these elements. 3 2 Database server MySQL software contains many databases (e.g. for MicroSatServer, lecol-ck.ca, etc.) PHP programming language A multi-purpose scripting tool that interfaces with the world wide web and the database server 6 7 (a) http://www.lecol-ck.ca website administered using Catalyst web application (b) http://www.pademp.com website administered using WordPress web application Public functions 4 R programming language A multi-purpose scripting tool that interfaces with PHP and the database server Tools Boxes indicates an entry point, tool or public function associated with NRICARIBOU. NRICARIBOU (a virtual computer/server running Windows Server 2003 operating system) Windows computer name: \\nricaribou DNS name: nricaribou.cc.umanitoba.ca; Aliases: lecol-ck.ca, pademp.com Static IP address: 130.179.18.163 (c) http://nricaribou.cc.umanitoba.ca/allelematch/ website administered using WordPress web application 8 1 9 10 0 (d) http://nricaribou.cc.umanitoba.ca/mss/ website containing MicroSatServer web application administered using several tools that can be accessed from the NRICARIBOU desktop: PHPMaker (template design and automatic PHP code generation for the database table pages) Manual coding in R and PHP (with source code stored in C:\MicroSatServer) Windows Server scheduled tasks that run Windows Powershell scripts NRICARIBOU Overview and Guide (September 7, 2011) 3 11 1 5 File server FileZilla FTP software Windows VPN software 1. University of Manitoba IST Virtual Computing Facility Purpose: Provides the "cloud computing" or virtual computing framework (i.e. a facility to share CPU, disk and network resources among multiple "virtual" computers). Entering via this level of the hierarchy provides the most power. For example can recover complete backups of the entire NRICARIBOU computer, as well as accessing the NRICARIBOU desktop. Andrew Perchaluk ([email protected]) at IST can provide assistance at this level of the hierarchy, including issues with the Windows 2003 Server operating system. Control via: VMWare vSphere client: vcenter.cc.umanitoba.ca Username: <username1> Password <password1> 2. NRICARIBOU Purpose: This is a virtual windows computer that runs all the web, database, and other relevant software. This can be accessed using the vSphere client. Andrew Perchaluk ([email protected]) at IST can provide assistance at this level of the hierarchy, including issues with the Windows 2003 Server operating system. Control via: VMWare vSphere client: vcenter.cc.umanitoba.ca OR Remote desktop protocol client: nricaribou.cc.umanitoba.ca accessed only from a U. Manitoba IP address. Note same username/password is used for vSphere and for windows logon. Username: <username1> Password <password1> 3. World wide web server Purpose: Uses Apache software to send web pages when the computer receives an http:// request through the network. Control at this level consists of either stopping/restarting the Apache web server on the rare occasion it crashes, or when necessary, tweaking the Apache configuration files. These tools can be found in c:\xampp\apache\. Control via: NRICARIBOU desktop 4. Database server Purpose: A database running MySQL software that can store and quickly access large amounts of data. Data can be queried, inserted, and changed using SQL statements. Data used to run websites is stored here, as well as data that is stored for scientific purposes (MicroSatServer data). Control via: MySQL Query browser: nricaribou.cc.umanitoba.ca on port 3306 OR Web-based query browser: http://nricaribou.cc.umanitoba.ca/phpmyadmin/ Username: root Password <password2> NRICARIBOU Overview and Guide (September 7, 2011) 4 5. File server Purpose: Provides remote access to the files on the NRICARIBOU computer. There are two means of access: FTP and VPN (virtual private network, which lets the user treat folders on NRICARIBOU as if they were on their own computer). Control via: FileZilla FTP client: nricaribou.cc.umanitoba.ca using an active connection OR Windows VPN client: nricaribou.cc.umanitoba.ca (then go to \\nricaribou in file explorer) accessible only from a U. Manitoba IP address Username: <username1> (for both FTP and VPN) Password <password1> (for both FTP and VPN) 6. PHP programming language Purpose: A scripting language that is run by the web server, and is used to build web pages in real time, often taking information from a database. It can also read and write files on NRICARIBOU. Modifications to PHP code or configuration settings need to be done in a text editor, and can be accessed from the NRICARIBOU desktop. Control via: NRICARIBOU desktop 7. R programming language Purpose: A statistical programming language that for convenience was used to code the MicroSatServer web application. Like PHP it can also access the database directly, and read and write files on NRICARIBOU. It interfaces with the web via PHP (i.e. it is called by PHP, and sends its information to the web through PHP). Modifications to R code need to be done in a text editor, and these can be accessed from the NRICARIBOU desktop. Control via: NRICARIBOU desktop 8. http://www.lecol-ck.ca Purpose: Micheline's website. It runs using the Catalyst Content Management system (which in turn runs using PHP and the MySQL database). Content can be updated via the link given. Please see the appendix for additional passwords that are required to manage this website. In particular those that are used to access the Zonedit nameserver which creates the link between the lecol-ck.ca domain name and the NRICARIBOU IP address. Control via: http://lecol-ck.ca/admin/ Username: See Micheline Manseau Password See Micheline Manseau NRICARIBOU Overview and Guide (September 7, 2011) 5 9. http://www.pademp.com Purpose: A website created by Sones for the Peace-Athabasca Delta Ecological Monitoring Program. It uses the WordPress content management system (which in turn uses PHP and the MySQL database). Content can be updated via the link given. Please see the appendix for additional passwords that are required to manage this website. In particular those that are used to access the Zonedit nameserver which creates the link between the pademp.com domain name and the NRICARIBOU IP address. Control via: http://pademp.com/wp-admin/ Username: See Micheline Manseau Password See Micheline Manseau 10. http://nricaribou.cc.umanitoba.ca/allelematch/ Purpose: A website created by Paul Galpern to share his allelematch software for R, and allow others to download the source code. It uses the WordPress content management system (which in turn uses PHP and the MySQL database). Content can be updated via the link given. Control via: http://nricaribou.cc.umanitoba.ca/allelematch/wp-admin/ Username: admin Password <password2> 11. http://nricaribou.cc.umanitoba.ca/mss/ Purpose: The MicroSatServer web application. It provides a front-end to the genetic data stored in the database server, as well as analysis tools specifically for this genetic data. Menu and display pages are coded in PHP. Database table display pages are automatically generated using the PHP templating tool PHPMaker. All analysis routines are coded in R. Automated tasks (such as database table synchronization, backups and temporary file deletion) are controlled using the Windows 2003 Scheduled Task application which in turn runs Windows Powershell scripts. Modifying the functioning of this web application is largely a programming task. Generally all tools required to modify the web application can be accessed from the NRICARBIOU desktop. The operating web application requires username/password credentials to access. Control via: NRICARIBOU desktop NRICARIBOU Overview and Guide (September 7, 2011) 6 Technical at a glance IP address: 130.179.18.163 (static) DNS names: nricaribou.cc.umanitoba.ca, lecol-ck.ca, ikpodcasts.lecol-ck.ca, inuitknowledge.lecol-ck.ca, pademp.com Open TCP ports (all IP addresses): 80 (HTTP), 20 (FTP), 21 (FTP), 3306 (MySQL) Open TCP ports (restricted to U. Manitoba IP addresses): 3389 (RDP), 1723, 3306 (VPN) Internet address registry: nricaribou.cc.umanitoba.ca (through umanitoba.ca), *.lecol-ck.ca (CIRA through Visual Lizard?), pademp.com (?) Nameservers: nricaribou.cc.umanitoba.ca (umanitoba.ca), *.lecol-ck.ca (zonedit.com1), pademp.com (zonedit.com1) Virtual platform: VMware vCenter server v4.1.0 Operating system: Windows Server 2003 R2 Enterprise Service Pack 2 Web hosting platform: XAMPP (Apache 2.0/PHP v5.3.0) Database platform: MySQL 5.1.37 FTP platform: FileZilla server 0.9.32 Other Windows server roles: Routing and Remote Access (Firewall and VPN) Backup and recovery: Weekly backup of entire NRICARIBOU hard disk. Most recent backup is held (VMware). Daily backup of microsatserver, lecol-ck, inuitknowlege, and ikpodcasts databases. A complete sequence of backups of these databases is retained. University of Manitoba IST support: Andrew Perchaluk ([email protected]) administers Windows virtual machines, and ensures that the Windows operating system is regularly updated. Any issues with the server's virtual hardware (i.e. disk, network, CPU), network security or with the operating system can be addressed to him. Issues with any other software on NRICARIBOU, including firewalls, the web and database servers should be addressed to Paul Galpern ([email protected]). 1 See Appendix for access to zonedit.com nameservers. NRICARIBOU Overview and Guide (September 7, 2011) 7 How-to guides How can I access the NRICARIBOU Windows desktop? How can I move a file onto or off of NRICARIBOU? How can I move a file onto NRICARIBOU so someone else can download it through the web? How can I build a mini-website on NRICARIBOU to share files? How can I restart MicroSatServer because it is not responding? How can I query the MicroSatServer database? Show me some SQL queries that I can do on the MicroSatServer database. How can I recover a database backup for MicroSatServer? How can I create a username/password to permit someone new to access to the MicroSatServer web application? I am a programmer tasked with modifying the MicroSatServer web application. Where do I start? NRICARIBOU Overview and Guide (September 7, 2011) 8 How can I access the NRICARIBOU Windows desktop? There are two ways of doing this. The second (using an RDP client) is more technical, and will not be explained here. (Note that NRICARIBOU blocks an RDP connection unless it originates from a U. Manitoba IP address.) 1. Login to a computer on which the VMWare vSphere client is installed (e.g. GAMMA in Micheline's office). You can install the client on a new computer by downloading the software from: http://vcenter.cc.umanitoba.ca. The computer should not be on a network with a highly restrictive firewall. Windows login information for GAMMA in Micheline's office: username: Micheline Manseau password: <password1> 2. Run the vSphere client, and login using the following information: IP address / Name: vcenter.cc.umanitoba.ca User name: <username1> Password: <password1> 3. Click on the "Virtual Machines" tab, and then right-click on nricaribou. Select Open Console. You may have to click on Hosts and Clusters prior to clicking on Virtual Machines. NRICARIBOU Overview and Guide (September 7, 2011) 9 4. The screen of NRICARIBOU should appear. Likely it will be showing the screen saver. Click on the screen, and then press CTRL-ALT-INSERT to login. Note that it says to press CTRL-ALT-DELETE to login, but because you are remote use INSERT instead. 5. You are now logging on to Windows. Use the following credentials: username: <username1> password: <password1> 6. The desktop of NRICARIBOU should appear. On the desktop are several shortcuts that may be useful. This virtual computer should be treated like any other computer. 7. Make sure to logoff Windows when you are finished. Also exit the vSphere client for security reasons. NRICARIBOU Overview and Guide (September 7, 2011) 10 How can I move a file onto or off of NRICARIBOU? There are numerous reasons why this might be necessary. There are two ways to do this. FTP is reliable and easy, but it is also slow and best suited for a small number of files. VPN is the way to go for frequent file transfers. There is a folder on NRICARIBOU where files are uploaded/downloaded to and from. See the end of this section. Moving files using FTP 1. Make sure that the computer from which you are sending or receiving the files has an FTP client installed, and is not behind a restrictive firewall. FileZilla has been installed on GAMMA in Micheline's office for convenience. You can install FileZilla to another computer by downloading the client from: http://filezilla-project.org/download.php. Other FTP clients will also work. Windows login information for GAMMA in Micheline's office: username: Micheline Manseau password: <password1> 2. Load FileZilla. Enter the following information, and press Quickconnect. host: nricaribou.cc.umanitoba.ca username: <username1> passowrd: <password1> 3. If this is a new installation you will also have to set it to Active mode. Go to EditSettingsFTPActive. 4. Drag the files to the yellow area on FileZilla and they will be uploaded to NRICARIBOU. NRICARIBOU Overview and Guide (September 7, 2011) 11 5. To download files from FileZilla, click on a file in the yellow area and drag it to the desktop or some other location on your computer. Moving files using a VPN (Virtual Private Network) Steps for doing this from GAMMA in Micheline's office are given, as VPN functionality has already been established on this machine. To install VPN on another computer requires many manual steps, including tweaking firewalls. Instructions are not given. 1. Login: Windows login information for GAMMA in Micheline's office: username: Micheline Manseau password: <password1> 2. Click on "nricaribou_vpn" icon on GAMMA. Then click on "manseau_transfer_ftp on nricaribou" icon on GAMMA. 3. The resulting window that opens is like any windows file folder. Files can be copied to or from this folder. Where do the files I transfer go to/come from on NRICARIBOU? All files transferred using FTP or VPN illustrated above are coming from, or going to a folder on the desktop of NRICARIBOU called manseau_transfer_ftp. To access this folder on NRICARIBOU: 1. Login to the NRICARIBOU desktop (see: How can I access the NRICARIBOU Windows desktop?) 2. Click on the manseau_transfer_ftp folder on the desktop. 3. Move files to or from this folder in the usual manner. NRICARIBOU Overview and Guide (September 7, 2011) 12 How can I move a file onto NRICARIBOU so someone else can download it through the web? This is very useful when a file must be sent that is too large for email. Or, when you wish to make some materials available for others to download at their convenience. 1. Follow steps from How can I move a file onto or off of NRICARIBOU?. 2. Access the NRICARIBOU desktop (see: How can I access the NRICARIBOU Windows desktop?) File will now be stored in the folder manseau_transfer_ftp visible on the desktop. 3. Move the file to one of two locations depending on how you want others to access it. a) To have users download a file at nricaribou.cc.umanitoba.ca move the file you just transferred to the folder c:\xampp\htdocs. You can tell others to download this file (abcdefgh.zip) using their browser. The address for this file would then be: http://nricaribou.cc.umanitoba.ca/abcdefgh.zip b) To have users download a file at lecol-ck.ca move the file you just transferred to the folder c:\xampp\htdocs\lecol-ck. You can tell others to download this file (abcdefgh.zip) using their browser. The address for this file would then be: http://lecol-ck.ca/abcdefgh.zip Note that, when giving a web address for your file, the capitalization must be exact. For simplicity, don't create files for web download that have spaces or unusual characters in their names. It is also good practice to go with all lower case in order to avoid typing errors. NRICARIBOU Overview and Guide (September 7, 2011) 13 How can I build a mini-website on NRICARIBOU to share files? There is a conference coming up and you want to share some files. Or a course, and we need a repository for papers and other reference material. A simple page with links to these files constitutes a website and can quickly be put together by moving the files onto NRICARIBOU, and creating an index page in HTML (Microsoft Word can be used to save pages in this format). 1. Create an index page using Microsoft Word. You can use this file as a template and open it in Microsoft Word. The index can be very simple: some text, with some of the words hyperlinked. Hyperlink by highlighting a word or words and pressing CTRL-K in Microsoft Word, and entering the filename and extension you want to link in the "Address" part of the dialog (no path is required). 2. Save the file as web page in Microsoft Word with the name index.html. This will create a file with this name and a folder called index_files in the folder where you saved it. 3. Move this file (index.html) and the folder it created (index_files) and all other files that are hyperlinked on it onto NRICARIBOU. Follow steps from How can I move a file onto or off of NRICARIBOU? This process will also work for folders containing files. 4. Access the NRICARIBOU desktop (see: How can I access the NRICARIBOU Windows desktop?) Files will now be stored in the folder manseau_transfer_ftp visible on the desktop. 5. Go to the folder c:\xampp\htdocs\ and create a new folder with a short name that will be the de facto name of your website. New folder example: c:\xampp\htdocs\examplesite\. 6. Copy the files from manseau_transfer_ftp to the new folder. 7. Using your browser go to http://nricaribou.cc.umanitoba.ca/whatever/, replacing whatever with the name of the new folder. The browser should automatically load the index page you created, and the links should load the files. Note that when naming files and folders for the web capitalization must be exact. Don't create files for web download that have spaces or unusual characters in their names. It is also good practice to go with all lower case in order to avoid typing errors. 8. You can advertise this link as your mini-website! NRICARIBOU Overview and Guide (September 7, 2011) 14 How can I restart MicroSatServer because it is not responding? You will know the MicroSatServer web application is non-responsive if you try to login in the usual way (e.g http://nricaribou.cc.umanitoba.ca/mss/) and after you enter your information nothing happens for more than 5 seconds. This occurs because the Apache web server software has crashed. The reason for the crash is complex, but ultimately it is caused by a bug in the Apache software. Many attempts have been made to work around this bug with good success, but likely such freezes will still appear from time to time. The following steps are required to restart the Apache web server software. This will also restart MicroSatServer. 1. Login to the NRICARIBOU desktop (see: How can I access the NRICARIBOU Windows desktop?) 2. Click on the "Control web and ftp server" icon. 3. The following dialog should appear. If you receive an error message, then it is already active. So, click on the orange icon near the clock. 4. Click the Stop button for Apache (highlighted above). A message saying the server has stopped should appear below. Wait about 30 seconds. Click the start button for Apache. In about 5 seconds the word Running should appear highlighted in green. If it does not appear, repeat these steps. Patience is key. Eventually the server will restart and "Running" will appear indicating everything is okay. 5. Go to http://nricaribou.cc.umanitoba.ca/mss/ on any computer and check you can login normally. 6. If nothing seems to work, do an old-fashioned reboot. Click on the Start button on the NRICARIBOU desktop. Then click the shut-down button. Make sure you choose restart in the drop-down box. You'll need to enter a few random characters under "Comments" When the computer restarts all the servers will start too, and you should be able to login again. NRICARIBOU Overview and Guide (September 7, 2011) 15 How can I query the MicroSatServer genetic database? Background There are two types of MySQL databases on NRICARIBOU: (1) website content databases; and, (2) scientific databases. The first type can generally be ignored because content management software maintains and queries them. MicroSatServer is a web application built around a database of the second type, and occasionally queries will be required that are not performed automatically by MicroSatServer. Two methods for sending SQL queries to NRICARIBOU databases are given. The first uses a web application called phpMyAdmin that will work from locations with highly restrictive firewalls. A second alternative uses MySQL client software. It is fast, efficient, and recommended for serious users, but will not work from restricted locations. Using the phpMyAdmin web application 1. Open a web browser on any computer, and go to: http://nricaribou.cc.umanitoba.ca/phpmyadmin/ 2. Use the following credentials to login: username: root password: <password2> 3. Click on microsatserver in the left panel to browse and query the MicroSatServer database. 4. Click on a table in the left panel to begin browsing the contents of that table. 5. Select the SQL tab to enter an SQL query. For example enter the following and click "Go" SELECT * FROM pellet WHERE population_id = 'North Interlake' AND collection_year = 2004; 6. Many additional operations on database tables can be performed using the tabs. Note specifically Import and Export which can interface with Excel using CSV files. NRICARIBOU Overview and Guide (September 7, 2011) 16 Using the MySQL client web application This has been installed on GAMMA in Micheline's office. If you wish to install this software on a Windows computer, please download an installation package from this address: http://nricaribou.cc.umanitoba.ca/repository/ mysql-gui-tools-5.0-r17-win32.msi. Other MySQL clients are also available online and work in a similar manner. 1. Open the MySQL Query browser. 2. Enter the following: host: nricaribou.cc.umanitoba.ca port: 3306 username: root password: <password2> default schema: microsatserver 3. Queries can be entered in the top left box, and results appear in the bottom box. 4. It is also possible to edit a datum in a table by clicking on Edit at the bottom of the screen, making changes as if using a spreadsheet, and then clicking Apply changes. Keep in mind it is not possible to "undo" a change to a database table as it would be using spreadsheet software. NRICARIBOU Overview and Guide (September 7, 2011) 17 Show me some SQL queries that I can do on the MicroSatServer genetic database The MicroSatServer web application automatically handles most of the common queries on the database. On occasion, however, it may be necessary to find records in a table that fulfil certain complex criteria, or to use the contents of one table to look up information on a second table. Another common query is to replace the fields in multiple records with a new value, avoiding tedious manual editing of each record in MicroSatServer. Structured Query Language (SQL) qualifies as a simple programming language, although programming experience is not required to use it. An SQL query is most often a command written in English that asks the database to find records (SELECT), add records (INSERT), remove records (DELETE), or change records (UPDATE) in a table. The format of these commands is highly structured, and many excellent references and tutorials are available on the web that explain this syntax. A good place to start is the MySQL reference manual: http://dev.mysql.com/doc/refman/5.1/en/. To perform any of the following example queries first open phpMyAdmin or a query browser by following the steps in How can I query the MicroSatServer database? The intention, here, is not to give an introductory tutorial in SQL, but rather indicate some common applications of queries and demonstrate broadly what is possible. Example 1: View all records in a table SELECT * FROM goldgenotype SQL Query SELECT means that records should be returned return all columns (or fields) from the table goldgenotype indicates the name of the table The full analysis-ready "gold" genotype table should be returned (where -99 indicates data that is not "gold" or missing due to amplification failure) * means NRICARIBOU Overview and Guide (September 7, 2011) 18 Example 2: View specific records from a table SELECT * FROM pellet WHERE (population_id = SQL 'Maligne' OR population_id = 'Tonquin') AND Query 2006, 2007, 2008, 2009, 2010) SELECT means that records should be returned * means return all columns (or fields) from the table pellet indicates the name of the table WHERE indicates that a series of conditions follow Conditions are in the form of the column name, and operator (=, <, > etc.) and a value. If the value is text it should be surround in single quotation marks. To specify a range of conditions IN followed by comma separated list surrounded in brackets is given. AND and OR are logical terms Only the specific records from the pellet collection table are returned Example 3: View specific columns from a table SELECT pcid, gold_flag FROM bm848 WHERE SQL batch_id = 'Tonquin 2009' Query 'Brazeau' OR population_id = collection_year IN (2004, 2005, (bm848a=-99 OR bm848b=-99) AND SELECT means that records should be returned pcid, gold_flag means return only these columns bm848 indicates the name of the table WHERE indicates that a series of conditions follow This query returns the PCID and gold flag status for all missing (-99) bm848 genotypes in the Tonquin 2009 batch. Example 4: View specific records from a table using a fragment of text SELECT pcid, abi_filename FROM map2c WHERE abi_filename REGEXP SQL Query 'mkabi' SELECT means that records should be returned pcid, abi_filename means return only these columns map2c indicates the name of the table WHERE indicates that a series of conditions follow REGEXP indicates that the condition will be met if the text fragment mkabi is found in the abi_filename column of a record This query returns the PCID and abi_filenames in the map2c table for data generated by Marina Kerr (mkabi) NRICARIBOU Overview and Guide (September 7, 2011) 19 Example 5: View specific records from a table and remove duplicates SELECT DISTINCT rt5a FROM rt5 WHERE batch_id REGEXP 'North SQL BY rt5a ASC Query SELECT means that records should be returned throw out exact duplicates rt5a means return only this column for the selected records rt5 indicates the name of the table WHERE indicates that a series of conditions follow ORDER BY indicates that the results should be sorted by the given column ASC indicates that this sort should be in ascending order This query returns the unique alleles in rt5 for the North Interlake population in increasing order DISTINCT means Example 6: Count how many records meet a simple criterion SELECT population_id, collection_year, count(PCID) SQL population_id, collection_year Query Interlake' ORDER FROM pellet GROUP BY SELECT means that records should be returned population_id, collection_year means return only these columns count(PCID) indicates that a count should be returned GROUP BY indicates records should first be grouped according to two criteria before counting the number in each group This query returns the number of pellets collected by population and collection year Example 7: View records from one table using criteria from another table SELECT pcid, utm_easting, utm_northing FROM pellet WHERE PCID IN SQL FROM rt5 WHERE rt5a=100 OR rt5b=100) Query (SELECT PCID SELECT means that records should be returned pcid, utm_easting, utm_northing means return only these columns pellet indicates the name of the table WHERE indicates that a series of conditions follow (SELECT ...) indicates a sub-query that returns only PCID which is then used as a criterion for the first query. This query returns the sampling locations of individuals with a very rare rt5 allele (100). NRICARIBOU Overview and Guide (September 7, 2011) 20 Example 8: Count how many records meet a complex criterion SELECT population_id, collection_year, count(PCID) FROM goldgenotype WHERE SQL PCID IN (SELECT PCID FROM pellet WHERE sampled_by regexp 'Kent') GROUP BY Query population_id, collection_year; SELECT means that records should be returned population_id, collection_year, means return only these columns count(PCID) indicates that a count of the index should be returned goldgenotype indicates the name of the table (the analysis-ready genotype table) WHERE indicates that a series of conditions follow (SELECT ...) indicates a sub-query that returns only PCID which is then used as a criterion for the first query. GROUP BY indicates records should first be grouped according to two criteria before counting the number in each group This query returns the number of partial or complete genotypes in the database by population and collection year in which someone name Kent was credited as doing the pellet sampling. In other words: how much credit to we owe Kent for building our analysis-ready dataset! Example 9: Create a new table CREATE TABLE example (id SQL score FLOAT) Query INT, firstname VARCHAR(50), lastname VARCHAR(50), CREATE TABLE means make a new table example indicates the name of the new table The remaining information in brackets give the name of the columns followed by the type of column separated by commas. Please see MySQL documentation for details. An alternative means of creating tables by point-and-click is provided by phpMyAdmin. This creates a table that is used in the subsequent examples. Example 10: Insert records into a table INSERT INTO example (id, firstname, SQL 'Galpern', 0.95); Query INSERT INTO example (id, firstname, lastname, score) VALUES (1, 'Paul', lastname, score) VALUES (2, 'Micheline', 'Manseau', 0.96); INSERT INTO example (id, firstname, lastname, score) VALUES (3, 'New', 'Student', 0); INSERT INTO means add a record to an existing table example indicates the name of the new table The first set of brackets gives the name of the columns separated by commas. VALUES indicates that values for those columns follow in brackets Semi colons at the end of each line indicate that multiple SQL statements are given together An alternative means of inserting records by point-and-click or by CSV import is provided by phpMyAdmin and the MySQL client. This adds three records to the table example NRICARIBOU Overview and Guide (September 7, 2011) 21 Example 11: Change records in one or multiple records in a table UPDATE example SET score = 0.95 WHERE firstname = 'New' SQL 'Student' Query UPDATE means change a record or records in an existing table indicates the name of the new table SET indicates that a column name and value follow WHERE gives the conditions under which the value in that column should be changed This changes the score for only one record, as there is only one that meets this condition An alternative means of editing single records by point-and-click is provided by phpMyAdmin and by the MySQL client. NOTE THAT WHEN A FIELD IS CHANGED NO BACKUP IS KEPT OF THE PREVIOUS VALUE. UPDATE SHOULD BE DONE WITH CAUTION. FIXING AN INCORRECT UPDATE REQUIRES RECOVERING A DATABASE BACKUP example Example 12: Delete records in a table DELETE FROM example WHERE firstname SQL Query and lastname = = 'New' and lastname = 'Student' DELETE FROM means delete a record indicates the name of the new table WHERE gives the conditions under which the record should be deleted An alternative means of deleting records by point-and-click is provided by phpMyAdmin and by the MySQL client. NOTE THAT WHEN A RECORD IS DELETED NO BACKUP IS KEPT. DELETE FROM SHOULD BE DONE WITH CAUTION. REVERSING THIS REQUIRES RECOVERING A DATABASE BACKUP example Example 13: Delete an entire table DROP TABLE example SQL Query NOTE THAT WHEN A TABLE DROP IS USED NO BACKUP IS KEPT. SHOULD BE DONE WITH CAUTION. REVERSING THIS REQUIRES RECOVERING A DATABASE BACKUP NRICARIBOU Overview and Guide (September 7, 2011) DROP 22 How can I recover a database backup for MicroSatServer? Disaster can strike the MicroSatServer database in many--fortunately uncommon--ways. The most likely case is a manual SQL query that has been improperly formed. Equally, incorrect score data could be uploaded by a user, and determining which records this represents can sometimes be extremely tedious. Because the database does not remember its previous state, it is not possible to quickly "undo" the last action as it might be in a word processor or spreadsheet program. In a variety of scenarios it will be desirable to revert to the last backed-up state of the database. Fortunately, the entire contents of the MicroSatServer database are backed-up daily at midnight, and a record of every backup is retained, making it possible to revert to the state of the database as it was at any point in the past. Keep in mind that while reverting to a backup made immediately before the event will fix the problem, it will also remove any desired changes to the database that have been made in the interim. Use with caution! 1. Access the NRICARIBOU desktop (see: How can I access the NRICARIBOU Windows desktop?) 2. Find the folder: D:\MicroSatServer\Backups\MySQL\Backups 3. Find the backup you wish to restore to (the most recent will be this morning). They are named as follows: mssYYMMDD_XXXXXX.sql where "mss" indicates MicroSatServer, YY, MM and DD are two digit representations of the year, month and day respectively, and XXXXXX is the size of the database in rows. 4. Copy this backup file to the folder: C:\xampp\mysql\bin 5. Go to the start button and click on Run. 6. Type "cmd" (without quotes) which runs the shell (right). 7. Type: "cd\xampp\mysql\bin" 8. Type: "mysql –u root –p microsatserver < mssYYMMDD_XXXXXX.sql" replacing the capital letters as appropriate. Then enter the password: <password2> 10. The database will be restored to its state on YYMMDD at 12:00am. NRICARIBOU Overview and Guide (September 7, 2011) 23 How can I create a username/password to permit someone new to access the MicroSatServer web application? The MicroSatServer web application requires a username and password to access it. Granting a new user access must be done using an SQL query. Two levels of user access are possible. 1. Open phpMyAdmin or a query browser by following the steps in How can I query the MicroSatServer database? 1. View the existing usernames and passwords. The passwords appear in an encrypted form. SELECT * FROM caribou_genetics_users 2. Enter the following SQL statement, replacing newuser with a unique username for the person (typically first initial last name is used). Note that it is necessary to type the long string of characters giving the encrypted password exactly as shown. INSERT INTO caribou_genetics_users (username, password, userlevel) VALUES ('newuser', '4c7e0210b2cc9120dd2a8989677ff205', -1) 3. The new user should be able to login using the username you gave them and the default password: ran91fer. They should promptly change this password to something else using the link on the left panel in the MicroSatServer web application. 4. It is also possible to grant access to someone who can only view the analysis-ready results. Replace -1 with 3 in the query above. Userlevel management has not been robustly implemented, however, so a malicious and determined person with even this reduced access could find a way to change some elements of the database. NRICARIBOU Overview and Guide (September 7, 2011) 24 I am a programmer tasked with modifying the MicroSatServer web application. Where do I start? The goal of this "Guide" document was to describe the NRICARIBOU computer, and not to focus on the MicroSatServer web application. Indeed, this is another document in itself! In the event that such a document does not get written, the following should provide some basic information from which a programmer could build an understanding of how the web application operates. Comments included in the PHP and R code may also be helpful. Below the most important files associated with running the web application are listed, with some brief comments on their purpose and how they interact with others. Apologies that is not comprehensive or detailed, but hopefully it provides a place to start! C:\xampp\htocs\mss\ *list.php *info.php *delete.php menu.php mssToR_public.php C:\microsatserver\PHP This is the root folder of the web application and contains the public interface of the web application These files are generated by the PHP templating tool PHPMaker v6. This version of the software must be used to edit them. The master template file is C:\Documents and Settings\pgalpern\My Documents\PHPMaker\Projects\MicroSatServer_v1.pmp No changes to these PHP files should be attempted manually. Use PHPMaker exclusively for this purpose. Numerous defaults have been tweaked, so the installed version on the server should be used. In the case of the pages named for genotype loci, PHPMaker produces a series of locus*.php templates, and routines in R are manually called to roll out the PHP pages and search and replace "locus" as required (see microsatserver_v1.r) This is the menu page of the MicroSatServer application. It and its associated includes are the nexus of MicroSatServer. Using a database lookup it "includes" any of a number of pages. This is the configuration file for MicroSatServer's PHP interface with R. It establishes how PHP will call R routines. (i.e. using PHP system() calls, and sending POST data to a MySQL database intermediary) This folder contains the PHP interface for MicroSatServer analyses and additional functions coded by Paul Galpern ([email protected]) . NRICARIBOU Overview and Guide (September 7, 2011) 25 mssToR.php db_fsa.php db_fsa.php importgenetic.php importpellet.php importtelem.php mss_analysis.php mss_automation.php mss_sandbox.php C:\microsatserver\R mssToR.R microsatserver_v1.R pg_genetic.R C:\microsatserver\PS1 mss_tmpfilecleanup.ps1 D:\microsatserver D:\microsatserver\backups\mys ql microsatserver_backup.ps1 D:\microsatserver\abifiles This is the PHP side of the MicroSatServer to R interface Routines to associated with the upload and download of FSA files from the FSA repository. Routines to associated with the upload and download of FSA files from the FSA repository. PHP interface to R for importing genotype data Routines to import pellet data (100% PHP) Routines to import telemetry data (100% PHP) PHP interface to R for analyses contained in the "Analysis-ready" section of MicroSatserver PHP interface to R synchronization of database tables. This is called twice a day by Windows Task Scheduler, and also called when a manual synchronization is requested. PHP interface to R Technician's Sandbox routines This folder contains the R routines for MicroSatServer analyses and additional functions coded by Paul Galpern ([email protected]) . This is the R side of the MicroSatServer PHP to R interface The guts of MicroSatServer. Contains R code that provides most of the additional functionality and analysis routines. Some genetic support routines called by microsatserver_v1.R This folder contains some of the Windows Powershell routines that are called by the Windows Task Scheduler Called every hour by the Windows Task Scheduler to delete temporary files that are older than 24 hours. Folder on D drive containing file repository and backups for MicroSatServer. Stored on this drive as there is more storage space. Root folder for the daily backups of MicroSatServer Windows Powershell script called at midnight by the Windows Task Scheduler to create SQL backups of MicroSatServer Folder in which all the ABI raw data is stored as ZIP files. This folder is controlled directly by the File Repository section of the MicroSatServer application. NRICARIBOU Overview and Guide (September 7, 2011) 26 Appendix 1 – Additional information for *.lecol-ck.ca 1. Domain name registration for lecol-ck.ca username/password (?) This registration will be held by CIRA, and likely managed by Visual Lizard until a transfer in management is initiated and approved. 2. FTP Account username: lecol password: <password1> Full privileges for file and folder creation/deletion etc. 3. MySQL Account username: lecol password: <password1> database: lecol, inuitknowledge, ikpodcasts Full privileges for only these three databases Can be accessed at localhost using http://nricaribou.cc.umanitoba.ca/phpmyadmin or remotely using a MySQL client 4. DNS Service Zonedit.com (http://zonedit.com) username: <username2> password: <password1> domains: lecol-ck.ca, www.lecol-ck.ca, inuitknowledge.lecol-ck.ca, ikpodcasts.lecol-ck.ca nameservers: ns13.zoneedit.com (66.223.40.121), ns9.zoneedit.com (66.240.231.42) These nameservers redirect requests for the above domains to nricaribou.cc.umanitoba.ca (130.179.18.163) 5. Virtual hosting at nricaribou.cc.umanitoba.ca Modifications to virtual hosting require manual editing of the c:\xampp\apache\conf\extra\httpd-vhosts.conf on nricaribou. Web server at nricaribou.cc.umanitoba.ca will serve pages from the following folders, according to the domains from which the page is requested: lecol-ck.ca, www.lecol-ck.ca (http://nricaribou.cc.umanitoba.ca/lecol-ck/) inuitknowledge.lecol-ck.ca (http://nricaribou.cc.umanitoba.ca/lecolck/inuitknowledge/) ikpodcasts.lecol-ck.ca (http://nricaribou.cc.umanitoba.ca/lecolck/ikpodcasts/) NRICARIBOU Overview and Guide (September 7, 2011) 27