Skip to content

Commit 201e1b8

Browse files
committed
Merge remote-tracking branch 'main/master'
2 parents 30506eb + 906eb6e commit 201e1b8

File tree

39 files changed

+895
-289
lines changed

39 files changed

+895
-289
lines changed

.travis.yml

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
language: java
22
jdk:
3-
- oraclejdk8
3+
- oraclejdk8
44
sudo: false
5-
#after_success:
6-
# - mvn clean cobertura:cobertura coveralls:report
5+
cache:
6+
directories:
7+
- "$HOME/.m2"
8+
before_install:
9+
- if [ ! -z "$GPG_SECRET_KEYS" ]; then echo $GPG_SECRET_KEYS | base64 --decode | $GPG_EXECUTABLE --import; fi
10+
- if [ ! -z "$GPG_OWNERTRUST" ]; then echo $GPG_OWNERTRUST | base64 --decode | $GPG_EXECUTABLE --import-ownertrust; fi
11+
after_success:
12+
- '[[ $TRAVIS_BRANCH == "master" ]] && { mvn deploy --settings travis-settings.xml -DskipTests=true -B ; };'
13+
env:
14+
global:
15+
- secure: MkIoyU3GmlgDRhO0n1lDKvZ/k0myVY3IsFTRNUFjaBBpohLyOBrs5L8gYmfnHYHB/LvJsP6EWA6i0wCchy8hU/2pn66T12K1+WZHyqCe7RRz2kgcvVgMXTsHgvVyZ3dERcBfEDeZENzEYCYADaysT+A73ofWdJemOqfa7IFEb80=
16+
- secure: it5av1icAvJn/6UI0aWS23m+En0ij1hCiPKw1QIbDLCE3oJOE4nHR8qINcnontH4XUQYTkmekStDkXj0WVVgp08zArj9o018XBtadYY+15h2QZBBAIpYb3UdlJoQfkcAx8yCv59BMd/u6DhMtcKSTHptVWvsLAS7YGW5hR6ZNYA=

biojava-core/src/main/java/org/biojava/nbio/core/alignment/SimpleAlignedSequence.java

Lines changed: 78 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.biojava.nbio.core.sequence.location.template.Location;
3232
import org.biojava.nbio.core.sequence.location.template.Point;
3333
import org.biojava.nbio.core.sequence.template.*;
34+
import org.biojava.nbio.core.util.Equals;
3435

3536
import java.io.Serializable;
3637
import java.util.ArrayList;
@@ -60,7 +61,9 @@ public class SimpleAlignedSequence<S extends Sequence<C>, C extends Compound> im
6061
// cached (lazily initialized)
6162
private int numGaps = -1;
6263
private int numGapPositions = -1;
63-
private int[] alignmentFromSequence, sequenceFromAlignment;
64+
65+
private int[] alignmentFromSequence;
66+
private int[] sequenceFromAlignment;
6467

