예제 #1
0
def test_getIsoformFeatures():

	c = create_network.CreateNetwork("test", "gencode")
	c._txs.add_node("ENST01.2", "1")
	c._txs.add_node("ENST02.2", "1")
	c._txs.add_node("ENST20.1", "1")
	c._txs.add_node("ENST08.1", "1")
	c._txs.add_node("ENST18.3", "2")

	assert not c._txs.nodes()["ENST20.1"]["Pfam"]
	assert not c._txs.nodes()["ENST08.1"]["IDR"]
	assert not c._txs.nodes()["ENST18.3"]["Prosite"]

	c.getIsoformFeatures(dataPath + "features")

	assert c._txs.nodes()["ENST01.2"]["Pfam"]["D1"] == {(1,2), (3,4)}
	assert len(c._txs.nodes()["ENST01.2"]["Pfam"]) == 1
	assert c._txs.nodes()["ENST02.2"]["Pfam"]["D1"] == {(1,2)}
	assert c._txs.nodes()["ENST02.2"]["Pfam"]["D2"] == {(3,4)}
	assert c._txs.nodes()["ENST02.2"]["Pfam"]["D4"] == {(5,8)}
	assert len(c._txs.nodes()["ENST02.2"]["Pfam"]) == 3
	assert c._txs.nodes()["ENST20.1"]["Pfam"]["D2"] == {(3,6)}
	assert len(c._txs.nodes()["ENST20.1"]["Pfam"]) == 1
	assert c._txs.nodes()["ENST08.1"]["IDR"]["I1"] == {(4,13)}
	assert c._txs.nodes()["ENST18.3"]["Prosite"]["P1"] == {(23,123)}

	with pytest.raises(SpadaError):
		c = create_network.CreateNetwork("test", "gencode")
		c.getIsoformFeatures(None)
예제 #2
0
def test_getDomainInteractions():

	c = create_network.CreateNetwork("test", "gencode")

	c._genes.add_node(gene_id = "A", gene_symbol = "")
	c._genes.add_node(gene_id = "B", gene_symbol = "")
	c._genes.add_node(gene_id = "C", gene_symbol = "")
	c._genes.add_edge(gene_id1 = "A", gene_id2 = "B")
	c._genes.add_edge(gene_id1 = "A", gene_id2 = "C")

	c._txs.add_node("A1.1", "A")
	c._txs.update_node("A1", "Pfam", (0,0), "D1")
	c._txs.update_node("A1", "Pfam", (0,0), "D2")
	c._txs.update_node("A1", "Pfam", (0,0), "D6")
	c._txs.add_node("A2.1", "A")
	c._txs.update_node("A2", "Pfam", (0,0), "D1")
	c._txs.update_node("A2", "Pfam", (0,0), "D3")
	c._txs.add_node("B1.1", "B")
	c._txs.update_node("B1", "Pfam", (0,0), "D4")
	c._txs.add_node("C1.1", "C")
	c._txs.update_node("C1", "Pfam", (0,0), "D5")

	c.getDomainInteractions(dataPath + "ddis")

	assert c._txs._net.has_edge("A1.1", "B1.1")
	assert c._txs._net["A1.1"]["B1.1"]["ddi"] == {frozenset({"D2","D4"}), frozenset({"D6","D4"})}
	assert c._txs._net.has_edge("A2.1", "C1.1")
	assert c._txs._net["A2.1"]["C1.1"]["ddi"] == {frozenset({"D3","D5"})}
	assert not c._txs._net.has_edge("A1.1", "A2.1")
	assert not c._txs._net.has_edge("B1.1", "C1.1")

	with pytest.raises(SpadaError):
		c = create_network.CreateNetwork("test", "gencode")
		c.getDomainInteractions(None)
