Clarifications


Task Name Username Clarifications Response Public Created time Modified time
D - Mind the Difference hyyk_
コンテスト終了後もジャッジは稼働し続けますか?
提供データのライセンス上、永続的にジャッジデータをサーバーに置いておくことが難しいため
今のところ、少なくともD問題を現状と同じ形に維持したまま、AtCoder 上ではコンテストクローズ後にジャッジが継続する予定はありません。

AtCoder 以外の場所で一定の期間ジャッジが継続できる可能性については検討しております。
Yes
D - Mind the Difference toku
Answer dataのXの領域について

Xの領域が o の方が長い場合はペナルティが課されますか?
例えば、Answer dataがAXAのときにAAAAと出力した場合です。

【ペナルティが課される】
・質問の「t2の方は,Xの領域を超える文字が出力されています.(CCCCのうち後半の二文字は,XXに続く領域として解釈することも可能です.)そのため,8文字正解,かつ,2文字挿入間違い,と評価されます」
・eval.cの実装

【ペナルティが課されない】
・質問の「スコアはDPで考え得る最大値を計算しますが,その際,s1, s2が'X'の箇所は,t1, t2の文字がマッチしても0, t1, t2側に挿入があってもペナルティを与えない」
・問題文の「X に対応する領域は文字や文字の長さを間違えてもペナルティは課されない.」
引用して下さった「スコアはDPで考え得る最大値を計算しますが,その際,s1, s2が'X'の箇所は,t1, t2の文字がマッチしても0, t1, t2側に挿入があってもペナルティを与えない」の通りとなりまして,ペナルティが課されます.(わかりにくい表現だったかもしれず,申し訳ないです.)

> 例えば、Answer dataがAXAのときにAAAAと出力した場合です。

ご指摘の例ですと「2文字目3文字目の"AA"がXに相当する領域」と解釈する場合は,t1(もしくはt2)に欠損が生じます(以下の例だと3文字目のAが欠損)のでペナルティが課されます.

AX-A    <= 正解
AAAA   <= t1/t2
Yes
spady
順位表の凍結(更新の停止)は行われますか
終了48時間前から凍結されています。(既に凍結されているかと思います。)
Yes
D - Mind the Difference toku
ジャッジ用のデータでは専門家のチェックを行い、コンテストとしての面白さを大きく失う可能性のあるデータを排除していますので、正解配列が間違っている可能性はだいぶ低いと考えられます。

とありますが、現在AtCoder上でジャッジされるケースも専門家によるチェックが行われているのでしょうか? それともシステムテストの際に用いられるテストケースに関してのみでしょうか?
現在のジャッジデータ、最後に追加されるシステムテスト用のデータ共に専門家のチェックを行っています。
Yes
D - Mind the Difference chudanu
(質問ではなく回答に対するコメントです)
回答ありがとうございます。ただ質問の意図としてはそういうことを知りたかったわけではなく、「エラーに関する情報(分布の統計情報なり、十分な正解データなり)がないと本質的に解けないのでは?(解くのに十分な情報がない)」ということです。研究上のタスクとして実際こうだというのはわかりますが、プログラミングコンテストの問題としては ill-defined ではないかなと感じました。
貴重なご意見をありがとうございます。仰るとおり今回の問題設定は数学的には ill-defined です。
通常の AtCoder や ICPC, TopCoder (Algo) というよりはどちらかというと Kaggle のようなコンテストとお考え下さい。

生物学や医学の領域では観測技術の進歩によって近年、データの量やその複雑さが飛躍的にアップしており、
DNA 配列シークエンサーに限って言えばこの20年間でコスト・時間あたりのデータ産出量は 100億倍以上に増えました。
しかし、この間のデータ解析計算速度の進歩は(タスクによりますが)100倍から1000倍ぐらいでしょうか。
いまや、生物学や医学・農学の最大のボトルネックは、未知のデータの性質を上手に推測し実データに適した高速なアルゴリズムを考案し実装するアルゴリズマーの不足と言っても過言ではありません。

質問者様の期待とは逆向きの話かもしれませんが、出題側としては
「出題者や機器の開発者にすら分からないかもしれないデータ中の法則を推測して高いパフォーマンスを出すアルゴリズムを考案する楽しみ」
を感じ取って頂ければ幸いです。
Yes
D - Mind the Difference daiwakun
gen1_small_19.testcase.txtの標準配列、gen1_small_19.answer.txtのs1とs2、この3つの文字列すべてが一致しているようなのですが、これは正しいデータなのでしょうか。
データ自体は正しいです。また、秘密配列 s_1, s_2 は完全に一致している可能性もありえます。
ただし、gen1_small_19 は今回のコンテストのテストデータとして参加者に配布するデータとしては不適切でした。申し訳ございません。