6568
/**
6669
* Creates an {@link AlignedSequence} for the given {@link Sequence} in a global alignment.
@@ -132,25 +135,35 @@ public void clearCache() {
132135
sequenceFromAlignment = null;
133136
}
134137

135-
@Override
136-
public int getAlignmentIndexAt(int sequenceIndex) {
137-
if (alignmentFromSequence == null) {
138-
alignmentFromSequence = new int[original.getLength()];
139-
int s = 1, a = 1;
140-
for (int i = 0; i < numBefore; i++, s++) {
141-
alignmentFromSequence[s - 1] = a;
142-
}
143-
for (; s <= alignmentFromSequence.length && a <= length; s++, a++) {
144-
while (a <= length && isGap(a)) {
145-
a++;
146-
}
147-
alignmentFromSequence[s - 1] = a;
148-
}
149-
a--;
150-
for (int i = 0; i < numAfter; i++, s++) {
151-
alignmentFromSequence[s - 1] = a;
138+
private void setAlignmentFromSequence() {
139+
alignmentFromSequence = new int[original.getLength()];
140+
int s = 1, a = 1;
141+
for (int i = 0; i < numBefore; i++, s++) {
142+
alignmentFromSequence[s - 1] = a;
143+
}
144+
for (; s <= alignmentFromSequence.length && a <= length; s++, a++) {
145+
while (a <= length && isGap(a)) {
146+
a++;
152147
}
148+
alignmentFromSequence[s - 1] = a;
149+
}
150+
a--;
151+
for (int i = 0; i < numAfter; i++, s++) {
152+
alignmentFromSequence[s - 1] = a;
153153
}
154+
}
155+
156+
@Override
157+
public int[] getAlignmentFromSequence() {
158+
if (alignmentFromSequence == null)
159+
setAlignmentFromSequence();
160+
return alignmentFromSequence;
161+
}
162+
163+
@Override
164+
public int getAlignmentIndexAt(int sequenceIndex) {
165+
if (alignmentFromSequence == null)
166+
setAlignmentFromSequence();
154167
return alignmentFromSequence[sequenceIndex - 1];
155168
}
156169

@@ -197,21 +210,31 @@ public int getOverlapCount() {
197210
return 1;
198211
}
199212

200-
@Override
201-
public int getSequenceIndexAt(int alignmentIndex) {
202-
if (sequenceFromAlignment == null) {
203-
sequenceFromAlignment = new int[length];
204-
int a = 1, s = numBefore + 1;
205-
for (int i = 0; i < getStart().getPosition(); i++, a++) {
206-
sequenceFromAlignment[a - 1] = s;
207-
}
208-
for (; a <= length; a++) {
209-
if (!isGap(a)) {
210-
s++;
211-
}
212-
sequenceFromAlignment[a - 1] = s;
213+
private void setSequenceFromAlignment() {
214+
sequenceFromAlignment = new int[length];
215+
int a = 1, s = numBefore + 1;
216+
for (int i = 0; i < getStart().getPosition(); i++, a++) {
217+
sequenceFromAlignment[a - 1] = s;
218+
}
219+
for (; a <= length; a++) {
220+
if (!isGap(a)) {
221+
s++;
213222
}
223+
sequenceFromAlignment[a - 1] = s;
214224
}
225+
}
226+
227+
@Override
228+
public int[] getSequenceFromAlignment() {
229+
if (sequenceFromAlignment == null)
230+
setSequenceFromAlignment();
231+
return sequenceFromAlignment;
232+
}
233+
234+
@Override
235+
public int getSequenceIndexAt(int alignmentIndex) {
236+
if (sequenceFromAlignment == null)
237+
setSequenceFromAlignment();
215238
return sequenceFromAlignment[alignmentIndex - 1];
216239
}
217240

@@ -269,6 +292,30 @@ public List<C> getAsList() {
269292
return compounds;
270293
}
271294

295+
@Override
296+
public boolean equals(Object o){
297+
298+
if(! Equals.classEqual(this, o)) {
299+
return false;
300+
}
301+
302+
Sequence<C> other = (Sequence<C>)o;
303+
if ( original.getAsList().size() != other.getAsList().size())
304+
return false;
305+
306+
for ( int i = 0 ; i< original.getAsList().size() ; i++){
307+
if ( ! original.getAsList().get(i).equalsIgnoreCase(other.getAsList().get(i)))
308+
return false;
309+
}
310+
return true;
311+
}
312+
313+
@Override
314+
public int hashCode(){
315+
String s = getSequenceAsString();
316+
return s.hashCode();
317+
}
318+
272319
@Override
273320
public C getCompoundAt(int alignmentIndex) {
274321
return alignmentIndex >= 1 && alignmentIndex <= length && isGap(alignmentIndex) ?

biojava-core/src/main/java/org/biojava/nbio/core/alignment/template/AlignedSequence.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,18 @@ enum Step { COMPOUND, GAP }
4747
*/
4848
void clearCache();
4949

