<!-- ============================================
     ::DATATOOL:: Generated from "blast.asn"
     ::DATATOOL:: by application DATATOOL version 1.9.0
     ::DATATOOL:: on 04/10/2008 16:04:22
     ============================================ -->

<!-- ============================================ -->
<!-- This section is mapped from module "NCBI-Blast4"
================================================= -->

<!--
  




















                            PUBLIC DOMAIN NOTICE
                National Center for Biotechnology Information

  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 have not
  placed any restriction on its use or reproduction.

  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.

  Please cite the authors in any work or product based on this material.

  




















  Authors: Tom Madden, Tim Boemker

  ASN.1 interface to BLAST.

  



















-->

<!-- Elements used by other modules:
          Blast4-ka-block,
          Blast4-value,
          Blast4-parameter,
          Blast4-parameters -->

<!-- Elements referenced from other modules:
          Bioseq FROM NCBI-Sequence,
          Seq-data FROM NCBI-Sequence,
          Bioseq-set FROM NCBI-Seqset,
          PssmWithParameters FROM NCBI-ScoreMat,
          Seq-id,
          Seq-loc FROM NCBI-Seqloc,
          Seq-align,
          Seq-align-set FROM NCBI-Seqalign -->
<!-- ============================================ -->

<!--
  


















  Requests

  

















-->
<!ELEMENT Blast4-request (
        Blast4-request_ident?, 
        Blast4-request_body)>

