  Motivated by applications in polymer-based data storage, we study the problem
of reconstructing a string from part of its composition multiset. We give a
full description of the structure of the strings that cannot be uniquely
reconstructed (up to reversal) from their multiset of all of their
prefix-suffix compositions. Leveraging this description, we prove that for all
$n\ge 6$, there exists a string of length $n$ that cannot be uniquely
reconstructed up to reversal. Moreover, for all $n\ge 6$, we explicitly
construct the set consisting of all length $n$ strings that can be uniquely
reconstructed up to reversal. As a by product, we obtain that any binary string
can be constructed using Dyck strings and Catalan-Bertrand strings.
  For any given string $\bm{s}$, we provide a method to explicitly construct
the set of all strings with the same prefix-suffix composition multiset as
$\bm{s}$, as well as a formula for the size of this set. As an application, we
construct a composition code of maximal size. Furthermore, we construct two
classes of composition codes which can respectively correct composition missing
errors and mass reducing substitution errors.
  In addition, we raise two new problems: reconstructing a string from its
composition multiset when at most a constant number of substring compositions
are lost; reconstructing a string when only given its compositions of
substrings of length at most $r$. For each of these setups, we give suitable
codes under some conditions.
