Пример #1
0
/// \brief TODOCUMENT
alignment cath::align::residue_name_align_and_residue_score_if_multi(const residue_name_vec_vec &arg_residue_lists,  ///< TODOCUMENT
                                                                     const residue_scorer       &arg_residue_scorer, ///< TODOCUMENT
                                                                     const protein_list         &arg_proteins        ///< TODOCUMENT
                                                                     ) {
	const size_t num_proteins = arg_proteins.size();
	return (num_proteins > 1) ? residue_name_align_and_residue_score( arg_residue_lists, arg_residue_scorer, arg_proteins )
	                          : residue_name_aligner::residue_name_align( arg_residue_lists );
}
Пример #2
0
pair<record_scores_scan_action, scan_metrics> single_pair::do_perform_scan(const protein_list &arg_query_protein_list, ///< TODOCUMENT,
                                                                           const protein_list &arg_match_protein_list  ///< TODOCUMENT
                                                                           ) const {
	if ( arg_query_protein_list.size() != 1 || arg_match_protein_list.size() != 1 ) {
		BOOST_THROW_EXCEPTION(invalid_argument_exception("Unable to perform single_pair scan because the two protein_lists don't both contain one entry"));
	}

	const auto angle_radius = make_angle_from_degrees<detail::angle_base_type>( 120 );
	const auto the_scan_policy = make_scan_policy(
		make_res_pair_keyer(
			res_pair_from_phi_keyer_part  { angle_radius },
			res_pair_from_psi_keyer_part  { angle_radius },
			res_pair_to_phi_keyer_part    { angle_radius },
			res_pair_to_psi_keyer_part    { angle_radius },
			res_pair_index_dirn_keyer_part{},
//			res_pair_orient_keyer_part    {},
			res_pair_view_x_keyer_part    { 12.65f },
			res_pair_view_y_keyer_part    { 12.65f },
			res_pair_view_z_keyer_part    { 12.65f }
		),
		make_default_quad_criteria(),
		scan_stride{ 4, 4, 2, 2 }
	);

	const auto the_query_set = make_scan_query_set( the_scan_policy, arg_query_protein_list );
	const auto the_index     = make_scan_index    ( the_scan_policy, arg_match_protein_list );

	record_scores_scan_action the_action(
		arg_query_protein_list.size(),
		arg_match_protein_list.size()
	);

	const auto scan_duration  = the_query_set.do_magic( the_index, the_action );
//	BOOST_LOG_TRIVIAL( warning ) << "Did magic - took " << do_magic_durn << "s (" << 1.0 / do_magic_durn << "/s)";

	const scan_metrics the_metrics{
		the_query_set.get_structures_build_durn_and_size(),
		the_query_set.get_index_build_durn_and_size(),
		the_index.get_structures_build_durn_and_size(),
		the_index.get_index_build_durn_and_size(),
		scan_duration
	};

	return make_pair( the_action, the_metrics );
}
Пример #3
0
/// \brief Parse a FASTA format input into an alignment
///
/// This version of read_alignment_from_fasta() doesn't take names to find within the parsed IDS
/// so it is less safe than the other version.
///
/// \relates alignment
alignment cath::align::read_alignment_from_fasta(istream            &arg_istream,  ///< The istream from which to read the FASTA input for parsing
                                                 const protein_list &arg_proteins, ///< TODOCUMENT
                                                 ostream            &arg_stderr    ///< An ostream to which any warnings should be output (currently unused)
                                                 ) {
	return read_alignment_from_fasta( arg_istream, get_amino_acid_lists( arg_proteins ), str_vec( arg_proteins.size() ), arg_stderr );
}
Пример #4
0
/// \brief Parse a FASTA format input into an alignment
///
/// This version of read_alignment_from_fasta() doesn't take names to find within the parsed IDS
/// so it is less safe than the other version.
///
/// \relates alignment
alignment cath::align::read_alignment_from_fasta_file(const path         &arg_fasta_file, ///< The file from which to read the FASTA input for parsing
                                                      const protein_list &arg_proteins,   ///< TODOCUMENT
                                                      ostream            &arg_stderr      ///< An ostream to which any warnings should be output (currently unused)
                                                      ) {
	return read_alignment_from_fasta_file( arg_fasta_file, arg_proteins, str_vec( arg_proteins.size() ), arg_stderr );
}