From 5f37c265a2d0d6c1246c496c8ddcf540386ebe81 Mon Sep 17 00:00:00 2001
From: edgrif <edgrif>
Date: Mon, 5 Mar 2007 14:38:18 +0000
Subject: [PATCH] add code to use new FASTA/peptide calls for reporting
 sequences with stop codon.

---
 src/zmapWindow/zmapWindowMenus.c | 34 +++++++++++++++++++-------------
 1 file changed, 20 insertions(+), 14 deletions(-)

diff --git a/src/zmapWindow/zmapWindowMenus.c b/src/zmapWindow/zmapWindowMenus.c
index cf90f8b24..af3027045 100755
--- a/src/zmapWindow/zmapWindowMenus.c
+++ b/src/zmapWindow/zmapWindowMenus.c
@@ -27,9 +27,9 @@
  * Exported functions: ZMap/zmapWindows.h
  *              
  * HISTORY:
- * Last edited: Feb 20 10:11 2007 (rds)
+ * Last edited: Mar  5 14:11 2007 (edgrif)
  * Created: Thu Mar 10 07:56:27 2005 (edgrif)
- * CVS info:   $Id: zmapWindowMenus.c,v 1.27 2007-02-20 12:59:37 rds Exp $
+ * CVS info:   $Id: zmapWindowMenus.c,v 1.28 2007-03-05 14:38:18 edgrif Exp $
  *-------------------------------------------------------------------
  */
 
@@ -104,7 +104,7 @@ static void blixemMenuCB(int menu_item_id, gpointer callback_data) ;
 
 static FooCanvasGroup *getItemsColGroup(FooCanvasItem *item) ;
 
-static void dumpFASTA(ZMapWindow window, char *seq, char *seq_name, int seq_len,
+static void dumpFASTA(ZMapWindow window, ZMapFASTASeqType seq_type, char *seq, char *seq_name, int seq_len,
 		      char *molecule_name, char *gene_name) ;
 static void dumpFeatures(ZMapWindow window, ZMapFeatureAny feature) ;
 static void dumpContext(ZMapWindow window) ;
@@ -391,7 +391,7 @@ static void dnaMenuCB(int menu_item_id, gpointer callback_data)
 	  char *title ;
 	  char *dna_fasta ;
 
-	  dna_fasta = zMapFASTAString(seq_name, molecule_type, gene_name, seq_len, dna) ;
+	  dna_fasta = zMapFASTAString(ZMAPFASTA_SEQTYPE_DNA, seq_name, molecule_type, gene_name, seq_len, dna) ;
 
 	  title = g_strdup_printf("%s%s%s",
 				  seq_name,
@@ -404,7 +404,7 @@ static void dnaMenuCB(int menu_item_id, gpointer callback_data)
 	}
       else
 	{
-	  dumpFASTA(menu_data->window, dna, seq_name, seq_len, molecule_type, gene_name) ;
+	  dumpFASTA(menu_data->window, ZMAPFASTA_SEQTYPE_DNA, dna, seq_name, seq_len, molecule_type, gene_name) ;
 	}
 
       g_free(dna) ;
@@ -563,6 +563,8 @@ static void peptideMenuCB(int menu_item_id, gpointer callback_data)
   ZMapPeptide peptide ;
   ZMapFeatureContext context ;
   char *seq_name, *molecule_type = NULL, *gene_name = NULL ;
+  int pep_length ;
+
 
   feature = (ZMapFeature)g_object_get_data(G_OBJECT(menu_data->item), ITEM_FEATURE_DATA) ;
 
@@ -599,14 +601,18 @@ static void peptideMenuCB(int menu_item_id, gpointer callback_data)
 
   peptide = zMapPeptideCreate(seq_name, gene_name, dna, NULL, TRUE) ;
 
+  /* Note that we do not include the "Stop" in the peptide length, is this the norm ? */
+  pep_length = zMapPeptideLength(peptide) ;
+  if (zMapPeptideHasStopCodon(peptide))
+    pep_length-- ;
+
   if (menu_item_id == ZMAPCDS || menu_item_id == ZMAPTRANSCRIPT || menu_item_id == ZMAPUNSPLICED)
     {
       char *title ;
       char *peptide_fasta ;
 
-      peptide_fasta = zMapFASTAString(seq_name, molecule_type, gene_name,
-				      zMapPeptideLength(peptide),
-				      zMapPeptideSequence(peptide)) ;
+      peptide_fasta = zMapFASTAString(ZMAPFASTA_SEQTYPE_AA, seq_name, molecule_type, gene_name,
+				      pep_length, zMapPeptideSequence(peptide)) ;
 
       title = g_strdup_printf("%s%s%s",
 			      seq_name,
@@ -619,9 +625,9 @@ static void peptideMenuCB(int menu_item_id, gpointer callback_data)
     }
   else
     {
-      dumpFASTA(menu_data->window,
-		zMapPeptideSequence(peptide), seq_name, zMapPeptideLength(peptide),
-		molecule_type, gene_name) ;
+      dumpFASTA(menu_data->window, ZMAPFASTA_SEQTYPE_AA,
+		zMapPeptideSequence(peptide), seq_name,
+		pep_length, molecule_type, gene_name) ;
     }
 
   zMapPeptideDestroy(peptide) ;
@@ -772,7 +778,7 @@ static void dumpMenuCB(int menu_item_id, gpointer callback_data)
 	int seq_len = 0 ;
 
 	if (zMapFeatureBlockDNA((ZMapFeatureBlock)(feature->parent->parent), &seq_name, &seq_len, &sequence))
-	  dumpFASTA(menu_data->window, sequence, seq_name, seq_len, "DNA", NULL) ;
+	  dumpFASTA(menu_data->window, ZMAPFASTA_SEQTYPE_DNA, sequence, seq_name, seq_len, "DNA", NULL) ;
 	else
 	  zMapShowMsg(ZMAP_MSG_WARNING, "%s", "Context contains no DNA.") ;
 	    
@@ -923,7 +929,7 @@ static FooCanvasGroup *getItemsColGroup(FooCanvasItem *item)
 
 
 
-static void dumpFASTA(ZMapWindow window, char *sequence, char *seq_name, int seq_len,
+static void dumpFASTA(ZMapWindow window, ZMapFASTASeqType seq_type, char *sequence, char *seq_name, int seq_len,
 		      char *molecule_name, char *gene_name)
 {
   char *filepath = NULL ;
@@ -933,7 +939,7 @@ static void dumpFASTA(ZMapWindow window, char *sequence, char *seq_name, int seq
 
   if (!(filepath = zmapGUIFileChooser(window->toplevel, "FASTA filename ?", NULL, NULL))
       || !(file = g_io_channel_new_file(filepath, "w", &error))
-      || !zMapFASTAFile(file, seq_name, seq_len, sequence,
+      || !zMapFASTAFile(file, seq_type, seq_name, seq_len, sequence,
 			molecule_name, gene_name, &error))
     {
       char *err_msg = NULL ;
-- 
GitLab