Skip to content

Commit

Permalink
Add support for transglutaminase (tg) cross-linker.
Browse files Browse the repository at this point in the history
  • Loading branch information
mriffle committed Sep 4, 2018
1 parent 364e87b commit c70b368
Show file tree
Hide file tree
Showing 2 changed files with 71 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
import org.yeastrc.xlink.linkable_positions.linkers.DFDNB;
import org.yeastrc.xlink.linkable_positions.linkers.ILinker;
import org.yeastrc.xlink.linkable_positions.linkers.SulfoSMCC;
import org.yeastrc.xlink.linkable_positions.linkers.Transglutaminase;

public class GetLinkerFactory {

Expand All @@ -35,7 +36,10 @@ public class GetLinkerFactory {
public static final String BUILT_IN_LINKER_EDC = "edc";
public static final String BUILT_IN_LINKER_DFDNB = "dfdnb";
public static final String BUILT_IN_LINKER_SULFO_SMCC = "sulfo-smcc";
public static final String BUILD_INT_LINKER_DSSO = "dsso";
public static final String BUILD_IN_LINKER_DSSO = "dsso";

public static final String BUILD_IN_LINKER_TG = "tg";
public static final String BUILD_IN_LINKER_transglutaminase = "transglutaminase";

public static final String BUILT_IN_LINKER_BS3_STY = "bs3.sty";
public static final String BUILT_IN_LINKER_DSS_STY = "dss.sty";
Expand All @@ -53,6 +57,7 @@ public class GetLinkerFactory {
private static ILinker LINKER_DFDNB = new DFDNB();
private static ILinker LINKER_SULFO_SMCC = new SulfoSMCC();
private static ILinker LINKER_DSSO = new DSSO();
private static ILinker LINKER_TG = new Transglutaminase();

private static ILinker LINKER_DSS_STY = new DSS_STY();
private static ILinker LINKER_BS3_STY = new BS3_STY();
Expand All @@ -70,7 +75,10 @@ public class GetLinkerFactory {
linkers.put( BUILT_IN_LINKER_EDC, LINKER_EDC );
linkers.put( BUILT_IN_LINKER_DFDNB, LINKER_DFDNB );
linkers.put( BUILT_IN_LINKER_SULFO_SMCC, LINKER_SULFO_SMCC);
linkers.put( BUILD_INT_LINKER_DSSO, LINKER_DSSO);
linkers.put( BUILD_IN_LINKER_DSSO, LINKER_DSSO);

linkers.put( BUILD_IN_LINKER_TG, LINKER_TG );
linkers.put( BUILD_IN_LINKER_transglutaminase, LINKER_TG );

linkers.put( BUILT_IN_LINKER_BS3_STY, LINKER_BS3_STY );
linkers.put( BUILT_IN_LINKER_DSS_STY, LINKER_DSS_STY );
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
package org.yeastrc.xlink.linkable_positions.linkers;

import java.util.Collection;
import java.util.HashSet;

import org.yeastrc.xlink.utils.ProteinSequenceUtils;

public class Transglutaminase implements ILinker {

@Override
public Collection<Integer> getLinkablePositions(String proteinSequence) throws Exception {

Collection<Integer> linkablePositions = ProteinSequenceUtils.getPositionsOfResidueForProteinSequence( proteinSequence, "K" );

linkablePositions.addAll( ProteinSequenceUtils.getPositionsOfResidueForProteinSequence( proteinSequence, "Q" ) );

return linkablePositions;
}

@Override
public Collection<Integer> getLinkablePositions( String querySequence, String subjectSequence, int subjectPosition ) throws Exception {

String subjectResidue = subjectSequence.substring( subjectPosition - 1, subjectPosition );
Collection<Integer> linkablePositions = new HashSet<Integer>();

if( subjectResidue.equals( "K" ) ) {

// lysines interact with E, D, and C-terminus
linkablePositions.addAll( ProteinSequenceUtils.getPositionsOfResidueForProteinSequence( querySequence, "Q" ) );

} else if( subjectResidue.equals( "Q" ) ) {

// E and D interact with K and the two N-terminal residues
linkablePositions.addAll( ProteinSequenceUtils.getPositionsOfResidueForProteinSequence( querySequence, "K" ) );

}

return linkablePositions;
}


@Override
public double getLinkerLength() {
return 0;
}

@Override
public Collection<String> getCrosslinkFormulas() {

Collection<String> formulas = new HashSet<>();
formulas.add( "-NH3" );

return formulas;
}

@Override
public String getCrosslinkFormula(double mass) throws Exception {
return "-NH3";
}

}

0 comments on commit c70b368

Please sign in to comment.