/**
* Only use if you know what you are doing!
- *
+ *
*/
public BasicSequence( final String identifier, final String mol_sequence, final TYPE type ) {
+ check( identifier, mol_sequence );
+ _mol_sequence = mol_sequence.toCharArray();
+ _identifier = identifier;
+ _type = type;
+ }
+
+ private static final void check( final String identifier, final String mol_sequence ) {
if ( ForesterUtil.isEmpty( identifier ) ) {
throw new IllegalArgumentException( "identifier of sequence cannot be empty" );
}
if ( ForesterUtil.isEmpty( mol_sequence ) ) {
throw new IllegalArgumentException( "molecular sequence cannot be empty" );
}
- _mol_sequence = mol_sequence.toCharArray();
- _identifier = identifier;
- _type = type;
}
/**
* Only use if you know what you are doing!
- *
+ *
*/
public BasicSequence( final String identifier, final char[] mol_sequence, final TYPE type ) {
if ( ForesterUtil.isEmpty( identifier ) ) {
return new BasicSequence( new String( seq.getIdentifier() ), s, seq.getType() );
}
+ public static MolecularSequence createSequence( final String identifier, final String mol_sequence ) {
+ check( identifier, mol_sequence );
+ final TYPE type = ForesterUtil.guessMolecularSequenceType( mol_sequence );
+ final String re;
+ final char repl;
+ if ( type == TYPE.AA ) {
+ re = AA_REGEXP;
+ repl = UNSPECIFIED_AA;
+ }
+ else if ( type == TYPE.DNA ) {
+ re = DNA_REGEXP;
+ repl = UNSPECIFIED_NUC;
+ }
+ else if ( type == TYPE.RNA ) {
+ re = RNA_REGEXP;
+ repl = UNSPECIFIED_NUC;
+ }
+ else {
+ throw new IllegalArgumentException( "could not determine sequence type for: " + mol_sequence);
+ }
+ return new BasicSequence( identifier, mol_sequence.toUpperCase().replaceAll( "\\.", GAP_STR )
+ .replaceAll( re, Character.toString( repl ) ), type );
+ }
+
+ public static MolecularSequence createGeneralSequence( final String identifier, final String mol_sequence ) {
+ check( identifier, mol_sequence );
+ return new BasicSequence( identifier, mol_sequence.toUpperCase().replaceAll( "\\.", GAP_STR
+ ), TYPE.GENERAL );
+ }
+
public static MolecularSequence createAaSequence( final String identifier, final String mol_sequence ) {
+ check( identifier, mol_sequence );
return new BasicSequence( identifier, mol_sequence.toUpperCase().replaceAll( "\\.", GAP_STR )
- .replaceAll( AA_REGEXP, Character.toString( UNSPECIFIED_AA ) ), TYPE.AA );
+ .replaceAll( AA_REGEXP, Character.toString( UNSPECIFIED_AA ) ), TYPE.AA );
}
public static MolecularSequence createDnaSequence( final String identifier, final String mol_sequence ) {
+ check( identifier, mol_sequence );
return new BasicSequence( identifier, mol_sequence.toUpperCase().replaceAll( "\\.", GAP_STR )
- .replaceAll( DNA_REGEXP, Character.toString( UNSPECIFIED_NUC ) ), TYPE.DNA );
+ .replaceAll( DNA_REGEXP, Character.toString( UNSPECIFIED_NUC ) ), TYPE.DNA );
}
public static MolecularSequence createRnaSequence( final String identifier, final String mol_sequence ) {
+ check( identifier, mol_sequence );
return new BasicSequence( identifier, mol_sequence.toUpperCase().replaceAll( "\\.", GAP_STR )
- .replaceAll( RNA_REGEXP, Character.toString( UNSPECIFIED_NUC ) ), TYPE.RNA );
+ .replaceAll( RNA_REGEXP, Character.toString( UNSPECIFIED_NUC ) ), TYPE.RNA );
}
@Override