50+
/** Returns the alignment.
51+
*
52+
* @return the alignment
53+
*/
54+
int[] getAlignmentFromSequence();
55+
56+
/** Returns the sequence positions at each alignment index
57+
*
58+
* @return array of the sequence positions
59+
*/
60+
int[] getSequenceFromAlignment();
61+
5062
/**
5163
* Returns the column index within an alignment corresponding to the given index in the original {@link Sequence}.
5264
* Both indices are 1-indexed and inclusive.

biojava-core/src/main/java/org/biojava/nbio/core/sequence/loader/SequenceFileProxyLoader.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import org.biojava.nbio.core.sequence.io.template.SequenceParserInterface;
3232
import org.biojava.nbio.core.sequence.storage.SequenceAsStringHelper;
3333
import org.biojava.nbio.core.sequence.template.*;
34+
import org.biojava.nbio.core.util.Equals;
3435

3536
import java.io.BufferedReader;
3637
import java.io.File;
@@ -218,6 +219,38 @@ public List<C> getAsList() {
218219

219220
}
220221

222+
@Override
223+
public boolean equals(Object o) {
224+
225+
if(! Equals.classEqual(this, o)) {
226+
return false;
227+
}
228+
229+
Sequence<C> other = (Sequence<C>)o;
230+
if ( other.getCompoundSet() != getCompoundSet())
231+
return false;
232+
233+
List<C> rawCompounds = getAsList();
234+
List<C> otherCompounds = other.getAsList();
235+
236+
if ( rawCompounds.size() != otherCompounds.size())
237+
return false;
238+
239+
for (int i = 0 ; i < rawCompounds.size() ; i++){
240+
Compound myCompound = rawCompounds.get(i);
241+
Compound otherCompound = otherCompounds.get(i);
242+
if ( ! myCompound.equalsIgnoreCase(otherCompound))
243+
return false;
244+
}
245+
return true;
246+
}
247+
248+
@Override
249+
public int hashCode(){
250+
String s = getSequenceAsString();
251+
return s.hashCode();
252+
}
253+
221254
/**
222255
*
223256
* @param bioBegin

biojava-core/src/main/java/org/biojava/nbio/core/sequence/loader/StringProxySequenceReader.java

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import org.biojava.nbio.core.sequence.Strand;
3131
import org.biojava.nbio.core.sequence.storage.SequenceAsStringHelper;
3232
import org.biojava.nbio.core.sequence.template.*;
33+
import org.biojava.nbio.core.util.Equals;
3334

3435
import java.util.ArrayList;
3536
import java.util.Iterator;
@@ -160,4 +161,36 @@ public int countCompounds(C... compounds) {
160161
public SequenceView<C> getInverse() {
161162
return SequenceMixin.inverse(this);
162163
}
164+
165+
@Override
166+
public boolean equals(Object o){
167+
168+
if(! Equals.classEqual(this, o)) {
169+
return false;
170+
}
171+
172+
Sequence<C> other = (Sequence<C>)o;
173+
if ( other.getCompoundSet() != getCompoundSet())
174+
return false;
175+
176+
List<C> rawCompounds = getAsList();
177+
List<C> otherCompounds = other.getAsList();
178+
179+
if ( rawCompounds.size() != otherCompounds.size())
180+
return false;
181+
182+
for (int i = 0 ; i < rawCompounds.size() ; i++){
183+
Compound myCompound = rawCompounds.get(i);
184+
Compound otherCompound = otherCompounds.get(i);
185+
if ( ! myCompound.equalsIgnoreCase(otherCompound))
186+
return false;
187+
}
188+
return true;
189+
}
190+
191+
@Override
192+
public int hashCode(){
193+
String s = getSequenceAsString();
194+
return s.hashCode();
195+
}
163196
}

biojava-core/src/main/java/org/biojava/nbio/core/sequence/loader/UniprotProxySequenceReader.java

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -24,26 +24,6 @@
2424
*/
2525
package org.biojava.nbio.core.sequence.loader;
2626