<!ELEMENT Blast4-request_ident (#PCDATA)>

<!ELEMENT Blast4-request_body (Blast4-request-body)>


<!ELEMENT Blast4-request-body (
        Blast4-request-body_finish-params | 
        Blast4-request-body_get-databases | 
        Blast4-request-body_get-matrices | 
        Blast4-request-body_get-parameters | 
        Blast4-request-body_get-paramsets | 
        Blast4-request-body_get-programs | 
        Blast4-request-body_get-search-results | 
        Blast4-request-body_get-sequences | 
        Blast4-request-body_queue-search | 
        Blast4-request-body_get-request-info | 
        Blast4-request-body_get-sequence-parts)>

<!ELEMENT Blast4-request-body_finish-params (Blast4-finish-params-request)>

<!ELEMENT Blast4-request-body_get-databases EMPTY>

<!ELEMENT Blast4-request-body_get-matrices EMPTY>

<!ELEMENT Blast4-request-body_get-parameters EMPTY>

<!ELEMENT Blast4-request-body_get-paramsets EMPTY>

<!ELEMENT Blast4-request-body_get-programs EMPTY>

<!ELEMENT Blast4-request-body_get-search-results (Blast4-get-search-results-request)>

<!ELEMENT Blast4-request-body_get-sequences (Blast4-get-sequences-request)>
<!--
 Options have been broken down into two groups as part of the BLAST
 API work.  The algorithm options essentially correspond to those
 options available via the CBlastOptions class.
   algorithm-options: Options for BLAST (ie. seq comparison) algorithm.
   program-options:   Other options, such as which seqs. to compare.
-->
<!ELEMENT Blast4-request-body_queue-search (Blast4-queue-search-request)>
<!-- Fetch information about the search request. -->
<!ELEMENT Blast4-request-body_get-request-info (Blast4-get-request-info-request)>
<!-- Fetch parts of a sequence a-la cart. -->
<!ELEMENT Blast4-request-body_get-sequence-parts (Blast4-get-seq-parts-request)>


<!ELEMENT Blast4-finish-params-request (
        Blast4-finish-params-request_program, 
        Blast4-finish-params-request_service, 
        Blast4-finish-params-request_paramset?, 
        Blast4-finish-params-request_params?)>

<!ELEMENT Blast4-finish-params-request_program (#PCDATA)>

<!ELEMENT Blast4-finish-params-request_service (#PCDATA)>

<!ELEMENT Blast4-finish-params-request_paramset (#PCDATA)>

<!ELEMENT Blast4-finish-params-request_params (Blast4-parameters)>


<!ELEMENT Blast4-get-search-results-request (
        Blast4-get-search-results-request_request-id)>

<!ELEMENT Blast4-get-search-results-request_request-id (#PCDATA)>


<!ELEMENT Blast4-get-sequences-request (
        Blast4-get-sequences-request_database, 
        Blast4-get-sequences-request_seq-ids)>

<!ELEMENT Blast4-get-sequences-request_database (Blast4-database)>

<!ELEMENT Blast4-get-sequences-request_seq-ids (Seq-id*)>

<!--
 If a PSSM is used (ie. for PSI-Blast), it must contain a "query"
 for formatting purposes.  Bioseq-set may contain any number of
 queries, specified as data.  Seq-loc-list may contain only the
 "whole" or "interval" types.  In the case of "whole", any number of
 queries may be used; in the case of "interval", there should be
 exactly one query.  (This is limited by the BlastObject.)
-->
<!ELEMENT Blast4-queries (
        Blast4-queries_pssm | 
        Blast4-queries_seq-loc-list | 
        Blast4-queries_bioseq-set)>

<!ELEMENT Blast4-queries_pssm (PssmWithParameters)>

<!ELEMENT Blast4-queries_seq-loc-list (Seq-loc*)>

<!ELEMENT Blast4-queries_bioseq-set (Bioseq-set)>

<!--
 Options have been broken down into two groups as part of the BLAST
 API work.  The algorithm options essentially correspond to those
 options available via the CBlastOptions class.
   algorithm-options: Options for BLAST (ie. seq comparison) algorithm.
   program-options:   Other options, such as which seqs. to compare.
-->
<!ELEMENT Blast4-queue-search-request (
        Blast4-queue-search-request_program, 
        Blast4-queue-search-request_service, 
        Blast4-queue-search-request_queries, 
        Blast4-queue-search-request_subject, 
        Blast4-queue-search-request_paramset?, 
        Blast4-queue-search-request_algorithm-options?, 
        Blast4-queue-search-request_program-options?)>

<!ELEMENT Blast4-queue-search-request_program (#PCDATA)>

<!ELEMENT Blast4-queue-search-request_service (#PCDATA)>
<!--
 If a PSSM is used (ie. for PSI-Blast), it must contain a "query"
 for formatting purposes.  Bioseq-set may contain any number of
 queries, specified as data.  Seq-loc-list may contain only the
 "whole" or "interval" types.  In the case of "whole", any number of
 queries may be used; in the case of "interval", there should be
 exactly one query.  (This is limited by the BlastObject.)
-->
<!ELEMENT Blast4-queue-search-request_queries (Blast4-queries)>

<!ELEMENT Blast4-queue-search-request_subject (Blast4-subject)>

<!ELEMENT Blast4-queue-search-request_paramset (#PCDATA)>

<!ELEMENT Blast4-queue-search-request_algorithm-options (Blast4-parameters)>

<!ELEMENT Blast4-queue-search-request_program-options (Blast4-parameters)>

<!-- Fetch information about the search request. -->
<!ELEMENT Blast4-get-request-info-request (
        Blast4-get-request-info-request_request-id)>

<!ELEMENT Blast4-get-request-info-request_request-id (#PCDATA)>


<!ELEMENT Blast4-get-request-info-reply (
        Blast4-get-request-info-reply_database, 
        Blast4-get-request-info-reply_program, 
        Blast4-get-request-info-reply_service, 
        Blast4-get-request-info-reply_created-by, 
        Blast4-get-request-info-reply_queries, 
        Blast4-get-request-info-reply_algorithm-options, 
        Blast4-get-request-info-reply_program-options)>

<!ELEMENT Blast4-get-request-info-reply_database (Blast4-database)>

<!ELEMENT Blast4-get-request-info-reply_program (#PCDATA)>

<!ELEMENT Blast4-get-request-info-reply_service (#PCDATA)>

<!ELEMENT Blast4-get-request-info-reply_created-by (#PCDATA)>
<!--
 If a PSSM is used (ie. for PSI-Blast), it must contain a "query"
 for formatting purposes.  Bioseq-set may contain any number of
 queries, specified as data.  Seq-loc-list may contain only the
 "whole" or "interval" types.  In the case of "whole", any number of
 queries may be used; in the case of "interval", there should be
 exactly one query.  (This is limited by the BlastObject.)
-->
<!ELEMENT Blast4-get-request-info-reply_queries (Blast4-queries)>

<!ELEMENT Blast4-get-request-info-reply_algorithm-options (Blast4-parameters)>

<!ELEMENT Blast4-get-request-info-reply_program-options (Blast4-parameters)>

<!-- Fetch parts of a sequence a-la cart. -->
<!ELEMENT Blast4-get-seq-parts-request (
        Blast4-get-seq-parts-request_database, 
        Blast4-get-seq-parts-request_id, 
        Blast4-get-seq-parts-request_need-meta-data, 
        Blast4-get-seq-parts-request_start?, 
        Blast4-get-seq-parts-request_end?)>

<!ELEMENT Blast4-get-seq-parts-request_database (Blast4-database)>

<!ELEMENT Blast4-get-seq-parts-request_id (Seq-id)>

<!ELEMENT Blast4-get-seq-parts-request_need-meta-data EMPTY>
<!ATTLIST Blast4-get-seq-parts-request_need-meta-data value ( true | false ) #REQUIRED >


<!--
 If end is 0, no data will be fetched.  If end is past the
 length of the sequence, it will be adjusted to the end of
 the sequence (this allows fetching of the first chunk in
 cases where the length is not yet known).
-->
<!ELEMENT Blast4-get-seq-parts-request_start (%INTEGER;)>

<!ELEMENT Blast4-get-seq-parts-request_end (%INTEGER;)>

<!--
  


















  Replies

  

















-->
<!ELEMENT Blast4-reply (
        Blast4-reply_errors?, 
        Blast4-reply_body)>

<!ELEMENT Blast4-reply_errors (Blast4-error*)>

<!ELEMENT Blast4-reply_body (Blast4-reply-body)>


<!ELEMENT Blast4-reply-body (
        Blast4-reply-body_finish-params | 
        Blast4-reply-body_get-databases | 
        Blast4-reply-body_get-matrices | 
        Blast4-reply-body_get-parameters | 
        Blast4-reply-body_get-paramsets | 
        Blast4-reply-body_get-programs | 
        Blast4-reply-body_get-search-results | 
        Blast4-reply-body_get-sequences | 
        Blast4-reply-body_queue-search | 
        Blast4-reply-body_get-queries | 
        Blast4-reply-body_get-request-info | 
        Blast4-reply-body_get-sequence-parts)>

<!ELEMENT Blast4-reply-body_finish-params (Blast4-finish-params-reply)>

<!ELEMENT Blast4-reply-body_get-databases (Blast4-get-databases-reply)>

<!ELEMENT Blast4-reply-body_get-matrices (Blast4-get-matrices-reply)>

<!ELEMENT Blast4-reply-body_get-parameters (Blast4-get-parameters-reply)>

<!ELEMENT Blast4-reply-body_get-paramsets (Blast4-get-paramsets-reply)>

<!ELEMENT Blast4-reply-body_get-programs (Blast4-get-programs-reply)>

<!ELEMENT Blast4-reply-body_get-search-results (Blast4-get-search-results-reply)>

<!ELEMENT Blast4-reply-body_get-sequences (Blast4-get-sequences-reply)>

<!ELEMENT Blast4-reply-body_queue-search (Blast4-queue-search-reply)>

<!ELEMENT Blast4-reply-body_get-queries (Blast4-get-queries-reply)>

<!ELEMENT Blast4-reply-body_get-request-info (Blast4-get-request-info-reply)>

<!ELEMENT Blast4-reply-body_get-sequence-parts (Blast4-get-seq-parts-reply)>


<!ELEMENT Blast4-finish-params-reply (Blast4-parameters)>


<!ELEMENT Blast4-get-databases-reply (Blast4-database-info*)>


<!ELEMENT Blast4-get-matrices-reply (Blast4-matrix-id*)>


<!ELEMENT Blast4-get-parameters-reply (Blast4-parameter-info*)>


<!ELEMENT Blast4-get-paramsets-reply (Blast4-paramset-info*)>


<!ELEMENT Blast4-get-programs-reply (Blast4-program-info*)>


<!ELEMENT Blast4-get-search-results-reply (
        Blast4-get-search-results-reply_alignments?, 
        Blast4-get-search-results-reply_phi-alignments?, 
        Blast4-get-search-results-reply_masks?, 
        Blast4-get-search-results-reply_ka-blocks?, 
        Blast4-get-search-results-reply_search-stats?, 
        Blast4-get-search-results-reply_pssm?)>

<!ELEMENT Blast4-get-search-results-reply_alignments (Seq-align-set)>

<!ELEMENT Blast4-get-search-results-reply_phi-alignments (Blast4-phi-alignments)>

<!--
 Masking locations for the query sequence(s). Each element of this set
 corresponds to a single query's translation frame as appropriate.
-->
<!ELEMENT Blast4-get-search-results-reply_masks (Blast4-mask*)>

<!ELEMENT Blast4-get-search-results-reply_ka-blocks (Blast4-ka-block*)>

<!ELEMENT Blast4-get-search-results-reply_search-stats (Blast4-get-search-results-reply_search-stats_E*)>


<!ELEMENT Blast4-get-search-results-reply_search-stats_E (#PCDATA)>

<!ELEMENT Blast4-get-search-results-reply_pssm (PssmWithParameters)>


<!ELEMENT Blast4-get-sequences-reply (Bioseq*)>


<!ELEMENT Blast4-queue-search-reply (
        Blast4-queue-search-reply_request-id?)>

<!ELEMENT Blast4-queue-search-reply_request-id (#PCDATA)>


<!ELEMENT Blast4-get-queries-reply (
        Blast4-get-queries-reply_queries)>
<!--
 If a PSSM is used (ie. for PSI-Blast), it must contain a "query"
 for formatting purposes.  Bioseq-set may contain any number of
 queries, specified as data.  Seq-loc-list may contain only the
 "whole" or "interval" types.  In the case of "whole", any number of
 queries may be used; in the case of "interval", there should be
 exactly one query.  (This is limited by the BlastObject.)
-->
<!ELEMENT Blast4-get-queries-reply_queries (Blast4-queries)>


<!ELEMENT Blast4-get-seq-parts-reply (
        Blast4-get-seq-parts-reply_bioseq?, 
        Blast4-get-seq-parts-reply_ids?, 
        Blast4-get-seq-parts-reply_length?, 
        Blast4-get-seq-parts-reply_data?)>

<!ELEMENT Blast4-get-seq-parts-reply_bioseq (Bioseq)>

<!ELEMENT Blast4-get-seq-parts-reply_ids (Seq-id*)>

<!ELEMENT Blast4-get-seq-parts-reply_length (%INTEGER;)>

<!ELEMENT Blast4-get-seq-parts-reply_data (Seq-data)>

<!--
  


















  Errors

  

















-->
<!ELEMENT Blast4-error (
        Blast4-error_code, 
        Blast4-error_message?)>

<!ELEMENT Blast4-error_code (%INTEGER;)>

<!ELEMENT Blast4-error_message (#PCDATA)>


<!ELEMENT Blast4-error-flags %ENUM;>
<!ATTLIST Blast4-error-flags value (
        warning |
        error
        ) #REQUIRED >



<!ELEMENT Blast4-error-code (%INTEGER;)>

<!--
    conversion-warning	-  warnings
    internal-error	-  errors
-->
<!ATTLIST Blast4-error-code value (
        conversion-warning |
        internal-error |
        not-implemented |
        not-allowed |
        bad-request |
        bad-request-id |
        search-pending
        ) #IMPLIED >


<!--
  


















  Other types in alphabetical order

  

















-->
<!ELEMENT Blast4-cutoff (
        Blast4-cutoff_e-value | 
        Blast4-cutoff_raw-score)>

<!ELEMENT Blast4-cutoff_e-value (%REAL;)>

<!ELEMENT Blast4-cutoff_raw-score (%INTEGER;)>


<!ELEMENT Blast4-database (
        Blast4-database_name, 
        Blast4-database_type)>

<!ELEMENT Blast4-database_name (#PCDATA)>

<!ELEMENT Blast4-database_type (Blast4-residue-type)>

<!-- Borrowed from seq.asn -->
<!ELEMENT Blast4-seqtech (%INTEGER;)>

<!--
    standard	-  standard sequencing
    est	-  Expressed Sequence Tag
    sts	-  Sequence Tagged Site
    survey	-  one-pass genomic sequence
    genemap	-  from genetic mapping techniques
    physmap	-  from physical mapping techniques
    derived	-  derived from other data, not a primary entity
    concept-trans	-  conceptual translation
    seq-pept	-  peptide was sequenced
    both	-  concept transl. w/ partial pept. seq.
    seq-pept-overlap	-  sequenced peptide, ordered by overlap
    seq-pept-homol	-  sequenced peptide, ordered by homology
    concept-trans-a	-  conceptual transl. supplied by author
    htgs-1	-  unordered High Throughput sequence contig
    htgs-2	-  ordered High Throughput sequence contig
    htgs-3	-  finished High Throughput sequence
    fli-cdna	-  full length insert cDNA
    htgs-0	-  single genomic reads for coordination
    htc	-  high throughput cDNA
    wgs	-  whole genome shotgun sequencing
    other	-  use Source.techexp
-->
<!ATTLIST Blast4-seqtech value (
        unknown |
        standard |
        est |
        sts |
        survey |
        genemap |
        physmap |
        derived |
        concept-trans |
        seq-pept |
        both |
        seq-pept-overlap |
        seq-pept-homol |
        concept-trans-a |
        htgs-1 |
        htgs-2 |
        htgs-3 |
        fli-cdna |
        htgs-0 |
        htc |
        wgs |
        other
        ) #IMPLIED >



<!ELEMENT Blast4-database-info (
        Blast4-database-info_database, 
        Blast4-database-info_description, 
        Blast4-database-info_last-updated, 
        Blast4-database-info_total-length, 
        Blast4-database-info_num-sequences, 
        Blast4-database-info_seqtech, 
        Blast4-database-info_taxid)>

<!ELEMENT Blast4-database-info_database (Blast4-database)>

<!ELEMENT Blast4-database-info_description (#PCDATA)>

<!ELEMENT Blast4-database-info_last-updated (#PCDATA)>

<!ELEMENT Blast4-database-info_total-length (%INTEGER;)>

<!ELEMENT Blast4-database-info_num-sequences (%INTEGER;)>
<!-- Borrowed from seq.asn -->
<!ELEMENT Blast4-database-info_seqtech (Blast4-seqtech)>

<!ELEMENT Blast4-database-info_taxid (%INTEGER;)>


<!ELEMENT Blast4-frame-type %ENUM;>
<!ATTLIST Blast4-frame-type value (
        notset |
        plus1 |
        plus2 |
        plus3 |
        minus1 |
        minus2 |
        minus3
        ) #REQUIRED >



<!ELEMENT Blast4-ka-block (
        Blast4-ka-block_lambda, 
        Blast4-ka-block_k, 
        Blast4-ka-block_h, 
        Blast4-ka-block_gapped)>

<!ELEMENT Blast4-ka-block_lambda (%REAL;)>

<!ELEMENT Blast4-ka-block_k (%REAL;)>

<!ELEMENT Blast4-ka-block_h (%REAL;)>

<!ELEMENT Blast4-ka-block_gapped EMPTY>
<!ATTLIST Blast4-ka-block_gapped value ( true | false ) #REQUIRED >


<!--
 Masking locations for a query's frame. The locations field is a single
 Seq-loc of type Packed-int, which contains all the masking locations for the
 translation frame specified by the frame field.
 Notes:
 On input (i.e.: when the client specifies masking locations as a
 Blast4-parameter), in the case of protein queries, the frame field must 
 always be notset, in the case of nucleotide queries (regardless of whether 
 the search will translate these or not), the frame must be plus1. Masking 
 locations in the translated encoding are not permitted.
 On output (i.e.: when blast 4 server encodes these as part of the 
 Blast4-get-search-results-reply), the same conventions as above apply for
 non-translated protein and nucleotide queries, but in the case of translated
 nucleotide queries, the frame field can be specified in any of the
 translation frames as appropriate.
-->
<!ELEMENT Blast4-mask (
        Blast4-mask_locations, 
        Blast4-mask_frame)>

<!ELEMENT Blast4-mask_locations (Seq-loc*)>

<!ELEMENT Blast4-mask_frame (Blast4-frame-type)>


<!ELEMENT Blast4-matrix-id (
        Blast4-matrix-id_residue-type, 
        Blast4-matrix-id_name)>

<!ELEMENT Blast4-matrix-id_residue-type (Blast4-residue-type)>

<!ELEMENT Blast4-matrix-id_name (#PCDATA)>


<!ELEMENT Blast4-parameter (
        Blast4-parameter_name, 
        Blast4-parameter_value)>

<!ELEMENT Blast4-parameter_name (#PCDATA)>

<!ELEMENT Blast4-parameter_value (Blast4-value)>


<!ELEMENT Blast4-parameter-info (
        Blast4-parameter-info_name, 
        Blast4-parameter-info_type)>

<!ELEMENT Blast4-parameter-info_name (#PCDATA)>

<!ELEMENT Blast4-parameter-info_type (#PCDATA)>


<!ELEMENT Blast4-paramset-info (
        Blast4-paramset-info_program, 
        Blast4-paramset-info_name)>

<!ELEMENT Blast4-paramset-info_program (#PCDATA)>

<!ELEMENT Blast4-paramset-info_name (#PCDATA)>


<!ELEMENT Blast4-program-info (
        Blast4-program-info_program, 
        Blast4-program-info_services)>

<!ELEMENT Blast4-program-info_program (#PCDATA)>

<!ELEMENT Blast4-program-info_services (Blast4-program-info_services_E*)>


<!ELEMENT Blast4-program-info_services_E (#PCDATA)>


<!ELEMENT Blast4-residue-type %ENUM;>
<!ATTLIST Blast4-residue-type value (
        unknown |
        protein |
        nucleotide
        ) #REQUIRED >



<!ELEMENT Blast4-strand-type %ENUM;>
<!ATTLIST Blast4-strand-type value (
        forward-strand |
        reverse-strand |
        both-strands
        ) #REQUIRED >



<!ELEMENT Blast4-subject (
        Blast4-subject_database | 
        Blast4-subject_sequences)>

<!ELEMENT Blast4-subject_database (#PCDATA)>

<!ELEMENT Blast4-subject_sequences (Bioseq*)>


<!ELEMENT Blast4-parameters (Blast4-parameter*)>


<!ELEMENT Blast4-phi-alignments (
        Blast4-phi-alignments_num-alignments, 
        Blast4-phi-alignments_seq-locs)>

<!ELEMENT Blast4-phi-alignments_num-alignments (%INTEGER;)>

<!ELEMENT Blast4-phi-alignments_seq-locs (Seq-loc*)>


<!ELEMENT Blast4-value (
        Blast4-value_big-integer | 
        Blast4-value_bioseq | 
        Blast4-value_boolean | 
        Blast4-value_cutoff | 
        Blast4-value_integer | 
        Blast4-value_matrix | 
        Blast4-value_real | 
        Blast4-value_seq-align | 
        Blast4-value_seq-id | 
        Blast4-value_seq-loc | 
        Blast4-value_strand-type | 
        Blast4-value_string | 
        Blast4-value_big-integer-list | 
        Blast4-value_bioseq-list | 
        Blast4-value_boolean-list | 
        Blast4-value_cutoff-list | 
        Blast4-value_integer-list | 
        Blast4-value_matrix-list | 
        Blast4-value_real-list | 
        Blast4-value_seq-align-list | 
        Blast4-value_seq-id-list | 
        Blast4-value_seq-loc-list | 
        Blast4-value_strand-type-list | 
        Blast4-value_string-list | 
        Blast4-value_bioseq-set | 
        Blast4-value_seq-align-set | 
        Blast4-value_query-mask)>

<!-- scalar types -->
<!ELEMENT Blast4-value_big-integer (%INTEGER;)>

<!ELEMENT Blast4-value_bioseq (Bioseq)>

<!ELEMENT Blast4-value_boolean EMPTY>
<!ATTLIST Blast4-value_boolean value ( true | false ) #REQUIRED >

<!--
  


















  Other types in alphabetical order

  

















-->
<!ELEMENT Blast4-value_cutoff (Blast4-cutoff)>

<!ELEMENT Blast4-value_integer (%INTEGER;)>

<!ELEMENT Blast4-value_matrix (PssmWithParameters)>

<!ELEMENT Blast4-value_real (%REAL;)>

<!ELEMENT Blast4-value_seq-align (Seq-align)>

<!ELEMENT Blast4-value_seq-id (Seq-id)>

<!ELEMENT Blast4-value_seq-loc (Seq-loc)>

<!ELEMENT Blast4-value_strand-type (Blast4-strand-type)>

<!ELEMENT Blast4-value_string (#PCDATA)>

<!-- lists of scalar types -->
<!ELEMENT Blast4-value_big-integer-list (Blast4-value_big-integer-list_E*)>


<!ELEMENT Blast4-value_big-integer-list_E (%INTEGER;)>

<!ELEMENT Blast4-value_bioseq-list (Bioseq*)>

<!ELEMENT Blast4-value_boolean-list (Blast4-value_boolean-list_E*)>


<!ELEMENT Blast4-value_boolean-list_E EMPTY>
<!ATTLIST Blast4-value_boolean-list_E value ( true | false ) #REQUIRED >


<!ELEMENT Blast4-value_cutoff-list (Blast4-cutoff*)>

<!ELEMENT Blast4-value_integer-list (Blast4-value_integer-list_E*)>


<!ELEMENT Blast4-value_integer-list_E (%INTEGER;)>

<!ELEMENT Blast4-value_matrix-list (PssmWithParameters*)>

<!ELEMENT Blast4-value_real-list (Blast4-value_real-list_E*)>


<!ELEMENT Blast4-value_real-list_E (%REAL;)>

<!ELEMENT Blast4-value_seq-align-list (Seq-align*)>

<!ELEMENT Blast4-value_seq-id-list (Seq-id*)>

<!ELEMENT Blast4-value_seq-loc-list (Seq-loc*)>

<!ELEMENT Blast4-value_strand-type-list (Blast4-strand-type*)>

<!ELEMENT Blast4-value_string-list (Blast4-value_string-list_E*)>


<!ELEMENT Blast4-value_string-list_E (#PCDATA)>

<!-- imported collection types -->
<!ELEMENT Blast4-value_bioseq-set (Bioseq-set)>

<!ELEMENT Blast4-value_seq-align-set (Seq-align-set)>

<!--
 Intended to represent user-provided masking locations for a single query
 sequence (name field in Blast4-parameter should be "LCaseMask").
 Multiple Blast4-parameters of this type are needed to specify masking
 locations for multiple queries.
-->
<!ELEMENT Blast4-value_query-mask (Blast4-mask)>