예제 #3
0
def test_getIsoformSequences():

	c = create_network.CreateNetwork("test", "gencode")
	c._txs.add_node("ENST12.3", "1")
	c._txs.add_node("ENST08.1", "1")
	c._txs.add_node("ENST18.3", "2")
	c._txs.add_node("ENST02.2", "2")
	c._txs.add_node("ENST16.2", "3")
	c._txs.add_node("ENST01.2", "3")
	c._txs.add_node("ENST09.1", "3")
	c._txs.add_node("ENST13.5", "4")

	assert not c._txs.nodes()["ENST12.3"]["proteinSequence"]
	assert not c._txs.nodes()["ENST08.1"]["proteinSequence"]
	assert not c._txs.nodes()["ENST18.3"]["proteinSequence"]
	assert not c._txs.nodes()["ENST02.2"]["proteinSequence"]
	assert not c._txs.nodes()["ENST16.2"]["proteinSequence"]
	assert not c._txs.nodes()["ENST01.2"]["proteinSequence"]
	assert not c._txs.nodes()["ENST09.1"]["proteinSequence"]
	assert not c._txs.nodes()["ENST13.5"]["proteinSequence"]

	c.getIsoformSequences(dataPath + "fasta")

	assert c._txs.nodes()["ENST12.3"]["proteinSequence"] == "ASDFAFAFA"
	assert c._txs.nodes()["ENST08.1"]["proteinSequence"] == "ASDASDASDASDA"
	assert c._txs.nodes()["ENST18.3"]["proteinSequence"] == "ASFASFASF"
	assert c._txs.nodes()["ENST02.2"]["proteinSequence"] == "ASFASFAS"
	assert c._txs.nodes()["ENST16.2"]["proteinSequence"] == "ABCDEFGHI"
	assert c._txs.nodes()["ENST01.2"]["proteinSequence"] == "ASFSAFASFS"
	assert c._txs.nodes()["ENST09.1"]["proteinSequence"] == "ASFASFASF"
	assert c._txs.nodes()["ENST13.5"]["proteinSequence"] == "ASFASFASASFASF"

	with pytest.raises(SpadaError):
		c = create_network.CreateNetwork("test", "gencode")
		c.getIsoformSequences(None)
예제 #4
0
def test_init():

	c = create_network.CreateNetwork("test", "gencode")

	assert type(c._genes).__name__ == 'GENCODEGeneNetwork'
	assert type(c._txs).__name__ == 'GENCODETranscriptNetwork'

	c = create_network.CreateNetwork("test", "ucsc")
	assert type(c._genes).__name__ == 'UCSCGeneNetwork'
	assert type(c._txs).__name__ == 'UCSCTranscriptNetwork'

	with pytest.raises(SpadaError):
		create_network.CreateNetwork("test", "Unexistant")
예제 #5
0
def test_addAberrant():

	c = create_network.CreateNetwork("test", "gencode")
	c.addAberrant(dataPath + 'aberrant')

	assert c._txs.nodes()["ABC.1"]["gene_id"] == "ENSG08.4"
	assert c._txs.nodes()["DE_FG_HI.2"]["gene_id"] == "ENSG00.5"
	assert c._txs.nodes()["JKLM-.3"]["gene_id"] == "ENSG00.5"
예제 #6
0
def test_createNetworks():

	c = create_network.CreateNetwork("test", "gencode")
	c.createNetworks(dataPath + "gtf")

	assert len(c._genes.nodes()) == 16
	assert len(c._txs.nodes()) == 25
	assert len(c._txs.nodes()["ENST02.2"]["exons"]) == 6
	assert c._txs.nodes()["ENST02.2"]["strand"] == "+"
	assert c._txs.nodes()["ENST02.2"]["chr"] == "chr1"
	assert c._txs.nodes()["ENST02.2"]["CDS"] == [13000, 13023]
	assert len(c._txs.nodes()["ENST19.2"]["exons"]) == 1
	assert c._txs.nodes()["ENST19.2"]["strand"] == "-"
	assert c._txs.nodes()["ENST19.2"]["chr"] == "chr1"
	assert not c._txs.nodes()["ENST19.2"]["CDS"]
	assert not c._txs.nodes()["ENST19.2"]["main"]
	assert len(c._txs.nodes()["ENST12.3"]["exons"]) == 1
	assert c._txs.nodes()["ENST12.3"]["strand"] == "+"
	assert c._txs.nodes()["ENST12.3"]["chr"] == "chr1"
	assert c._txs.nodes()["ENST12.3"]["CDS"] == [69978, 70004]
	assert c._txs.nodes()["ENST12.3"]["main"]
	assert len([ x for x,i in c._txs.nodes(data=True) if i['main'] ]) == 3
	assert "ENSG999" in c._genes.nodes()
	assert "ENSG999" in c._genes.nodes()
	assert "ENST99.1" in c._txs.nodes()
	assert "ENST99.2" in c._txs.nodes()
	assert "ENST99.3" in c._txs.nodes()

	# test rejected genes, transcript and CDS
	assert "bad_status" not in c._genes.nodes()
	assert "bad_accepted_tag" not in c._txs.nodes()
	assert "bad_status" not in c._txs.nodes()
	assert "rejected_status" not in c._txs.nodes()
	assert "test" in c._genes.nodes()
	assert "test.1" in c._txs.nodes()
	assert c._txs.nodes()["test.1"]["CDS"] == None
	assert "ENST99.4" not in c._txs.nodes()
	assert "ENST99.5" not in c._txs.nodes()
	assert "ENST99.NA" not in c._txs.nodes()

	with pytest.raises(SpadaError):
		c = create_network.CreateNetwork("test", dataPath + 'annotation.pklz', new = False)
		c.createNetworks(dataPath + "gtf")
