Skip to content

Commit c9ba6d1

Browse files
committed
Fix bug with flexible MultipleAlignments
1 parent d8c5d2f commit c9ba6d1

File tree

4 files changed

+27
-17
lines changed

4 files changed

+27
-17
lines changed

biojava-structure-gui/src/main/java/demo/DemoMultipleMC.java

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,10 @@
88

99
import org.biojava.nbio.structure.Atom;
1010
import org.biojava.nbio.structure.StructureException;
11+
import org.biojava.nbio.structure.align.StructureAlignment;
1112
import org.biojava.nbio.structure.align.ce.CeCPMain;
13+
import org.biojava.nbio.structure.align.ce.CeMain;
14+
import org.biojava.nbio.structure.align.fatcat.FatCatFlexible;
1215
import org.biojava.nbio.structure.align.gui.MultipleAlignmentDisplay;
1316
import org.biojava.nbio.structure.align.multiple.MultipleAlignment;
1417
import org.biojava.nbio.structure.align.multiple.mc.MultipleMcMain;
@@ -32,7 +35,11 @@ public static void main(String[] args) throws IOException, StructureException, I
3235
//Protein Kinases (CEMC paper)
3336
//List<String> names = Arrays.asList("1cdk.A", "1cja.A", "1csn", "1b6c.B", "1ir3.A", "1fgk.A", "1byg.A", "1hck", "1blx.A", "3erk", "1bmk.A", "1kob.A", "1tki.A", "1phk", "1a06");
3437
//DHFR (Gerstein 1998 paper)
35-
List<String> names = Arrays.asList("d1dhfa_", "8dfr", "d4dfra_", "3dfr");
38+
//List<String> names = Arrays.asList("d1dhfa_", "8dfr", "d4dfra_", "3dfr");
39+
//Beta-propeller (MATT paper)
40+
List<String> names = Arrays.asList("d1nr0a1", "d1nr0a2", "d1p22a2", "d1tbga_");
41+
//Beta-helix (MATT paper)
42+
//List<String> names = Arrays.asList("d1hm9a1", "d1kk6a_", "d1krra_", "d1lxaa_", "d1ocxa_", "d1qrea_", "d1xata_", "d3tdta_");
3643
//TIM barrels (MUSTA paper)
3744
//List<String> names = Arrays.asList("1tim.A", "1vzw", "1nsj", "3tha.A", "4enl", "2mnr", "7tim.A", "1tml", "1btc", "a1piia1", "6xia", "5rub.A", "2taa.B");
3845
//Calcium Binding (MUSTA paper)
@@ -73,9 +80,12 @@ public static void main(String[] args) throws IOException, StructureException, I
7380
}
7481

7582
//Here the multiple structural alignment algorithm comes in place to generate the alignment object
76-
MultipleMcMain algorithm = new MultipleMcMain(new CeCPMain());
83+
StructureAlignment pairwise = new FatCatFlexible();
84+
//StructureAlignment pairwise = new CeMain();
85+
MultipleMcMain algorithm = new MultipleMcMain(pairwise);
7786
MultipleMcParameters params = (MultipleMcParameters) algorithm.getParameters();
7887
params.setMinBlockLen(10);
88+
params.setGapExtension(20.0);
7989

8090
MultipleAlignment result = algorithm.align(atomArrays);
8191
result.getEnsemble().setStructureNames(names);

