Location: PHPKode > projects > Generic Genetic Studies Database > ggsd-2.19/cgi-bin/insert_genotypes.php
<?php

#Copyright 2008 Aaron Day-Williams <hide@address.com>
#
#This file is part of Generic Genetic Studies Database (GGSD).
#
#GGSD is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation, either version 3 of the License, or
#(at your option) any later version.
#
#GGSD is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#GNU General Public License for more details.
#
#You should have received a copy of the GNU General Public License
#along with GGSD.  If not, see <http://www.gnu.org/licenses/>.


header('Content-type: text/html');
session_cache_limiter('private');
session_start();
require 'sql_lib.inc';
require 'html_lib.inc';
require 'file_system_lib.inc';

#NAME	insert_genotypes.php

#TYPE	PHP

#USES	html_lib.inc(??)
#	sql_lib.inc(authenticate insertPedigre insertIndividual insertGenotype existsValue)

#PURPOSE To get genotype data from the user to insert into the database

#USAGE	insert_genotypes.php

#PARAMETERS
#	authorized user		auth_user		int	optional
#	insert_from_file	insert_from_file	int	optional
#	pedigree id		ped_id			int	optional
#	individual id		indiv_id		int	optional
#	marker name		marker_name		string	optional
#	allele 1 value		allele_1_value		string	optional
#	allele 2 value		allele_2_value		string	optional
#	allele coding		allele_coding		string	optional
	

#RETURNS
#	nothing

#DATASTRUCTURES No special datastructures

#FUNCTIONAL DESCRIPTION The script will authenticate the user.  Then determine
#		       whether they want to insert from a file or from the web
#		       site.  If from a file, parse the file and insert genotypes.
#		       If from website, give them a form to fill out and insert the
#		       values they supply.

#ASSUMPTIONS

#LIMITATIONS

#COMMENTS

#PRELIMINARY DESIGN
#	    1	Get Args
#	    2	Authenticate User
#	    3	Determine Whether they want to upload file
#	    4	If from Website give form
#	    5	Insert Genotype from webform
#	    6	Get File
#	    7	Parse File and Insert

echo "<html>\n";
echo "<head>\n";
if (isset($_POST['end_session'])){echo "  <META HTTP-EQUIV=Refresh CONTENT=\"$logout_refresh_time;URL=../right.html\">\n";}
else                             {echo "  <META HTTP-EQUIV=Refresh CONTENT=\"$normal_refresh_time; URL=$_SERVER[SCRIPT_NAME]\">\n";}
echo "  <title>Insert Genotypes</title>\n";
echo "</head>\n";
echo "<body bgcolor=\"white\">\n";
echo "<center><h3>Insert Genotypes</h3></center>\n";
echo "<hr>\n";
printHomeNavBar();
echo "<br>\n";


#1    Get Args
$access_type_required = 'administrative';
$insert_from_file     = $_POST['insert_from_file'];
$upload_file          = $_POST['upload_file'];
$file_on_server       = $_POST['file_name'];
$file_format          = $_POST['file_format'];
$ped_id               = $_POST['pedigree_id'];
$indiv_id             = $_POST['individual_id'];
$chr                  = $_POST['chromosome_id'];
$marker_id            = $_POST['marker_id'];
$allele_ids           = $_POST['allele_id'];


$ret_val = connect();
if ($ret_val != '1')
  {
    $date = date('Y-m-d H:i:s');
    echo "Error #1: $date<br>\n";
    echo "Error in call to connect from insert_genotypes.php<br>\n";
    echo "$ret_val<br><br>\n";
    echo "Please email the above error using the Comments/Help/Support link \n";
    echo "in the left navigation bar.<br>\n";
    echo "</body></html>\n";
    exit;
  }


#2    Authenticate User
if (isset($_POST['end_session']))#if want to end session
  {
    #if (key_exists('files_on_server',$_SESSION))
    #  {
    #    $files_to_delete_array = $_SESSION['files_on_server'];
    #    $ret_val = deleteFiles($files_to_delete_array);
    #    if ($ret_val != '1')
    #      {
    #        $date = date('Y-m-d H:i:s');
    #        echo "Error #2: $date<br>\n";
    #        echo "Error in call to deleteFiles from insert_genotypes.php<br>\n";
    #        echo "$ret_val<br><br>\n";
    #        echo "Please email the above error using Comments/Help/Support link \n";
#	    echo "in the left navigation bar.<br>\n";
#	    echo "</body></html>\n";
#	    session_unset();
#	    session_destroy();
#	    $ret_val = disconnect();
#	    exit;
#	  }#end error in call to deleteFiles
#      }#end if files that need to be deleted

    if (is_dir("../data/download_data/$_SESSION[user_name]"))
      {
        $ret_val = deleteExpiredFiles($_SESSION['user_name']);
        if ($ret_val != '1')
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #3: $date<br>\n";
            echo "Error in call to deleteExpiredFiles from insert_genotypes.php<br>\n";
            echo "$ret_val<br><br>\n";
            echo "Please email the above error using Comments/Help/Support link \n";
	    echo "in the left navigation bar.<br>\n";
	    echo "</body></html>\n";
	    session_unset();
	    session_destroy();
	    $ret_val = disconnect();
	    exit;
	  }#end error in call to deleteExpiredFiles
      }#end if user has own directory in download_data directory
    session_unset();
    session_destroy();
    echo "You have successfully logged out of the system.<br>\n";
    #echo "To log back in click on any of the links on the left navigation bar.<br>\n";
    $ret_val = disconnect();
    exit;
  }#end if want to end session
else#don't want to end session
  {
    if ((!session_is_registered('user_name')) and (!session_is_registered('user_passwd')))
      {
	if ((!preg_match('/\w+/',$_POST['user_name'])) and (!preg_match('/\w+/',$_POST['user_passwd'])))
	  {
	    $ret_val = printLoginPage('insert_genotypes.php');
            if ($ret_val != '1')
              {
                $date = date('Y-m-d H:i:s');
		echo "Error #4: $date<br>\n";
		echo "Error in call to printLoginPage from insert_genotypes.php<br>\n";
		echo "$ret_val<br><br>\n";
		echo "Please email the above error using Comments/Help/Support link \n";
		echo "in the left navigation bar.<br>\n";
		echo "</body></html>\n";
		session_unset();
		session_destroy();
		$ret_val = disconnect();
		exit;
	      }#end if error in call to printLoginPage
	  }#end if haven't started a session yet
        else #have started a session
	  {
	    $auth_user = authenticate($_POST['user_name'],$_POST['user_passwd'],$_POST['rand'],$access_type_required,$_POST['database_id']);
	    if (($auth_user != '1') and ($auth_user != '0'))
	      {
		$date = date('Y-m-d H:i:s');
		echo "Error #5: $date<br>\n";
		echo "Error in call to authenticate from insert_genotypes.php<br>\n";
		echo "$auth_user<br>\n";
		echo "Please email the above error using Comments/Help/Support link \n";
		echo "in the left navigation bar.<br>\n";
		echo "</body></html>\n";
		session_unset();
		session_destroy();
		$ret_val = disconnect();
		exit;
	      }
            if ($auth_user == '0')
	      {
		echo "You are not an authorized user of this website!!<br><br>\n";
		echo "You must be an authorized user to access the data contained in this site.\n";
		echo "If you feel like you should be an authorized user, or want to see if you can\n";
		echo "become an authorized user please contact $contact_person at \n";
                echo "<a href=\"mailto:$contact_email\">$contact_email</a>\n";
		echo "</body></html>\n";
		session_unset();
		session_destroy();
		$ret_val = disconnect();
		exit;
	      }
            if ($auth_user == '1')
	      {
		$_SESSION['user_name']   = $_POST['user_name'];
		$_SESSION['user_passwd'] = $_POST['user_passwd'];
                $_SESSION['database_id'] = $_POST['database_id'];
		$_SESSION['rand']        = $_POST['rand'];
                $_SESSION['entry_time']  = time();
		session_write_close();
	      }
	  }#end else have user name an passwd
      }#end if session variables not registered
    else #session variable are registered
      {
        if ((time() - $_SESSION['entry_time']) > $session_expiration_time)#if session has expired
          {
            if (key_exists('files_on_server',$_SESSION))
              {
                $files_to_delete_array = $_SESSION['files_on_server'];
                $ret_val = deleteFiles($files_to_delete_array);
                if ($ret_val != 1)
                  {
                    $date = date('Y-m-d H:i:s');
                    echo "Error #6: $date<br>\n";
                    echo "Error in call to deleteFiles from insert_genotypes.php<br>\n";
                    echo "$ret_val<br><br>\n";
                    echo "Please email the above error using Comments/Help/Support link \n";
		    echo "in the left navigation bar.<br>\n";
                    session_unset();
                    session_destroy();
                    $ret_val = disconnect();
                    exit;
                  }#end if error in call to deleteFiles
              }#end if files that need to be deleted

            if (is_dir("../data/download_data/$_SESSION[user_name]"))
              {
                $ret_val = deleteExpiredFiles($_SESSION['user_name']);
                if ($ret_val != 1)
                  {
                    $date = date('Y-m-d H:i:s');
                    echo "Error #7: $date<br>\n";
                    echo "Error in call to deleteExpiredFiles from insert_genotypes.php<br>\n";
                    echo "$ret_val<br><br>\n";
                    echo "Please email the above error using Comments/Help/Support link \n";
		    echo "in the left navigation bar.<br>\n";
                    session_unset();
                    session_destroy();
                    $ret_val = disconnect();
                    exit;
                  }#end if error in call to deleteExpiredFiles
              }#end if user has a data directory
            session_unset();
            session_destroy();

            echo "<b>Your Session has expired.  You must log back into the system.</b><br><br><br>\n";
            $ret_val = printLoginPage('insert_genotypes.php');
            if ($ret_val != '1')
              {
                $date = date('Y-m-d H:i:s');
		echo "Error #8: $date<br>\n";
		echo "Error in call to printLoginPage from insert_genotypes.php<br>\n";
		echo "$ret_val<br><br>\n";
		echo "Please email the above error using Comments/Help/Support link \n";
		echo "in the left navigation bar.<br>\n";
		echo "</body></html>\n";
		session_unset();
		session_destroy();
		$ret_val = disconnect();
		exit;
	      }#end if error in call to printLoginPage
          }#end if session has expired 
        else #session hasn't expired
          {
	    if ((!session_is_registered('database_id')) and (!isset($_POST['database_id'])))
	      {
		$ret_val = printDatabaseSelectPage('insert_genotypes.php');
		if ($ret_val != '1')
		  {
		    $date = date('Y-m-d H:i:s');
		    echo "Error #9: $date<br>\n";
		    echo "Error in call to printDatabaseSelectPage from insert_genotypes.php<br>\n";
		    echo "$ret_val<br><br>\n";
		    echo "Please email the above error using Comments/Help/Support link \n";
		    echo "in the left navigation bar.<br>\n";
		    echo "</body></html>\n";
		    session_unset();
		    session_destroy();
		    $ret_val = disconnect();
		    exit;
		  }#end if error in call to printDatabaseSelectPage
	      }#end if the database id session variable isn't set and haven't selected
	    else #all the session variables are set
	      {
		$user_name   = $_SESSION['user_name'];
		$user_passwd = $_SESSION['user_passwd'];
		if (session_is_registered('database_id')){$database_id = $_SESSION['database_id'];}
		else #set database id session variable
		  {
		    $database_id = $_POST['database_id']; 
		    $_SESSION['database_id'] = $_POST['database_id'];
		  }#end else set database id session variable
		$rand        = $_SESSION['rand'];
		$_SESSION['entry_time'] = time();
		$auth_user = authenticate($user_name,$user_passwd,$rand,$access_type_required,$database_id);
		if (($auth_user != '1') and ($auth_user != '0'))
		  {
		    $date = date('Y-m-d H:i:s');
		    echo "Error #10: $date<br>\n";
		    echo "Error in call to authenticate from insert_genotypes.php<br>\n";
		    echo "$auth_user<br>\n";
		    echo "Please email the above error using Comments/Help/Support link \n";
		    echo "in the left navigation bar.<br>\n";
		    echo "</body></html>\n";
		    session_unset();
		    session_destroy();
		    $ret_val = disconnect();
		    exit;
		  }
		if ($auth_user == '0')
		  {
		    echo "You are not an authorized user of this website!!<br><br>\n";
		    echo "You must be an authorized user to access the data contained in this site.\n";
		    echo "If you feel like you should be an authorized user, or want to see if you can\n";
		    echo "become an authorized user please contact $contact_person \n";
		    echo "at <a href=\"mailto:$contact_email\">$contact_email</a>\n";
		    echo "</body></html>\n";
		    session_unset();
		    session_destroy();
		    $ret_val = disconnect();
		    exit;
		  }
	      }#end else all the session variables are set
          }#end else session hasn't expired
      }#end else registered values
  }#end else not ending session