예제 #7
0
def test_getInteractions():

	c = create_network.CreateNetwork("test", "gencode")
	c._genes.add_node(gene_id = "A", gene_symbol = "HSPB8")
	c._genes.add_node(gene_id = "B", gene_symbol = "HSPB7")
	c._genes.add_node(gene_id = "C", gene_symbol = "RPIA")
	c._genes.add_node(gene_id = "D", gene_symbol = "WDYHV1")
	c._genes.add_node(gene_id = "E", gene_symbol = "KRT15")
	c._genes.add_node(gene_id = "F", gene_symbol = "KRT20")
	c._genes.add_node(gene_id = "G", gene_symbol = "TPM1")
	c._genes.add_node(gene_id = "H", gene_symbol = "KXD1")

	c.getInteractions(dataPath + "ppis")

	assert c._genes._net.has_edge("A", "B")
	assert c._genes._net.has_edge("C", "D")
	assert c._genes._net.has_edge("E", "F")
	assert c._genes._net.has_edge("G", "H")
	assert len(c._genes._net.edges()) == 4

	with pytest.raises(SpadaError):
		c = create_network.CreateNetwork("test", "gencode")
		c.getInteractions(None)
예제 #8
0
def test_CreateNetwork():

	with pytest.raises(SpadaError):
		c = create_network.CreateNetwork("test", "madeup")