ヒトのDNA配列には父母から貰ったDNA配列がそれぞれ1セットありますが、例えばいとこ婚など父母が元から血縁関係にある場合には、父母から貰ったDNA配列が完全に一致する領域が一定割合で生じます。また、これ以外の理由で父母から貰ったDNA配列が(染色体上の一部分の狭い領域で)完全に一致することもあります。このような領域からジャッジ用のデータを作った場合には s_1, s_2 が完全一致となります。

しかし、gen1_small_19 についてはゲノム座標の範囲指定を見れば分かるとおり、このゲノムデータは X 染色体から生じています。しかし、この DNA は男性から取得されているため、父親からは Y 染色体を受け継いでおり X 染色体は受け取っていません。つまり、X 染色体は母親由来の1本しかありませんので秘密配列 s_1, s_2 の2種類の配列があるという仮定がこのデータについては成り立っていません。また、結果として観測回数(配列の本数)も約半分ほどになっています。このため、問題の趣旨から言ってこのデータは除外して配布するべきでした。

ジャッジ用のデータではこの問題を考慮し、予め性染色体(X, Y 染色体)や常染色体以外(ミトコンドリア等)の配列を除外していますので「秘密配列が2本ある」という仮定は常に正しいと考えて下さい。ただし、今回のDNAサンプルについて父母の近親度などは特に調べていません。冒頭で述べたように2本の秘密配列が完全に同一である可能性は一定の(それほど高くはないと予想される)確率であり得ます。確率の具体的な数字はだいぶ頑張ってプログラムを書いて計算しないと分かりませんので開示はしません。
Yes
D - Mind the Difference terry_u16
テストケースgen1_small_13のchr10:59,605,735-59,606,041の範囲は全ての観測配列で欠失していますが、answerファイルを見るとs_1, s_2ともに当該範囲は欠失しておらず、標準ゲノム配列と等しい配列が答えとなっています。この部分の考え方について、差し支えない範囲で教えて頂けますと幸いです。
(解法のヒントになってしまうようであったり、出題者にも不明である場合などはノーコメントとして頂いても構いません。)
ご指摘の通り、s_1, s_2ともに当該範囲を欠失させるのが正しい解です。
配布した正解データについて当該範囲が欠失していないのは正解データが間違っています。このような間違いはジャッジサーバーで使っているデータには存在しないとしてプログラムを作成してください。

正解データは、今回用いた ONT 社のデータを含まない大量の観測データからゲノム業界で最新の(State-of-the-art の)手法で作成しています。しかし、どの測定機器にもそれぞれ固有のエラーがあるため、複数の測定機器から推定した変異(今回の場合には欠失)の多数決を取っており、今回は多数決で偶然、欠失無しと判定されていたために正解データには欠失がありませんでした。しかし、今回のONT社のデータを含め多数決を取り直せば欠失ありが結論となると考えられるケースになります。

ジャッジサーバーで使っているデータにこのようなケースが全く無いとまでは言い切れないのですが、参加者に配布したデータは概ねランダムなゲノム位置を選択して配布しており専門家の吟味を全く経ていないのに対し、ジャッジ用のデータでは専門家のチェックを行い、コンテストとしての面白さを大きく失う可能性のあるデータを排除していますので、正解配列が間違っている可能性はだいぶ低いと考えられます。
Yes
D - Mind the Difference toku
(1) 観測は以下の「観測試行」をn 回繰り返すことで行われ, n 本の文字列を得る.
とありますが、nはどのように決めていますか?
「問題の背景」まで全て読んで頂いている前提で返答します。

DNA配列シークエンサーを実験の都合上区切りが良い、一定の時間だけ走らせ多数のランダム配列を得ます。
これらのランダム配列のうち、こちらであらかじめ定めた「ヒトゲノム上のある区間」の一部と配列が
似ているものが偶然 n 本あった、ということです。実際の運営側の作業としては、n を決めている、
というよりは、ヒトゲノム上のある区間を定めています。
Yes
D - Mind the Difference Koki_tkg
観測施行(5)において逆相補鎖が代入された場合,「r と同じ向きに揃えられている」について結果Bに含まれる情報は逆相補鎖ではなく,相補鎖へと変換された配列であるということですか?
その通りです。f = < の場合に観測した配列(DNA 配列シークエンサーの生出力配列に相当)を得たい場合には、圧縮表記を展開したあとに逆相補鎖へ変換する必要があります。
Yes
D - Mind the Difference obakyan
くだけた問題の説明に記載されている「標準配列」と、入力一行目の「標準的な DNA 配列」は同じものを指していますか?
はい。同じです。
Yes
D - Mind the Difference T_tani
観測試行の説明に「(2) 選択した文字列s_iに対して始点の座標 b を一様ランダム ( −l_i ≤ b ≤ l_i ) に, 終点の座標 e を e−b がある分布に従うように決める.」とありますが、e-bが従う分布が公開されることはありますか。
公開する予定はありません。
より正確に言うと、実験の微妙な誤差等で毎回分布が変わってきますので
出題者にも(世界中の誰にも)厳密には分かりません。

