Added a function to get families only for a given list of samples.
This commit is contained in:
parent
b1dd632d5d
commit
5c2595701c
|
|
@ -142,17 +142,29 @@ public class SampleDB {
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
public final Map<String, Set<Sample>> getFamilies() {
|
public final Map<String, Set<Sample>> getFamilies() {
|
||||||
|
return getFamilies(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns a map from family ID -> set of family members for all samples in sampleIds with
|
||||||
|
* non-null family ids
|
||||||
|
*
|
||||||
|
* @param sampleIds - all samples to include. If null is passed then all samples are returned.
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public final Map<String, Set<Sample>> getFamilies(Collection<String> sampleIds) {
|
||||||
final Map<String, Set<Sample>> families = new TreeMap<String, Set<Sample>>();
|
final Map<String, Set<Sample>> families = new TreeMap<String, Set<Sample>>();
|
||||||
|
|
||||||
for ( final Sample sample : samples.values() ) {
|
for ( final Sample sample : samples.values() ) {
|
||||||
final String famID = sample.getFamilyID();
|
if(sampleIds != null && sampleIds.contains(sample.getID())){
|
||||||
if ( famID != null ) {
|
final String famID = sample.getFamilyID();
|
||||||
if ( ! families.containsKey(famID) )
|
if ( famID != null ) {
|
||||||
families.put(famID, new TreeSet<Sample>());
|
if ( ! families.containsKey(famID) )
|
||||||
families.get(famID).add(sample);
|
families.put(famID, new TreeSet<Sample>());
|
||||||
|
families.get(famID).add(sample);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return families;
|
return families;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue