W498 Nucleic Acids Research, 2008, Vol. 36, Web Server issue the input chemical shift ﬁle is initially partitioned into two parts, a sequence-only ﬁle and a sequence plus chemical shift ﬁle. The sequence ﬁle is searched against a nonre- dundant database of PDB sequences and secondary structures from PPT-DB (21) using BLAST (22) with a length-dependent Expect cutoﬀ, ranging from 10 1 (for <11 residues) to 10 5 (for >50 residues). This step is done to identify short sequence fragments of known protein structures that exhibit good (>35% over 20+ residues) sequence identity to the query sequence. This step allows CS23D to ﬁnd a series of maximum-length sequence fragments that matches the query sequence. At the same time, the chemical shift ﬁle is submitted to three diﬀerent chemical shift analysis programs: RefCor (17,18), CSI (15) and PREDITOR (16). The RCI program is used to re-reference the input chemical shifts, the CSI program is used to calculated secondary structure loca- tions from the input chemical shifts and PREDITOR is used to calculate backbone and side-chain torsion angles. Checking chemical shift ﬁles for proper referencing is critical to obtaining accurate information about protein structures. Furthermore, many operations in CS23D (including CSI and PREDITOR) depend on having correctly referenced chemical shifts. PREDITOR is a locally developed program that uses chemical shift similarity over short protein fragments and a database of known protein torsion angles to generate backbone and side-chain torsion angles. It has been shown to be very fast (10 sec) and accurate (85% of residues within 158). The backbone torsion angles derived from PREDITOR are then mapped into nine diﬀerent regions in Ramachandran space, each of which are assigned speciﬁc letters. The details of the torsion-angle-letter mapping scheme are shown in the CS23D Documentation web page. By converting pairs of torsion angles into letters, it is possible to use a third program called THRIFTY (11) to perform chemical shift threading. THRIFTY uses the ‘sequence’ of shift-derived torsion angles generated by PREDITOR and searches against a database of 18 500 nonredundant PDB structures that have had their struc- tures converted to the previously described nine-letter Ramachandran code. Once again, BLAST, with similar scoring cutoﬀs to that used in the sequence alignment step, is used to identify fragments of varying length in the CS23D torsion-angle database that maximally match the query torsion angles. This chemical threading process can also be used at a global level to identify potential protein folds that match the chemical shift information contained in the query protein assignments. THRIFTY is also used to perform a secondary structure alignment between the secondary structure of the query protein (calculated by CSI) and a large database of known protein secondary structures maintained at the PPT-DB (21). This secondary structure threading is used to evaluate and select subfrag- ments that will be used to assemble the ﬁnal 3D structure. Subfragments identiﬁed by the sequence alignment and chemical shift threading schemes are then compared, weighted and assembled into an initial 3D structure using a program called SFassembler (subfragment assembler). SFassembler evaluates each of the fragments found by the sequence alignment, secondary structure threading and torsion angle threading steps. Four cases are considered: (i) if the same or similar fragments are found in all three cases (with sequence or secondary structure sharing >50% identity), SFassembler uses the coordinates of the frag- ment from the sequence-matched PDB ﬁle; (ii) if there are signiﬁcant diﬀerences (<50% secondary structure identity) between the secondary structures found for the sequence-derived match and the shift-derived match, SFassembler uses the coordinates of the shift-matched PDB ﬁle; (iii) if no signiﬁcantly matching sequence frag- ment is found, but a shift-based threading fragment match is found, the coordinates from the shift-matched fragment are used by SFassembler and (iv) if no fragment is found that has either a signiﬁcant sequence match or a signiﬁcant chemical shift match, then the torsion angles calculated from PREDITOR are used to generate the coordinates (via PEPMAKE). After these checks have been per- formed, SFassembler takes all selected PDB fragments or PREDITOR-generated coordinate ﬁles and concatenates them together into a single 3D backbone structure. For instance, if one fragment of the query protein (say residues 1–55) meets criteria #1, another fragment (say residues 56–93) meets criteria #3 and a third fragment (say residues 94–106) meets criteria #4, SFassembler will generate coordinates and concatenate all three segments together. Backbone gaps are ﬁlled in using a technique called cyclic coordinate descent (23), while side chains are added using standard homology modeling techniques. Because no length limits are placed on the size of the matching subfragments, SFassembler can sometimes func- tion as a homology modeling program, particularly if a single large and contiguous region of sequence similarity is found. However, unlike conventional homology modeling programs, SFassembler is also capable of generating structures for tandem, multi-domain proteins, for chimeric proteins, for proteins that fall far below sequence thresh- olds required for standard homology modeling, and most importantly, for generating structural elements for which no structure template exists (see the ‘Gallery’ page on the CS23D home page for examples). The initial structure generated by SFassembler is evaluated by calculating a weighted correlation coeﬃcient between the observed shifts and the calculated shifts using SHIFTX (24). If this correlation coeﬃcient is too low or if the concatenated structure has <40% of the structure assembled by PREDITOR-generated coordinates (criteria #4), the structure is accepted and reﬁned using a locally developed chemical shift/energy reﬁnement program called GAfolder. After reﬁnement, the PDB coordinates of the 10 lowest energy structures are mailed to the user along with the details of their evaluation and energy minimization. If the resulting structure fails these checks, it is discarded and a new structure is generated using Rosetta (25). Rosetta is used by CS23D as a fail-safe procedure to generate potential 3D folds when the query protein exhib- its absolutely no known sequence or chemical shift similarity over any part to any previously characterized protein. This will occur in about 5% of the cases handled by CS23D. Brieﬂy, Rosetta is a public domain, open