ただし、お配りしたデータとジャッジ用のデータは基本的には同じ手順で実験をして作っていますので、
(完全に同一にはなり得ないが)似たような分布を持っていることが期待されます。
ぜひどんな分布になっているか調べてみて下さい。
Yes
D - Mind the Difference yu0404
お忙しい中、申し訳ございません。

採点プログラムの使い方がよく分かりません。使い方を詳細に教えて頂けないでしょうか?

お手数をおかけして申し訳ありませんが、よろしくお願いします。
親切とは言い難いReadme.txtで大変恐縮です...

まず,ご自身で作成されたプログラムの出力をファイルに保存なさってください.

もし,unix系OSをお使いの場合は
ご自身の実行プログラム > output.txt
等とすれば,output.txtに結果が保存されます.

また同じく,unix系OSをお使いの場合は
gcc -o eval -O3 eval.c
とterminalにてタイプして頂けると
eval という採点プログラムの実行ファイルが出来上がります.

この状態で,
./eval <正解のファイル.例えば art.answer.txt> output.txt
とタイプして頂けると,点数が出力されます.

macをお使いの方は,clangでコンパイルなさりたいケースもあるかと存じます.その場合は
clang -o eval -O3 eval.c
としてください.

windows環境の場合は,minGW, WSL,cygwin等を利用すると,同様の方法で利用できます.

なお運営側では,環境に依存しにくいDockerによる提供も検討しておりますので,どうかMLでの続報もお待ち頂けますと幸いです.
Yes
D - Mind the Difference redultimate
実行結果がREやWAの場合などのデバッグや試行錯誤にかなりの時間がかかってしまうので、REやWAの場合には2時間制限を緩和していただけないでしょうか?
残念ながら,制限時間の緩和は難しい状況です.
そのため,以下でお配りしている,手元でジャッジできるプログラムをお使い頂けると幸いです.
https://iibmp2021.hamadalab.com/genocon/picked/src_genocon2021.tar.gz
実行方法など不明な点がございましたら,ご質問頂ければと存じます.

なお,プログラムと合わせて実データのサンプルも含まれますため,ダウンロードの際にはD問題文に記載のIDとパスワードをご入力くださいませ.よろしくお願い致します.
Yes
D - Mind the Difference square1001
テストケースは何個ありますか?
1プロセスにつき1つのテストケースを受け取ります。コンテスト期間終了後に追加するテストケースを含めて最終的にいくつのテストケースを使うかは公開しません。しかし、AtCoderに提出して採点すれば、現状のジャッジサーバーに登録されているテストケースの数と各テストケースに対する点数は参加者から見えます。
Yes
D - Mind the Difference Ldwic03
入力例2の最終行に"="が抜けていませんか?
修正されました。ありがとうございます。
Yes
D - Mind the Difference toku
挿入の例のf1が0になっていますが、<, >のどちらかではないでしょうか?
修正されました。ありがとうございます。
Yes
D - Mind the Difference terry_u16
D問題の問題文ですが、同じものが2回繰り返されて表示されてしまっているように見受けられます。
ご指摘ありがとうございます。現在では修正されています。
同様の指摘を他の参加者もありがとうございました。
Yes
D - Mind the Difference threecourse
・「もう少し大きなサンプル」のInput Data, Answer Dataが、実際のテストケースの入力および秘密文字列s1, s2に相当するものという理解で良いでしょうか?
・https://iibmp2021.hamadalab.com/genocon/picked/gen1_small_12.answer.txt
には、Xや-が含まれるように思いますが、これは何を意味しますでしょうか?
ご指摘の通り,「もう少し大きなサンプル」のInput Data, Answer Dataが,実際のテストケースの入力および秘密文字列s1, s2に相当します.

また,Answer Dataに関して,説明が不足しており申し訳ございませんでした.
【簡潔な回答】
'-'はs1とs2をペアワイズアラインメントした際のギャップとなります.また,'X'はコンテストにおいて評価対象としない領域を示す記号です.

【より詳細な回答】
'-'に関して:
s1とs2はペアワイズアラインメントされてるためギャップを示す'-'が含まれております.このアラインメントは様々な分析をもとにs1とs2のゲノム上の位置を合わせた結果得られたものです.そのため,ギャップを除いたs1とs2をB問題のアルゴリズムによってアラインメントしても,同じ結果が得られるとは限りません.

'X'に関して:
今回正解としているデータでは,ゲノム上の特定の位置について,文字列のパターンはわかっているが,その文字列がs1由来なのか,それともs2由来なのか,まだ科学的に明らかになっていない部分が含まれることがあります.そのような領域はコンテストの評価の対象外とするため,'X'と表記しています.

例えば,正解データを作成する上で,s1とs2の5文字目以降に関して,'TT'と'C'がs1とs2のいずれかより(重複なく)由来する場合,以下の(1)と(2)の可能性が考えられます.
(1)
s1: ATCGTTGGGG
s2: ATCGC-AAAA

(2)
s1: ATCGC-GGGG
s2: ATCGTTAAAA
※ 位置を合わせるためのギャップも含めた表記となっています.

このような場合は,以下の(3)のように表記します.
(3)
s1: ATCGXXGGGG
s2: ATCGXXAAAA

評価の際の'X'の扱いですが,この領域では得点が加算されず,また,欠損や置換のペナルティもありません.

例えば,正解である上記の(3)に対して,参加者が次のように提出したとします.
t1: ATCGGGGG
t2: ATCGTTAAAA

この場合,t1,t2双方ともに,XX前後の4文字ずつを正しく復元できたとして,16文字マッチの正解と評価します.(TTは評価されません.)

しかし,次のような提出をした場合は,
t1: ATCGTTGGGG
t2: ATCGCCCCAAAA

t1の方は,8文字正解かつ,ペナルティなしですが,t2の方は,Xの領域を超える文字が出力されています.(CCCCのうち後半の二文字は,XXに続く領域として解釈することも可能です.)
そのため,8文字正解,かつ,2文字挿入間違い,と評価されます.

スコアはDPで考え得る最大値を計算しますが,その際,s1, s2が'X'の箇所は,t1, t2の文字がマッチしても0, t1, t2側に挿入があってもペナルティを与えない,とご理解いただければと存じます.

余談ですが,計算量を増やすことなく,X領域に含まれるはずの最小の文字数を満たさない場合にペナルティを与えるといったことも可能ではありますが,今回はシンプルに上記のように扱います.
Yes
D - Mind the Difference nephrologist
Nは明示的には与えられないのでしょうか。
問題文に記述されていると思いますが、n は明示的には与えられません。
Yes
D - Mind the Difference noshi91
観測試行 (5) について

逆相補鎖が代入された場合、観測 (このとき向きに応じて異なるかもしれない傾向のエラーが発生する) ののち再びその逆相補鎖を取ることで s_1,s_2 と同じ向きに戻し、その後に r とのペアワイズアラインメントが行われる、という理解は正しいですか?
向きを直してからペアワイズアラインメントする、というよりは「ペアワイズアラインメントを行うことで向きを揃える」のが正しいです。

r と s_1, s_2 は同じ向きに予め揃えられています。

観測した配列を r および rの相補鎖とそれぞれ(我々運営者が)ペアワイズアラインメントすることで、
観測した配列が r と同じ向きであるかを判定します。

「観測した配列と r のペアワイズアラインメントスコア」>「観測した配列と r の相補鎖のペアワイズアラインメントスコア」

が成立すれば r と観測配列は同じ向き(f = >)と判定し、逆なら f = < と判定します。

架空の観測エラー傾向として仮に「AGGという配列を観測すると必ずAAGに化ける」というルールがあり、
s_1, s_2 には元から AAG が存在しないと仮定すると、
f = > のときには AAG を探して AGG に修正し、f = < のときには CTT を探して CCT に直せばよいということになります。
Yes
C - Practice 3 rikein12
このコンテストはシステムテスト方式(コンテスト終了後にコンテスト中に用いたものとは異なるテストケースによって再び提出コードをジャッジし、そこで得られた得点をコンテストの真の得点とする方式)で行われますか?
ご指摘の通りです.C, D問題につきましては,システムジャッジの結果を最終順位の決定に使用します.(A, B問題はシステムジャッジは行いません.)
Yes
C - Practice 3 square1001
「最終的な順位はコンテスト終了後に別のデータセットで評価する.」とありますが、ここで評価されるのは、問題Cの全ての提出でしょうか?それとも、最後の提出でしょうか?(もし最後の提出ならば、1位が同点の場合は問題Cの最終提出が速い方が賞金獲得となるのですか?)
ご指摘の通りです.記述が不正確でご迷惑をおかけしました.最終提出が(現在セットされているテストケースと同様の方式で生成された)別のデータセットで評価され,さらに,同点の場合は,最終提出が早い方が受賞します.
Yes
C - Practice 3 kobae964
> なお,最良の解が最大点(4500点)に到達できることは保証しない.
とありますが、2 * 200 + 8 * 700 = 6000 なので、最大点は 6000 点ではありませんか?
ご指摘頂きありがとうございます。最大点は6000点の誤りでしたので、6000点に修正致します。
Yes
A - Practice 1 harurun
問題文の <code></code>で囲まれている A,C,G,Tの色がとても薄く非常に見辛いです。
文字の色を変更しました。こちらで大丈夫でしょうか。
Yes