if ($auth_user == '1')
  {
    $database_id = $_SESSION['database_id'];
    #3    Determine Whether Insert from File or Web
    if (!preg_match('/\d+/',$insert_from_file))
      {
	echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\">\n";
	echo "This form allows you to insert new genotypes into the database.  There are two options \n";
	echo "for the way to do this.  If you have multiple individuals to insert, you can store their \n";
	echo "information in a comma-separated file and upload that file to the site.  Or if you only have \n";
	echo "one or two individuals, you can use a web form to insert their data.  Please choose the method \n";
	echo "you would like to choose below.<br><br>\n";

        echo "<table>\n";
        echo "<tr><td><input type=\"radio\" name=\"insert_from_file\" value=\"0\"></td><td>Insert Genotypes Using a Web Form</td></tr>\n";
	echo "<tr><td><input type=\"radio\" name=\"insert_from_file\" value=\"1\" checked></td><td>Insert Genotypes Stored in a File</td></tr>\n";
	echo "</table>\n";
        echo "<br>\n";

        echo "<table align=\"center\">\n";
        echo "<tr>\n";
	echo "<td><input type=\"submit\" name=\"submit\" value=\"Insert New Genotypes\"></td>\n";
	echo "<td><input type=\"reset\" name=\"reset\" value=\"Reset Selection\"></td>\n";
        echo "</tr>\n";
        echo "</form>\n";
        echo "</table>\n";
        echo "<br><br>\n";
        $ret_val = printLogOutButton('insert_genotypes.php');
      }#end if (!preg_match('/\d+/',insert_from_file))

    #4    If Insert from Web form
    if (($insert_from_file == '0') and
	(!preg_match('/\d+/',$ped_id)) and
        (!preg_match('/\w+/',$chr)) and
	(!preg_match('/\d+/',$indiv_id)) and
	(!preg_match('/\d+/',$marker_id)) and
	(sizeof($allele_ids) == '0')
       )
      {
	echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\" onSubmit=\"return(Validate(this))\">\n";
	echo "Please select the Chromosome of the Marker, and Pedigree of the Individual whose genotype you would like to insert:<br><br>\n";
	echo "<table>\n";
	echo "<tr><td>Pedigree ID:</td><td>\n";
        $jscript_1 = printPedigreeSelectList($database_id);
        if ($jscript_1 == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #11: $date<br>\n";
            echo "Error in call to printPedigreeSelectList from insert_genotypes.php<br>\n";
            echo "See the error message from printPedigreeSelectList above for an explanation.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end if error in call to printPedigreeSelectList
        if ($jscript_1 == 'no_defined_pedigrees')
          {
            $date = date('Y-m-d H:i:s');
            echo "This message was generated at $date<br><br>\n";
            echo "There must defined individuals in defined pedigrees in order to insert genotypes.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }
        echo "</td></tr>\n";
        echo "<tr><td>Marker on Chromosome:</td><td>\n";
        $jscript_2 = printChromosomeSelectList($database_id);
        if ($jscript_2 == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #12: $date<br>\n";
            echo "Error in call to printChromosomeSelectList from insert_genotypes.php<br>\n";
            echo "See the error message from printChromosomeSelectList above for an explanation.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end if error in call to printChromosomeSelectList
        if ($jscript_2 == 'no_defined_chromosomes')
          {
            $date = date('Y-m-d H:i:s');
            echo "This message was generated at $date<br><br>\n";
            echo "There must defined markers, and therefore define chromosomes, in order to insert genotypes.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }
        echo "</td></tr>\n";
        echo "</table>\n";
        echo "<br><br>\n";

	echo "<input type=\"hidden\" name=\"insert_from_file\" value=\"0\">\n";
	echo "<center>\n";
	echo "<input type=\"submit\" name=\"submit\" value=\"Select Individual and Marker for Genotype\">\n";
	echo "<input type=\"reset\" name=\"reset\" value=\"Reset Values\">\n";
        echo "</form>\n";
        echo "<br><br>\n";

        $ret_val = printLogOutButton('insert_genotypes.php');
	echo "\n\n";

        $jscript_1 = preg_replace('/ else \{return true;\}
\}/','',$jscript_1);
        $jscript_2 = preg_replace('/^\{
/','',$jscript_2);
        $jscript_2 = preg_replace('/ else \{return true;\}
\}/','',$jscript_2);
        $jscript = "$jscript_1\n$jscript_2\n return ture;\n}";
	echo "<script>\n";
	echo "function Validate(form)\n";
        echo "$jscript\n";
	echo "</script>\n";
      }#end if from web but no values

    if (($insert_from_file == '0') and
	(preg_match('/\d+/',$ped_id)) and
        (preg_match('/\w+/',$chr)) and
	(!preg_match('/\d+/',$indiv_id)) and
	(!preg_match('/\d+/',$marker_id)) and
	(sizeof($allele_ids) == '0')
       )
      {
        $field_list = array('pedigree_table_id');
        $ped_rec_list = tableQuery('pedigree_table',$database_id,$field_list,$ped_id,'equal','all');
        if (!is_array($ped_rec_list))
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #13: $date<br>\n";
            echo "Error in call to tableQuery from insert_genotypes.php<br>\n";
            echo "$ped_rec_list<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end error in call to tableQuery
        if (sizeof($ped_rec_list) == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "There is no pedigree in the pedigree table with pedigree table id $ped_id.  It appears that this pedigree was deleted from \n";
            echo "the database before you submitted your request to submit a genotype for an individual in the pedigree.  This means that all the \n";
            echo "individuals and all of their associated values have also been deleted from the database.  This message was generated at $date.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end if no pedigree
        elseif (sizeof($ped_rec_list) == '1') {$ped_rec = $ped_rec_list[0];}
        else
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #14: $date<br>\n";
            echo "Error in call to insert_genotypes.php<br>\n";
            echo "User selected to insert a genotype for an individual with pedigree table id $ped_id, but when query the pedigree table \n";
            echo "with that id multiple records were returned.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end error in data integrity

	echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\" onSubmit=\"return(Validate(this))\">\n";
	echo "Please select the Individul in Pedigree $ped_rec[pedigree_id] you want to insert a genotype for, and \n";
        echo "select the Marker on Chromosome $chr the genotype is for:<br><br>\n";

	echo "<table>\n";
	echo "<tr><td>Individual ID:</td><td>\n";
        $jscript_1 = printIndividualSelectList($database_id,$ped_rec['pedigree_table_id']);
        if ($jscript_1 == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #15: $date<br>\n";
            echo "Error in call to printIndividualSelectList from insert_genotypes.php<br>\n";
            echo "See the error message from printIndividualSelectList above for an explanation.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end if error in call to printIndividualSelectList
        if ($jscript_1 == 'no_defined_individuals')
          {
            $date = date('Y-m-d H:i:s');
            echo "This message was generated at $date<br><br>\n";
            echo "There must defined individuals in defined pedigrees in order to insert genotypes.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }
        echo "</td></tr>\n";
        echo "<tr><td>Marker Name:</td><td>\n";
        $jscript_2 = printMarkerSelectList($database_id,$chr);
        if ($jscript_2 == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #16: $date<br>\n";
            echo "Error in call to printMarkerSelectList from insert_genotypes.php<br>\n";
            echo "See the error message from printMarkerSelectList above for an explanation.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end if error in call to printMarkerSelectList
        if ($jscript_2 == 'no_defined_markers')
          {
            $date = date('Y-m-d H:i:s');
            echo "This message was generated at $date<br><br>\n";
            echo "There must defined markers in order to insert genotypes.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }
        echo "</td></tr>\n";
        echo "</table>\n";
        echo "<br><br>\n";

	echo "<input type=\"hidden\" name=\"insert_from_file\" value=\"0\">\n";
        echo "<input type=\"hidden\" name=\"pedigree_id\" value=\"$ped_rec[pedigree_table_id]\">\n";
        echo "<input type=\"hidden\" name=\"chromosome_id\" value=\"$chr\">\n";
	echo "<center>\n";
	echo "<input type=\"submit\" name=\"submit\" value=\"Select Alleles for Genotype\">\n";
	echo "<input type=\"reset\" name=\"reset\" value=\"Reset Values\">\n";
        echo "</form>\n";
        echo "<br><br>\n";

        $ret_val = printLogOutButton('insert_genotypes.php');
	echo "\n\n";

        $jscript_1 = preg_replace('/ else \{return true;\}
\}/','',$jscript_1);
        $jscript_2 = preg_replace('/^\{
/','',$jscript_2);
        $jscript_2 = preg_replace('/ else \{return true;\}
\}/','',$jscript_2);
        $jscript = "$jscript_1\n$jscript_2\n return ture;\n}";
	echo "<script>\n";
	echo "function Validate(form)\n";
        echo "$jscript\n";
	echo "</script>\n";
      }#end if from web but no values

    if (($insert_from_file == '0') and
	(preg_match('/\d+/',$ped_id)) and
        (preg_match('/\w+/',$chr)) and
	(preg_match('/\d+/',$indiv_id)) and
	(preg_match('/\w+/',$marker_id)) and
	(sizeof($allele_ids) == '0')
       )
      {
        $field_list = array('marker_id');
        $marker_rec_list = tableQuery('marker_table',$database_id,$field_list,$marker_id,'equal','all');
        if (!is_array($marker_rec_list))
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #17: $date<br>\n";
            echo "Error in call to tableQuery from insert_genotypes.php<br>\n";
            echo "$marker_rec_list<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end error in call to tableQuery
        if (sizeof($marker_rec_list) == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "There is no marker in the marker table with marker id $marker_id.  It appears that this marker was deleted from \n";
            echo "the database before you submitted your request to submit a genotype for it.  This means that all the \n";
            echo "associated records in the database have also been deleted from the database.  This message was generated at $date.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end if no pedigree
        elseif (sizeof($marker_rec_list) == '1') {$marker_rec = $marker_rec_list[0];}
        else
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #18: $date<br>\n";
            echo "Error in call to insert_genotypes.php<br>\n";
            echo "User selected to insert a genotype for marker id $marker_id, but when query the marker table \n";
            echo "with that id multiple records were returned.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end error in data integrity
  
        echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\" onSubmit=\"return(Validate(this))\">\n";
        echo "Select the Alleles for Marker $marker_rec[marker_name] that make up the genotype:<br><br>\n";

        echo "<table align=\"center\">\n";
        echo "<tr><td>Allele 1 Code:</td><td>\n";
        $jscript_1 = printAlleleSelectList($database_id,$marker_rec['marker_id'],'1');
        if ($jscript_1 == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #19: $date<br>\n";
            echo "Error in call to printAlleleSelectList from insert_genotypes.php<br>\n";
            echo "See the error message from printAlleleSelectList above for an explanation.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end if error in call to printAlleleSelectList
        if ($jscript_1 == 'no_defined_alleles')
          {
            $date = date('Y-m-d H:i:s');
            echo "This message was generated at $date<br><br>\n";
            echo "There must defined alleles for defined markers in order to insert genotypes.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }
        echo "</td></tr>\n";
        echo "<tr><td>Allele 2 Code:</td><td>\n";
        $jscript_2 = printAlleleSelectList($database_id,$marker_rec['marker_id'],'1');
        if ($jscript_2 == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #20: $date<br>\n";
            echo "Error in call to printAlleleSelectList from insert_genotypes.php<br>\n";
            echo "See the error message from printAlleleSelectList above for an explanation.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }#end if error in call to printAlleleSelectList
        if ($jscript_2 == 'no_defined_alleles')
          {
            $date = date('Y-m-d H:i:s');
            echo "This message was generated at $date<br><br>\n";
            echo "There must defined alleles for defined markers in order to insert genotypes.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }
        echo "</td></tr>\n";
        echo "</table>\n";
        echo "<br><br>\n";

	echo "<input type=\"hidden\" name=\"insert_from_file\" value=\"0\">\n";
        echo "<input type=\"hidden\" name=\"pedigree_id\" value=\"$ped_id\">\n";
        echo "<input type=\"hidden\" name=\"chromosome_id\" value=\"$chr\">\n";
        echo "<input type=\"hidden\" name=\"individual_id\" value=\"$indiv_id\">\n";
        echo "<input type=\"hidden\" name=\"marker_id\" value=\"$marker_id\">\n";
	echo "<center>\n";
	echo "<input type=\"submit\" name=\"submit\" value=\"Insert Genotype into the Database\">\n";
	echo "<input type=\"reset\" name=\"reset\" value=\"Reset Values\">\n";
        echo "</form>\n";
        echo "<br><br>\n";

        $ret_val = printLogOutButton('insert_genotypes.php');
	echo "\n\n";

        echo "<script>\n";
        echo "function Validate(form)\n";
        echo "$jscript_1\n";
        echo "</script>\n";
      }#end if from web but no values

    #5    Insert values from Web form
    if (($insert_from_file == '0') and
	(preg_match('/\d+/',$ped_id)) and
        (preg_match('/\w+/',$chr)) and
	(preg_match('/\d+/',$indiv_id)) and
	(preg_match('/\w+/',$marker_id)) and
	(sizeof($allele_ids) > '0')
       )
      {
        $rand = rand();
        $tmp_log_file = "log_file_"."$rand".".txt";
        $log_file_handle = fopen("../data/$tmp_log_file","w");
        if (!$log_file_handle)
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #21: $date<br>\n";
            echo "Error in call to fopen from insert_genotypes.php<br>\n";
            echo "Unable to open log file to keep track of when, what, and by whom data is altered in the database.<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
	    $ret_val = disconnect();
	    exit;
          }
        $log_file_statement = "";

	$pedigree_field_array = array('pedigree_table_id');
	$pedigree_value_array = array($ped_id);
	$exists_pedigree = existsValue('pedigree_table',$pedigree_field_array,$pedigree_value_array,$database_id);
	if (!preg_match('/\d+/',$exists_pedigree))
	  {
            $date = date('Y-m-d H:i:s');
	    echo "Error #22: $date<br>\n";
	    echo "Error in call to existsValue from insert_genotypes.php<br>\n";
	    echo "$exists_pedigree<br><br>\n";
	    echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
            fclose($log_file_handle);
            chmod("../data/$tmp_log_file",0777);
            $command = "rm ../data/$tmp_log_file";
            exec($command,$output_array,$return_code);
	    $ret_val = disconnect();
	    exit;
	  }#end if error in call to existsValue
	if ($exists_pedigree == '0')
	  {
	    echo "Pedigree Table ID $ped_id is not already a pedigree in the database.<br>\n";
	    echo "All Pedigrees and Individuals must already be in the database in order to insert \n";
	    echo "genotypes for them.\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
            fclose($log_file_handle);
            chmod("../data/$tmp_log_file",0777);
            $command = "rm ../data/$tmp_log_file";
            exec($command,$output_array,$return_code);
	    $ret_val = disconnect();
	    exit;
	  }#end if pedigree not already in the database

        $field_list = array('pedigree_table_id');
        $ped_name_array = distinctTableQuery('pedigree_id','pedigree_table',$database_id,$field_list,$ped_id,'equal','all');
        if (!is_array($ped_name_array))
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #23: $date<br>\n";
            echo "Error in call to distinctTableQuery from insert_genotypes.php<br>\n";
            echo "$ped_name_array<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
            echo "the left navigation bar.\n";
            echo "</form>\n";
            echo "</body></html>\n";
            fclose($log_file_handle);
            chmod("../data/$tmp_log_file",0777);
            $command = "rm ../data/$tmp_log_file";
            exec($command,$output_array,$return_code);
            $ret_val = disconnect();
            exit;
          }#end error in call to distinctTableQuery
        $ped_name = $ped_name_array[0];

	$individual_field_array = array('pedigree_table_id','individual_table_id');
	$individual_value_array = array($ped_id,$indiv_id);
	$exists_individual = existsValue('individual_table',$individual_field_array,$individual_value_array,$database_id);
	if (!preg_match('/\d+/',$exists_individual))
	  {
            $date = date('Y-m-d H:i:s');
	    echo "Error #24: $date<br>\n";
	    echo "Error in call to existsValue from insert_genotypes.php<br>\n";
	    echo "$exists_individual<br><br>\n";
	    echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar.\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
            fclose($log_file_handle);
            chmod("../data/$tmp_log_file",0777);
            $command = "rm ../data/$tmp_log_file";
            exec($command,$output_array,$return_code);
	    $ret_val = disconnect();
	    exit;
	  }#end if error in call to existsValue
	if ($exists_individual == '0')
	  {
	    echo "Individual Table ID $indiv_id in Pedigree Table ID $ped_id is not already in the database.<br>\n";
	    echo "All Pedigrees and Individuals must already be in the database in order to insert genotypes \n";
	    echo "into the database\n";
	    echo "</form>\n";
	    echo "</body></html>\n";
            fclose($log_file_handle);
            chmod("../data/$tmp_log_file",0777);
            $command = "rm ../data/$tmp_log_file";
            exec($command,$output_array,$return_code);
	    $ret_val = disconnect();
	    exit;
	  }#end if individual doesn't exist
	if ($exists_individual == '1')
          {
            $field_list = array('individual_table_id');
            $indiv_name_array = distinctTableQuery('individual_id','individual_table',$database_id,$field_list,$indiv_id,'equal','all');
            if (!is_array($indiv_name_array))
              {
                $date = date('Y-m-d H:i:s');
		echo "Error #25: $date<br>\n";
		echo "Error in call to distinctTableQuery from insert_genotypes.php<br>\n";
		echo "$indiv_name_array<br><br>\n";
		echo "Please email the above error message using the Comments/Help/Support link on \n";
		echo "the left navigation bar.\n";
		echo "</form>\n";
		echo "</body></html>\n";
                fclose($log_file_handle);
                chmod("../data/$tmp_log_file",0777);
                $command = "rm ../data/$tmp_log_file";
                exec($command,$output_array,$return_code);
		$ret_val = disconnect();
		exit;
	      }#end error in call to distinctTableQuery
            $indiv_name = $indiv_name_array[0];

	    $marker_field_array = array('marker_id');
	    $marker_value_array = array($marker_id);
	    $exists_marker = existsValue('marker_table',$marker_field_array,$marker_value_array,$database_id);
	    if (!preg_match('/\d+/',$exists_marker))
              {
                $date = date('Y-m-d H:i:s');
		echo "Error #26: $date<br>\n";
		echo "Error in call to existsValue from insert_genotypes.php<br>\n";
		echo "$exists_marker<br><br>\n";
		echo "Please email the above error message using the Comments/Help/Support link on \n";
		echo "the left navigation bar.\n";
		echo "</form>\n";
		echo "</body></html>\n";
                fclose($log_file_handle);
                chmod("../data/$tmp_log_file",0777);
                $command = "rm ../data/$tmp_log_file";
                exec($command,$output_array,$return_code);
		$ret_val = disconnect();
		exit;
	      }#end error in call to existsValue
	    if ($exists_marker == '0')
              {
		echo "Marker ID $marker_id is not already in the database.<br>\n";
	        echo "All markers must already be in the database in order for their genotypes to be inserted into the database. \n";
		echo "</form>\n";
		echo "</body></html>\n";
                fclose($log_file_handle);
                chmod("../data/$tmp_log_file",0777);
                $command = "rm ../data/$tmp_log_file";
                exec($command,$output_array,$return_code);
		$ret_val = disconnect();
		exit;
	      }#end if no marker
	    if ($exists_marker == '1')
              {
                $field_list = array('marker_id');
		$marker_rec_list = tableQuery('marker_table',$database_id,$field_list,$marker_id,'equal','all');
                if (!is_array($marker_rec_list))
		  {
		    $date = date('Y-m-d H:i:s');
		    echo "Error #27: $date<br>\n";
		    echo "Error in call to tableQuery from insert_genotypes.php<br>\n";
		    echo "$marker_rec_list<br><br>\n";
                    echo "Please email the above error message using the Comments/Help/Support link on \n";
                    echo "the left navigation bar.\n";
		    echo "</form>\n";
		    echo "</body></html>\n";
                    fclose($log_file_handle);
                    chmod("../data/$tmp_log_file",0777);
                    $command = "rm ../data/$tmp_log_file";
                    exec($command,$output_array,$return_code);
		    $ret_val = disconnect();
		    exit;
		  }#end error in call to tableQuery
		$marker_rec = $marker_rec_list[0];
		$marker_name = $marker_rec['marker_name'];
		$marker_flag = $marker_rec['flagged'];

                #Test to see if genotype already exists in the database
                $field_list_array = array('individual_table_id','marker_id');
                $term_array       = array($indiv_id,$marker_id);
                $mode_array       = array('equal','equal');
                $num_genotypes = countCompoundTableQuery('genotype_table',$database_id,$field_list_array,$term_array,$mode_array,'and');
                if (!preg_match('/^\d+$/',$num_genotypes))
                  {
                    $date = date('Y-m-d H:i:s');
                    echo "Error #28: $date<br>\n";
                    echo "Error in call to countCompoundTableQuery from insert_data_into_database.php<br>";
                    echo "$num_genotypes<br><br>\n";
                    echo "Please email the above error message using the Comments/Help/Support link on \n";
                    echo "the left navigation bar.\n";
		    echo "</form>\n";
		    echo "</body></html>\n";
                    fclose($log_file_handle);
                    chmod("../data/$tmp_log_file",0777);
                    $command = "rm ../data/$tmp_log_file";
                    exec($command,$output_array,$return_code);
		    $ret_val = disconnect();
		    exit;
                  }#end error in call to countCompoundTableQuery
                if ($num_genotypes != '0') #if genotype already exists in the database skip
                  {
                    echo "A genotype for Individual $indiv_name in Pedigree $ped_name for Marker $marker_name already exists<br>\n";
                    echo "An Individual can only have a single genotype for each marker in the database.  If you want this genotype ";
                    echo "to replace the genotype currently in the database, then delete it using the 'Delete Genotypes' tool and then ";
                    echo "insert the new genotype.<br><br>\n";
                    echo "</form>\n";

                    printLogOutButton('insert_genotypes.php');
		    echo "</body></html>\n";
                    fclose($log_file_handle);
                    chmod("../data/$tmp_log_file",0777);
                    $command = "rm ../data/$tmp_log_file";
                    exec($command,$output_array,$return_code);
		    $ret_val = disconnect();
		    exit;
                  }#end if genotype already exists in the database skip

		$ret_val = insertGenotype($database_id,$indiv_id,$marker_id,$allele_ids[0],$allele_ids[1]);
		if ($ret_val != '1')
                  {
                    $date = date('Y-m-d H:i:s');
		    echo "Error #29: $date<br>\n";
		    echo "Error in call to insertGenotype from insert_genotypes.php<br>\n";
		    echo "$ret_val<br><br>\n";
		    echo "Please email the above error message using the Comments/Help/Support link on \n";
		    echo "the left navigation bar.\n";
		    echo "</form>\n";
		    echo "</body></html>\n";
                    fclose($log_file_handle);
                    chmod("../data/$tmp_log_file",0777);
                    $command = "rm ../data/$tmp_log_file";
                    exec($command,$output_array,$return_code);
		    $ret_val = disconnect();
		    exit;
		  }#end error in call to insertGenotype

                $field_list = array('individual_table_id','marker_id');
                $term_array = array($indiv_id,$marker_id);
                $mode_array = array('equal','equal');
                $genotype_rec_list = compoundTableQuery('genotype_table',$database_id,$field_list,$term_array,$mode_array,'and','all');
		if (!is_array($genotype_rec_list))
		  {
		    $date = date('Y-m-d H:i:s');
		    echo "Error #30: $date<br>\n";
		    echo "Error in call to compoundTableQuery from insert_genotypes.php<br>\n";
		    echo "$genotype_rec_list<br><br>\n";
		    echo "Please email the above error message using the Comments/Help/Support link on \n";
		    echo "the left navigation bar.<br><br>\n";
                    echo "</form>\n";
		    echo "</body></html>\n";
                    fclose($log_file_handle);
                    chmod("../data/$tmp_log_file",0777);
                    $command = "rm ../data/$tmp_log_file";
                    exec($command,$output_array,$return_code);
		    $ret_val = disconnect();
		    exit;
		  }
		if (sizeof($genotype_rec_list) != '1')
		  {
		    $date = date('Y-m-d H:i:s');
		    echo "Error #31: $date<br>\n";
                    echo "Error in call to insert_genotypes.php<br>\n";
		    echo "Error in data integrity!!!<br>\n";
		    echo "Inserted a genotype for individual table id $indiv_id, marker id $marker_id  in database id $database_id \n";
		    echo "and insertGenotype returned true.  But when query the genotype table with that information ".sizeof($genotype_rec_list)." \n";
		    echo "genotype records are returned.<br><br>\n";
		    echo "Please email the above error message using the Comments/Help/Support link on \n";
		    echo "the left navigation bar.\n";
		    echo "</form>\n";
		    echo "</body></html>\n";
                    fclose($log_file_handle);
                    chmod("../data/$tmp_log_file",0777);
                    $command = "rm ../data/$tmp_log_file";
                    exec($command,$output_array,$return_code);
		    $ret_val = disconnect();
		    exit;
		  }
		$genotype_rec = $genotype_rec_list[0];
		$genotype_id = $genotype_rec['genotype_id'];

                $date = date('Y-m-d H:i:s');
                $log_file_statement.= "$date: User $_SESSION[user_name] Inserted  Genotype ID $genotype_id  into the genotype_table ";
                $log_file_statement.= "in Database ID $database_id for Individual Table ID $indiv_id for Marker ID $marker_id with ";
                $log_file_statement.= "Allele IDs $allele_ids[0], $allele_ids[1].\n";
                $inserted_genotypes[$genotype_id] = array($indiv_id,$ped_id,$marker_id);

		if ($marker_flag == '1')
		  {
                    $update_field_array = array('flagged');
		    $update_value_array = array('1');
		    $ret_val = updateRecord('genotype_table',$genotype_id,$update_field_array,$update_value_array);
		    if ($ret_val != '1')
		      {
			$date = date('Y-m-d H:i:s');
			echo "Error #32: $date<br>\n";
			echo "Error in call to updateRecord from insert_genotypes.php<br>\n";
			echo "$ret_val<br><br>\n";
			echo "Please email the above error message using the Comments/Help/Support link on \n";
			echo "the left navigation bar.<br><br>\n";
			echo "</form>\n";

                        echo "<b>The application is going to assume that all the data in the file can't be trusted!!</b><br>\n";
                        echo "Therefore it is going to delete all the previously inserted genotypes from this file.<br>\n";
                        foreach ($inserted_genotypes as $inserted_genotype_id=>$info_array)
                          {
                            $ret_val = deleteGenotype($inserted_genotype_id);
                            if ($ret_val != '1')
                              {
                                $date = date('Y-m-d H:i:s');
                                echo "Error #33: $date<br>\n";
                                echo "Error in call to deleteGenotype from insert_genotypes.php<br>\n";
                                echo "$ret_val<br><br>\n";
                                echo "Please email the above error using the Comments/Help/Support link \n";
                                echo "on the left navigation bar.\n";
                                echo "</body></html>\n";

                                fwrite($log_file_handle,$log_file_statement);
                                fclose($log_file_handle);
                                chmod("../data/$tmp_log_file",0777);
                                $command = "cat ../data/$tmp_log_file >> ../data/log_file.txt";
                                exec($command,$output_array,$return_code);
		                $command = "rm ../data/$tmp_log_file";
                                exec($command,$output_array,$return_code);
		                $ret_val = disconnect();
		                exit;
                              }#end if error in call to deleteGene
		            $date = date('Y-m-d H:i:s');
                            $log_file_statement.= "date:\tUser $_SESSION[user_name] Deleted Genotype ID $inserted_genotype_id from Database ID $database_id.";
                          }#end foreach inserted gene id
                        echo "</body></html>\n";

                        fwrite($log_file_handle,$log_file_statement);
                        fclose($log_file_handle);
                        chmod("../data/$tmp_log_file",0777);
                        $command = "cat ../data/$tmp_log_file >> ../data/log_file.txt";
                        exec($command,$output_array,$return_code);
			$command = "rm ../data/$tmp_log_file";
                        exec($command,$output_array,$return_code);
			$ret_val = disconnect();
			exit;
		      }
                    $date = date('Y-m-d H:i:s');
                    $log_file_statement.= "$date:\tUser $_SESSION[user_name] Updated field flagged in table genotype_table ";
                    $log_file_statement.= "for Genotype ID $genotype_id in Database ID $database_id, set equal to 1.\n";
		  }#end if marker flagged
		echo "Successfully inserted the genotype for Individual $indiv_name in Pedigree $ped_name for Marker $marker_name<br>\n";
	      }#end if exists_marker == '1'
	  }#end if individual exists
        fwrite($log_file_handle,$log_file_statement);
        fclose($log_file_handle);
        chmod("../data/$tmp_log_file",0777);
        $command = "cat ../data/$tmp_log_file >> ../data/log_file.txt";
        exec($command,$output_array,$return_code);
	$command = "rm ../data/$tmp_log_file";
        exec($command,$output_array,$return_code);

        echo "Now emailing all the users of the database to inform them of the new information in the database.<br>\n";

        $database_rec_list = getDatabase($database_id);
        if (!is_array($database_rec_list))
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #34: $date<br>\n";
            echo "Error in call to getDatabase from insert_genotypes.php<br>\n";
            echo "$database_rec_list<br><br>\n";
            echo "Please email the above error using the Comments/Help/Support link on the \n";
            echo "left navigation bar.\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end error in call to getDatabase
        $database_rec = $database_rec_list[0];

        $user_rec_list = getAllUsers();
        if (!is_array($user_rec_list))
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #35: $date<br>\n";
            echo "Error in call to getAllUsers from insert_genotypes.php<br>\n";
            echo "$user_rec_list<br><br>\n";
            echo "Please email the above error using the Comments/Help/Support link on the \n";
            echo "left navigation bar.\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end error in call to getAllUsers
	foreach ($user_rec_list as $user_rec)
          {
            if ($user_rec['user_name'] == 'root') {$root_email = $user_rec['user_email'];}
          }#end foreach user

        $subject = "New Genotypes in your Genetic Studies Database";
        $message = "There is a new Genotype for Individual $indiv_id in Pedigree $ped_id for Marker $marker_name in database $database_rec[database_name]";
        $header  = "From: $root_email";


        $field_list = array('user_database_link_id');
        $user_database_link_rec_list = tableQuery('user_database_link_table',$database_id,$field_list,'_','wildcard','all');
        if (!is_array($user_database_link_rec_list))
          {
            $date = date('Y-m-d H:i:s');
            echo"Error #36: $date<br>\n";
            echo "Error in call to tableQuery from insert_genotypes.php<br>\n";
            echo "$user_database_link_rec_list<br><br>\n";
            echo "Please email the above error using the Comments/Help/Support link on the \n";
            echo "left navigation bar.\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end error in call to tableQuery
	if (sizeof($user_database_link_rec_list) > '0')
          {
            foreach ($user_database_link_rec_list as $user_database_link_rec)
              {
                $user_id = $user_database_link_rec['user_id'];
                $field_list = array('user_id');
                $user_rec_list = getUser($user_id);
                if (!is_array($user_rec_list))
                  {
                    $date = date('Y-m-d H:i:s');
                    echo "Error #37: $date<br>\n";
                    echo "Error in call to getUser from insert_genotypes.php<br>\n";
                    echo "$user_rec_list<br><br>\n";
                    echo "Please email the above error using the Comments/Help/Support link on the \n";
                    echo "left navigation bar.\n";
                    echo "</body></html>\n";
                    $ret_val = disconnect();
                    exit;
                  }#end error in call to getUser
		if (sizeof($user_rec_list) == '0') {continue;}
                elseif (sizeof($user_rec_list) == '1') {$user_rec = $user_rec_list[0];}
                else
                  {
                    $date = date('Y-m-d H:i:s');
                    echo "Error #38: $date<br>\n";
                    echo "Error in call to insert_genotypes.php<br>\n";
                    echo "Tried to send an update email to user id $user_id, but when queried the user table \n";
                    echo "with that id multiple records were returned.<br><br>\n";
                    echo "Please email the above error using the Comments/Help/Support link on the \n";
                    echo "left navigation bar.\n";
                    echo "</body></html>\n";
                    $ret_val = disconnect();
                    exit;
                  }#end error in data integrity
	        $user_email_address = $user_rec['user_email'];

                $ret_val = mail($user_email_address,$subject,$message,$header);
              }#end foreach user associated with database
	  }#end if have users associated with database
	echo "Finished sending update emails to all the users<br><br>\n";
	   
	echo "If you would like to insert more individual's genotypes please click the button below.<br>\n";
        echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\">\n";
	echo "<center>\n";
	echo "<input type=\"submit\" name=\"submit\" value=\"Insert More Genotypes\">\n";
        echo "</center>\n";
        echo "<br><br>\n";

        $ret_val = printLogOutButton('insert_genotypes.php');
	echo "\n";
      }#end if insert from web and have values

    #6    Get File
    if (($insert_from_file == '1') and
        (!preg_match('/^\d$/',$upload_file)) and
        (!preg_match('/\w+/',$file_format)) and
	((!preg_match('/\w+/',$file_on_server)) and (!is_uploaded_file($_FILES['genotype_file']['tmp_name'])))
       )
      {
        echo "Please select whether you would like to upload a file from your computer, or \n";
        echo "select a file that is already in your 'Uploaded Data' directory on the server.<br><br>\n";

        echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\">\n";
        echo "<input type=\"hidden\" name=\"insert_from_file\" value=\"$insert_from_file\">\n";
        echo "<table align=\"center\">\n";
        echo "<tr><td><input type=\"radio\" name=\"upload_file\" value=\"0\" checked></td><td>Select File in 'Uploaded Data' directory</td></tr>\n";
        echo "<tr><td><input type=\"radio\" name=\"upload_file\" value=\"1\"></td><td>Upload File from Your Computer</td></tr>\n";
        echo "</table>\n";
        echo "<br>\n";

        echo "<table align=\"center\">\n";
        echo "<tr>\n";
        echo "<td><input type=\"submit\" name=\"submit\" value=\"Select File to Insert From\"></td>\n";
        echo "<td><input type=\"reset\" name=\"reset\" value=\"Reset Method to Select File\"></td>\n";
        echo "</tr>\n";
        echo "</table>\n";
        echo "<br><br>\n";

        $ret_val = printLogOutButton('insert_genotypes.php');
      }#end get file from users computer

    if (($insert_from_file == '1') and
        (preg_match('/^\d$/',$upload_file)) and
        (!preg_match('/\w+/',$file_format)) and
	((!preg_match('/\w+/',$file_on_server)) and (!is_uploaded_file($_FILES['genotype_file']['tmp_name'])))
       )
      {
        if ($upload_file == '1')
          {
            echo "<form action=\"insert_genotypes.php\" enctype=\"multipart/form-data\" name=\"form\" method=\"POST\" target=\"main\" onSubmit=\"return(Validate(form))\">\n";
            echo "This form will allow you to select a file stored on your computer that contains the genotypes ";
            echo "you would like to insert into the database.  \n";
          }
        else 
          {
            echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\" onSubmit=\"return(Validate(form))\">\n";
            echo "This form will allow you to select a file stored on the server that contains the genotypes ";
            echo "you would like to insert into the database.  \n";
          }
	echo "The file must be in a specific format for the insertion to be done properly.  There are 3 file formats that are accepted.<br><br>\n";

        echo "<table>\n";
        echo "<tr>\n";
        echo "  <td><b>File Format 1:</b></td>\n";
        echo "  <td> Affymetrix Genotype File.  Convert an Affymetrix Call file for an individual to a comma-separated file and upload.</td>";
        echo "</tr>\n";
        echo "<tr>\n";
        echo "<td>&nbsp;</td><td>This utility expects the file to have 7 columns in this order:</td>\n";
        echo "</tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 1:</b> SNP Number</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 2:</b> Probe Set ID</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 3:</b> Chromsome</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 4:</b> Physical Position</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 5:</b> dbSNP rs ID</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 6:</b> Genotype Call</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 7:</b> Genotype Confidence</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td>(Click <a href=\"../data/test_data/example_affy_genotype_file.txt\" target=\"_blank\">here</a> for an example file.)</td></tr>\n";
        echo "<tr><td>&nbsp;</td></tr>\n";

        echo "<tr>\n";
        echo "  <td><b>File Format 2:</b></td>\n";
        echo "  <td>Illumina Genotype File.  Just upload a comma-separated Illumina Genotype File.</td>";
        echo "</tr>\n";
        echo "<td>&nbsp;</td><td>This utility expects the file to have 7 columns in this order:</td>\n";
        echo "</tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 1:</b> Marker Name</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 2:</b> DNA Name</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 3:</b> Pedigree ID</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 4:</b> Individual ID</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 5:</b> Allele 1 Call</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 6:</b> Allele 2 Call</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 7:</b> Genotype GC Score</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td>(Click <a href=\"../data/test_data/example_illumina_genotype_file.csv\" target=\"_blank\">here</a> for an example file.)</td></tr>\n";
        echo "<tr><td>&nbsp;</td></tr>\n";

        echo "<tr>\n";
        echo "  <td><b>File Format 3:</b></td>\n";
        echo "  <td>This is a custom format specific for this GGSD.</td>\n";
        echo "</tr>\n";
        echo "<tr>\n";
        echo "<td>&nbsp;</td><td>The file must contain 7 columns, and they must be in this order:</td>\n";
        echo "</tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 1:</b> Pedigree ID</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 2:</b> Individual ID</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 3:</b> Marker Name</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 4:</b> Allele 1 Code</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 5:</b> Allele 2 Code</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 6:</b> Allele Coding</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><b>Column 7:</b> Genotype Score</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td>(Click <a href=\"../data/test_data/genotype_input_test_data.txt\" target=\"_blank\">here</a> for an example file.)</td></tr>\n";
	echo "</table>\n";
        echo "<br>\n";

        echo "For <b>File Format 3</b>, the columns must be comma-delimited, and every column must contain data.  \n";
        echo "The Allele Coding column should either be Illumina, Affymetrix or None.  The Genotype Score column is for the confidence \n";
        echo "scores generated by different platforms, for example an Affymetrix Confidence Score or Illumina GC Score.  \n";
        echo "If an individual has a missing value, insert a <b>*</b> for that column.<br><br>\n";

        echo "No Matter the file format, each genotype must be on its own line.<br><br>\n";
        echo "<center>Upload your file below:</center><br>\n";

	echo "<input type=\"hidden\" name=\"insert_from_file\" value=\"$insert_from_file\">\n";
        echo "<input type=\"hidden\" name=\"upload_file\" value=\"$upload_file\">\n";
        echo "<table align=\"center\">\n";
        if ($upload_file == '1')
          {
            echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"1000000000\">\n";
	    echo "<tr><td>File Name:</td><td><input type=\"file\" name=\"genotype_file\" size=\"20\"></td></tr>\n";
          }#end if upload file
        else #file on server
          {
            echo "<tr>\n";
            echo "<td>File Name:</td><td>\n";
            $jscript = printFileSelectList($_SESSION[user_name],$database_id,'upload');
            if ($jscript == '0')
              {
                $date = date('Y-m-d H:i:s');
                echo "Error #39: $date<br>\n";
                echo "Error in call to printFileSelectList from insert_genotypes.php.<br>\n";
                echo "Please see the error from printFileSelectList above for an explanation.<br><br>\n";
                echo "Please email the above error message using the Comments/Help/Suggestions link \n";
                echo "on the left navigation bar.\n";
                echo "</form>\n";
                echo "</body></html>\n";
                $ret_val = disconnect();
                exit;
              }#end error in call to printFileSelectList
            if ($jscript == '1')
              {
                $date = date('Y-m-d H:i:s');
                echo "</td>\n";
                echo "</tr>\n";
                echo "</table>\n";
                echo "</form>\n";
                echo "<br><br>\n";

                echo "<center>\n";
                echo "<b>There are no files stored for user $_SESSION[user_name] in their uploaded_data directory.</b><br>\n";
                echo "This means either you have not transfered the file to the server, or the file has expired and has been \n";
                echo "deleted from the server.<br> So you need to either transfer the file you are looking for to the server and put it \n";
                echo "in your uploaded_data directory, or upload the file directly from your computer in order to insert the data.<br><br>\n";
                echo "</center>\n\n";

                $ret_val = printLogOutButton('insert_genotypes.php');
                echo "</body></html>\n";
                $ret_val = disconnect();
                exit;
              }#end if no files in users directory to upload
            echo "</td>\n";
            echo "</tr>\n";
          }#end else file on server
        echo "<tr><td>&nbsp;</td><td><input type=\"radio\" name=\"file_format\" value=\"affy\">Affymetrix Genotype File</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><input type=\"radio\" name=\"file_format\" value=\"illumina\">Illumina Genotype File</td></tr>\n";
        echo "<tr><td>&nbsp;</td><td><input type=\"radio\" name=\"file_format\" value=\"ggsd\" checked>GGSD File Format</td></tr>\n";
        echo "</table>\n";
        echo "<br><br>\n";
        echo "<center>\n";
	echo "<input type=\"submit\" name=\"submit\" value=\"Upload File\">\n";
	echo "</form>\n";
        echo "</center>\n";
        echo "<br><br>\n";

        $ret_val = printLogOutButton('insert_genotypes.php');
        echo "\n\n";

        echo "<script>\n";
        echo "function Validate(form)\n";
        if ($upload_file == '1')
          {
            echo "{\n";
            echo "  if (form.genotype_file.value == \"\"){\n";
            echo "    alert(\"You must upload a Genotype File\");\n";
            echo "    form.genotype_file.focus();\n";
            echo "    return false;}\n";
            echo "  return true;\n";
            echo "}\n";
          }#end if upload file
        else {echo "$jscript\n";}
        echo "</script>\n";
      }#end get file

    #7    Get the Pedigree and Individual the Affymetrix file is for
    if ((($insert_from_file == '1') and
         ($upload_file == '1') and
         (is_uploaded_file($_FILES['genotype_file']['tmp_name']))and
         ($file_format == 'affy') and
         (!preg_match('/\d+/',$ped_id)) and
         (!preg_match('/\d+/',$indiv_id))) or
        (($insert_from_file == '1') and
         ($upload_file == '0') and
         (preg_match('/\w+/',$file_on_server)) and
         ($file_format == 'affy') and
         (!preg_match('/\d+/',$ped_id)) and
         (!preg_match('/\d+/',$indiv_id)))
       )
      {
        if ($upload_file == '1')
          {
            $rand_num = rand();
            $file_name = "genotype_data_upload_".$rand_num.".txt";
            $ret_val = move_uploaded_file($_FILES['genotype_file']['tmp_name'],"../data/uploaded_data/$_SESSION[user_name]/$file_name");
	    if (!$ret_val)
              {
                $date = date('Y-m-d H:i:s');
	        echo "Error #40: $date<br>\n";
	        echo "Error in call to insert_genotypes.php<br>\n";
	        echo "Unable to move uploaded file inorder to read it.<br><br>\n";
	        echo "Please email the above error message using the Comments/Help/Support link on \n";
	        echo "the left navigation bar.\n";
	        echo "</body></html>\n";
	        $ret_val = disconnect();
	        exit;
	      }#end if (!ret_val)
          }#end if file uploaded from user's computer

        $ped_table_id_hash   = array();
        $indiv_table_id_hash = array();
        $field_list_array = array('pedigree_table_id');
        if ($db_type == 'mysql'){$order_by = 'pedigree_id+0';}
        if ($db_type == 'pgsql'){$order_by = "pedigree_id::text::integer";}
        $ped_rec_list = tableQuery('pedigree_table',$database_id,$field_list_array,'_','wildcard','all',$order_by);
	if (!is_array($ped_rec_list))
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #41: $date<br>\n";
            echo "Error in call to tableQuery from insert_genotypes.php<br>\n";
            echo "$ped_rec_list<br><br>\n";
            echo "Please email the above error message using the Comments/Help/Support link on \n";
	    echo "the left navigation bar.\n";
	    echo "</body></html>\n";
            #$ret_val = unlink("../data/uploaded_data/$_SESSION[user_name]/$file_name");
	    $ret_val = disconnect();
	    exit;
	  }#end if error in call to tableQuery
        if (sizeof($ped_rec_list) == '0')
          {
            $date = date('Y-m-d H:i:s');
            echo "Currently there are no Pedigrees, and therefore no Individuals, in the database.<br>\n";
            echo "There must be people in the database in order to insert genotypes.<br>\n";
            echo "This message was generated at $date.<br>\n";
            echo "</form>\n";
            echo "</body></html>\n";
            #$ret_val = unlink("../data/uploaded_data/$_SESSION[user_name]/$file_name");
            $ret_val = disconnect();
            exit;
          }#end if no pedigrees
        foreach ($ped_rec_list as $ped_rec)
          {
            $num_indivs = 0;
            $field_list_array = array('pedigree_table_id');
            if ($db_type == 'mysql'){$order_by = 'individual_id+0';}
            if ($db_type == 'pgsql'){$order_by = "individual_id::text::integer";}
            $indiv_rec_list = tableQuery('individual_table',$database_id,$field_list_array,$ped_rec['pedigree_table_id'],'equal','all',$order_by);
            if (!is_array($indiv_rec_list))
              {
                $date = date('Y-m-d H:i:s');
                echo "Error #42: $date<br>\n";
                echo "Error in call to tableQuery from insert_genotypes.php<br>\n";
                echo "$indiv_rec_list<br><br>\n";
                echo "Please email the above error message using the Comments/Help/Support link on \n";
	        echo "the left navigation bar.\n";
	        echo "</body></html>\n";
                #$ret_val = unlink("../uploaded_files/$file_name");
	        $ret_val = disconnect();
	        exit;
	      }#end if error in call to tableQuery
            foreach ($indiv_rec_list as $indiv_rec)
              {
                if (key_exists($ped_rec['pedigree_table_id'],$indiv_table_id_hash))
                  {
                    $array = $indiv_table_id_hash[$ped_rec['pedigree_table_id']];
                    $array[$indiv_rec['individual_table_id']] = $indiv_rec['individual_id'];
                    $indiv_table_id_hash[$ped_rec['pedigree_table_id']] = $array;
                  }#end if pedigree already being tracked
                else
                  {
                    $array = array();
                    $array[$indiv_rec['individual_table_id']] = $indiv_rec['individual_id'];
                    $indiv_table_id_hash[$ped_rec['pedigree_table_id']] = $array;
                  }#end if first indiv in this ped
                $num_indivs++;
              }#end foreach individual in pedigree
            unset($indiv_rec_list);
            unset($indiv_rec);
            if ($num_indivs > 0)
              {
                if (!key_exists($ped_rec['pedigree_table_id'],$ped_table_id_hash))
                  {$ped_table_id_hash[$ped_rec['pedigree_table_id']] = $ped_rec['pedigree_id'];}
              }
          }#end foreach pedigree
        unset($ped_rec_list);
        unset($ped_rec);

        echo "Please select the Pedigree and Individual that the Affymetrix Genotype File is for:<br><br>\n";

        echo "<form action=\"insert_genotypes.php\" name=\"form\" method=\"POST\" target=\"main\" onSubmit=\"return(Validate(form))\">\n";
        echo "<table align=\"center\">\n";
        echo "<tr>\n";
        echo "<td>Pedigree ID:</td>\n";
        echo "<td><select name=\"pedigree_id\">\n";
        echo "<option>Select Pedigree\n";
        foreach ($ped_table_id_hash as $table_id=>$id){echo "<option value=\"$table_id\" onClick=\"populateIndivs('$table_id')\">$id\n";}
        echo "</select></td>\n";
        echo "</tr>\n";
        echo "<tr><td>&nbsp;</td></tr>\n";
        echo "<tr><td>Individual ID:</td><td><select name=\"individual_id\">\n";
        echo "<option>Select Individual\n";
        echo "</select></td>\n";
        echo "</tr>\n";
        echo "</table>\n";
        echo "<br><br>\n";

        echo "<input type=\"hidden\" name=\"insert_from_file\" value=\"$insert_from_file\">\n";
        echo "<input type=\"hidden\" name=\"upload_file\" value=\"$upload_file\">\n";
        if ($upload_file == '1'){echo "<input type=\"hidden\" name=\"file_name\" value=\"../data/uploaded_data/$_SESSION[user_name]/$file_name\">\n";}
        else                    {echo "<input type=\"hidden\" name=\"file_name\" value=\"$file_on_server\">\n";}
        echo "<input type=\"hidden\" name=\"file_format\" value=\"$file_format\">\n";
        echo "<table align=\"center\">\n";
        echo "<tr>\n";
        echo "<td><input type=\"submit\" name=\"submit\" value=\"Insert Genotypes\"></td>\n";
        echo "<td><input type=\"reset\" name=\"reset\" value=\"Reset Pedigree ID and Individual ID\"></td>\n";
	echo "</tr>\n";
	echo "</table>\n";
        echo "</form>\n";
	echo "<br><br>\n";

        $ret_val = printLogOutButton('insert_genotypes.php');
        echo "\n\n";

        echo "<script>\n";
        echo "function Validate(form)\n";
        echo "{\n";
        echo "  if (form.pedigree_id.selectedIndex == \"0\"){\n";
        echo "    alert(\"You must select a Pedigree\");\n";
        echo "    form.pedigree_id.focus();\n";
        echo "    return false;}\n";
        echo "  if (form.individual_id.selectedIndex == \"0\"){\n";
        echo "    alert(\"You must select an Individual\");\n";
        echo "    form.individual_id.focus();\n";
        echo "    return false;}\n";
        echo "  return true;\n";
        echo "}\n";
        echo "\n";
        echo "function populateIndivs(ped_id)\n";
        echo "{\n";
        echo "  var length;\n";
        echo "  var indiv_array = new Array();\n";
        foreach ($indiv_table_id_hash as $id=>$val_array)
          {
            echo "  indiv_array['$id'] = new Array();\n";
            foreach ($val_array as $tab_id=>$indiv_id){echo "  indiv_array['$id']['$tab_id'] = '$indiv_id';\n";}
          }#end foreach individual in each pedigree
        echo "\n";
        echo "  if (form.individual_id.length > '1'){\n";
        echo "    length = form.individual_id.length;\n";
        echo "    for (var i = 1; i < length; i++){\n";
        echo "      form.individual_id.options[1] = null;}}\n";
        echo "\n";
        echo "  var pop_values = indiv_array[ped_id];\n";
        echo "  for (var indexName in pop_values){\n";
        echo "    length = form.individual_id.length;\n";
        echo "    var indexValue = pop_values[indexName];\n";
        echo "    form.individual_id.options[length] = new Option(indexValue,indexName);}\n";
        echo "}\n";
        echo "</script>\n";
      }#end if need to get pedigree and individual info for affy file

    #8    Parse File and Insert
    if ((($insert_from_file == '1') and
         ($upload_file == '1') and
	 (is_uploaded_file($_FILES['genotype_file']['tmp_name']))and
         (($file_format == 'ggsd') or ($file_format == 'illumina'))
        ) or
        (($insert_from_file == '1') and
         ($file_format == 'affy') and
         (preg_match('/\w+/',$file_on_server)) and
         (preg_match('/\d+/',$ped_id)) and
         (preg_match('/\d+/',$indiv_id))
        ) or
        (($insert_from_file == '1') and
         ($upload_file == '0') and
         (preg_match('/\w+/',$file_on_server)) and
         (($file_format == 'ggsd') or ($file_format == 'illumina'))
        )
       )
      {
        echo "Inserting the genotypes in the file you uploaded:<br>\n";
        echo "This could take a few minutes depending on the size of your file.  Please be patient and do not navigate away from this page \n";
        echo "or click on the refresh or reload button, as this will only make it take longer and possibly corrupt the data upload process.<br><br>\n";

        if ((($file_format == 'ggsd') or ($file_format == 'illumina')) and ($upload_file == '1'))
          {
            $rand_num = rand();
            $file_name = "genotype_data_upload_".$rand_num.".txt";
            $ret_val = move_uploaded_file($_FILES['genotype_file']['tmp_name'],"../data/uploaded_data/$_SESSION[user_name]/$file_name");
	    if (!$ret_val)
              {
                $date = date('Y-m-d H:i:s');
	        echo "Error #43: $date<br>\n";
	        echo "Error in call to insert_genotypes.php<br>\n";
	        echo "Unable to move uploaded file inorder to read it.<br><br>\n";
	        echo "Please email the above error message using the Comments/Help/Support link on \n";
	        echo "the left navigation bar.\n";
	        echo "</body></html>\n";
	        $ret_val = disconnect();
	        exit;
	      }#end if (!ret_val)
            $uploaded_file_name = "../../data/uploaded_data/$_SESSION[user_name]/$file_name";
            $uploaded_file_size = @filesize("../data/uploaded_data/$_SESSION[user_name]/$file_name");
            if (!$uploaded_file_size)
              {
                $command = "stat -c %s ../data/uploaded_data/$_SESSION[user_name]/$file_name";
                exec($command,$output_array,$return_code);
                $uploaded_file_size = $output_array[0];
              }#end if file too big for php functions
          }#end if file_format eq ggsd or illumina
        else #file format is affy and upload_file eq 0 or 1; or upload_file eq 0 and either of the other formats
          {
            $uploaded_file_name = "../"."$file_on_server";
            $uploaded_file_size = @filesize("$file_on_server");
            if (!$uploaded_file_size)
              {
                $command = "stat -c %s $file_on_server";
                exec($command,$output_array,$return_code);
                $uploaded_file_size = $output_array[0];
              }#end if file too big for php functions
          }#end else file already on server

        $ret_val = chdir("../bin/database_query_scripts/");
        if (!$ret_val)
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #44: $date<br>\n";
            echo "Error in call to chdir from insert_genotypes.php<br>\n";
            echo "Unable to change directory to database query scripts directory<br><br>\n";
            echo "Please email the above error using Comments/Help/Support link \n";
	    echo "in the left navigation bar.<br>\n";
	    echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end error in call to chdir

	if ($uploaded_file_size > $max_file_size_to_wait_to_run)
          {
            $background_flag = 1;
            if ($uploaded_file_size >= $max_file_size_not_to_split)
              {
                $found = preg_match('/^(.+\/)([^\/]+)$/',$uploaded_file_name,$captured);
                $path          = $captured[1];
                $file_name     = $captured[2];
                $sub_file_name = "sub_"."$file_name";
                $prefix        = "$path"."$sub_file_name";
                $prefix        = preg_replace('/\.\w+$/','_',$prefix);

                $command = "split -a5 --lines=$num_lines_to_split_files $uploaded_file_name $prefix";
                if (sizeof($output_array) > '0'){$output_array = array();}
                exec($command,$output_array,$return_code);
                if ($return_code)
                  {
                    $err_msg = implode("\n",$output_array);
                    $date = date('Y-m-d H:i:s');
                    echo "Error #45: $date<br>\n";
                    echo "Error in call to exec to split file from insert_genotypes.php<br>\n";
                    echo "$err_msg<br><br>\n";
                    echo "Please email the above error using the Comments/Help/Support link on the \n";
	            echo "left navigation bar.\n";
	            echo "</form>\n";
	            echo "</body></html>\n";
	            $ret_val = disconnect();
	            exit;
	          }#end if error in exec call to split file
                $file_array = glob("$prefix*");
                $num_files_split = sizeof($file_array);
                sort($file_array);
                foreach ($file_array as $key=>$file)
                  {
                    if ((($key > '0') and ($file_format == 'affy')) or 
                        (($key > '0') and ($file_format == 'illumina'))
                       )#need to add header lines to file
                      {
                        if ($file_format == 'affy')    {$command = "head -n2 $uploaded_file_name";}
                        if ($file_format == 'illumina'){$command = "head -n1 $uploaded_file_name";}
                        preg_match('/^(.+\/)([^\/]+)$/',$file,$captured);
                        $tmp_file = "$captured[1]"."tmp_"."$captured[2]";
                        $command.= " | cat - $file > $tmp_file";
                        $output_array = array();
                        exec($command,$output_array,$return_code);
                        if ($return_code)
                          {
                            $err_msg = implode("\n",$output_array);
                            $date = date('Y-m-d H:i:s');
                            echo "Error #46: $date<br>\n";
                            echo "Error in call to exec to format sub file from insert_genotypes.php<br>\n";
                            echo "$err_msg<br><br>\n";
                            echo "Please email the above error using the Comments/Help/Support link on the \n";
	                    echo "left navigation bar.\n";
	                    echo "</form>\n";
	                    echo "</body></html>\n";
	                    $ret_val = disconnect();
	                    exit;
                          }#end if error in call to exec to correctly format sub file
                        $command = "mv $tmp_file $file";
                        exec($command);
                      }#end if need to add header lines to file

                    $command = "./insert_data_into_database.php '$file' '$database_id' ";
                    $command.= "'Insert Genotypes' '$_SESSION[user_name]' '$background_flag' ";
                    if ($file_format == 'affy'){$command.= "'$file_format' '$ped_id' '$indiv_id' >> dummy_insert_data_background_output.txt &";}
                    else                       {$command.= "'$file_format' >> dummy_insert_data_background_output.txt &";}

                    $last_line = system($command,$sys_ret_val);
                    if ($sys_ret_val != '0')
	              {
	                $date = date('Y-m-d H:i:s');
	                echo "Error #47: $date<br>\n";
	                echo "Error in system call to insert_data_into_database.php from insert_genotypes.php<br>\n";
	                echo "The return value of the sytem call was $sys_ret_val<br><br>\n";
                        echo "Please email the above error using the Comments/Help/Support link on the \n";
	                echo "left navigation bar.\n";
	                echo "</form>\n";
	                echo "</body></html>\n";
	                $ret_val = disconnect();
	                exit;
	              }#end if error in system call
                  }#end foreach sub file 
              }#end if need to split file
            else #don't need to split file
              {
                $command = "./insert_data_into_database.php '$uploaded_file_name' '$database_id' 'Insert Genotypes' '$_SESSION[user_name]' '$background_flag' ";
                if ($file_format == 'affy'){$command.= "'$file_format' '$ped_id' '$indiv_id' >> dummy_insert_data_background_output.txt &";}
                else                       {$command.= "'$file_format' > dummy_insert_data_background_output.txt &";}

                $last_line = system($command,$sys_ret_val);
                if ($sys_ret_val != '0')
	          {
	            $date = date('Y-m-d H:i:s');
	            echo "Error #48: $date<br>\n";
	            echo "Error in system call to insert_data_into_database.php from insert_genotypes.php<br>\n";
	            echo "The return value of the sytem call was $sys_ret_val<br><br>\n";
                    echo "Please email the above error using the Comments/Help/Support link on the \n";
	            echo "left navigation bar.\n";
	            echo "</form>\n";
	            echo "</body></html>\n";
	            $ret_val = disconnect();
	            exit;
	          }#end if error in system call
              }#end else don't need to split file
          }#end if run in background
        else #run in foreground
          {
            $background_flag = 0;
            $command = "./insert_data_into_database.php '$uploaded_file_name' '$database_id' 'Insert Genotypes' '$_SESSION[user_name]' '$background_flag' ";
            if ($file_format == 'affy'){$command.= "'$file_format' '$ped_id' '$indiv_id'";}
            else                       {$command.= "'$file_format'";}

            passthru($command,$sys_ret_val);
            if ($sys_ret_val != '0')
	      {
                echo "<br><br>\n";
	        $date = date('Y-m-d H:i:s');
	        echo "Error #49: $date<br>\n";
	        echo "Error in system call to insert_data_into_database.php from insert_genotypes.php<br>\n";
	        echo "See the error message above for an explanation of the error<br><br>\n";
                echo "Please email the above error using the Comments/Help/Support link on the \n";
	        echo "left navigation bar.\n";
	        echo "</form>\n";
	        echo "</body></html>\n";
	        $ret_val = disconnect();
	        exit;
	      }#end if error in system call
          }#end else run in foreground

	$ret_val = chdir("../../cgi-bin/");
        if (!$ret_val)
          {
            $date = date('Y-m-d H:i:s');
            echo "Error #50: $date<br>\n";
            echo "Error in call to chdir from insert_genotypes.php<br>\n";
            echo "Unable to change directory to cgi-bin directory<br><br>\n";
            echo "Please email the above error using Comments/Help/Support link \n";
	    echo "in the left navigation bar.<br>\n";
	    echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end error in call to chdir

        if ($background_flag)
          {
            echo "<center>\n";
	    echo "<b>The data you uploaded is being inserted into the database.<br>\n";
	    if ($uploaded_file_size >= $max_file_size_not_to_split)
              {
                echo "The file was too large to handle, so it was split into $num_files_split sub files, and each \n";
                echo "sub file is being processed separately.  So you will recieve an email when the data in each sub file \n";
                echo "has been inserted into the database \n";
              }#end if split file
            else {echo "You will receive an email when all the data has been inserted into the database \n";}
	    echo "detailing the results of the file upload and any errors.</b><br><br>\n";
	    echo "</center>\n";
            echo "</body></html>\n";
            $ret_val = disconnect();
            exit;
          }#end if running in background
        
	if (!$background_flag){echo "Finished sending update emails to all the users<br>\n";}
      }#end parse file and insert
  }#end if (auth_user == '1') 
$ret_val = disconnect();		      
echo "</body></html>\n";

?>
Return current item: Generic Genetic Studies Database