This file is indexed.

/usr/include/ncbi/saledit.h is in libvibrant6-dev 6.1.20120620-7.

This file is owned by root:root, with mode 0o644.

The actual contents of the file can be viewed below.

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
/*   saledit.h
* ===========================================================================
*
*                            PUBLIC DOMAIN NOTICE
*            National Center for Biotechnology Information (NCBI)
*
*  This software/database is a "United States Government Work" under the
*  terms of the United States Copyright Act.  It was written as part of
*  the author's official duties as a United States Government employee and
*  thus cannot be copyrighted.  This software/database is freely available
*  to the public for use. The National Library of Medicine and the U.S.
*  Government do not place any restriction on its use or reproduction.
*  We would, however, appreciate having the NCBI and the author cited in
*  any work or product based on this material
*
*  Although all reasonable efforts have been taken to ensure the accuracy
*  and reliability of the software and data, the NLM and the U.S.
*  Government do not and cannot warrant the performance or results that
*  may be obtained by using this software or data. The NLM and the U.S.
*  Government disclaim all warranties, express or implied, including
*  warranties of performance, merchantability or fitness for any particular
*  purpose.
*
* ===========================================================================
*
* File Name:  saledit.h
*
* Author:  Colombe Chappey
*
* Version Creation Date:   2/19/97
*
* $Revision: 6.37 $
*
* File Description: 
*
* Modifications:  
* --------------------------------------------------------------------------
* Date     Name        Description of modification
* -------  ----------  -----------------------------------------------------
*
*
* ==========================================================================
*/

#ifndef _SALEDIT_
#define _SALEDIT_

#include <ncbi.h>
#include <objseq.h>
#include <objmgr.h>
#include <objfdef.h>
#include <gather.h>
#include <vibrant.h>
#include <salsa.h>
#include <viewer.h>
#include <util/creaders/alnread.h>

typedef struct seqeditview {

  FORM_MESSAGE_BLOCK
  PaneL            pnl;
  ValNodePtr       data;
  VieweR           graph;

  PrompT           pos;
  TexT             gototxt,
                   lookattxt;
  TexT             fromtxt, totxt;

  ButtoN           gotobt,
                   lookatbt;

  GrouP            btngp;
  ButtoN           showfeatbt;
  ButtoN           translatebt;
  ButtoN           savefeatbt;
  ButtoN           refreshbt;
  ButtoN           closebt;
  ButtoN           svclosebt;
  ButtoN           gap_choicebn;
  ButtoN           keep_protid1,
                   keep_protid2;

  MenU             menu_align;
  IteM             editmodeitem,
                   viewmodeitem;
  IteM             prefitem;
  IteM             undoitem;
  IteM             cutitem, delitem, copyitem, pasteitem, insitem;
  IteM             rfitem[10];
  IteM             conscolor;
  IteM             importseq,
                   importalg,
                   importnet,
                   expfsagitem,
                   expalgitem,
                   expasnitem;
  IteM             showfeatitem,
                   hidefeatitem;
  IteM             propaitem;
  IteM             tmpcdsnitem, tmpcdspitem;
  IteM             selmaster;
  IteM             selall,
                   selsubs;
  IteM             showdifitem,
                   showallitem;
  IteM             dotmat;
  IteM             alreport;
/** not used **/
  IteM             translateitem;
  IteM             codonstitem;
  IteM             savefeatitem;

  GrouP            replaceMergeCopyGroup;
  GrouP            rmcExtra [3];
  ButtoN           acceptBtn;

  Boolean          extended_align_menu;
  Boolean          extended_dist_menu;
  Boolean          extended_tree_menu;
} SeqEditViewForm, PNTR SeqEditViewFormPtr;


typedef struct dialogboxdata
{
  FORM_MESSAGE_BLOCK
  WindoW      w; 
  TexT        txt1, txt2, txt3, txt4, txt5, txt6;
  LisT        lst1, lst2, lst3;
  ButtoN      bt;
  ButtoN      bt2;
  PopuP       color[10];
  Int2        align_format, mol_type;
  Int2        matrix, separator;
  Boolean     db_bool;
  PrompT      prompt;

} DialogBoxData, PNTR DialogBoxDataPtr;


/*
*  The SeqEditViewProcsPtr may be registered with a call to SetAppProperty
*  e.g., SetAppProperty ("SeqEditDisplayForm", &viewprocs), where viewprocs
*  is a persistent structure filled with callback function pointers specific
*  for a given application.
*/

typedef SeqEntryPtr (LIBCALLBACK *SeqEdDwnloadProc) (CharPtr program, CharPtr accession, Int4 uid, Boolean is_na, BoolPtr is_new);