biojava-structure/src/main/java/demo/DemoMultipleMC.java

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99
import org.biojava.nbio.structure.Atom;
1010
import org.biojava.nbio.structure.StructureException;
11-
import org.biojava.nbio.structure.align.ce.CeCPMain;
11+
import org.biojava.nbio.structure.align.ce.CeMain;
1212
import org.biojava.nbio.structure.align.multiple.MultipleAlignment;
1313
import org.biojava.nbio.structure.align.multiple.mc.MultipleMcMain;
1414
import org.biojava.nbio.structure.align.multiple.mc.MultipleMcParameters;
@@ -27,14 +27,18 @@
2727
public class DemoMultipleMC {
2828

2929
public static void main(String[] args) throws IOException, StructureException, InterruptedException, ExecutionException {
30-
30+
3131
//Specify the structures to align
3232
//ASP-proteinases (CEMC paper)
3333
//List<String> names = Arrays.asList("3app", "4ape", "2apr", "5pep", "1psn", "4cms", "1bbs.A", "1smr.A", "2jxr.A", "1mpp", "2asi", "1am5");
3434
//Protein Kinases (CEMC paper)
3535
//List<String> names = Arrays.asList("1cdk.A", "1cja.A", "1csn", "1b6c.B", "1ir3.A", "1fgk.A", "1byg.A", "1hck", "1blx.A", "3erk", "1bmk.A", "1kob.A", "1tki.A", "1phk", "1a06");
3636
//DHFR (Gerstein 1998 paper)
37-
List<String> names = Arrays.asList("d1dhfa_", "8dfr", "d4dfra_", "3dfr");
37+
//List<String> names = Arrays.asList("d1dhfa_", "8dfr", "d4dfra_", "3dfr");
38+
//Beta-propeller (MATT paper)
39+
//List<String> names = Arrays.asList("d1nr0a1", "d1nr0a2", "d1p22a2", "d1tbga_");
40+
//Beta-helix (MATT paper)
41+
List<String> names = Arrays.asList("d1hm9a1", "d1kk6a_", "d1krra_", "d1lxaa_", "d1ocxa_", "d1qrea_", "d1xata_", "d3tdta_");
3842
//TIM barrels (MUSTA paper)
3943
//List<String> names = Arrays.asList("1tim.A", "1vzw", "1nsj", "3tha.A", "4enl", "2mnr", "7tim.A", "1tml", "1btc", "a1piia1", "6xia", "5rub.A", "2taa.B");
4044
//Calcium Binding (MUSTA paper)
@@ -63,27 +67,27 @@ public static void main(String[] args) throws IOException, StructureException, I
6367
//List<String> names = Arrays.asList("3b8e.A","2zxe.A", "3tlm.A","1iwo.A");
6468
//Ankyrin Repeats
6569
//List<String> names = Arrays.asList("d1n0ra_", "3ehq.A", "1awc.B"); //ankyrin
66-
70+
6771
//Load the CA atoms of the structures
6872
AtomCache cache = new AtomCache();
6973
List<Atom[]> atomArrays = new ArrayList<Atom[]>();
7074
for (String name:names) {
7175
atomArrays.add(cache.getAtoms(name));
7276
}
73-
77+
7478
//Here the multiple structural alignment algorithm comes in place to generate the alignment object
75-
MultipleMcMain algorithm = new MultipleMcMain(new CeCPMain());
79+
MultipleMcMain algorithm = new MultipleMcMain(new CeMain());
7680
MultipleMcParameters params = (MultipleMcParameters) algorithm.getParameters();
7781
params.setMinBlockLen(15);
7882
params.setMinAlignedStructures(10);
79-
83+
8084
MultipleAlignment result = algorithm.align(atomArrays);
8185
result.getEnsemble().setStructureNames(names);
82-
86+
8387
//Information about the alignment
8488
result.getEnsemble().setAlgorithmName(algorithm.getAlgorithmName());
8589
result.getEnsemble().setVersion(algorithm.getVersion());
86-
90+
8791
//Output the sequence alignment + transformations
8892
System.out.println(MultipleAlignmentWriter.toFatCat(result));
8993
//System.out.println(MultipleAlignmentWriter.toFASTA(result));

biojava-structure/src/main/java/org/biojava/nbio/structure/align/multiple/mc/MultipleMcMain.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
import org.biojava.nbio.structure.align.multiple.MultipleAlignmentEnsembleImpl;
2929
import org.biojava.nbio.structure.align.multiple.MultipleAlignmentImpl;
3030
import org.biojava.nbio.structure.align.multiple.util.MultipleAlignmentScorer;
31-
import org.biojava.nbio.structure.align.multiple.util.MultipleSuperimposer;
32-
import org.biojava.nbio.structure.align.multiple.util.ReferenceSuperimposer;
3331

3432
/**
3533
* Main class of the Java implementation of the Combinatorial Extension -
@@ -293,8 +291,6 @@ else if (str<ref){
293291
equivalencies.get(str).get(pos));
294292
}
295293
}
296-
MultipleSuperimposer imposer= new ReferenceSuperimposer(ref);
297-
imposer.superimpose(seed);
298294
return seed;
299295
}
300296

biojava-structure/src/main/java/org/biojava/nbio/structure/align/multiple/mc/MultipleMcParameters.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -126,8 +126,8 @@ public void reset() {
126126
randomSeed = 0;
127127
minBlockLen = 10;
128128
minAlignedStructures = 0;
129-
gapOpen = 10.0;
130-
gapExtension = 5.0;
129+
gapOpen = 20.0;
130+
gapExtension = 15.0;
131131
convergenceSteps = 0;
132132
nrThreads = 4;
133133
}

0 commit comments

Comments
 (0)