27-
import java.io.BufferedReader;
28-
import java.io.ByteArrayInputStream;
29-
import java.io.File;
30-
import java.io.FileNotFoundException;
31-
import java.io.FileReader;
32-
import java.io.FileWriter;
33-
import java.io.IOException;
34-
import java.io.InputStreamReader;
35-
import java.net.HttpURLConnection;
36-
import java.net.URL;
37-
import java.rmi.RemoteException;
38-
import java.util.ArrayList;
39-
import java.util.Iterator;
40-
import java.util.LinkedHashMap;
41-
import java.util.List;
42-
import java.util.regex.Pattern;
43-
44-
import javax.xml.parsers.ParserConfigurationException;
45-
import javax.xml.xpath.XPathExpressionException;
46-
4727
import org.biojava.nbio.core.exceptions.CompoundNotFoundException;
4828
import org.biojava.nbio.core.sequence.AccessionID;
4929
import org.biojava.nbio.core.sequence.DataSource;
@@ -55,19 +35,27 @@
5535
import org.biojava.nbio.core.sequence.features.DatabaseReferenceInterface;
5636
import org.biojava.nbio.core.sequence.features.FeaturesKeyWordInterface;
5737
import org.biojava.nbio.core.sequence.storage.SequenceAsStringHelper;
58-
import org.biojava.nbio.core.sequence.template.Compound;
59-
import org.biojava.nbio.core.sequence.template.CompoundSet;
60-
import org.biojava.nbio.core.sequence.template.ProxySequenceReader;
61-
import org.biojava.nbio.core.sequence.template.SequenceMixin;
62-
import org.biojava.nbio.core.sequence.template.SequenceProxyView;
63-
import org.biojava.nbio.core.sequence.template.SequenceView;
38+
import org.biojava.nbio.core.sequence.template.*;
39+
import org.biojava.nbio.core.util.Equals;
6440
import org.biojava.nbio.core.util.XMLHelper;
6541
import org.slf4j.Logger;
6642
import org.slf4j.LoggerFactory;
6743
import org.w3c.dom.Document;
6844
import org.w3c.dom.Element;
6945
import org.xml.sax.SAXException;
7046

47+
import javax.xml.parsers.ParserConfigurationException;
48+
import javax.xml.xpath.XPathExpressionException;
49+
import java.io.*;
50+
import java.net.HttpURLConnection;
51+
import java.net.URL;
52+
import java.rmi.RemoteException;
53+
import java.util.ArrayList;
54+
import java.util.Iterator;
55+
import java.util.LinkedHashMap;
56+
import java.util.List;
57+
import java.util.regex.Pattern;
58+
7159
/**
7260
*
7361
* Pass in a Uniprot ID and this ProxySequenceReader when passed to a ProteinSequence will get the sequence data and other data elements
@@ -243,6 +231,38 @@ public List<C> getAsList() {
243231
return this.parsedCompounds;
244232
}
245233

234+
@Override
235+
public boolean equals(Object o){
236+
237+
if(! Equals.classEqual(this, o)) {
238+
return false;
239+
}
240+
241+
Sequence<C> other = (Sequence<C>)o;
242+
if ( other.getCompoundSet() != getCompoundSet())
243+
return false;
244+
245+
List<C> rawCompounds = getAsList();
246+
List<C> otherCompounds = other.getAsList();
247+
248+
if ( rawCompounds.size() != otherCompounds.size())
249+
return false;
250+
251+
for (int i = 0 ; i < rawCompounds.size() ; i++){
252+
Compound myCompound = rawCompounds.get(i);
253+
Compound otherCompound = otherCompounds.get(i);
254+
if ( ! myCompound.equalsIgnoreCase(otherCompound))
255+
return false;
256+
}
257+
return true;
258+
}
259+
260+
@Override
261+
public int hashCode(){
262+
String s = getSequenceAsString();
263+
return s.hashCode();
264+
}
265+
246266
/**
247267
*
248268
* @return

biojava-core/src/main/java/org/biojava/nbio/core/sequence/storage/ArrayListSequenceReader.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ public String getSequenceAsString() {
8585
return getSequenceAsString(1, getLength(), Strand.POSITIVE);
8686
}
8787

88+
8889
/**
8990
*
9091
* @param begin

0 commit comments

Comments
 (0)