typedef struct seqeditviewprocs {

  WndActnProc      activateForm;
  FormMessageFunc  handleMessages;
  Int2             minPixelWidth;
  Int2             minPixelHeight;
 
  Boolean          viewer_mode;
  Boolean          showfeat;
  Boolean          extended_align_menu;
  Boolean          extended_dist_menu;
  Boolean          extended_tree_menu;

  SeqEdDwnloadProc download; /* application links to Entrez network service */

  Boolean          Cn3D_On; 
  IteM             conscolor;
  Uint1            colorR_HL, colorG_HL, colorB_HL; /* yanli added to store highlight color */
  ValNodePtr       seqinfo;   /* yanli added */
                       /* data initially filled by cn3d to store SeqId, entityID, itemID, visible status and color arrays for those sequences loaded into memory by cn3d. seqinfo->data.ptrvalue is MediaInfoPtr(see "cn3dmsg.h"), each node is for one sequence */  

} SeqEditViewProcs, PNTR SeqEditViewProcsPtr;


#define REGISTER_NEW_BIOSEQ_EDIT ObjMgrProcLoad(OMPROC_EDIT,"New Edit Bioseq","BioseqEditor",OBJ_BIOSEQ,Seq_repr_raw,OBJ_BIOSEQ,Seq_repr_raw,NULL,SeqEditFunc,PROC_PRIORITY_DEFAULT)

#define REGISTER_NEW_SEQALIGN_EDIT ObjMgrProcLoad(OMPROC_EDIT, "New Edit SeqAlign","SeqAlignEditor",OBJ_SEQALIGN,0,OBJ_SEQALIGN,0,NULL,AlgEditFunc,PROC_PRIORITY_DEFAULT)

#define REGISTER_NEW_SEQANNOT_EDIT ObjMgrProcLoad(OMPROC_EDIT, "New Edit SeqAnnot","SeqAnnotEditor",OBJ_SEQANNOT,0,OBJ_SEQANNOT,0,NULL,AnnotAlgEditFunc,PROC_PRIORITY_DEFAULT)

#define REGISTER_NEW_SEQALIGN_VIEW ObjMgrProcLoad(OMPROC_VIEW, "New View SeqAlign","CCSeqAlignViewer",OBJ_SEQALIGN,0,OBJ_SEQALIGN,0,NULL,AlgViewFunc,PROC_PRIORITY_DEFAULT)


extern EditAlignDataPtr EditAlignDataRepopulateFromSeqAlign (PaneL pnl, EditAlignDataPtr adp, SeqAlignPtr salp);

extern void     SalsaPanelHasResized (PaneL pnl);
extern Boolean  FindIdsInSalsaPanel (PaneL pnl, PoinT pt, Uint2 *entityID, Uint4 *itemID, Uint2 *itemtype);
extern void     SaveSalsaPanel (PaneL pnl);
extern PaneL    SalsaTextPanel (GrouP g, Int2 wid, Int2 hgt);
extern void     PopulateSalsaPanel (PaneL pnl, SeqEntryPtr sep, Boolean all_seq, Uint1 sequence_shown, Uint1 show_feat, Uint1 numbering, FonT font);
extern void     repopulate_panel (WindoW w, EditAlignDataPtr adp, SeqAlignPtr salp);

extern Int2 LIBCALLBACK SeqEditFunc PROTO((Pointer data));
extern Int2 LIBCALLBACK AlgEditFunc PROTO((Pointer data));
extern Int2 LIBCALLBACK AnnotAlgEditFunc PROTO((Pointer data));
extern Int2 LIBCALLBACK AlgViewFunc (Pointer data);
extern void OldAlignmentEditor (IteM i);

extern void LaunchAnnotAlignEditor (SeqAnnotPtr sap);
extern void LaunchAlignEditor (SeqAlignPtr salp);
extern void LaunchAlignViewer (SeqAlignPtr salp);
extern void OpenNewAlignmentEditor (SeqAlignPtr salp, Uint2 input_entityID);
extern Int2 LIBCALLBACK LaunchAlignEditorFromDesktop (Pointer data);
extern Int2 LIBCALLBACK LaunchAlignEditorFromDesktop2 (Pointer data);
extern Int2 LIBCALLBACK LaunchAlignEditorFromDesktop3 (Pointer data);
extern Int2 LIBCALLBACK LaunchAlignEditorFromDesktop4 (Pointer data);

extern Int2 LIBCALLBACK UpdateSeqAlign (Pointer data);