예제 #9
0
def test_init():

    c = create_network.CreateNetwork("test", "gencode")
    c.run(dataPath + "gtf", dataPath + "fasta", dataPath + "mitab",
          dataPath + "ddis", dataPath + "features", dataPath + "aberrant")

    # gtf
    assert len(c._genes.nodes()) == 16
    assert len(c._txs.nodes()) == 28  # 22 txs + 3 aberrant
    assert len(c._txs.nodes()["ENST02.2"]["exons"]) == 6
    assert c._txs.nodes()["ENST02.2"]["strand"] == "+"
    assert c._txs.nodes()["ENST02.2"]["chr"] == "chr1"
    assert c._txs.nodes()["ENST02.2"]["CDS"] == [13000, 13023]
    assert len(c._txs.nodes()["ENST19.2"]["exons"]) == 1
    assert c._txs.nodes()["ENST19.2"]["strand"] == "-"
    assert c._txs.nodes()["ENST19.2"]["chr"] == "chr1"
    assert not c._txs.nodes()["ENST19.2"]["CDS"]
    assert not c._txs.nodes()["ENST19.2"]["main"]
    assert len(c._txs.nodes()["ENST12.3"]["exons"]) == 1
    assert c._txs.nodes()["ENST12.3"]["strand"] == "+"
    assert c._txs.nodes()["ENST12.3"]["chr"] == "chr1"
    assert c._txs.nodes()["ENST12.3"]["CDS"] == [69978, 70004]
    assert c._txs.nodes()["ENST12.3"]["main"]
    assert len([x for x, i in c._txs.nodes(data=True) if i['main']]) == 3
    assert "ENSG999" in c._genes.nodes()
    assert "ENST99.1" in c._txs.nodes()
    assert "ENST99.2" in c._txs.nodes()
    assert "ENST99.3" in c._txs.nodes()

    # test rejected genes, transcript and CDS
    assert "bad_status" not in c._genes.nodes()
    assert "bad_accepted_tag" not in c._txs.nodes()
    assert "bad_status" not in c._txs.nodes()
    assert "rejected_status" not in c._txs.nodes()
    assert "test" in c._genes.nodes()
    assert "test.1" in c._txs.nodes()
    assert c._txs.nodes()["test.1"]["CDS"] == None
    assert "ENST99.4" not in c._txs.nodes()
    assert "ENST99.5" not in c._txs.nodes()
    assert "ENST99.NA" not in c._txs.nodes()

    # aberrant
    assert c._txs.nodes()["ABC.1"]["gene_id"] == "ENSG08.4"
    assert c._txs.nodes()["DE_FG_HI.2"]["gene_id"] == "ENSG00.5"
    assert c._txs.nodes()["JKLM-.3"]["gene_id"] == "ENSG00.5"

    # interactions
    assert c._genes._net.number_of_edges() == 2
    assert c._genes._net.has_edge("ENSG00.5", "ENSG00.5")
    assert c._genes._net.has_edge("ENSG13.1", "ENSG00.5")

    # ddis
    assert c._txs._net.number_of_edges() == 4
    assert c._txs._net.has_edge("ENST01.2", "ENST01.2")
    assert c._txs._net.has_edge("ENST01.2", "ENST02.2")
    assert c._txs._net.has_edge("ENST02.2", "ENST02.2")
    assert c._txs._net.has_edge("ENST20.1", "ENST02.2")
    assert not c._txs._net.has_edge("ENST20.1", "ENST01.2")
    assert c._txs._net["ENST01.2"]["ENST01.2"]["ddi"] == {frozenset({"D1"})}
    assert c._txs._net["ENST01.2"]["ENST02.2"]["ddi"] == {frozenset({"D1"})}
    assert c._txs._net["ENST02.2"]["ENST02.2"]["ddi"] == {
        frozenset({"D1"}),
        frozenset({"D2"}),
        frozenset({'D4', 'D2'})
    }
    assert c._txs._net["ENST20.1"]["ENST02.2"]["ddi"] == {
        frozenset({"D2", "D4"}), frozenset({"D2"})
    }

    # fasta
    assert c._txs.nodes()["ENST12.3"]["proteinSequence"] == "ASDFAFAFA"
    assert c._txs.nodes()["ENST08.1"]["proteinSequence"] == "ASDASDASDASDA"
    assert c._txs.nodes()["ENST18.3"]["proteinSequence"] == "ASFASFASF"
    assert c._txs.nodes()["ENST02.2"]["proteinSequence"] == "ASFASFAS"
    assert c._txs.nodes()["ENST16.2"]["proteinSequence"] == "ABCDEFGHI"
    assert c._txs.nodes()["ENST01.2"]["proteinSequence"] == "ASFSAFASFS"
    assert c._txs.nodes()["ENST09.1"]["proteinSequence"] == "ASFASFASF"
    assert c._txs.nodes()["ENST13.5"]["proteinSequence"] == "ASFASFASASFASF"

    # features
    assert c._txs.nodes()["ENST01.2"]["Pfam"]["D1"] == {(1, 2), (3, 4)}
    assert len(c._txs.nodes()["ENST01.2"]["Pfam"]) == 1
    assert c._txs.nodes()["ENST02.2"]["Pfam"]["D1"] == {(1, 2)}
    assert c._txs.nodes()["ENST02.2"]["Pfam"]["D2"] == {(3, 4)}
    assert c._txs.nodes()["ENST02.2"]["Pfam"]["D4"] == {(5, 8)}
    assert len(c._txs.nodes()["ENST02.2"]["Pfam"]) == 3
    assert c._txs.nodes()["ENST20.1"]["Pfam"]["D2"] == {(3, 6)}
    assert len(c._txs.nodes()["ENST20.1"]["Pfam"]) == 1
    assert c._txs.nodes()["ENST08.1"]["IDR"]["I1"] == {(4, 13)}
    assert c._txs.nodes()["ENST18.3"]["Prosite"]["P1"] == {(23, 123)}

    assert os.stat('annotation.pklz').st_size > 0