/****************************************************
 ValidateSeqAlignandACC

   validates a SeqAlign using the ValidateSeqAlign function 
   in api directory, and tests for occurrence of ACC string in sequence ID.
   ACC|ACC# will be compared with the corresponding sequence (ACC#)
   in the database and replaced by a far pointer if the sequences
   are identical. 

******************************************************/
NLM_EXTERN Int2 LIBCALLBACK ValidateSeqAlignandACCFromData (Pointer data);

NLM_EXTERN Boolean ValidateSeqAlignandACC (SeqAlignPtr salp, Uint2 entityID, 
                   Boolean message,
                   Boolean msg_success, Boolean find_remote_bsp,
                   Boolean find_acc_bsp,
                   Boolean delete_bsp, Boolean delete_salp, BoolPtr dirty);

NLM_EXTERN Boolean ValidateSeqAlignandACCInSeqEntry (SeqEntryPtr sep, 
                   Boolean message, 
                   Boolean msg_success, Boolean find_remote_bsp, 
                   Boolean find_acc_bsp,
                   Boolean delete_bsp, Boolean delete_salp);

NLM_EXTERN void    CalculateAlignmentOffsets (SeqEntryPtr sepnew, SeqEntryPtr sepold);
NLM_EXTERN Boolean CheckAlignmentSequenceLengths (SeqAlignPtr salp);

NLM_EXTERN Boolean UpdateOneSeqAlignFarPointer (SeqAlignPtr salp, Int4 pos);

extern const char *nucleotide_alphabet;
extern const char *protein_alphabet;
NLM_EXTERN DialoG AlnSettingsDlg (GrouP h, Boolean allow_sequence_type);
NLM_EXTERN TSequenceInfoPtr GetAlignmentOptions (Uint1Ptr moltype, TSequenceInfoPtr sequence_info);
NLM_EXTERN SeqAlignPtr ReadAlignmentForSeqEntry (SeqEntryPtr sep, Boolean is_nuc, Boolean allow_options, Boolean from_clipboard);
NLM_EXTERN void ProduceAlignmentNotes (TAlignmentFilePtr afp, TErrorInfoPtr error_list);
NLM_EXTERN Boolean CorrectAlignmentIDs (TAlignmentFilePtr afp, Uint1 moltype);


#endif


/*****************!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* for debugging purpose, wdpext is a global SeqEditViewProcsPtr
* printEntityIDForMsg prints the OMUserDataPtr's
extern void printEntityIDForMsg (SeqEditViewFormPtr wdp, CharPtr str);
SeqEditViewFormPtr wdpext;
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
extern void printEntityIDForMsg (SeqEditViewFormPtr wdp, CharPtr str)
{
  EditAlignDataPtr   adp;
  AlignNodePtr    anp;
  ValNodePtr      vnp;
  OMUserDataPtr   omudp;
  Uint2           eID;
  SeqEntryPtr     sep;

  FILE *fp;

  if (wdp==NULL) return;
  GetPanelExtra (wdp->pnl, &adp);
  if ( adp == NULL )
     return ;
  if ( adp->seqnumber == 0 ) 
         return;

        fp = FileOpen("ObjMgr.log", "a");

fprintf (fp, "printEntityID %s\n", str);
  for (vnp=adp->anp_list; vnp!=NULL; vnp=vnp->next) {
   anp = (AlignNodePtr) vnp->data.ptrvalue;
   if (anp!=NULL) {
      sep = GetTopSeqEntryForEntityID (anp->seq_entityID);
      if (sep!=NULL) {
         eID = SeqMgrGetEntityIDForSeqEntry(sep);
         omudp = ObjMgrGetUserData (eID, wdp->procid, OMPROC_EDIT, wdp->userkey);
         if (omudp != NULL)
         {
fprintf(fp, "PRINTENTITYID-OMUDP %d %d %d %d\n", eID, anp->entityID, wdp->input_entityID, anp->seq_entityID);
            if (omudp->userdata.ptrvalue == NULL)
fprintf(fp, "    OMUDP->userdata.ptrvalue == NULL \n");
            else
fprintf(fp, "    OMUDP->userdata.ptrvalue NON NULL \n");
            if (omudp->messagefunc == NULL)
fprintf(fp, "    OMUDP->messagefunc == NULL \n");
            else
fprintf(fp, "    OMUDP->messagefunc NON NULL \n");
         }
         else {
            if (eID != wdp->input_entityID) {
fprintf(fp, "PRINTENTITYID-OMUDPNULL %d %d %d %d\n", eID, anp->entityID, wdp->input_entityID, anp->seq_entityID);
            }
         }
      }
   }
  }
  FileClose(fp);
}
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!******************/